What is the purpose of the "Use pull protocol to copy metadata" hg clone option?

Adrian Buehlmann adrian at cadifra.com
Mon May 31 16:32:19 CDT 2010


On 31.05.2010 11:39, Adrian Buehlmann wrote:
> On 31.05.2010 11:17, Didly Bom wrote:
>>
>> On Sun, May 30, 2010 at 11:41 AM, Didly Bom <didlybom at gmail.com
>> <mailto:didlybom at gmail.com>> wrote:
>>
>>       
>>
>>         How long does it take to simply manually copy the repository
>>         folder from
>>         the affected machine to local?
>>
>>
>>     It is quite fast, perhaps around 10-20 seconds but I will time it on
>>     monday.
>>
>>
>> Copying the repository from the windows 2003 server machine to local
>> using Windows Explorer takes around 15 seconds.
>>  
>>
>>         What happens if you do your tests on the command line without
>>         TortoiseHG
>>         running?
>>
>>
>>     I will give it a try on monday as well.
>>
>>
>> I just tested this and I saw no big difference between using TortoiseHg
>> and using the mercurial command line tool. If anything it seems a bit
>> slower. Cloning the repository from the Windows 2003 server machine
>> using the mercurial command line tool without the --pull option it as
>> slow as using TortoiseHg. Using the --pull option is as fast as with
>> TortoiseHg.
>>
>> One thing that I noticed while using the command line tool is that when
>> I don't use the --pull option, mercurial does not print anything on the
>> console for a very long time. Then it prints:
>>
>> "updating to branch default
>> 211 files updated, 0 files merged, 0 files removed, 0 files unresolved"
>>
>> On the other hand, when using the --pull option it immediately starts
>> printing the following:
>>
>> "requesting all changes
>> adding changesets
>> adding manifests
>> adding file changes
>> added 423 changesets with 1094 changes to 316 files
>> updating to branch default
>> 211 files updated, 0 files merged, 0 files removed, 0 files unresolved"
>>
>> This is probably normal, but it is an additional difference in the
>> behaviour of mercurial depending on the use of the --pull option.
>>
>> I have also put two WireShark captures that I did while cloning from the
>> affected machine with an without the --pull option in the following
>> dropbox folder:
>>
>> http://dl.dropbox.com/u/3954540/mercurial/clone_issue/hg_clone_no_pull.pcap
>> http://dl.dropbox.com/u/3954540/mercurial/clone_issue/hg_clone_with_pull.pcap
>>
>> This is the first time that I've ever used WireShart so hopefully the
>> captures are correct. If you have any further questions please let me know.
> 
> Next step I propose is to wait until my mercurial patches [1] I sent
> make it into a nightly build of TortoiseHg-unstable (now waiting for
> Matt to pull them into the main mercurial repo), and then see if that's
> any faster in your environment.
> 
> Provided I don't forget to do so (I expect this to happen in a couple of
> days), I'll send you an off-list email with the download-url for the
> installer for testing as soon as it's ready.
> 
> [1] http://hg.intevation.org/mercurial/crew/rev/5593ff6d1e5a
>     http://hg.intevation.org/mercurial/crew/rev/97f6d2a02c1f

Wow. That was fast (Thanks to Steve for building):

Didly, can you please retry your use case with:

tortoisehg-unstable-1.0.35025.35065-x86-84ae34e0-4136-4221-95a6-c2e21a841269.msi

(or the respective x64 installer, if needed) as available from

http://bitbucket.org/tortoisehg/thg-winbuild/downloads/

Said installer installs:

TortoiseHg 1.0.3+25-2b69814ba1bb, Mercurial 1.5.3+65-102d8eb5c890



More information about the Mercurial mailing list