Patchwork D7728: rebase: add test to demonstrate issue6180

login
register
mail settings
Submitter phabricator
Date Dec. 27, 2019, 4:56 p.m.
Message ID <differential-rev-PHID-DREV-q5rxavemhshnjpg6itf2-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/44050/
State New
Headers show

Comments

phabricator - Dec. 27, 2019, 4:56 p.m.
khanchi97 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  It will be fixed in next patch.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D7728

AFFECTED FILES
  tests/test-rebase-conflicts.t

CHANGE DETAILS




To: khanchi97, #hg-reviewers
Cc: mercurial-devel
phabricator - Jan. 8, 2020, 11:33 a.m.
khanchi97 added a comment.


  Ping.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7728/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7728

To: khanchi97, #hg-reviewers
Cc: mercurial-devel
phabricator - Jan. 9, 2020, 2:19 p.m.
pulkit added inline comments.

INLINE COMMENTS

> test-rebase-conflicts.t:438
> +  > [alias]
> +  > tglog = log -G --template "{rev}:{phase} '{desc}' {branches}\n"
> +  > EOF

You don't need to redefine it.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7728/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7728

To: khanchi97, #hg-reviewers
Cc: pulkit, mercurial-devel
phabricator - Feb. 1, 2020, 11:46 p.m.
marmoute added a comment.


  Cf my comment on D7730 <https://phab.mercurial-scm.org/D7730>, I think the bug is more about letting others commands obsoleting things happens (eg, amend, pull, etc) than rebase being confused by the result.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7728/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7728

To: khanchi97, #hg-reviewers
Cc: marmoute, pulkit, mercurial-devel
phabricator - Feb. 14, 2020, 8:38 a.m.
This revision now requires changes to proceed.
marmoute added a comment.
marmoute requested changes to this revision.


  As per comment of Pulkit and I on D7730 <https://phab.mercurial-scm.org/D7730>, please spin this test toward forbiding the prune while the rebase is in progress.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7728/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D7728

To: khanchi97, #hg-reviewers, marmoute
Cc: marmoute, pulkit, mercurial-devel

Patch

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
@@ -429,3 +429,63 @@ 
   |/
   o  0:draft 'A'
   
+Test to make sure that pruning while rebasing doesn't confuse rebase (issue6180)
+  $ cat >> $HGRCPATH <<EOF
+  > [experimental]
+  > evolution.createmarkers=True
+  > evolution.allowunstable=True
+  > [alias]
+  > tglog = log -G --template "{rev}:{phase} '{desc}' {branches}\n"
+  > EOF
+
+The test case below starts a rebase of 2 commits and runs into conflicts on
+the first one. We then decide we don't want the changes from that commit, so
+we revert the changes and also prune the original commit.
+Now what we expect from `hg rebase --continue` is that it skip rebasing first
+one (since it's pruned) but don't skip second one.
+
+  $ hg init issue6180
+  $ cd issue6180
+  $ echo 0 > a
+  $ hg ci -Aqm 'add a'
+  $ echo 1 > a
+  $ hg ci -m 'edit a'
+  $ hg co -q 0
+  $ echo 2 > a
+  $ hg ci -qm 'conflict in a'
+  $ echo 3 > b
+  $ hg ci -Aqm 'add b'
+  $ hg tglog
+  @  3:draft 'add b'
+  |
+  o  2:draft 'conflict in a'
+  |
+  | o  1:draft 'edit a'
+  |/
+  o  0:draft 'add a'
+  
+  $ hg rebase -d 1
+  rebasing 2:06a50ac6b5ab "conflict in a"
+  merging a
+  warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
+  unresolved conflicts (see hg resolve, then hg rebase --continue)
+  [1]
+  $ echo 1 > a
+  $ hg debugobsolete $(hg id -ir 2 --debug)
+  1 new obsolescence markers
+  obsoleted 1 changesets
+  1 new orphan changesets
+  $ hg resolve -m
+  (no more unresolved files)
+  continue: hg rebase --continue
+XXX: it should have rebased revision 3 since it made changes unrelated to
+destination, so no reason to say "its destination already has all its changes"
+  $ hg rebase -c
+  note: not rebasing 2:06a50ac6b5ab "conflict in a", it has no successor
+  rebasing 3:aea370672fd7 "add b" (tip)
+  note: not rebasing 3:aea370672fd7 "add b" (tip), its destination already has all its changes
+  $ hg tglog
+  @  1:draft 'edit a'
+  |
+  o  0:draft 'add a'
+