Call for testing: generaldelta

Matt Mackall mpm at selenic.com
Mon Aug 1 17:02:00 UTC 2011


On Sun, 2011-07-31 at 13:51 +0200, Isaac Jurado wrote:
> I tried with mozilla-central repository.  The Mercurial version I'm
> using is 1.9-1 from Debian Sid (amd64).
> 
>     http://hg.mozilla.org/mozilla-central/

Is this repo already using shrink-revlog?

> $ du -sh mc-normal mc-gdelta
> 722M	mc-normal
> 677M	mc-gdelta
> 
> $ ls -l mc-normal/.hg/store/00manifest.*
> -rw-r----- 1 etanol etanol 189246860 jul 31 12:52
> mc-normal/.hg/store/00manifest.d
> -rw-r----- 1 etanol etanol   4706112 jul 31 12:52
> mc-normal/.hg/store/00manifest.i
> $ ls -l mc-gdelta/.hg/store/00manifest.*
> -rw-r----- 1 etanol etanol 143466428 jul 31 12:52
> mc-gdelta/.hg/store/00manifest.d
> -rw-r----- 1 etanol etanol   4706112 jul 31 12:52
> mc-gdelta/.hg/store/00manifest.i
> 
> $ hg -R mc-gdelta debugrevlog -m
> format : 1
> flags  : generaldelta
> 
> revisions     :     73533
>     merges    :      3772 ( 5.13%)
>     normal    :     69761 (94.87%)
> revisions     :     73533
>     full      :       224 ( 0.30%)
>     deltas    :     73309 (99.70%)
> revision size : 143466428
>     full      :   3586647 ( 2.50%)
>     deltas    : 139879781 (97.50%)
> 
> avg chain length  : 2625
> compression ratio : 1611
> 
> uncompressed data size (min/max/avg) : 51 / 4529536 / 3143207
> full revision size (min/max/avg)     : 52 / 1225650 / 16011
> delta size (min/max/avg)             : 0 / 1610515 / 1908
> 
> deltas against prev  : 68630 (93.62%)
>     where prev = p1  : 68381     (99.64%)
>     where prev = p2  :    82     ( 0.12%)
>     other            :   167     ( 0.24%)
> deltas against p1    :  4678 ( 6.38%)
> deltas against p2    :     1 ( 0.00%)
> deltas against other :     0 ( 0.00%)
> 
> $ hg clone --time -U --pull mc-normal mc-normal-normal
> requesting all changes
> adding changesets
> adding manifests
> adding file changes
> added 73553 changesets with 337061 changes to 77253 files (+7 heads)
> Time: real 304.600 secs (user 259.700+0.000 sys 11.960+0.000)
> 
> $ hg clone --time -U --pull mc-gdelta mc-gdelta-normal
> requesting all changes
> adding changesets
> adding manifests
> adding file changes
> added 73553 changesets with 337061 changes to 77253 files (+7 heads)
> Time: real 657.040 secs (user 605.970+0.000 sys 14.410+0.000)
> 
> $ hg clone --time -U --pull --config format.generaldelta=1 mc-gdelta
> mc-gdelta-gdelta
> requesting all changes
> adding changesets
> adding manifests
> adding file changes
> added 73553 changesets with 337061 changes to 77253 files (+7 heads)
> Time: real 996.090 secs (user 960.160+0.000 sys 16.160+0.000)

Ouch. This shouldn't be that slow. But I guess it's still reordering.
Can you see if a gdelta clone of mc-gdelta-gdelta is fast again?

> $ du -sh mc-normal-normal mc-gdelta-normal mc-gdelta-gdelta
> 722M	mc-normal-normal
> 636M	mc-gdelta-normal
> 612M	mc-gdelta-gdelta
> 
> As a side note, I removed the undo files in .hg/store after each clone
> because it was adding 4.2M to the repository size.  Next week I'll
> try to change the window size.
> 
> Cheers.
> 


-- 
Mathematics is the supreme nostalgia of our time.





More information about the Mercurial mailing list