evolve: add tests which shows evolve can get confused about copies (issue5930) stable
authorSushil khanchi <sushilkhanchi97@gmail.com>
Thu, 07 Mar 2019 01:02:05 +0530
branchstable
changeset 4425 43c24cf6d24b
parent 4424 d52f14bdb468
child 4426 7d97e08d13a0
evolve: add tests which shows evolve can get confused about copies (issue5930) This test demonstrate that an interrupted evolve can get confused about copies. Next patch will fix this.
tests/test-evolve-continue.t
--- a/tests/test-evolve-continue.t	Tue Mar 05 21:15:05 2019 +0530
+++ b/tests/test-evolve-continue.t	Thu Mar 07 01:02:05 2019 +0530
@@ -356,3 +356,73 @@
   continue: hg evolve --continue
   $ hg evolve --continue
   evolving 22:d2c94a8f44bd "added g"
+
+Testing that interrupted evolve don't get confused about copies (issue5930):
+----------------------------------------------------------------------------
+
+  $ cd ..
+  $ hg init issue5930
+  $ cd issue5930
+  $ echo a > a
+  $ hg ci -Am "added a"
+  adding a
+  $ hg cp a b
+  $ hg ci -m "rename a to b"
+
+  $ hg up 0 -q
+  $ echo c > c
+  $ hg ci -Am "added c"
+  adding c
+  created new head
+
+  $ echo d > c
+  $ echo d > d
+  $ hg ci -Am "added d, modified c"
+  adding d
+  $ hg up .^
+  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+
+  $ hg log -G -T "{rev} {desc}\n"
+  o  3 added d, modified c
+  |
+  @  2 added c
+  |
+  | o  1 rename a to b
+  |/
+  o  0 added a
+  
+  $ hg rebase -r . -d 1
+  rebasing 2:29edef26570b "added c"
+  1 new orphan changesets
+  $ echo conflict > c
+  $ hg amend
+
+  $ hg log -G -T "{rev} {desc}\n"
+  @  5 added c
+  |
+  | *  3 added d, modified c
+  | |
+  | x  2 added c
+  | |
+  o |  1 rename a to b
+  |/
+  o  0 added a
+  
+
+  $ hg evolve
+  move:[3] added d, modified c
+  atop:[5] added c
+  merging c
+  warning: conflicts while merging c! (edit, then use 'hg resolve --mark')
+  fix conflicts and see `hg help evolve.interrupted`
+  [1]
+
+Status mentions file 'b' (copied from 'a') here, even though it wasn't
+affected by the evolved changeset (nor was 'a')
+
+  $ hg st -C
+  M b
+    a
+  M c
+  A d
+  ? c.orig