Mercurial problem with large binary changesets

Giorgos Keramidas keramida at ceid.upatras.gr
Tue May 29 11:37:05 CDT 2007


On 2007-05-29 11:13, Francois-Denis Gonthier <fdgonthier at kryptiva.com> wrote:
> ----- KRYPTIVA PACKAGED MESSAGE -----
> PACKAGING TYPE: SIGNED
> Hello all,
> 
> we are problem at work trying to version-control a project that contains
> a moderate sized (~20mb) binary file.

Hmmm that's odd.  I have a local repository with moderately 'large'
files in the 14-20 MB range, and cloning it over SSH never exceeds 100
MB of memory usage for Python here.  The Python process is usually about
14-17 MB big.  It momentarily grows to 65-70 MB but then grows smaller
pretty fast...

Can you run "hg --debug push" or "hg --debug clone" and collect its
output to a logfile?  If you can watch the memory size of Hg with a
script at the same time, it would be nice.

To make it easier to correlate timestamps, you can filter the output of
hg itself through:

    http://people.freebsd.org/~keramida/bin-scripts/tslog

which is a short Perl script:

    $ hg --debug clone ssh://host/path 2>&1 | tslog

and in another terminal, you can keep watching the size of the python
process with ps(1) or a similar tool, i.e. here's a FreeBSD-specific
loop to print the virtual-size of all Python processes and filter the
output through `tslog' mentioned above:

    $ while true ; do \
          ps -o pid,vsz \
             -p $(echo $(pgrep python) | expand | sed -e 's/ /,/g') ; \
      done 2>&1 | tslog



More information about the Mercurial mailing list