[PATCH 1 of 2] rebase: preserve the 'intermediate-source' attribute of grafts
Yuya Nishihara
yuya at tcha.org
Thu Nov 12 06:38:32 CST 2015
On Wed, 11 Nov 2015 20:11:28 -0500, Matt Harbison wrote:
> On Wed, 11 Nov 2015 09:16:42 -0500, Yuya Nishihara <yuya at tcha.org> wrote:
>
> > On Sun, 08 Nov 2015 18:48:44 -0500, Matt Harbison wrote:
> >> # HG changeset patch
> >> # User Matt Harbison <matt_harbison at yahoo.com>
> >> # Date 1447023408 18000
> >> # Sun Nov 08 17:56:48 2015 -0500
> >> # Node ID 0647a6905581d40d3b9bd27a8438aa54842d49dd
> >> # Parent f9984f76fd90e439221425d751e29bae17bec995
> >> rebase: preserve the 'intermediate-source' attribute of grafts
> >>
> >> Preserving the 'source' attribute of grafts started with a69a77a80900,
> >> which
> >> predates the introduction of 'intermediate-source' in 51930a7180bd by a
> >> year and
> >> a half. It looks like not preserving this was an oversight.
> >>
> >> On a related note, notice how the source value of 32af76 is no longer
> >> visible in
> >> the graph above this test. Is it reasonable to import the sha1
> >> translation from
> >> evolve.py:relocate() into scmutil or similar, and use that to fixup
> >> these
> >> attributes as well as the commit message? (I realize that evolve is
> >> still
> >> experimental, but I don't see a way to do this from the evolve
> >> extension.)
> >>
> >> diff --git a/hgext/rebase.py b/hgext/rebase.py
> >> --- a/hgext/rebase.py
> >> +++ b/hgext/rebase.py
> >> @@ -48,6 +48,9 @@
> >> s = ctx.extra().get('source', None)
> >> if s is not None:
> >> extra['source'] = s
> >> + s = ctx.extra().get('intermediate-source', None)
> >> + if s is not None:
> >> + extra['intermediate-source'] = s
> >
> > This seems good, but I'm not certain because 51930a7180bd says that the
> > intermediate-source was introduced to change the hash of the grafted
> > revision.
> > For this purpose, rebase_source is enough.
>
> I think this is more useful than just to change the hash, since unlike the
> equivalent fields for rebase and transplant, 'source' always points to the
> original cset after a sequence of grafts. This one points to the source
> of the graft operation actually used. I'm sure I read a comment to this
> effect the other day (but can't find it now), or I would have put it in
> the commit comment.
>
> I thought there was a request to track the immediate graft source on the
> ML, but the closest I could find is this:
>
> http://markmail.org/message/jpxdojn7mf74pusz
>
> Currently, immediate-source is already being updated on conversion [1],
> and used for other purposes [2].
>
> [1] https://selenic.com/hg/rev/273d94255e1e
> [2] https://selenic.com/hg/rev/28d76bc069db
Fair enough, pushed to the clowncopter. Thanks for the detail.
More information about the Mercurial-devel
mailing list