D6880: rebase: track new nodes when --keep is set
pgossman (Paul Gossman)
phabricator at mercurial-scm.org
Wed Sep 25 11:57:52 EDT 2019
Closed by commit rHG43c84b816445: rebase: track new nodes when --keep is set (authored by pgossman).
This revision was automatically updated to reflect the committed changes.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D6880?vs=16609&id=16615
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D6880/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D6880
AFFECTED FILES
hgext/rebase.py
tests/test-rebase-templates.t
CHANGE DETAILS
diff --git a/tests/test-rebase-templates.t b/tests/test-rebase-templates.t
--- a/tests/test-rebase-templates.t
+++ b/tests/test-rebase-templates.t
@@ -55,3 +55,30 @@
$ hg rebase -s 6 -d 4 -q -T "{nodechanges % '{oldnode}:{newnodes % ' {node} '}'}"
d9d6773efc831c274eace04bc13e8e6412517139: f48cd65c6dc3d2acb55da54402a5b029546e546f (no-eol)
+
+ $ hg log -G -T "{rev}:{node|short} {desc}"
+ o 7:f48cd65c6dc3 Added b
+ |
+ | @ 5:df21b32134ba Added d
+ |/
+ o 4:849767420fd5 Added c
+ |
+ o 0:18d04c59bb5d Added a
+
+
+
+ $ hg rebase -s 7 -d 5 -q --keep -T "{nodechanges % '{oldnode}:{newnodes % ' {node} '}'}"
+ f48cd65c6dc3d2acb55da54402a5b029546e546f: 6f7dda91e55e728fb798f3e44dbecf0ebaa83267 (no-eol)
+
+ $ hg log -G -T "{rev}:{node|short} {desc}"
+ o 8:6f7dda91e55e Added b
+ |
+ | o 7:f48cd65c6dc3 Added b
+ | |
+ @ | 5:df21b32134ba Added d
+ |/
+ o 4:849767420fd5 Added c
+ |
+ o 0:18d04c59bb5d Added a
+
+
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -1783,20 +1783,18 @@
oldnode = tonode(rev)
newnode = collapsedas or tonode(newrev)
moves[oldnode] = newnode
- if not keepf:
- succs = None
- if rev in skipped:
- if stripcleanup or not repo[rev].obsolete():
- succs = ()
- elif collapsedas:
- collapsednodes.append(oldnode)
- else:
- succs = (newnode,)
- if succs is not None:
- replacements[(oldnode,)] = succs
+ succs = None
+ if rev in skipped:
+ if stripcleanup or not repo[rev].obsolete():
+ succs = ()
+ elif collapsedas:
+ collapsednodes.append(oldnode)
+ else:
+ succs = (newnode,)
+ if succs is not None:
+ replacements[(oldnode,)] = succs
if collapsednodes:
replacements[tuple(collapsednodes)] = (collapsedas,)
- scmutil.cleanupnodes(repo, replacements, 'rebase', moves, backup=backup)
if fm:
hf = fm.hexfunc
fl = fm.formatlist
@@ -1807,6 +1805,9 @@
changes[hf(oldn)] = fl([hf(n) for n in newn], name='node')
nodechanges = fd(changes, key="oldnode", value="newnodes")
fm.data(nodechanges=nodechanges)
+ if keepf:
+ replacements = {}
+ scmutil.cleanupnodes(repo, replacements, 'rebase', moves, backup=backup)
def pullrebase(orig, ui, repo, *args, **opts):
'Call rebase after pull if the latter has been invoked with --rebase'
To: pgossman, martinvonz, #hg-reviewers, pulkit
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list