--- a/tests/test-copies-chain-merge.t Thu Oct 15 10:28:27 2020 -0700
+++ b/tests/test-copies-chain-merge.t Tue Oct 13 02:45:24 2020 +0200
@@ -164,6 +164,12 @@
o 0 i-0 initial commit: a b h
+Setup all merge
+===============
+
+This is done beforehand to validate that the upgrade process creates valid copy
+information.
+
merging with unrelated change does not interfere with the renames
---------------------------------------------------------------
@@ -201,6 +207,411 @@
o 0 i-0 initial commit: a b h
+
+merging with the side having a delete
+-------------------------------------
+
+case summary:
+- one with change to an unrelated file
+- one deleting the change
+and recreate an unrelated file after the merge
+
+ $ hg up 'desc("b-1")'
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg merge 'desc("c-1")'
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mBCm-0 simple merge - one way'
+ $ echo bar > d
+ $ hg add d
+ $ hg ci -m 'mBCm-1 re-add d'
+ $ hg up 'desc("c-1")'
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg merge 'desc("b-1")'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mCBm-0 simple merge - the other way'
+ created new head
+ $ echo bar > d
+ $ hg add d
+ $ hg ci -m 'mCBm-1 re-add d'
+ $ hg log -G --rev '::(desc("mCBm")+desc("mBCm"))'
+ @ 16 mCBm-1 re-add d
+ |
+ o 15 mCBm-0 simple merge - the other way
+ |\
+ | | o 14 mBCm-1 re-add d
+ | | |
+ +---o 13 mBCm-0 simple merge - one way
+ | |/
+ | o 6 c-1 delete d
+ | |
+ o | 5 b-1: b update
+ |/
+ o 2 i-2: c -move-> d
+ |
+ o 1 i-1: a -move-> c
+ |
+ o 0 i-0 initial commit: a b h
+
+
+Comparing with a merge re-adding the file afterward
+---------------------------------------------------
+
+Merge:
+- one with change to an unrelated file
+- one deleting and recreating the change
+
+ $ hg up 'desc("b-1")'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge 'desc("d-2")'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mBDm-0 simple merge - one way'
+ $ hg up 'desc("d-2")'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge 'desc("b-1")'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mDBm-0 simple merge - the other way'
+ created new head
+ $ hg log -G --rev '::(desc("mDBm")+desc("mBDm"))'
+ @ 18 mDBm-0 simple merge - the other way
+ |\
+ +---o 17 mBDm-0 simple merge - one way
+ | |/
+ | o 8 d-2 re-add d
+ | |
+ | o 7 d-1 delete d
+ | |
+ o | 5 b-1: b update
+ |/
+ o 2 i-2: c -move-> d
+ |
+ o 1 i-1: a -move-> c
+ |
+ o 0 i-0 initial commit: a b h
+
+
+
+Comparing with a merge with colliding rename
+--------------------------------------------
+
+- the "e-" branch renaming b to f (through 'g')
+- the "a-" branch renaming d to f (through e)
+
+ $ hg up 'desc("a-2")'
+ 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg merge 'desc("e-2")' --tool :union
+ merging f
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mAEm-0 simple merge - one way'
+ $ hg up 'desc("e-2")'
+ 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge 'desc("a-2")' --tool :union
+ merging f
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mEAm-0 simple merge - the other way'
+ created new head
+ $ hg log -G --rev '::(desc("mAEm")+desc("mEAm"))'
+ @ 20 mEAm-0 simple merge - the other way
+ |\
+ +---o 19 mAEm-0 simple merge - one way
+ | |/
+ | o 10 e-2 g -move-> f
+ | |
+ | o 9 e-1 b -move-> g
+ | |
+ o | 4 a-2: e -move-> f
+ | |
+ o | 3 a-1: d -move-> e
+ |/
+ o 2 i-2: c -move-> d
+ |
+ o 1 i-1: a -move-> c
+ |
+ o 0 i-0 initial commit: a b h
+
+
+
+Merge:
+- one with change to an unrelated file (b)
+- one overwriting a file (d) with a rename (from h to i to d)
+
+ $ hg up 'desc("i-2")'
+ 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg mv h i
+ $ hg commit -m "f-1: rename h -> i"
+ created new head
+ $ hg mv --force i d
+ $ hg commit -m "f-2: rename i -> d"
+ $ hg debugindex d
+ rev linkrev nodeid p1 p2
+ 0 2 169be882533b 000000000000 000000000000 (no-changeset !)
+ 0 2 b789fdd96dc2 000000000000 000000000000 (changeset !)
+ 1 8 b004912a8510 000000000000 000000000000
+ 2 22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
+ 2 22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
+ $ hg up 'desc("b-1")'
+ 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge 'desc("f-2")'
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mBFm-0 simple merge - one way'
+ $ hg up 'desc("f-2")'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge 'desc("b-1")'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mFBm-0 simple merge - the other way'
+ created new head
+ $ hg log -G --rev '::(desc("mBFm")+desc("mFBm"))'
+ @ 24 mFBm-0 simple merge - the other way
+ |\
+ +---o 23 mBFm-0 simple merge - one way
+ | |/
+ | o 22 f-2: rename i -> d
+ | |
+ | o 21 f-1: rename h -> i
+ | |
+ o | 5 b-1: b update
+ |/
+ o 2 i-2: c -move-> d
+ |
+ o 1 i-1: a -move-> c
+ |
+ o 0 i-0 initial commit: a b h
+
+
+
+Merge:
+- one with change to a file
+- one deleting and recreating the file
+
+Unlike in the 'BD/DB' cases, an actual merge happened here. So we should
+consider history and rename on both branch of the merge.
+
+ $ hg up 'desc("i-2")'
+ 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ echo "some update" >> d
+ $ hg commit -m "g-1: update d"
+ created new head
+ $ hg up 'desc("d-2")'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge 'desc("g-1")' --tool :union
+ merging d
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mDGm-0 simple merge - one way'
+ $ hg up 'desc("g-1")'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge 'desc("d-2")' --tool :union
+ merging d
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mGDm-0 simple merge - the other way'
+ created new head
+ $ hg log -G --rev '::(desc("mDGm")+desc("mGDm"))'
+ @ 27 mGDm-0 simple merge - the other way
+ |\
+ +---o 26 mDGm-0 simple merge - one way
+ | |/
+ | o 25 g-1: update d
+ | |
+ o | 8 d-2 re-add d
+ | |
+ o | 7 d-1 delete d
+ |/
+ o 2 i-2: c -move-> d
+ |
+ o 1 i-1: a -move-> c
+ |
+ o 0 i-0 initial commit: a b h
+
+
+
+Merge:
+- one with change to a file (d)
+- one overwriting that file with a rename (from h to i, to d)
+
+This case is similar to BF/FB, but an actual merge happens, so both side of the
+history are relevant.
+
+Note:
+| In this case, the merge get conflicting information since on one side we have
+| "a -> c -> d". and one the other one we have "h -> i -> d".
+|
+| The current code arbitrarily pick one side
+
+ $ hg up 'desc("f-2")'
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg merge 'desc("g-1")' --tool :union
+ merging d
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mFGm-0 simple merge - one way'
+ created new head
+ $ hg up 'desc("g-1")'
+ 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge 'desc("f-2")' --tool :union
+ merging d
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg ci -m 'mGFm-0 simple merge - the other way'
+ created new head
+ $ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))'
+ @ 29 mGFm-0 simple merge - the other way
+ |\
+ +---o 28 mFGm-0 simple merge - one way
+ | |/
+ | o 25 g-1: update d
+ | |
+ o | 22 f-2: rename i -> d
+ | |
+ o | 21 f-1: rename h -> i
+ |/
+ o 2 i-2: c -move-> d
+ |
+ o 1 i-1: a -move-> c
+ |
+ o 0 i-0 initial commit: a b h
+
+
+
+Comparing with merging with a deletion (and keeping the file)
+-------------------------------------------------------------
+
+Merge:
+- one removing a file (d)
+- one updating that file
+- the merge keep the modified version of the file (canceling the delete)
+
+In this case, the file keep on living after the merge. So we should not drop its
+copy tracing chain.
+
+ $ hg up 'desc("c-1")'
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg merge 'desc("g-1")'
+ file 'd' was deleted in local [working copy] but was modified in other [merge rev].
+ You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
+ What do you want to do? u
+ 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
+ use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
+ [1]
+ $ hg resolve -t :other d
+ (no more unresolved files)
+ $ hg ci -m "mCGm-0"
+ created new head
+
+ $ hg up 'desc("g-1")'
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge 'desc("c-1")'
+ file 'd' was deleted in other [merge rev] but was modified in local [working copy].
+ You can use (c)hanged version, (d)elete, or leave (u)nresolved.
+ What do you want to do? u
+ 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
+ use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
+ [1]
+ $ hg resolve -t :local d
+ (no more unresolved files)
+ $ hg ci -m "mGCm-0"
+ created new head
+
+ $ hg log -G --rev '::(desc("mCGm")+desc("mGCm"))'
+ @ 31 mGCm-0
+ |\
+ +---o 30 mCGm-0
+ | |/
+ | o 25 g-1: update d
+ | |
+ o | 6 c-1 delete d
+ |/
+ o 2 i-2: c -move-> d
+ |
+ o 1 i-1: a -move-> c
+ |
+ o 0 i-0 initial commit: a b h
+
+
+
+
+Comparing with merge restoring an untouched deleted file
+--------------------------------------------------------
+
+Merge:
+- one removing a file (d)
+- one leaving the file untouched
+- the merge actively restore the file to the same content.
+
+In this case, the file keep on living after the merge. So we should not drop its
+copy tracing chain.
+
+ $ hg up 'desc("c-1")'
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg merge 'desc("b-1")'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg revert --rev 'desc("b-1")' d
+ $ hg ci -m "mCB-revert-m-0"
+ created new head
+
+ $ hg up 'desc("b-1")'
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge 'desc("c-1")'
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hg revert --rev 'desc("b-1")' d
+ $ hg ci -m "mBC-revert-m-0"
+ created new head
+
+ $ hg log -G --rev '::(desc("mCB-revert-m")+desc("mBC-revert-m"))'
+ @ 33 mBC-revert-m-0
+ |\
+ +---o 32 mCB-revert-m-0
+ | |/
+ | o 6 c-1 delete d
+ | |
+ o | 5 b-1: b update
+ |/
+ o 2 i-2: c -move-> d
+ |
+ o 1 i-1: a -move-> c
+ |
+ o 0 i-0 initial commit: a b h
+
+
+
+ $ hg up null --quiet
+
+Test copy information chaining
+==============================
+
+merging with unrelated change does not interfere with the renames
+---------------------------------------------------------------
+
+- rename on one side
+- unrelated change on the other side
+
+ $ hg log -G --rev '::(desc("mABm")+desc("mBAm"))'
+ o 12 mABm-0 simple merge - the other way
+ |\
+ +---o 11 mBAm-0 simple merge - one way
+ | |/
+ | o 5 b-1: b update
+ | |
+ o | 4 a-2: e -move-> f
+ | |
+ o | 3 a-1: d -move-> e
+ |/
+ o 2 i-2: c -move-> d
+ |
+ o 1 i-1: a -move-> c
+ |
+ o 0 i-0 initial commit: a b h
+
+
$ hg status --copies --rev 'desc("b-1")' --rev 'desc("mABm")'
A f
d
@@ -242,27 +653,8 @@
- one deleting the change
and recreate an unrelated file after the merge
- $ hg up 'desc("b-1")'
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg merge 'desc("c-1")'
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m 'mBCm-0 simple merge - one way'
- $ echo bar > d
- $ hg add d
- $ hg ci -m 'mBCm-1 re-add d'
- $ hg up 'desc("c-1")'
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg merge 'desc("b-1")'
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m 'mCBm-0 simple merge - the other way'
- created new head
- $ echo bar > d
- $ hg add d
- $ hg ci -m 'mCBm-1 re-add d'
$ hg log -G --rev '::(desc("mCBm")+desc("mBCm"))'
- @ 16 mCBm-1 re-add d
+ o 16 mCBm-1 re-add d
|
o 15 mCBm-0 simple merge - the other way
|\
@@ -337,21 +729,8 @@
- one with change to an unrelated file
- one deleting and recreating the change
- $ hg up 'desc("b-1")'
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge 'desc("d-2")'
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m 'mBDm-0 simple merge - one way'
- $ hg up 'desc("d-2")'
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge 'desc("b-1")'
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m 'mDBm-0 simple merge - the other way'
- created new head
$ hg log -G --rev '::(desc("mDBm")+desc("mBDm"))'
- @ 18 mDBm-0 simple merge - the other way
+ o 18 mDBm-0 simple merge - the other way
|\
+---o 17 mBDm-0 simple merge - one way
| |/
@@ -394,11 +773,13 @@
$ hg manifest --debug --rev 'desc("b-1")' | grep '644 d'
169be882533bc917905d46c0c951aa9a1e288dcf 644 d (no-changeset !)
b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644 d (changeset !)
- $ hg debugindex d
+ $ hg debugindex d | head -n 4
rev linkrev nodeid p1 p2
0 2 169be882533b 000000000000 000000000000 (no-changeset !)
0 2 b789fdd96dc2 000000000000 000000000000 (changeset !)
1 8 b004912a8510 000000000000 000000000000
+ 2 22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
+ 2 22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
Log output should not include a merge commit as it did not happen
@@ -442,23 +823,8 @@
- the "e-" branch renaming b to f (through 'g')
- the "a-" branch renaming d to f (through e)
- $ hg up 'desc("a-2")'
- 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg merge 'desc("e-2")' --tool :union
- merging f
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m 'mAEm-0 simple merge - one way'
- $ hg up 'desc("e-2")'
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge 'desc("a-2")' --tool :union
- merging f
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m 'mEAm-0 simple merge - the other way'
- created new head
$ hg log -G --rev '::(desc("mAEm")+desc("mEAm"))'
- @ 20 mEAm-0 simple merge - the other way
+ o 20 mEAm-0 simple merge - the other way
|\
+---o 19 mAEm-0 simple merge - one way
| |/
@@ -581,35 +947,8 @@
- one with change to an unrelated file (b)
- one overwriting a file (d) with a rename (from h to i to d)
- $ hg up 'desc("i-2")'
- 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg mv h i
- $ hg commit -m "f-1: rename h -> i"
- created new head
- $ hg mv --force i d
- $ hg commit -m "f-2: rename i -> d"
- $ hg debugindex d
- rev linkrev nodeid p1 p2
- 0 2 169be882533b 000000000000 000000000000 (no-changeset !)
- 0 2 b789fdd96dc2 000000000000 000000000000 (changeset !)
- 1 8 b004912a8510 000000000000 000000000000
- 2 22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
- 2 22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
- $ hg up 'desc("b-1")'
- 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge 'desc("f-2")'
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m 'mBFm-0 simple merge - one way'
- $ hg up 'desc("f-2")'
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge 'desc("b-1")'
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m 'mFBm-0 simple merge - the other way'
- created new head
$ hg log -G --rev '::(desc("mBFm")+desc("mFBm"))'
- @ 24 mFBm-0 simple merge - the other way
+ o 24 mFBm-0 simple merge - the other way
|\
+---o 23 mBFm-0 simple merge - one way
| |/
@@ -698,28 +1037,8 @@
Unlike in the 'BD/DB' cases, an actual merge happened here. So we should
consider history and rename on both branch of the merge.
- $ hg up 'desc("i-2")'
- 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ echo "some update" >> d
- $ hg commit -m "g-1: update d"
- created new head
- $ hg up 'desc("d-2")'
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge 'desc("g-1")' --tool :union
- merging d
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m 'mDGm-0 simple merge - one way'
- $ hg up 'desc("g-1")'
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge 'desc("d-2")' --tool :union
- merging d
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m 'mGDm-0 simple merge - the other way'
- created new head
$ hg log -G --rev '::(desc("mDGm")+desc("mGDm"))'
- @ 27 mGDm-0 simple merge - the other way
+ o 27 mGDm-0 simple merge - the other way
|\
+---o 26 mDGm-0 simple merge - one way
| |/
@@ -827,24 +1146,8 @@
|
| The current code arbitrarily pick one side
- $ hg up 'desc("f-2")'
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg merge 'desc("g-1")' --tool :union
- merging d
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m 'mFGm-0 simple merge - one way'
- created new head
- $ hg up 'desc("g-1")'
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge 'desc("f-2")' --tool :union
- merging d
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg ci -m 'mGFm-0 simple merge - the other way'
- created new head
$ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))'
- @ 29 mGFm-0 simple merge - the other way
+ o 29 mGFm-0 simple merge - the other way
|\
+---o 28 mFGm-0 simple merge - one way
| |/
@@ -923,7 +1226,7 @@
#if no-changeset
$ hg log -Gfr 'desc("mGFm-0")' d
- @ 29 mGFm-0 simple merge - the other way
+ o 29 mGFm-0 simple merge - the other way
|\
| o 25 g-1: update d
| |
@@ -939,7 +1242,7 @@
#else
$ hg log -Gfr 'desc("mGFm-0")' d
- @ 29 mGFm-0 simple merge - the other way
+ o 29 mGFm-0 simple merge - the other way
|\
| o 25 g-1: update d
| |
@@ -962,36 +1265,8 @@
In this case, the file keep on living after the merge. So we should not drop its
copy tracing chain.
- $ hg up 'desc("c-1")'
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg merge 'desc("g-1")'
- file 'd' was deleted in local [working copy] but was modified in other [merge rev].
- You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
- What do you want to do? u
- 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
- use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
- [1]
- $ hg resolve -t :other d
- (no more unresolved files)
- $ hg ci -m "mCGm-0"
- created new head
-
- $ hg up 'desc("g-1")'
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge 'desc("c-1")'
- file 'd' was deleted in other [merge rev] but was modified in local [working copy].
- You can use (c)hanged version, (d)elete, or leave (u)nresolved.
- What do you want to do? u
- 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
- use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
- [1]
- $ hg resolve -t :local d
- (no more unresolved files)
- $ hg ci -m "mGCm-0"
- created new head
-
$ hg log -G --rev '::(desc("mCGm")+desc("mGCm"))'
- @ 31 mGCm-0
+ o 31 mGCm-0
|\
+---o 30 mCGm-0
| |/
@@ -1035,26 +1310,8 @@
In this case, the file keep on living after the merge. So we should not drop its
copy tracing chain.
- $ hg up 'desc("c-1")'
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- $ hg merge 'desc("b-1")'
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg revert --rev 'desc("b-1")' d
- $ hg ci -m "mCB-revert-m-0"
- created new head
-
- $ hg up 'desc("b-1")'
- 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- $ hg merge 'desc("c-1")'
- 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
- (branch merge, don't forget to commit)
- $ hg revert --rev 'desc("b-1")' d
- $ hg ci -m "mBC-revert-m-0"
- created new head
-
$ hg log -G --rev '::(desc("mCB-revert-m")+desc("mBC-revert-m"))'
- @ 33 mBC-revert-m-0
+ o 33 mBC-revert-m-0
|\
+---o 32 mCB-revert-m-0
| |/