From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: References: <7f475b26c603e926bdc945ab895d6ec5@9srv.net> <9d193432a6a51ef9654e8f660a89208b@kw.quanstro.net> From: Jorden M Date: Tue, 27 Apr 2010 14:56:37 -0400 Message-ID: To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: [9fans] A simple experiment Topicbox-Message-UUID: 0feab288-ead6-11e9-9d60-3106f5b1d025 On Tue, Apr 27, 2010 at 2:35 PM, John Floren wrote: > On Tue, Apr 27, 2010 at 1:59 PM, erik quanstrom w= rote: >> On Tue Apr 27 13:58:39 EDT 2010, slawmaster@gmail.com wrote: >>> On Tue, Apr 27, 2010 at 1:54 PM, =A0 wrote: >>> > Nice work, but couldn't you just bind /n/sources/plan9/sys/src >>> > to the hg repo and push from there? >>> > >>> >>> That would almost certainly be slower than grabbing the ISO via HTTP >>> and getting the file tree locally. >> >> it would be interesting to try. =A0if hg can push in parallel, it >> could be competitive. =A0fetching the iso, decompressing the iso, >> etc are not free. =A0and you can't push anything until after step >> 2. =A0talk about killer latency. >> >> - erik >> >> > > My experiments have shown that copying a large file via HTTP is > significantly faster than copying the same file via 9P. I haven't > tested it, but I would wager that opening, reading, and closing > hundreds of small files via 9P would also be much slower than grabbing > the same files in a compressed archive via HTTP and uncompressing. > Also, I'm not sure of the exact mechanics of hg, but I'm guessing that > a commit + push would involve at least two traversals of the tree, > which is not fun when you're hitting sources for every file op. > > > John > > Assuming hg acts like most other DVCS: The commit would happen locally to the `database' in the .hg directory. The sources tree would be read once to do the commit into blobs in .hg. Push would then only send stuff from that .hg directory. Most DVCS don't touch the working directory for push/pull operations, they simply sync up the .hg/.git/.foo directories. Merging and such are all done after that sync, locally.