D7827: rebase: don't use rebased node as dirstate p2 (BC)
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Thu Jan 30 11:58:49 EST 2020
martinvonz updated this revision to Diff 19724.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D7827?vs=19705&id=19724
BRANCH
default
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D7827/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D7827
AFFECTED FILES
hgext/rebase.py
relnotes/next
tests/test-rebase-abort.t
tests/test-rebase-collapse.t
tests/test-rebase-conflicts.t
tests/test-rebase-interruptions.t
tests/test-rebase-obsolete.t
tests/test-rebase-parameters.t
tests/test-rebase-transaction.t
CHANGE DETAILS
diff --git a/tests/test-rebase-transaction.t b/tests/test-rebase-transaction.t
--- a/tests/test-rebase-transaction.t
+++ b/tests/test-rebase-transaction.t
@@ -114,7 +114,7 @@
|
| @ 4: Z
| |
- @ | 3: C
+ % | 3: C
| |
| o 2: Y
| |
@@ -123,9 +123,9 @@
o 0: A
$ hg st
- M C
M conflict
A B
+ A C
? conflict.orig
$ echo resolved > conflict
$ hg resolve -m
diff --git a/tests/test-rebase-parameters.t b/tests/test-rebase-parameters.t
--- a/tests/test-rebase-parameters.t
+++ b/tests/test-rebase-parameters.t
@@ -473,11 +473,9 @@
$ hg summary
parent: 1:56daeba07f4b
c2
- parent: 2:e4e3f3546619 tip
- c2b
branch: default
- commit: 1 modified, 1 unresolved (merge)
- update: (current)
+ commit: 1 unresolved (clean)
+ update: 1 new changesets, 2 branch heads (merge)
phases: 3 draft
rebase: 0 rebased, 1 remaining (rebase --continue)
diff --git a/tests/test-rebase-obsolete.t b/tests/test-rebase-obsolete.t
--- a/tests/test-rebase-obsolete.t
+++ b/tests/test-rebase-obsolete.t
@@ -1795,19 +1795,15 @@
$ hg log -G
@ 2:b18e25de2cf5 D
|
- | @ 1:2ec65233581b B (pruned using prune)
- |/
o 0:426bada5c675 A
$ hg summary
parent: 2:b18e25de2cf5 tip
D
- parent: 1:2ec65233581b (obsolete)
- B
branch: default
- commit: 2 modified, 1 unknown, 1 unresolved (merge)
+ commit: 1 modified, 1 added, 1 unknown, 1 unresolved
update: (current)
- phases: 3 draft
+ phases: 2 draft
rebase: 0 rebased, 2 remaining (rebase --continue)
$ hg rebase --abort
diff --git a/tests/test-rebase-interruptions.t b/tests/test-rebase-interruptions.t
--- a/tests/test-rebase-interruptions.t
+++ b/tests/test-rebase-interruptions.t
@@ -294,7 +294,7 @@
$ hg tglogp
@ 7: 401ccec5e39f secret 'C'
|
- | @ 6: a0b2430ebfb8 secret 'F'
+ | o 6: a0b2430ebfb8 secret 'F'
| |
o | 5: 45396c49d53b public 'B'
| |
@@ -345,7 +345,7 @@
$ hg tglogp
@ 7: 401ccec5e39f secret 'C'
|
- | @ 6: a0b2430ebfb8 secret 'F'
+ | o 6: a0b2430ebfb8 secret 'F'
| |
o | 5: 45396c49d53b public 'B'
| |
@@ -395,7 +395,7 @@
$ hg tglogp
@ 7: 401ccec5e39f secret 'C'
|
- | @ 6: a0b2430ebfb8 secret 'F'
+ | o 6: a0b2430ebfb8 secret 'F'
| |
o | 5: 45396c49d53b public 'B'
| |
diff --git a/tests/test-rebase-conflicts.t b/tests/test-rebase-conflicts.t
--- a/tests/test-rebase-conflicts.t
+++ b/tests/test-rebase-conflicts.t
@@ -456,16 +456,14 @@
warning: conflicts while merging conflict! (edit, then use 'hg resolve --mark')
unresolved conflicts (see hg resolve, then hg rebase --continue)
[1]
-It's weird that the current parents are not 7 and 8 since that's what we're
-merging
$ hg tglog
@ 8:draft 'E'
|
- | o 7:draft 'D'
+ | @ 7:draft 'D'
|/
o 6:draft 'C'
|
- | @ 5:draft 'F'
+ | % 5:draft 'F'
| |\
| | o 4:draft 'E'
| | |
diff --git a/tests/test-rebase-collapse.t b/tests/test-rebase-collapse.t
--- a/tests/test-rebase-collapse.t
+++ b/tests/test-rebase-collapse.t
@@ -712,7 +712,7 @@
|
| @ 2: 82b8abf9c185 'D'
| |
- @ | 1: f899f3910ce7 'B'
+ % | 1: f899f3910ce7 'B'
|/
o 0: 4a2df7238c3b 'A'
@@ -736,7 +736,7 @@
unresolved conflicts (see hg resolve, then hg rebase --continue)
[1]
$ hg tglog
- @ 3: 63668d570d21 'C'
+ % 3: 63668d570d21 'C'
|
| @ 2: 82b8abf9c185 'D'
| |
diff --git a/tests/test-rebase-abort.t b/tests/test-rebase-abort.t
--- a/tests/test-rebase-abort.t
+++ b/tests/test-rebase-abort.t
@@ -236,7 +236,7 @@
[1]
$ hg tglog
- @ 4:draft 'C1'
+ % 4:draft 'C1'
|
o 3:draft 'B bis'
|
diff --git a/relnotes/next b/relnotes/next
--- a/relnotes/next
+++ b/relnotes/next
@@ -18,6 +18,11 @@
== Backwards Compatibility Changes ==
+ * When `hg rebase` pauses for merge conflict resolution, the working
+ copy will no longer have the rebased node as a second parent. You
+ can use the new `conflictparents()` revset for finding the other
+ parent during a conflict.
+
== Internal API Changes ==
diff --git a/hgext/rebase.py b/hgext/rebase.py
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -617,6 +617,7 @@
repo,
rev,
p1,
+ p2,
base,
self.collapsef,
dest,
@@ -641,10 +642,6 @@
newnode = self._concludenode(rev, p1, p2, editor)
else:
# Skip commit if we are collapsing
- if self.inmemory:
- self.wctx.setbase(repo[p1])
- else:
- repo.setparents(repo[p1].node())
newnode = None
# Update the state
if newnode is not None:
@@ -1468,7 +1465,7 @@
return newnode
-def rebasenode(repo, rev, p1, base, collapse, dest, wctx):
+def rebasenode(repo, rev, p1, p2, base, collapse, dest, wctx):
"""Rebase a single revision rev on top of p1 using base as merge ancestor"""
# Merge phase
# Update to destination and merge it with local
@@ -1502,6 +1499,7 @@
labels=[b'dest', b'source'],
wc=wctx,
)
+ wctx.setparents(p1ctx.node(), repo[p2].node())
if collapse:
copies.graftcopies(wctx, ctx, repo[dest])
else:
To: martinvonz, #hg-reviewers
Cc: mjpieters, mercurial-devel
More information about the Mercurial-devel
mailing list