diff --git a/tests/test-copies-chain-merge.t b/tests/test-copies-chain-merge.t --- a/tests/test-copies-chain-merge.t +++ b/tests/test-copies-chain-merge.t @@ -75,13 +75,72 @@ o 0 i-0 initial commit: a b h +Create a branch that delete a file previous renamed + + $ hg up 'desc("i-2")' + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg rm d + $ hg ci -m 'c-1 delete d' + created new head + $ hg log -G --rev '::.' + @ 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 + + +Create a branch that delete a file previous renamed and recreate it + + $ hg up 'desc("i-2")' + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg rm d + $ hg ci -m 'd-1 delete d' + created new head + $ echo bar > d + $ hg add d + $ hg ci -m 'd-2 re-add d' + $ hg log -G --rev '::.' + @ 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 + + +Having another branch renaming a different file to the same filename as another + + $ hg up 'desc("i-2")' + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg mv b g + $ hg ci -m 'e-1 b -move-> g' + created new head + $ hg mv g f + $ hg ci -m 'e-2 g -move-> f' + $ hg log -G --rev '::.' + @ 10 e-2 g -move-> f + | + o 9 e-1 b -move-> g + | + o 2 i-2: c -move-> d + | + o 1 i-1: a -move-> c + | + o 0 i-0 initial commit: a b h + Merge the two branches we just defined (in both directions) - one with change to an unrelated file - one with renames in them $ hg up 'desc("b-1")' - 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + 1 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg merge 'desc("a-2")' 1 files updated, 0 files merged, 1 files removed, 0 files unresolved (branch merge, don't forget to commit) @@ -94,9 +153,9 @@ $ hg ci -m 'mABm-0 simple merge - the other way' created new head $ hg log -G --rev '::(desc("mABm")+desc("mBAm"))' - @ 7 mABm-0 simple merge - the other way + @ 12 mABm-0 simple merge - the other way |\ - +---o 6 mBAm-0 simple merge - one way + +---o 11 mBAm-0 simple merge - one way | |/ | o 5 b-1: b update | | @@ -111,30 +170,13 @@ o 0 i-0 initial commit: a b h -Create a branch that delete a file previous renamed - - $ hg up 'desc("i-2")' - 2 files updated, 0 files merged, 1 files removed, 0 files unresolved - $ hg rm d - $ hg ci -m 'c-1 delete d' - created new head - $ hg log -G --rev '::.' - @ 8 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 - - Merge: - one with change to an unrelated file - one deleting the change and recreate an unrelated file after the merge $ hg up 'desc("b-1")' - 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + 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) @@ -153,15 +195,15 @@ $ hg add d $ hg ci -m 'mCBm-1 re-add d' $ hg log -G --rev '::(desc("mCBm")+desc("mBCm"))' - @ 12 mCBm-1 re-add d + @ 16 mCBm-1 re-add d | - o 11 mCBm-0 simple merge - the other way + o 15 mCBm-0 simple merge - the other way |\ - | | o 10 mBCm-1 re-add d + | | o 14 mBCm-1 re-add d | | | - +---o 9 mBCm-0 simple merge - one way + +---o 13 mBCm-0 simple merge - one way | |/ - | o 8 c-1 delete d + | o 6 c-1 delete d | | o | 5 b-1: b update |/ @@ -172,28 +214,6 @@ o 0 i-0 initial commit: a b h -Create a branch that delete a file previous renamed and recreate it - - $ hg up 'desc("i-2")' - 2 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg rm d - $ hg ci -m 'd-1 delete d' - created new head - $ echo bar > d - $ hg add d - $ hg ci -m 'd-2 re-add d' - $ hg log -G --rev '::.' - @ 14 d-2 re-add d - | - o 13 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 an unrelated file - one deleting and recreating the file @@ -206,7 +226,7 @@ | The current code arbitrarily pick one side $ hg up 'desc("b-1")' - 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + 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) @@ -219,13 +239,13 @@ $ hg ci -m 'mDBm-0 simple merge - the other way' created new head $ hg log -G --rev '::(desc("mDBm")+desc("mBDm"))' - @ 16 mDBm-0 simple merge - the other way + @ 18 mDBm-0 simple merge - the other way |\ - +---o 15 mBDm-0 simple merge - one way + +---o 17 mBDm-0 simple merge - one way | |/ - | o 14 d-2 re-add d + | o 8 d-2 re-add d | | - | o 13 d-1 delete d + | o 7 d-1 delete d | | o | 5 b-1: b update |/ @@ -236,27 +256,6 @@ o 0 i-0 initial commit: a b h -Having another branch renaming a different file to the same filename as another - - $ hg up 'desc("i-2")' - 2 files updated, 0 files merged, 0 files removed, 0 files unresolved - $ hg mv b g - $ hg ci -m 'e-1 b -move-> g' - created new head - $ hg mv g f - $ hg ci -m 'e-2 g -move-> f' - $ hg log -G --rev '::.' - @ 18 e-2 g -move-> f - | - o 17 e-1 b -move-> g - | - o 2 i-2: c -move-> d - | - o 1 i-1: a -move-> c - | - o 0 i-0 initial commit: a b h - - Merge: - the "e-" branch renaming b to f (through 'g') - the "a-" branch renaming d to f (through e) @@ -279,9 +278,9 @@ |\ +---o 19 mAEm-0 simple merge - one way | |/ - | o 18 e-2 g -move-> f + | o 10 e-2 g -move-> f | | - | o 17 e-1 b -move-> g + | o 9 e-1 b -move-> g | | o | 4 a-2: e -move-> f | | @@ -313,8 +312,8 @@ $ hg debugindex d rev linkrev nodeid p1 p2 0 2 01c2f5eabdc4 000000000000 000000000000 - 1 10 b004912a8510 000000000000 000000000000 - 2 15 0bb5445dc4d0 01c2f5eabdc4 b004912a8510 + 1 8 b004912a8510 000000000000 000000000000 + 2 17 0bb5445dc4d0 01c2f5eabdc4 b004912a8510 3 22 c72365ee036f 000000000000 000000000000 $ hg up 'desc("b-1")' 3 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -378,9 +377,9 @@ | |/ | o 25 g-1: update d | | - o | 14 d-2 re-add d + o | 8 d-2 re-add d | | - o | 13 d-1 delete d + o | 7 d-1 delete d |/ o 2 i-2: c -move-> d | @@ -576,8 +575,8 @@ $ hg debugindex d rev linkrev nodeid p1 p2 0 2 01c2f5eabdc4 000000000000 000000000000 - 1 10 b004912a8510 000000000000 000000000000 - 2 15 0bb5445dc4d0 01c2f5eabdc4 b004912a8510 + 1 8 b004912a8510 000000000000 000000000000 + 2 17 0bb5445dc4d0 01c2f5eabdc4 b004912a8510 3 22 c72365ee036f 000000000000 000000000000 4 23 863d9bc49190 01c2f5eabdc4 c72365ee036f 5 25 7bded9d9da1f 01c2f5eabdc4 000000000000 @@ -588,9 +587,9 @@ (This `hg log` output if wrong, since no merge actually happened). $ hg log -Gfr 'desc("mBDm-0")' d - o 15 mBDm-0 simple merge - one way + o 17 mBDm-0 simple merge - one way |\ - o : 14 d-2 re-add d + o : 8 d-2 re-add d :/ o 2 i-2: c -move-> d | @@ -602,7 +601,7 @@ This `hg log` output is correct $ hg log -Gfr 'desc("mDBm-0")' d - o 14 d-2 re-add d + o 8 d-2 re-add d | ~ @@ -633,7 +632,7 @@ $ hg debugindex f rev linkrev nodeid p1 p2 0 4 0dd616bc7ab1 000000000000 000000000000 - 1 18 6da5a2eecb9c 000000000000 000000000000 + 1 10 6da5a2eecb9c 000000000000 000000000000 2 19 eb806e34ef6b 0dd616bc7ab1 6da5a2eecb9c $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mAEm-0")' M f @@ -770,7 +769,7 @@ |\ | o 25 g-1: update d | | - o | 14 d-2 re-add d + o | 8 d-2 re-add d |/ o 2 i-2: c -move-> d | @@ -785,7 +784,7 @@ |\ | o 25 g-1: update d | | - o | 14 d-2 re-add d + o | 8 d-2 re-add d |/ o 2 i-2: c -move-> d |