IRC log of hg-talk on 2007-03-22

Timestamps are in UTC.

12:00:34 [RRSAgent]
RRSAgent has joined #hg-talk
12:00:34 [RRSAgent]
logging to http://www.w3.org/2007/03/22-hg-talk-irc
12:00:37 [tlr]
zakim, this will be project
12:00:37 [Zakim]
I do not see a conference matching that name scheduled within the next hour, tlr
12:30:34 [tlr]
zakim, this will be globa
12:30:34 [Zakim]
ok, tlr; I see Team_Global(review)8:00AM scheduled to start 30 minutes ago
12:53:27 [Zakim]
Team_Global(review)8:00AM has been moved to #hg by RalphS
12:55:26 [s-mon]
s-mon has joined #hg-talk
12:55:58 [DanC]
DanC has joined #hg-talk
12:58:56 [DanC]
agenda + Convene, take roll
12:59:06 [DanC]
agenda + Meeting record visibility
12:59:22 [DanC]
agenda + The Mercurial SCM, presentation by Matt Mackall http://www.selenic.com/mercurial/w3c-talk/
12:59:30 [RalphS]
RalphS has joined #hg-talk
12:59:31 [DanC]
agenda + Fractal project organization
12:59:40 [DanC]
agenda + hg hosting, large projects
13:00:03 [Yves]
Yves has joined #hg-talk
13:00:03 [RalphS]
zakim, conf?
13:00:03 [Zakim]
I don't understand your question, RalphS.
13:00:06 [RalphS]
zakim, what conf?
13:00:06 [Zakim]
I don't understand your question, RalphS.
13:00:09 [RalphS]
zakim, what conference?
13:00:09 [Zakim]
I don't understand your question, RalphS.
13:00:11 [RalphS]
zakim, what conference is this?
13:00:11 [Zakim]
no conference has been selected, RalphS
13:00:12 [mpm]
mpm has joined #hg-talk
13:00:16 [RalphS]
zakim, move review to here
13:00:17 [Zakim]
ok, RalphS; that matches Team_Global(review)8:00AM
13:00:22 [RalphS]
zakim, who's on the phone?
13:00:22 [Zakim]
On the phone I see MIT531, Kazuyuki (muted)
13:00:37 [DanC]
DanC has changed the topic to: The Mercurial SCM http://www.selenic.com/mercurial/w3c-talk/
13:00:38 [ivan]
ivan has joined #hg-talk
13:00:40 [olivier]
olivier has joined #hg-talk
13:00:50 [Zakim]
+Simon
13:00:58 [Zakim]
+DanC
13:01:04 [Zakim]
+ +1.415.200.aaaa
13:01:33 [DanC]
Zakim, aaaa is mpm
13:01:33 [Zakim]
+mpm; got it
13:01:47 [Zakim]
+Yves
13:01:55 [DanC]
Zakim, take up item 1
13:01:55 [Zakim]
agendum 1. "Convene, take roll" taken up [from DanC]
13:02:04 [DanC]
Zakim, who's on the phone?
13:02:04 [Zakim]
On the phone I see MIT531, Kazuyuki (muted), Simon, DanC, mpm, Yves
13:02:12 [caribou]
caribou has joined #hg-talk
13:02:25 [fsasaki]
fsasaki has joined #hg-talk
13:02:45 [Zakim]
+??P3
13:02:51 [RalphS]
zakim, who's in mit531?
13:02:51 [Zakim]
MIT531 has only MIT531
13:02:52 [olivier]
zakim, ??P3 is me
13:02:53 [Zakim]
+olivier; got it
13:02:57 [RalphS]
zakim, mit531 has Steve, Philippe, Ralph
13:02:57 [Zakim]
+Steve, Philippe, Ralph; got it
13:03:03 [gerald]
gerald has joined #hg-talk
13:03:09 [karl]
karl has joined #hg-talk
13:03:42 [dom]
dom has joined #hg-talk
13:03:46 [Zakim]
+ +33.4.94.06.aabb
13:03:47 [Zakim]
+??P5
13:03:47 [Steven]
Steven has joined #hg-talk
13:03:51 [dom]
Zakim, aabb is me
13:03:51 [Zakim]
+dom; got it
13:03:54 [ivan]
zakim, ??P5 is m
13:03:54 [Zakim]
+m; got it
13:03:57 [Steven]
zakim, dial steven-617
13:03:57 [Zakim]
ok, Steven; the call is being made
13:03:59 [Zakim]
+Steven
13:04:03 [Zakim]
-dom
13:04:06 [Steven]
zakim, mute me
13:04:06 [Zakim]
Steven should now be muted
13:04:16 [rigo]
rigo has joined #hg-talk
13:04:17 [ivan]
zakim, m is ivan
13:04:17 [Zakim]
sorry, ivan, I do not recognize a party named 'm'
13:04:19 [Zakim]
+Gerald
13:04:27 [Steven]
zakim, who is here?
13:04:27 [Zakim]
On the phone I see MIT531, Kazuyuki (muted), Simon, DanC, mpm, Yves, olivier (muted), m, Steven (muted), Gerald (muted)
13:04:29 [Zakim]
MIT531 has Steve, Philippe, Ralph
13:04:30 [Zakim]
On IRC I see rigo, Steven, dom, karl, gerald, fsasaki, caribou, olivier, ivan, mpm, Yves, RalphS, DanC, s-mon, RRSAgent, Zakim, tlr
13:04:39 [Steven]
zakim, m is ivan
13:04:39 [Zakim]
sorry, Steven, I do not recognize a party named 'm'
13:04:40 [Zakim]
+dom
13:04:43 [dom]
Zakim, mute me
13:04:43 [Zakim]
dom should now be muted
13:05:03 [steve]
steve has joined #hg-talk
13:05:19 [Zakim]
+Felix
13:06:05 [dom]
ack me
13:06:11 [RalphS]
zakim, mit531 also has TimBL
13:06:11 [Zakim]
+TimBL; got it
13:06:18 [RalphS]
zakim, list participants
13:06:18 [Zakim]
As of this point the attendees have been Kazuyuki, Simon, DanC, +1.415.200.aaaa, mpm, Yves, olivier, Steve, Philippe, Ralph, +33.4.94.06.aabb, dom, m, Steven, Gerald, Felix, TimBL
13:06:19 [dom]
Zakim, mute me
13:06:21 [Zakim]
dom should now be muted
13:06:31 [kaz]
kaz has joined #hg-talk
13:06:35 [plh]
plh has joined #hg-talk
13:06:51 [RalphS]
zakim, produce a map of where people are please
13:06:51 [Zakim]
I don't understand 'produce a map of where people are', RalphS
13:07:09 [DanC]
Zakim, pick a scribe
13:07:09 [Zakim]
Not knowing who is chairing or who scribed recently, I propose Yves
13:07:21 [timbl]
timbl has joined #hg-talk
13:07:36 [DanC]
Zakim, pick a scribe
13:07:36 [Zakim]
Not knowing who is chairing or who scribed recently, I propose Kazuyuki (muted)
13:07:55 [DanC]
Zakim, pick a scribe
13:07:55 [Zakim]
Not knowing who is chairing or who scribed recently, I propose Steve
13:08:01 [kaz]
zakim, unmute me
13:08:01 [Zakim]
Kazuyuki should no longer be muted
13:08:13 [DanC]
Zakim, pick a scribe
13:08:13 [Zakim]
Not knowing who is chairing or who scribed recently, I propose Ralph
13:08:18 [RalphS]
sigh
13:08:27 [RalphS]
dern you, zakim :)
13:08:29 [RalphS]
Scribe: Ralph
13:08:37 [DanC]
absence shows the following out of the office:
13:08:37 [DanC]
Daniel D., Danny W., Fumihiro, Ian J., Jose M., Judy,
13:08:37 [DanC]
Mimasa, Michael C., Philipp H., Shadi, Shawn
13:08:46 [fsasaki]
s/sigh/oh yes, I want to scribe!/
13:08:46 [DanC]
Zakim, next item
13:08:46 [Zakim]
agendum 2. "Meeting record visibility" taken up [from DanC]
13:08:53 [ted]
ted has joined #hg-talk
13:08:56 [jose]
jose has joined #hg-talk
13:08:56 [Zakim]
+Ted
13:09:31 [Zakim]
+Thomas
13:09:32 [DanC]
RESOLVED: world-visible records
13:09:38 [RalphS]
rrsagent, please make record public
13:09:41 [ericP]
ericP has joined #hg-talk
13:09:44 [DanC]
Zakim, next item
13:09:44 [Zakim]
agendum 2 was just opened, DanC
13:09:48 [DanC]
Zakim, close item 2
13:09:48 [Zakim]
agendum 2, Meeting record visibility, closed
13:09:50 [DanC]
Zakim, next item
13:09:50 [Zakim]
I see 3 items remaining on the agenda; the next one is
13:09:51 [Zakim]
3. The Mercurial SCM, presentation by Matt Mackall http://www.selenic.com/mercurial/w3c-talk/ [from DanC]
13:09:53 [Zakim]
agendum 3. "The Mercurial SCM, presentation by Matt Mackall http://www.selenic.com/mercurial/w3c-talk/" taken up [from DanC]
13:09:53 [RalphS]
TimBL: Creative Commons Attribution Non-Commercial :)
13:10:17 [jose]
zakim, dial jose-617
13:10:17 [Zakim]
ok, jose; the call is being made
13:10:19 [Zakim]
+Jose
13:10:22 [jose]
zakim, mute me
13:10:22 [Zakim]
Jose should now be muted
13:11:12 [DanC]
TimBL notes slides don't seem to work with safari. remote/slidey issue?
13:11:16 [Zakim]
+??P2
13:11:23 [ericP]
Zakim, ??P2 is me
13:11:23 [Zakim]
+ericP; got it
13:11:33 [ht]
ht has joined #hg-talk
13:11:40 [ht]
zakim, please call ht-781
13:11:40 [Zakim]
ok, ht; the call is being made
13:11:42 [Zakim]
+Ht
13:11:44 [DanC]
Zakim, remind us in 30 minutes to check the time
13:11:44 [Zakim]
ok, DanC
13:11:44 [RalphS]
Presenter: Matt Mackall, Selenic
13:12:03 [RalphS]
Slide 1: Title http://www.selenic.com/mercurial/w3c-talk/#(1)
13:12:35 [RalphS]
slide 2 "Why a New SCM?" http://www.selenic.com/mercurial/w3c-talk/#(2)
13:14:03 [ericP]
q+ to ask for a use case for a repeated merge
13:14:17 [ericP]
(i have a sense that that's a major motivator here)
13:15:21 [DanC]
ack ericp
13:15:21 [Zakim]
ericP, you wanted to ask for a use case for a repeated merge
13:15:22 [RalphS]
Matt: "your tea is still warm" came from someone at Sun, noticing merges were faster
13:15:51 [RalphS]
... given two lines of history; stable branch and unstable branch
13:16:03 [RalphS]
... bug fixes often committed to 'stable' but you want them also in 'unstable'
13:16:20 [RalphS]
... each time you pull patches across to 'unstable' you want to remember what happened the last time you merged
13:16:30 [RalphS]
EricP: like cvs -j ?
13:16:43 [RalphS]
Matt: right. cvs and svn do not remember the previous merge point
13:16:52 [timbl]
http://www.w3.org/Talks/Tools/Slidy/slidy.js Line 146: Can't hanlde non-ascii in string: "flèches"
13:16:53 [RalphS]
... so you have to revisit all the same conflicts again
13:17:44 [RalphS]
slide 3: "Why a decentralized system?" http://www.selenic.com/mercurial/w3c-talk/#(3)
13:18:50 [Zakim]
-Gerald
13:19:01 [timbl]
agenda+ The toplogy of update flows in a large development system with overlapping cokmmunities with diff't access rights. Wrt slide 3
13:19:16 [karl]
offline work++
13:19:18 [RalphS]
Matt: centralized systems are burdensome for people who work without write access as they have larger merges to deal with, thus slow
13:19:55 [Liam]
Liam has joined #hg-talk
13:20:10 [RalphS]
... consider folks like freebsd developers; a few people have write access to the repository, a large number of people have to go through those few for commits
13:20:36 [RalphS]
... so benefits of version control are not available to many
13:20:54 [RalphS]
... better to have ability to do local commits
13:21:04 [RalphS]
... permit off-line commits
13:21:13 [RalphS]
... sync whenever you feel you need to do so
13:21:31 [RalphS]
-> http://www.selenic.com/mercurial/w3c-talk/#(4) The Mercurial basics
13:21:49 [RalphS]
Matt: every hg repository is a working directory ala cvs plus a private store
13:22:03 [RalphS]
... explicit checkout not required
13:22:11 [RalphS]
... store has complete private copy of entire project history
13:22:30 [RalphS]
... no need to communicate with original server to do work on the project
13:22:50 [RalphS]
... the copy you have is equivalent to what you got from the original server; it has full revision information
13:23:04 [timbl]
q+ to ask Is the store append-only? Optimised for getting latest version?
13:23:13 [RalphS]
-> http://www.selenic.com/mercurial/w3c-talk/#(5) Making a commit
13:23:31 [DanC]
(the first time I used hg on a plane, it felt really revolutionary. http://dig.csail.mit.edu/breadcrumbs/node/96 )
13:23:34 [DanC]
ack timbl
13:23:34 [Zakim]
timbl, you wanted to ask Is the store append-only? Optimised for getting latest version?
13:23:45 [RalphS]
Tim: does the store keep the history as append-only?
13:23:59 [ht]
q+ to check about the nature of revs. . .
13:24:07 [RalphS]
... for what is it optimized? latest version or fetching full history?
13:24:21 [RalphS]
Matt: append-only. small delta tacked on to end of file for revision n+1
13:24:25 [RalphS]
... uses
13:24:32 [RalphS]
... uses 'revlog' format that I invented
13:24:48 [RalphS]
... rougly like format of MPEG file
13:24:59 [RalphS]
... small deltas and periodic full images
13:25:08 [RalphS]
... you can seek directly in and read a small chunk
13:25:12 [DanC]
-> http://www.selenic.com/mercurial/wiki/index.cgi/Design revlog design note
13:25:23 [RalphS]
... the amount of data you have to read is equivalent to the uncompressed size of the content
13:25:32 [RalphS]
... so both append-only and very fast
13:25:55 [RalphS]
... for files with very long history the index is separate and also append-only
13:26:14 [RalphS]
... for files with historys < 128k, the index is combined in the same file and read with one i/o
13:26:16 [steve]
q?
13:26:20 [steve]
ack ht
13:26:20 [Zakim]
ht, you wanted to check about the nature of revs. . .
13:26:44 [RalphS]
Henry: in cvs, every file has its own revision history
13:26:57 [RalphS]
... if you've chosen to branch you name the files in that branch
13:27:14 [RalphS]
... whereas in svn the world has a revision history and every change is considered a change to the world
13:27:18 [DanC]
(this is agendum 4, btw)
13:27:25 [RalphS]
... have I framed this correctly? which is hg?
13:27:34 [RalphS]
Matt: hg makes atomic project-wide snapshots
13:27:46 [RalphS]
... revlog for each file plus a "manifest"
13:27:55 [RalphS]
... manifest is a list of all files in a project for a given changeset
13:28:06 [RalphS]
... recursive pointers into manifest
13:28:18 [RalphS]
... so hg is in the latter camp; a project-wide sense of the state of each file
13:28:33 [DanC]
agenda?
13:28:37 [RalphS]
rrsagent, please make record public
13:29:02 [RalphS]
-> http://www.selenic.com/mercurial/w3c-talk/#(6) Revisions, Changesets, Heads, and Tip
13:29:25 [timbl]
I wonder whether projects can be nested.... concerned about 'project-wide" scalability... I giess that is agendum #4
13:29:56 [ericP]
recursive hash, like rsync?
13:30:28 [Bert]
Bert has joined #hg-talk
13:31:17 [Zakim]
+Bert
13:31:24 [RalphS]
[I suppose, then, that the act of starting a new project is "collecting tips" :) ]
13:31:32 [DanC]
Agenda: http://www.w3.org/mid/1174447602.32136.182.camel@dirk
13:31:51 [RalphS]
-> http://www.selenic.com/mercurial/w3c-talk/#(7) Cloning, Merging, and Pulling
13:32:08 [DanC]
Zakim, unmute me
13:32:08 [Zakim]
DanC should no longer be muted
13:32:28 [RalphS]
[note, slide 7 is animated]
13:33:09 [Zakim]
+Sandro
13:34:11 [tlr]
so both Alice and Bob need to do a merge, even though Bob had done one already?
13:34:19 [tlr]
+
13:34:21 [tlr]
q+
13:34:24 [RalphS]
Matt: hg also has 'pushing', opposite of 'pulling'
13:34:26 [DanC]
ack tlr
13:34:29 [RalphS]
... pushing requires more privs
13:35:06 [timbl]
q+ to ask whether pulling needs a hg server running on the pulled site, or just read access (http, file:. ftP:. etc)
13:35:13 [RalphS]
Thomas: am I understanding that both Alice and Bob do merges of e,f,g that lead to the same h?
13:35:23 [RalphS]
Matt: no, Alice pulls Bob's revision h
13:35:31 [tlr]
zakim, mute me
13:35:31 [Zakim]
Thomas should now be muted
13:35:38 [RalphS]
... so if she hasn't worked in the meantime she is guaranteed to get Bob's h
13:35:51 [RalphS]
... it's not uncommon to regularly merge back and forth
13:35:53 [DanC]
ack timbl
13:35:53 [Zakim]
timbl, you wanted to ask whether pulling needs a hg server running on the pulled site, or just read access (http, file:. ftP:. etc)
13:36:04 [RalphS]
Matt: in general it's very little work to do one of these merges
13:36:31 [RalphS]
Tim: push requires write access. does pull work by reading arbitrary files/ftp/http or do I need an hg server?
13:36:36 [RalphS]
Matt: see next slide ...
13:37:00 [RalphS]
-> http://www.selenic.com/mercurial/w3c-talk/#(8) Multiple ways to share repositories
13:37:22 [DanC]
(an example of the CGI interface: http://homer.w3.org/~connolly/projects/ )
13:38:01 [Steven]
Steven has left #hg-talk
13:38:14 [Steven]
Steven has joined #hg-talk
13:38:27 [RalphS]
Matt: can put a bunch of revlogs in an http directory but this is slower
13:38:43 [RalphS]
... in practice, most people use the hgserve approach
13:39:21 [Zakim]
+Gerald
13:39:22 [RalphS]
... "bundles" are highly compressed version of the project
13:39:27 [tlr]
zakim, drop gerald
13:39:27 [Zakim]
Gerald is being disconnected
13:39:29 [Zakim]
-Gerald
13:39:51 [RalphS]
... bundles use the hgserve wire format
13:40:01 [RalphS]
... tarballs can be pulled from hgserve
13:40:13 [RalphS]
... so browsable source tree has a 'pull' button
13:40:23 [RalphS]
... can pull raw versions of patch log via Web interface
13:40:37 [RalphS]
... any network filesys will work
13:41:12 [RalphS]
-> http://www.selenic.com/mercurial/w3c-talk/#(9) Using cheap branches to manage changes
13:41:22 [Zakim]
+Gerald
13:41:38 [RalphS]
rrsagent, please make record public
13:41:44 [Zakim]
DanC, you asked to be reminded at this time to check the time
13:42:46 [RalphS]
Matt: the idea is that branches are very light-weight; create and destroy them at will
13:43:08 [RalphS]
-> http://www.selenic.com/mercurial/w3c-talk/#(10) New features can be added with extensions
13:43:42 [RalphS]
Matt: open source project have found mq to be useful in managing streams of updates as patches
13:44:42 [RalphS]
... forest extension manages 'subprojects'; whereas cvs has a tree of repositories, the notion of subproject is more difficult in hg
13:44:43 [timbl]
q+ to ask whether you can also brek out a subproject/
13:45:09 [RalphS]
-> http://www.selenic.com/mercurial/w3c-talk/#(11) For more information
13:46:05 [mpm]
http://hgbook.red-bean.com/
13:46:18 [DanC]
Zakim, agenda?
13:46:18 [Zakim]
I see 4 items remaining on the agenda:
13:46:19 [Zakim]
3. The Mercurial SCM, presentation by Matt Mackall http://www.selenic.com/mercurial/w3c-talk/ [from DanC]
13:46:22 [Zakim]
4. Fractal project organization [from DanC]
13:46:23 [Zakim]
5. hg hosting, large projects [from DanC]
13:46:25 [Zakim]
6. The toplogy of update flows in a large development system with overlapping cokmmunities with diff't access rights. Wrt slide 3 [from timbl]
13:46:36 [RalphS]
-> http://hgbook.red-bean.com/ current manual (replaces URI in slides)
13:46:39 [Zakim]
timbl, you wanted to ask whether you can also brek out a subproject/
13:46:49 [DanC]
Zakim, take up item 4
13:46:49 [Zakim]
agendum 4. "Fractal project organization" taken up [from DanC]
13:47:10 [RalphS]
Tim: for a large project that grows and grows, will forest let me split off a subproject?
13:47:20 [RalphS]
Matt: yes, if I'm understanding you
13:47:35 [RalphS]
... a project is a boundary where you sensibly want to do atomic commits
13:47:59 [RalphS]
... given two components in which you want to make simultaneous changes in an atomic commit, these should be in the same 'project'
13:48:16 [RalphS]
Tim: organization of projects might not be so tied to atomic commits
13:48:29 [RalphS]
... issue of clashes does not arise so often in some styles of work
13:48:45 [RalphS]
... so management issue is to permit a single checkout to get everything
13:49:05 [RalphS]
... nice thing about svn is that a subdirectory can be declared to be a soft link to a project somewhere else
13:49:14 [RalphS]
... svn subproject can use its own access protocol
13:49:22 [RalphS]
Matt: that's effectively what 'forest' does
13:49:31 [RalphS]
... a forest is a set of projects and their relevant changesets
13:49:32 [Jean-Gui]
Jean-Gui has joined #hg-talk
13:49:37 [DanC]
q+ to ask about splitting out, e.g. a utility tool from a big project
13:49:48 [DanC]
ack danc
13:49:48 [Zakim]
DanC, you wanted to ask about splitting out, e.g. a utility tool from a big project
13:49:49 [RalphS]
... I'm not as familiar with forest, as it was written by someone else but that's what people are using it for
13:50:32 [RalphS]
DanC: suppose I started writing a module as part of a project but then decide it should be split out. Is there a straightforward way to do this?
13:50:43 [RalphS]
Matt: no, no easy way to delete old changesets or remove files from a tree
13:50:44 [ericP]
ack me
13:50:55 [RalphS]
... hg histories are more immutable than in other systems
13:51:11 [RalphS]
... the obvious way to do this would be to close a project and delete all the unwanted stuff
13:51:21 [DanC]
s/close a project/clone a project/
13:51:38 [RalphS]
... in future we may allow trimming history; e.g. 'commits before rev X are no longer relevant', or 'commits outside this tree are no longer relevant'
13:51:52 [Zakim]
-Kazuyuki
13:52:07 [RalphS]
EricP: is it easy to write code that hacks the revlogs, like sed on cvs histories?
13:52:22 [RalphS]
Matt: yep, people have been successful in hacking pretty low-level things
13:52:44 [RalphS]
DanC: there's an API too, don't assume you can just hack files
13:52:46 [ted]
not to worry eric, i bet there's a mode or will be shortly
13:52:57 [RalphS]
Matt: several other projects have cloned the revlog approach now
13:53:03 [RalphS]
... e.g. monotone, @@
13:53:09 [DanC]
s/@@/bzr/
13:53:13 [RalphS]
... svn may also be looking at adopting revlog
13:53:36 [Yves]
Yves has left #hg-talk
13:53:43 [RalphS]
Tim: describe some typical topologies
13:53:55 [DanC]
Zakim, take up item 5
13:53:55 [Zakim]
agendum 5. "hg hosting, large projects" taken up [from DanC]
13:54:07 [RalphS]
... large numbers of developers, with subgroups who sync with each other but not the 'main' repository
13:54:16 [RalphS]
... others hacking with only email access
13:54:23 [ericP]
agenda?
13:54:30 [RalphS]
... what sort of workflows are established?
13:54:44 [RalphS]
... I worry about patches that are shared only between a subset of developers who heard about them
13:54:45 [DanC]
Zakim, take up item 6
13:54:45 [Zakim]
agendum 6. "The toplogy of update flows in a large development system with overlapping cokmmunities with diff't access rights. Wrt slide 3" taken up [from timbl]
13:54:51 [DanC]
Zakim, close item 3
13:54:51 [Zakim]
agendum 3, The Mercurial SCM, presentation by Matt Mackall http://www.selenic.com/mercurial/w3c-talk/, closed
13:54:53 [Zakim]
I see 3 items remaining on the agenda; the next one is
13:54:55 [Zakim]
4. Fractal project organization [from DanC]
13:55:02 [RalphS]
... so accidentially you have a patch that lots of people have but never gets into the 'main' repository
13:55:11 [DanC]
Zakim, close item 3
13:55:11 [Zakim]
agendum 3, The Mercurial SCM, presentation by Matt Mackall http://www.selenic.com/mercurial/w3c-talk/, closed
13:55:13 [ericP]
agenda+ applicability to www.w3.org (largely asynchronous) and dev.w3.org (largely synchronous)
13:55:14 [Zakim]
I see 3 items remaining on the agenda; the next one is
13:55:15 [RalphS]
... hash across the project but no single place to go for the 'tip'
13:55:16 [Zakim]
4. Fractal project organization [from DanC]
13:55:19 [DanC]
Zakim, close item 4
13:55:19 [Zakim]
agendum 4, Fractal project organization, closed
13:55:20 [Zakim]
I see 3 items remaining on the agenda; the next one is
13:55:21 [Zakim]
5. hg hosting, large projects [from DanC]
13:55:24 [RalphS]
Matt: I think the optimal model is the linux model
13:55:45 [RalphS]
... a central person, Linus, who is the only one with push access to a central repository
13:55:52 [RalphS]
... most efficient if everyone only does pull
13:55:59 [RalphS]
... with push you wind up with two heads
13:56:16 [RalphS]
... second 'pusher' gets a message instructing them to do pull-merge-push
13:56:23 [tlr]
yikes, that means it won't work well with datespace
13:56:42 [RalphS]
... if a single person does pulls from 'lieutenants' then a push to the central repository it's more efficient
13:57:11 [RalphS]
... scales well; can assign lieutenants for subprojects and they can do pull-merge for their subprojects
13:57:32 [RalphS]
Tim: ironic that the technology is Web-like and decentralized but relies on a centralized social process
13:57:41 [RalphS]
Matt: in the end you want to wind up with one version
13:57:41 [DanC]
(well,
13:57:41 [ericP]
tlr, care to rase that now?
13:57:47 [ericP]
i would
13:57:51 [DanC]
(well, "relies" is stronger than what tim said, but...)
13:57:53 [ericP]
ack me
13:57:57 [RalphS]
... in fact there are many long-lived independent branches, even in the linux worls
13:58:03 [RalphS]
s/worls/world/
13:58:28 [RalphS]
Eric: in the W3C case we have 'dev' that is largly synchronous and a 'cvs.w3.org' space that is asynchronous
13:58:41 [RalphS]
... we care that the code in dev.w3.org is synchronized
13:59:00 [RalphS]
... but the Web space cvs.w3.org largely has pages that do not depend on each other
13:59:05 [ted]
q?
13:59:20 [RalphS]
... in the svn model that requires a single revision number for 100k's of documents ...
13:59:29 [RalphS]
... how would you arrange this in hg?
13:59:47 [RalphS]
Matt: we currently do not implmeent 'partial repositories' where you'd ignore a subset of the repository
14:00:03 [RalphS]
... there are existing projects with order 100k's of docs
14:00:11 [RalphS]
... but you'd probably not want to use hg to do wikipedia
14:00:25 [DanC]
(this is what I meant by "Fractal project organization" again, fyi)
14:00:30 [timbl]
q+ timbl1 to ask about comparisons with Darcs
14:00:33 [RalphS]
... I've had a back-burner idea of doing something rcs-like, managing a single file but keeping O(n)
14:00:44 [RalphS]
... basically breaking out revlog but with a single file for management
14:00:48 [timbl]
q+ timbl2 to ask whether one could turn off the project-wideness
14:01:01 [DanC]
agenda+ comparisons with Darcs [timbl]
14:01:05 [RalphS]
... for a 100k document case you'd want to break this into smaller projects
14:01:12 [RalphS]
EricP: perhaps year-month
14:01:14 [ted]
1.75M resources in www.w3.org webspace at present
14:01:27 [RalphS]
Matt: you don't want to divide by time, you want to divide across the tree
14:01:54 [RalphS]
DanC: the W3C naming scheme lets you use year-month as a default naming scheme, files can still change
14:02:03 [DanC]
ack timbl2
14:02:03 [Zakim]
timbl2, you wanted to ask whether one could turn off the project-wideness
14:02:16 [RalphS]
Tim: I can imagine someone wanting to establish a [new] project at a given point in a tree
14:02:26 [RalphS]
... 'this is a new software system' or 'this is a tutorial'
14:02:35 [RalphS]
... making a self-consistent subsystem
14:02:41 [RalphS]
... but such a subsystem is unusual
14:02:55 [RalphS]
... e.g. these meeting minutes do not need to be synchronized with anything else
14:03:18 [RalphS]
... initial description of hg sounds similar to cvs
14:03:27 [Zakim]
-Ivan
14:03:32 [RalphS]
... how big a change would it be to remove the project-wide idea?
14:03:43 [RalphS]
Matt: pretty large change. easier to work with something like forest
14:04:02 [RalphS]
... or start with project with many subprojects and mark subprojects as 'ignore for commit'
14:04:30 [RalphS]
... this part of the problem space is very different from cvs and a little tricky for people to adapt to if they've structured their projects for the way cvs works
14:04:45 [RalphS]
... these hurdles can be surpassed but you do have to think about things a little differently
14:04:52 [RalphS]
DanC: thinking more rcs-like?
14:05:04 [RalphS]
Matt: yes, if everything is really independent then you probably want something like rcs
14:05:13 [RalphS]
... wikipedia only thinks about changing single files
14:05:41 [RalphS]
Eric: on a human level we frequently manage file dependencies
14:06:21 [RalphS]
... if you could say '{...} are independent by default, {...} are mutually dependent, ...' that might be useful
14:06:29 [RalphS]
Matt: that's blue-sky from where we are today
14:06:40 [DanC]
Zakim, take up item darcs
14:06:40 [Zakim]
agendum 8. "comparisons with Darcs" taken up [from timbl via DanC]
14:06:50 [RalphS]
... if we wanted to support wikipedia with what we currently have we understand the changes but we haven't worked on it
14:06:55 [Zakim]
timbl1, you wanted to ask about comparisons with Darcs
14:07:17 [RalphS]
Matt: I understand that Darcs is (a) orders of magnitude slower and (b) magical
14:07:29 [ht]
I really don't see how the structuring into projects makes any sense for our datespace
14:07:32 [RalphS]
... has nice properties for cherry-picking in a way people seem to like but that I believe are problematic
14:07:33 [tlr]
http://darcs.net/DarcsWiki
14:07:38 [RalphS]
... cherry-picking is ...
14:07:51 [ted]
branching and merging in cvs with our wgs has often been a headache when introduced, the central repo and sticking with a main branch has simplified life for most
14:07:57 [RalphS]
... given 2 branches where you want to bring in single changes without regard to surrounding history, Darcs lets you do this
14:08:32 [RalphS]
... what I understand from bzr folk is that the way Darcs handles patches internally it's possible to reorder patches such that older versions of the project cannot be reconstructed
14:08:33 [ted]
merging from numerous branches seems like it could get very tedious
14:08:56 [DanC]
Zakim, close item 6
14:08:56 [Zakim]
agendum 6, The toplogy of update flows in a large development system with overlapping cokmmunities with diff't access rights. Wrt slide 3, closed
14:08:59 [Zakim]
I see 3 items remaining on the agenda; the next one is
14:09:00 [Zakim]
5. hg hosting, large projects [from DanC]
14:09:01 [RalphS]
... if what I've heard is correct and we're understanding this correctly, this is a serious failing in a version control system
14:09:05 [DanC]
Zakim, close item 7
14:09:05 [Zakim]
agendum 7, applicability to www.w3.org (largely asynchronous) and dev.w3.org (largely synchronous), closed
14:09:07 [Zakim]
I see 2 items remaining on the agenda; the next one is
14:09:08 [Zakim]
5. hg hosting, large projects [from DanC]
14:09:21 [RalphS]
... so (c) Darcs may have some theoretical and practical serious issues
14:09:26 [ht]
agenda+ importing from CVS
14:09:31 [s-mon]
q?
14:09:39 [ted]
what might work with our environment is if a group wishes to go off with a decentralized repo with a handful of 'leutenants' to handle collecting and committing to main [cvs] tree that could work
14:09:45 [RalphS]
Tim: I'm surprised to hear that Darcs may have this issue; I thought it was append-only
14:09:49 [ted]
it would be nice to get the revision history as part of that though
14:09:56 [RalphS]
DanC: no, what was revolutionary about Darcs was that patches commute
14:10:07 [ericP]
agenda- 7
14:10:07 [gerald]
(+1 to ted)
14:10:53 [RalphS]
Ted: when groups do [lots of branching], it has tended to become a big headache
14:11:16 [RalphS]
... but the lieutenant model who are responsible for merging upward ...
14:11:30 [RalphS]
... would be nice to get all revision history along with [the lieutenant's merge]
14:11:38 [RalphS]
... capture all the history in the main repository
14:11:53 [RalphS]
DanC: yeah, but consider 'why hg' initially
14:12:05 [RalphS]
... using cvs as the 'main truth' causes you to loose interesting properties of the whole system
14:12:16 [RalphS]
Matt: complicated merges in cvs require lots of wizardry
14:12:29 [RalphS]
... cvs admin-type person has to understand nitty gritty details of cvs
14:12:29 [ted]
my biggest concern in changing our base revision system is migrating 300+ users to another platform, the user support for these users has cost us considerably
14:12:48 [RalphS]
... much less the case with hg; once you know the basics of push, pull, merge there's not a lot more
14:12:57 [RalphS]
... you avoid big cvs merge problem
14:13:12 [RalphS]
... people tend to do their own merges without a lot of help
14:13:13 [DanC]
Zakim, take up item hosting
14:13:13 [Zakim]
agendum 5. "hg hosting, large projects" taken up [from DanC]
14:13:18 [ht]
q+ to raise agendum 9
14:13:24 [RalphS]
DanC: one of the motivations for this Project Review ...
14:13:37 [Zakim]
-olivier
14:13:39 [RalphS]
... main www.w3.org cvs repository (cvs.w3.org) seems not a good match for hg
14:14:01 [RalphS]
... a long time ago we split out dev.w3.org so world could read the history
14:14:14 [RalphS]
... socially dev.w3.org works like a bunch of independent projects
14:14:23 [plh]
q+ to ask for eclipse extensions
14:14:38 [RalphS]
... in this style of work, hosting 200 hg projects on a server, does this use more disk i/o, etc [than cvs]?
14:14:44 [RalphS]
Matt: hg is designed to minimize i/o
14:14:49 [gerald]
(I'm more worried about user support ang migration costs than CPU/IO which is relatively cheap)
14:14:58 [gerald]
s/ang/and/
14:14:58 [RalphS]
... if you're using a fast cgi approach, like @@ framework
14:15:17 [RalphS]
... you can plug it into any of the pythong cgi interfaces; zope sorts of things
14:15:35 [ted]
we would have to hack quite a few tools for hg if it results in mirroring
14:15:36 [RalphS]
... if you're doing something that generates a lot of load you should use fast cgi
14:15:44 [RalphS]
... so indices are kept in memory
14:16:19 [RalphS]
... there's an import of freebsd repository in to hg and they haven't yet gotten to the point where they need fast cgi
14:16:38 [RalphS]
... if you get to the point where a single system is too slow you simply clone it and do round-robin load balancing
14:16:48 [RalphS]
Tim: and somehow sharing patches?
14:16:54 [RalphS]
Matt: you'd probably keep a single push point
14:16:59 [RalphS]
... commits have to be single-threaded
14:17:10 [RalphS]
... hg backend uses lock-less pull
14:17:25 [RalphS]
... multiple readers, one writer
14:17:27 [s-mon]
q+ to ask about Matt's perspective on how folks have dealt with migrations.
14:17:29 [RalphS]
... so no lock contention
14:17:54 [RalphS]
... e.g. dev{1,2,3}.w3.org could all pull from a backend server, push.w3.org
14:18:00 [RalphS]
... pushes would all go to push.w3.org
14:18:29 [RalphS]
DanC: are there any statistics [for dev.w3.org]?
14:18:30 [ted]
q+ to follow ? of plh's re clients
14:18:31 [DanC]
ack s-mon
14:18:32 [Zakim]
s-mon, you wanted to ask about Matt's perspective on how folks have dealt with migrations.
14:18:54 [sandro]
sandro has joined #hg-talk
14:19:03 [RalphS]
Simon: there exist tools for importing cvs repositories into hg. how well have these worked in practice?
14:19:09 [RalphS]
Matt: small projects get along pretty well.
14:19:15 [s-mon]
tools for cvs<>hg conversion - http://www.selenic.com/mercurial/wiki/index.cgi/RepositoryConversion?action=show&redirect=ConvertingRepositories#head-8f6fdc4a130232720c51de0b4417e213898f28ad
14:19:17 [RalphS]
... projects that do repository hacking are problematic
14:19:18 [ht]
agenda- 9
14:19:22 [DanC]
(my experiense is that the migration tools are pretty immature. )
14:19:27 [RalphS]
... firefox developers have had more trouble than others
14:19:41 [RalphS]
... freebsd folks seem to get along ok, though they've not yet committed to using hg
14:19:59 [RalphS]
... the biggest trick with cvs is converting histories to changesets
14:20:14 [RalphS]
... requires going through the history and identifying co-occurring changes as changsets
14:20:21 [DanC]
ack ht
14:20:21 [Zakim]
ht, you wanted to raise agendum 9
14:20:22 [RalphS]
... the tools to do this can get confused
14:20:38 [DanC]
Zakim, take up agenum 9
14:20:38 [Zakim]
I don't understand 'take up agenum 9', DanC
14:20:42 [DanC]
Zakim, take up agendum 9
14:20:42 [Zakim]
agendum 9. "importing from CVS" taken up [from ht]
14:20:54 [RalphS]
Henry: seems to me that there are 3 parts of W3C usage we'd need to consider:
14:21:18 [RalphS]
... (1) datespace, for which hg doesn't seem the right model; single-document-orientation more appropriate
14:21:37 [RalphS]
... (2) /TR space, for which we now tend to have a subdirectory for a document containing a set of files
14:21:43 [sandro]
ohhhhh. Have the pubs from a given WG be a Project.
14:21:50 [RalphS]
... having each TR document be a "project" may be appropriate
14:22:07 [RalphS]
... but design goal of making branching and merging fast is borderline irrelevant for /TR
14:22:32 [RalphS]
... though sometimes we do have both editor and webmaster simultaneously changing doc at the last minute
14:22:45 [RalphS]
... (3) an Area; e.g. within XML, SVG, editors tend to have workspaces
14:22:53 [DanC]
sanro, that raises all the fractal questions: what about WDs shared by the Query and XSL WGs.
14:22:56 [RalphS]
... some editorial teams may find branching and merging relevant
14:23:04 [RalphS]
... might have been helpful in cases where MSM and I worked together
14:23:34 [RalphS]
... (4) dev.w3.org clearly has projects and branching/merging might well support that community better
14:23:36 [tlr]
q+
14:23:45 [DanC]
ack plh
14:23:45 [Zakim]
plh, you wanted to ask for eclipse extensions
14:24:07 [RalphS]
Philippe: I've been very successful getting people to use eclipse for dev.w3.org
14:24:20 [RalphS]
... because they're pretty autonomous and eclipse integrates ssh support\
14:24:38 [RalphS]
... is there any support for eclispe within hg?
14:24:38 [DanC]
(googling yields http://www.vectrace.com/mercurialeclipse/ )
14:24:50 [RalphS]
Matt: yes, there is an eclispe plugin but I've not used it myself
14:25:02 [RalphS]
... there may even be competing eclispe plugins
14:25:19 [RalphS]
... but I can't speak from personal experience how useful they are
14:25:23 [RalphS]
... see wiki
14:25:27 [RalphS]
... 'otherTools'
14:25:28 [mpm]
http://www.selenic.com/mercurial/wiki/index.cgi/OtherTools
14:25:42 [RalphS]
s/other/Other/
14:25:46 [DanC]
ack ted
14:25:46 [Zakim]
ted, you wanted to follow ? of plh's re clients
14:26:29 [RalphS]
Ted: biggest job in getting new W3C users has been cvs startup
14:26:41 [RalphS]
... what experience can you relay on hg learning curve?
14:26:49 [DanC]
xen
14:26:55 [RalphS]
Matt: first big project adopter was linux hypervisor
14:27:02 [RalphS]
... hg started in April 2005
14:27:07 [ivan]
ivan has left #hg-talk
14:27:11 [RalphS]
... hypervisor started using hg in June/July 2005
14:27:25 [DanC]
"Xen - a free hypervisor for virtualising kernels" among http://www.selenic.com/mercurial/wiki/index.cgi/ProjectsUsingMercurial
14:27:30 [RalphS]
... we got 3 or 4 patches from them then they went quiet because they were happy
14:27:34 [RalphS]
... I assume they're still happy
14:27:57 [ted]
+1 to ht, our user base's tech skill sets varies widely
14:28:02 [DanC]
yes, good point, ht (that our user base is very different from most opensource software dev projects - they would all know about SCM systems before, whereas many of ours have never seen one before )
14:28:07 [RalphS]
... Sun sends some questions; they have long-lived software processes that were closely adapted to teamware system and were slight mismatch for hg
14:28:22 [RalphS]
... for the most part, Sun's questions are not about usage but about obscure bugs
14:28:36 [RalphS]
... so I think people adapt to the hg model quickly once they understand push and pull
14:28:45 [RalphS]
Ted: hypervisor is a group of geeks
14:28:56 [RalphS]
... W3C [document editors] have very varied skill sets
14:29:02 [RalphS]
... editor-type people in the mix
14:29:11 [RalphS]
... how well do these people adapt?
14:29:18 [RalphS]
Matt: not much experience there
14:29:29 [RalphS]
... comments are that hg is easier to understand than cvs
14:29:46 [RalphS]
... so people adopting version control for the first time have little difficulty
14:29:56 [RalphS]
... I've tried to make hg similer to cvs where that was sensible
14:30:11 [RalphS]
... but I've been annoyed by the usability of cvs so I've fixed some of that
14:30:16 [ted]
q+ later to ask about access control in distributed environment where people can pull from others
14:30:20 [DanC]
ack thomas
14:30:21 [RalphS]
... hopefully hg is easier to use than cvs
14:30:49 [RalphS]
Thomas: in W3C datespace we have a lot of concurrent editing of independent files in a tree that is only Team-editable
14:31:01 [RalphS]
... and an occasional subdirectory in which we give Member write access
14:31:09 [RalphS]
... these are confined and @@ projects
14:31:28 [RalphS]
... it's often painful to manage access rights in these subdirectories, give access to changelogs, etc
14:31:41 [RalphS]
... could we adapt hg or something like it into a part of W3C webspace?
14:31:51 [RalphS]
... use this as a way to grant Member write access?
14:31:59 [RalphS]
DanC: I've run that experiment with the GRDDL test repository
14:32:03 [RalphS]
... it sort-of worked
14:32:19 [RalphS]
... it's straighforward to export cvs history into hg a little bit at a time
14:32:19 [ht]
Test suites are another interesting example -- project concept really doesn't make a lot of sense
14:32:38 [RalphS]
... but hg is more expressive than cvs so importing hg history back into cvs loses data
14:32:52 [RalphS]
... there are things in the hg history that have no analog in cvs
14:33:10 [RalphS]
Thomas: I'd accept loss of history data as a way to experiment with hg
14:33:20 [RalphS]
Tim: save the revlogs in cvs?
14:33:22 [gerald]
+1 to Thomas
14:33:25 [steve]
steve has left #hg-talk
14:33:43 [RalphS]
Matt: it's theoretically possible to build a cvs gateway to hg; something that looks like a cvs server but is backed by hg
14:33:46 [tlr]
I'm looking at CVS purely as a way to bridge an hg repository into web space
14:33:58 [RalphS]
DanC: such a gateway would have to round off various corners
14:34:05 [RalphS]
Matt: yes, the gateway would be responsible for that
14:34:23 [RalphS]
Henry: would work fine from cvs point-of-view, only problem would be an hg user also making changes
14:34:37 [RalphS]
Matt: a cvs client could still checkout and would get an approximation of the log
14:34:45 [ericP]
i need to go. thank you very much, Matt and DanC for putting this together
14:34:53 [RalphS]
... have an acl extension for managing push permissions for parts of a tree
14:34:57 [Zakim]
-ericP
14:35:08 [RalphS]
zakim, steve, timbl, philippe have left mit531
14:35:08 [Zakim]
I don't understand 'steve, timbl, philippe have left mit531', RalphS
14:35:33 [RalphS]
Matt: even without direct commit access it's still useful to be able to make local commits and use this to publish patches, produce changesets, etc.
14:35:39 [Zakim]
-Ht
14:35:46 [RalphS]
... send one of these changesets to someone with push permission
14:35:49 [s-mon]
q?
14:35:59 [Zakim]
-dom
14:36:00 [Zakim]
-Steven
14:36:00 [RalphS]
[adjourn]
14:36:02 [Zakim]
-Sandro
14:36:10 [Zakim]
-Felix
14:36:12 [Zakim]
ted, you wanted to ask about access control in distributed environment where people can pull from others
14:36:55 [RalphS]
Ted: is there a way to specify 'upstream' what can be pulled from the next generation?
14:37:13 [RalphS]
... e.g. when someone without write access still makes changes available to others for pull
14:37:31 [RalphS]
Matt: no, nothing like this. something like gpg'd files but that would be inefficient
14:37:32 [timbl]
RSS?
14:37:38 [ted]
so one could circumvent inadvertently patent policy and member confidentiality
14:37:49 [RalphS]
... no provisions in hg for any sort of rights management
14:38:06 [RalphS]
Ted: we have policies about Member confidentiality
14:38:18 [RalphS]
... sometimes people don't realize what category a given document falls into
14:38:25 [RalphS]
... so inadvertently share a private document
14:38:27 [Zakim]
-DanC
14:38:28 [Zakim]
-mpm
14:38:31 [Zakim]
-Ted
14:38:33 [Zakim]
-Thomas
14:38:34 [Zakim]
-Yves
14:38:34 [jose]
zakim, drop me
14:38:35 [Zakim]
-MIT531
14:38:36 [Zakim]
Jose is being disconnected
14:38:37 [Zakim]
-Jose
14:38:38 [Zakim]
-Gerald
14:38:45 [Zakim]
-Bert
14:38:47 [Zakim]
-Simon
14:38:55 [Bert]
Bert has left #hg-talk
14:39:07 [Jean-Gui]
Jean-Gui has left #hg-talk
14:39:45 [Zakim]
Team_Global(review)8:00AM has ended
14:39:46 [Zakim]
Attendees were Kazuyuki, Simon, DanC, +1.415.200.aaaa, mpm, Yves, olivier, Steve, Philippe, Ralph, +33.4.94.06.aabb, dom, m, Steven, Gerald, Felix, TimBL, Ted, Thomas, Jose, ericP,
14:39:49 [Zakim]
... Ht, Bert, Sandro
14:40:16 [dom]
dom has left #hg-talk
14:40:24 [gerald]
gerald has left #hg-talk
14:40:33 [RalphS]
rrsagent, please draft minutes
14:40:33 [RRSAgent]
I have made the request to generate http://www.w3.org/2007/03/22-hg-talk-minutes.html RalphS
14:41:46 [DanC]
ralph, if you'd like, I can finish the record
14:42:12 [DanC]
chair: DanC
14:42:35 [RalphS]
accepted; thanks, Dan
14:42:55 [DanC]
Meeting: distributed version control with mercurial (Project Review)
14:43:45 [DanC]
RRSAgent, draft minutes
14:43:45 [RRSAgent]
I have made the request to generate http://www.w3.org/2007/03/22-hg-talk-minutes.html DanC
14:44:16 [mpm]
mpm has left #hg-talk
14:47:18 [ht]
ht has left #hg-talk
14:47:59 [timbl]
timbl has left #hg-talk
14:50:29 [s-mon]
only if Clyde is considered not welcome :^)
14:51:19 [s-mon]
otherwise, Liam is probably happy to have the law on his side.
14:52:52 [s-mon]
oh my.
14:54:22 [s-mon]
not a comparison, but info on them working together - http://www.selenic.com/mercurial/wiki/index.cgi/SubversionToMercurialSync
15:01:46 [s-mon]
i am hoping not to run into alternative minimum tax.
15:05:55 [caribou]
caribou has left #hg-talk
15:20:25 [kaz]
kaz has left #hg-talk
15:33:28 [ericP]
ericP has left #hg-talk
15:34:43 [DanC]
RRSAgent, bye
15:34:43 [RRSAgent]
I see no action items