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 @@ -346,49 +346,98 @@ o 0 i-0 initial commit: a b] +Merge: +- one with change to a file +- one deleting and recreating the file + + $ 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" + 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] + | | + o | 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] + + + final summary $ hg update null --quiet $ hg log -G - o 24 mFBm-0 simple merge - the other way] + o 27 mGDm-0 simple merge - the other way] |\ - +---o 23 mBFm-0 simple merge - one way] + +---o 26 mDGm-0 simple merge - one way] | |/ - | o 22 f-2: rename i -> d] + | o 25 g-1] | | - | o 21 f-1: rename h -> i] - | | - | | o 20 mEAm-0 simple merge - the other way] + | | o 24 mFBm-0 simple merge - the other way] | | |\ - | | +---o 19 mAEm-0 simple merge - one way] + | | +---o 23 mBFm-0 simple merge - one way] | | | |/ - | | | o 18 e-2 g -move-> f] - | | | | - | +---o 17 e-1 b -move-> g] - | | | - +-----o 16 mDBm-0 simple merge - the other way] + | | | o 22 f-2: rename i -> d] | | | | - +-------o 15 mBDm-0 simple merge - one way] - | | | |/ - | | | o 14 d-2 re-add d] + | +---o 21 f-1: rename h -> i] + | | | + | | | o 20 mEAm-0 simple merge - the other way] + | | | |\ + | | | +---o 19 mAEm-0 simple merge - one way] + | | | | |/ + | | | | o 18 e-2 g -move-> f] + | | | | | + | +-----o 17 e-1 b -move-> g] | | | | - | +---o 13 d-1 delete d] - | | | + +---+---o 16 mDBm-0 simple merge - the other way] + | | | | + +---+---o 15 mBDm-0 simple merge - one way] + | | | | + o | | | 14 d-2 re-add d] + | | | | + o | | | 13 d-1 delete d] + |/ / / | | | o 12 mCBm-1 re-add d] | | | | - +-----o 11 mCBm-0 simple merge - the other way] + | +---o 11 mCBm-0 simple merge - the other way] | | | | | | | | o 10 mBCm-1 re-add d] | | | | | - +-------o 9 mBCm-0 simple merge - one way] + | +-----o 9 mBCm-0 simple merge - one way] | | | |/ - | +---o 8 c-1 delete d] + +-----o 8 c-1 delete d] | | | - +-----o 7 mABm-0 simple merge - the other way] + | +---o 7 mABm-0 simple merge - the other way] | | |/ - +-----o 6 mBAm-0 simple merge - one way] + | +---o 6 mBAm-0 simple merge - one way] | | |/ - o | | 5 b-1: b update] + | o | 5 b-1: b update] |/ / | o 4 a-2: e -move-> f] | | @@ -552,6 +601,9 @@ 2 15 0bb5445dc4d0 01c2f5eabdc4 b004912a8510 3 22 c72365ee036f 000000000000 000000000000 4 23 863d9bc49190 01c2f5eabdc4 c72365ee036f + 5 25 7bded9d9da1f 01c2f5eabdc4 000000000000 + 6 26 f04cac32d703 b004912a8510 7bded9d9da1f + 7 27 d7a5eafb9322 7bded9d9da1f b004912a8510 (That output if wrong, since no merge actually happened). @@ -708,3 +760,57 @@ : o 0 i-0 initial commit: a b] + +Merge: +- one with change to a file +- one deleting and recreating the file + +Unlike in the 'BD/DB' cases, an actuall merge happened here. So we should +consider history and rename on both branch of the merge. + + $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mDGm-0")' + A d + a + R a + $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGDm-0")' + A d + a + R a + $ hg status --copies --rev 'desc("d-2")' --rev 'desc("mDGm-0")' + M d + $ hg status --copies --rev 'desc("d-2")' --rev 'desc("mGDm-0")' + M d + $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mDGm-0")' + M d + $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGDm-0")' + M d + + $ hg log -Gfr 'desc("mDGm-0")' d + o 26 mDGm-0 simple merge - one way] + |\ + | o 25 g-1] + | | + o | 14 d-2 re-add d] + |/ + o 2 i-2: c -move-> d] + | + o 1 i-1: a -move-> c] + | + o 0 i-0 initial commit: a b] + + + + $ hg log -Gfr 'desc("mDGm-0")' d + o 26 mDGm-0 simple merge - one way] + |\ + | o 25 g-1] + | | + o | 14 d-2 re-add d] + |/ + k (false !) + o 2 i-2: c -move-> d] + | + o 1 i-1: a -move-> c] + | + o 0 i-0 initial commit: a b] +