[PATCH 6 of 8] obsolete: exchange obsolete marker over pushkey

Patrick Mézard patrick at mezard.eu
Sat Jun 9 07:37:28 CDT 2012


Le 08/06/12 19:16, Laurens Holst a écrit :
> Op 08-06-12 16:06, Pierre-Yves David schreef:
>>>>>> 1) does the 'obsstore' ever shrink or does it grow indefinitely?
>>>>> It grows indefinitely. This may not be as bad as it sounds in practice,
>>>>> there are two extreme cases:
>>>>> - Public repositories. They should accept only "killing" markers.
>>> (Note the statements above belong to me, I am sure Pierre-Yves has a different take on this).
>> All repo keep all marker: (not just kill one)
>>
>> In the phares above you means "Publishing repository (with public phase only content)" not "Public"
>>
>>
>> Most repo can decide to garbage collected marker that both:
>>
>> - are relevant to changeset where the newest version are public
>>
>> - are older that N month
>>
>> This garbage collection can be done with no side effect in 95% of the case. If
>> someone kept old draft version somewhere which are infact obsolete it will have
>> it as a duplicate (as both mercurial and git handle it now)
> 
> So what we have here from my point of view is essentially just a few bytes of meta-data added to a changeset every time it’s altered.
> 
> Are those few bytes really enough of an issue to to create GC schemes and potentially cause unexpected issues when you try to pull to old repos? Compared to the size of an average repository, or even the volume of changesets that they replace, surely it is negligible? Just as long as it does not exchange the full set every time you push/pull...

Maybe, we need some numbers. Here are some:

During the editing session of the patch queue being discussed, I generated 167 markers for 17869 bytes in the new format. Gzipping returns 6391 bytes.

Running "du -lsb .hg" before and after pushing the patch queue gives a difference of 56123 bytes. Related bundle has 10612 bytes.

(the script to convert from obsolete extension format to the new one is here:

  http://pastie.org/pastes/4055903/text

).

--
Patrick Mézard



More information about the Mercurial-devel mailing list