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