space waste when renaming large files

Leo Razoumov slonik.az at gmail.com
Thu May 3 10:50:39 UTC 2007


In my project I have a large file about 100MB in size. Its contents
(compressed sampled waveform) almost never change but due to some
third party requirements the file has been renamed several times
already.

But here is the problem: Under .hg/store/data Mercurial keeps the file
under ALL its names (old and new). After two renames (let say
foo1->foo2->foo3) I end up with three files (foo1.d, foo2.d, foo3.d )
with identical content but different names that occupy three times the
space (300MB instead of 100MB).

Is it possible (in spirit of git) to have a single revlog object that
represents a file object across renames? The way it is now, "hg
rename" is a very expensive operation for large files.

Thanks,
Leo



More information about the Mercurial mailing list