hg-git converted repo is massive

Harvey Chapman hchapman-hg at 3gfp.com
Mon Jan 28 20:15:30 UTC 2013


On Jan 28, 2013, at 5:10 AM, "Kastner Masilko, Friedrich" <kastner-masilko at at.festo.com> wrote:

> Check your .hg/store folder and you'll see that the majority of that fat is the manifest revlog. I've experienced this myself and came to the conclusion, that git is simply more efficient in storing directory layout than Mercurial, because it:
> a) uses a more aggressive compression mechanism, and
> b) stores the directory layout of the whole repo in small tree-object nodes instead of one big file.

How right you are…

chapman at minty ~/HG/linux-sakoman/.hg/store $ ls -lhS
total 4.1G
-rw-rw-r--  1 hchapman hchapman 3.9G Jan 27 11:02 00manifest.d
-rw-rw-r--  1 hchapman hchapman 129M Jan 27 11:02 00changelog.d
-rw-rw-r--  1 hchapman hchapman  21M Jan 27 11:02 00changelog.i
-rw-rw-r--  1 hchapman hchapman  21M Jan 27 11:02 00manifest.i
-rw-rw-r--  1 hchapman hchapman 2.6M Jan 27 11:01 fncache
-rw-rw-r--  1 hchapman hchapman  29K Jan 28 14:10 phaseroots
drwxrwxr-x 26 hchapman hchapman 4.0K Jan 26 12:19 data
drwxrwxr-x  3 hchapman hchapman 4.0K Jan 26 00:22 dh
-rw-rw-r--  1 hchapman hchapman   93 Jan 27 11:02 undo
-rw-rw-r--  1 hchapman hchapman   86 Jan 27 11:02 undo.phaseroots
lrwxrwxrwx  1 hchapman hchapman   11 Jan 28 14:10 lock -> minty:30611

> On a side note: annotate on such a packed git repo is slow as hell, whereas the converted Mercurial repo (with my patch) is about 10 times faster. Other operations are reasonably fast, of course, so I guess it all boils down to what you are willing to trade for the storage space…

The disk space is not a huge deal breaker for me, it just makes first time setup of new dev machines more time consuming and increases the size of baseline build VMs.




More information about the Mercurial mailing list