[PATCH 2 of 2 evolve-ext V2] evolve: replace each obsolete sha1 in the description with its latest successor

Pierre-Yves David pierre-yves.david at ens-lyon.org
Wed Sep 3 02:44:44 CDT 2014

On 09/03/2014 03:53 AM, Matt Harbison wrote:
> Pierre-Yves David wrote:
>> On 08/12/2014 03:10 AM, Matt Harbison wrote:
>>> # HG changeset patch
>>> # User Matt Harbison <matt_harbison at yahoo.com>
>>> # Date 1407625936 14400
>>> # Sat Aug 09 19:12:16 2014 -0400
>>> # Node ID 063f218581a39f91f0f7b89192a80c6d0c9f9eae
>>> # Parent 66f4c5c52d970f145cd218ceed065c3fe096631d
>>> evolve: replace each obsolete sha1 in the description with its latest
>>> successor
>>> Obsolete csets are hidden by default and don't get pushed to the
>>> parent repo.
>>> In order to avoid broken references in commit messages, it makes sense
>>> to evolve
>>> those references to the latest and greatest successor, as each cset
>>> containing
>>> them is evolved. Of course, stale references can still occur if a
>>> commit in
>>> branch 'A' references something in branch 'B', and that something in
>>> 'B' is
>>> evolved but 'A' isn't subsequently evolved.
>> I really like the idea. Other command like rebase and histedit should
>> probably gains such ability too.
>> Patches applied.
> I've long thought it would be a good idea for rebase, but then I thought
> maybe it doesn't matter much anymore with evolve making progress.  I
> also wasn't sure how to go about it given that the source csets go away.
> Any thoughts on where to look?  (I've got 0 experience with histedit, so
> I would definitely need pointers on that unless someone else wants to
> run with it.)

rebase is using evolution and will stick around even when evolve will 
makes it into core. So it worth giving a look.

Pierre-Yves David

More information about the Mercurial-devel mailing list