This is an archive of the discontinued Mercurial Phabricator instance.

graft: store the node from where we started the operation in graftstate
AbandonedPublic

Authored by pulkit on Jun 15 2018, 4:09 PM.

Details

Reviewers
None
Group Reviewers
hg-reviewers
Summary

This will help us in updating to the start node when the user does `hg graft
--abort`.

Diff Detail

Repository
rHG Mercurial
Lint
Lint Skipped
Unit
Unit Tests Skipped

Event Timeline

pulkit created this revision.Jun 15 2018, 4:09 PM
yuja added a subscriber: yuja.Jun 16 2018, 10:04 AM
  • a/mercurial/commands.py

+++ b/mercurial/commands.py
@@ -2233,6 +2233,8 @@

    raise error.Abort(_('no revisions specified'))
cmdutil.checkunfinished(repo)
cmdutil.bailifchanged(repo)

+ # the node from where we started the graft operation
+ statedata['startnode'] = repo['.'].node()

Nit: Isn't it always the parent of the newnodes[0]?

I don't have strong opinion whether we should store the startnode, but if
we store it at the start of the graft, I think we won't need to care for
statedata.get('newnodes') is None case, in the first patch. I mean we can
always record newnodes no matter if it may be incomplete or not since the
existence of the startnode gives us a trust.

pulkit abandoned this revision.Jun 24 2018, 3:50 PM
In D3753#58884, @yuja wrote:
  • a/mercurial/commands.py

+++ b/mercurial/commands.py
@@ -2233,6 +2233,8 @@

    raise error.Abort(_('no revisions specified'))
cmdutil.checkunfinished(repo)
cmdutil.bailifchanged(repo)

+ # the node from where we started the graft operation
+ statedata['startnode'] = repo['.'].node()

Nit: Isn't it always the parent of the newnodes[0]?

Oh, yes. Let's not store the startnode.