It takes TortoiseHG about 15 minutes to perform a push from a repository on my local hard drive (where the .hg
directory contains 532 files totalling 110MB) to a bare repository on my network drive.
However, if I just use Windows explorer to copy-paste the same .hg
directory (532 files, 110MB) to the same network drive, it takes about 30 sec to 1 minute.
Why this slowdown by a factor of 10-30? Can I avoid it? (i.e. is Mercurial doing something unnecessary that I can avoid with the appropriate command-line options?)
Update: it's slow enough that it is having a negative effect on our workflow. And, the same push from one location to another on the local HD is fast (several seconds as opposed to minutes). This means it would actually be much quicker to copy the complete remote .hg
directory to a temporary location on the local drive, push to it, then copy it back to the network drive. Before I consider actually implementing this clumsy workaround... surely there's a better one??
[Details: I'm using command-line hg.exe
from TortoiseHG 3.4.1 on Windows 7, and the network drive is an Apple TimeCapsule. I access it via the Airport Base Station Agent software, which creates the appearance of a normal (i.e. samba-like) network drive. The drive is mounted as Z:\
, and so the default
path listed in hgrc
begins with Z:\
, so as far as mercurial knows, the push is happening from one "local" location to another, i.e. not over http or ssh. The same slowdown happens if I use the full UNC path \\Like\this\...
instead of Z:\...
]