[PATCH 7 of 7] strip: strip obsmarkers exclusive to the stripped changeset

Denis Laxalde denis at laxalde.org
Sat Jun 3 03:36:26 EDT 2017

Sean Farley a écrit :
> Pierre-Yves David <pierre-yves.david at ens-lyon.org> writes:
>> # HG changeset patch
>> # User Pierre-Yves David <pierre-yves.david at octobus.net>
>> # Date 1495289999 -7200
>> #      Sat May 20 16:19:59 2017 +0200
>> # Node ID fb16a4d85cf46afbc12bb61f8d22784cef31d1dc
>> # Parent  2c44bd45fdeeb3a8bf1762af4a81af3914fadc29
>> # EXP-Topic obsstrip
>> # Available At https://www.mercurial-scm.org/repo/users/marmoute/mercurial/
>> #              hg pull https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ -r fb16a4d85cf4
>> strip: strip obsmarkers exclusive to the stripped changeset
>> This is it, `hg strip --rev X` will now also remove obsolescence markers
>> exclusive to X. Since a previous changeset, the obsmarkers has been backed up
>> in the strip backup bundle, so it is possible to restore them.
>> Note: stripping obsmarkers means the precursors of the stripped changeset might no
>> longer be obsolete after the strip.
>> Stripping changeset without obsmarkers can be useful when building test case. So
>> It is possible to disable the stripping of obsmarkers using the
>> 'devel.strip-obsmarkers' config option.
>> Test change have been carefully validated.
> Gleefully queued! I've read and re-read this series a few times but I
> will test it out a bit locally just to make sure I understand and will
> push after that.

I've played a bit with this, it's really nice. This solves a real issue
for local workflows (ability to "undo" history modifications, including
hash preservation) while preserving a sensible behavior in distributed
situations. From my perspective, that's a clear user experience win.

Thank you Pierre-Yves!

More information about the Mercurial-devel mailing list