tests/test-copies-chain-merge.t
changeset 46547 74e2256a56b8
parent 46546 075b2499e3d6
child 46551 cb15216a52f5
--- a/tests/test-copies-chain-merge.t	Mon Dec 14 17:56:56 2020 +0100
+++ b/tests/test-copies-chain-merge.t	Wed Feb 17 21:08:45 2021 +0100
@@ -18,7 +18,7 @@
   > [diff]
   > git=yes
   > [command-templates]
-  > log={rev} {desc}\n
+  > log={desc}\n
   > EOF
 
 #if compatibility
@@ -71,11 +71,11 @@
   $ hg mv c d
   $ hg ci -Am 'i-2: c -move-> d'
   $ hg log -G
-  @  2 i-2: c -move-> d
+  @  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 And having another branch with renames on the other side
@@ -85,15 +85,15 @@
   $ hg mv e f
   $ hg ci -Am 'a-2: e -move-> f'
   $ hg log -G --rev '::.'
-  @  4 a-2: e -move-> f
+  @  a-2: e -move-> f
   |
-  o  3 a-1: d -move-> e
+  o  a-1: d -move-> e
   |
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 Have a branching with nothing on one side
@@ -104,13 +104,13 @@
   $ hg ci -m 'b-1: b update'
   created new head
   $ hg log -G --rev '::.'
-  @  5 b-1: b update
+  @  b-1: b update
   |
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 Create a branch that delete a file previous renamed
@@ -121,13 +121,13 @@
   $ hg ci -m 'c-1 delete d'
   created new head
   $ hg log -G --rev '::.'
-  @  6 c-1 delete d
+  @  c-1 delete d
   |
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 Create a branch that delete a file previous renamed and recreate it
@@ -141,15 +141,15 @@
   $ hg add d
   $ hg ci -m 'd-2 re-add d'
   $ hg log -G --rev '::.'
-  @  8 d-2 re-add d
+  @  d-2 re-add d
   |
-  o  7 d-1 delete d
+  o  d-1 delete d
   |
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 Having another branch renaming a different file to the same filename as another
@@ -162,15 +162,15 @@
   $ hg mv g f
   $ hg ci -m 'e-2 g -move-> f'
   $ hg log -G --rev '::.'
-  @  10 e-2 g -move-> f
+  @  e-2 g -move-> f
   |
-  o  9 e-1 b -move-> g
+  o  e-1 b -move-> g
   |
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 Setup all merge
@@ -201,21 +201,21 @@
   $ hg ci -m "mABm-0 $case_desc - the other way"
   created new head
   $ hg log -G --rev '::(desc("mABm")+desc("mBAm"))'
-  @    12 mABm-0 simple merge - A side: multiple renames, B side: unrelated update - the other way
+  @    mABm-0 simple merge - A side: multiple renames, B side: unrelated update - the other way
   |\
-  +---o  11 mBAm-0 simple merge - A side: multiple renames, B side: unrelated update - one way
+  +---o  mBAm-0 simple merge - A side: multiple renames, B side: unrelated update - one way
   | |/
-  | o  5 b-1: b update
+  | o  b-1: b update
   | |
-  o |  4 a-2: e -move-> f
+  o |  a-2: e -move-> f
   | |
-  o |  3 a-1: d -move-> e
+  o |  a-1: d -move-> e
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 
@@ -249,23 +249,23 @@
   $ 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
+  @  mCBm-1 re-add d
   |
-  o    15 mCBm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - the other way
+  o    mCBm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - the other way
   |\
-  | | o  14 mBCm-1 re-add d
+  | | o  mBCm-1 re-add d
   | | |
-  +---o  13 mBCm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - one way
+  +---o  mBCm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - one way
   | |/
-  | o  6 c-1 delete d
+  | o  c-1 delete d
   | |
-  o |  5 b-1: b update
+  o |  b-1: b update
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 Comparing with a merge re-adding the file afterward
@@ -291,21 +291,21 @@
   $ hg ci -m "mDBm-0 $case_desc - the other way"
   created new head
   $ hg log -G --rev '::(desc("mDBm")+desc("mBDm"))'
-  @    18 mDBm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - the other way
+  @    mDBm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - the other way
   |\
-  +---o  17 mBDm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - one way
+  +---o  mBDm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - one way
   | |/
-  | o  8 d-2 re-add d
+  | o  d-2 re-add d
   | |
-  | o  7 d-1 delete d
+  | o  d-1 delete d
   | |
-  o |  5 b-1: b update
+  o |  b-1: b update
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 
@@ -337,23 +337,23 @@
   $ hg ci -m "mEAm-0 $case_desc - the other way"
   created new head
   $ hg log -G --rev '::(desc("mAEm")+desc("mEAm"))'
-  @    20 mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way
+  @    mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way
   |\
-  +---o  19 mAEm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - one way
+  +---o  mAEm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - one way
   | |/
-  | o  10 e-2 g -move-> f
+  | o  e-2 g -move-> f
   | |
-  | o  9 e-1 b -move-> g
+  | o  e-1 b -move-> g
   | |
-  o |  4 a-2: e -move-> f
+  o |  a-2: e -move-> f
   | |
-  o |  3 a-1: d -move-> e
+  o |  a-1: d -move-> e
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 Subcase: existing copy information overwritten on one branch
@@ -394,21 +394,21 @@
   $ hg ci -m "mFBm-0 $case_desc - the other way"
   created new head
   $ hg log -G --rev '::(desc("mBFm")+desc("mFBm"))'
-  @    24 mFBm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - the other way
+  @    mFBm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - the other way
   |\
-  +---o  23 mBFm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - one way
+  +---o  mBFm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - one way
   | |/
-  | o  22 f-2: rename i -> d
+  | o  f-2: rename i -> d
   | |
-  | o  21 f-1: rename h -> i
+  | o  f-1: rename h -> i
   | |
-  o |  5 b-1: b update
+  o |  b-1: b update
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 
@@ -446,21 +446,21 @@
   $ hg ci -m "mGDm-0 $case_desc - the other way"
   created new head
   $ hg log -G --rev '::(desc("mDGm")+desc("mGDm"))'
-  @    27 mGDm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - the other way
+  @    mGDm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - the other way
   |\
-  +---o  26 mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
+  +---o  mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
   | |/
-  | o  25 g-1: update d
+  | o  g-1: update d
   | |
-  o |  8 d-2 re-add d
+  o |  d-2 re-add d
   | |
-  o |  7 d-1 delete d
+  o |  d-1 delete d
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 Subcase: merging a change to a file with a "copy overwrite" to that file from another branch
@@ -501,21 +501,21 @@
   $ hg ci -m "mGFm-0 $case_desc - the other way"
   created new head
   $ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))'
-  @    29 mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
+  @    mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
   |\
-  +---o  28 mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way
+  +---o  mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way
   | |/
-  | o  25 g-1: update d
+  | o  g-1: update d
   | |
-  o |  22 f-2: rename i -> d
+  o |  f-2: rename i -> d
   | |
-  o |  21 f-1: rename h -> i
+  o |  f-1: rename h -> i
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 
@@ -561,19 +561,19 @@
   created new head
 
   $ hg log -G --rev '::(desc("mCGm")+desc("mGCm"))'
-  @    31 mGCm-0 merge updated/deleted - revive the file (updated content) - the other way
+  @    mGCm-0 merge updated/deleted - revive the file (updated content) - the other way
   |\
-  +---o  30 mCGm-0 merge updated/deleted - revive the file (updated content) - one way
+  +---o  mCGm-0 merge updated/deleted - revive the file (updated content) - one way
   | |/
-  | o  25 g-1: update d
+  | o  g-1: update d
   | |
-  o |  6 c-1 delete d
+  o |  c-1 delete d
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 
@@ -610,19 +610,19 @@
   created new head
 
   $ hg log -G --rev '::(desc("mCB-revert-m")+desc("mBC-revert-m"))'
-  @    33 mBC-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - the other way
+  @    mBC-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - the other way
   |\
-  +---o  32 mCB-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - one way
+  +---o  mCB-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - one way
   | |/
-  | o  6 c-1 delete d
+  | o  c-1 delete d
   | |
-  o |  5 b-1: b update
+  o |  b-1: b update
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 
@@ -659,19 +659,19 @@
   $ hg ci -m "mHC-delete-before-conflict-m-0 $case_desc - the other way"
   created new head
   $ hg log -G --rev '::(desc("mCH-delete-before-conflict-m")+desc("mHC-delete-before-conflict-m"))'
-  @    36 mHC-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - the other way
+  @    mHC-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - the other way
   |\
-  +---o  35 mCH-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - one way
+  +---o  mCH-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - one way
   | |/
-  | o  34 h-1: b -(move)-> d
+  | o  h-1: b -(move)-> d
   | |
-  o |  6 c-1 delete d
+  o |  c-1 delete d
   | |
-  o |  2 i-2: c -move-> d
+  o |  i-2: c -move-> d
   | |
-  o |  1 i-1: a -move-> c
+  o |  i-1: a -move-> c
   |/
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 Decision from previous merge are properly chained with later merge
@@ -750,35 +750,35 @@
 
 
   $ hg log -G --rev '::(desc("mAE,Km") + desc("mK,AEm") + desc("mEA,Jm") + desc("mJ,EAm"))'
-  @    42 mJ,EAm: chained merges (conflict -> simple) - same content everywhere
+  @    mJ,EAm: chained merges (conflict -> simple) - same content everywhere
   |\
-  +---o  41 mEA,Jm: chained merges (conflict -> simple) - same content everywhere
+  +---o  mEA,Jm: chained merges (conflict -> simple) - same content everywhere
   | |/
-  | | o    40 mK,AEm: chained merges (conflict -> simple) - same content everywhere
+  | | o    mK,AEm: chained merges (conflict -> simple) - same content everywhere
   | | |\
-  | | +---o  39 mAE,Km: chained merges (conflict -> simple) - same content everywhere
+  | | +---o  mAE,Km: chained merges (conflict -> simple) - same content everywhere
   | | | |/
-  | | | o  38 k-1: unrelated changes (based on "e" changes)
+  | | | o  k-1: unrelated changes (based on "e" changes)
   | | | |
-  | o | |  37 j-1: unrelated changes (based on the "a" series of changes)
+  | o | |  j-1: unrelated changes (based on the "a" series of changes)
   | | | |
-  o-----+  20 mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way
+  o-----+  mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way
   |/ / /
-  | o /  19 mAEm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - one way
+  | o /  mAEm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - one way
   |/|/
-  | o  10 e-2 g -move-> f
+  | o  e-2 g -move-> f
   | |
-  | o  9 e-1 b -move-> g
+  | o  e-1 b -move-> g
   | |
-  o |  4 a-2: e -move-> f
+  o |  a-2: e -move-> f
   | |
-  o |  3 a-1: d -move-> e
+  o |  a-1: d -move-> e
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 Subcase: chaining salvage information during a merge
@@ -839,29 +839,29 @@
   created new head
 
   $ hg log -G --rev '::(desc("mBC+revert,Lm") + desc("mCB+revert,Lm") + desc("mL,BC+revertm") + desc("mL,CB+revertm"))'
-  @    47 mL,CB+revertm: chained merges (salvaged -> simple) - same content (when the file exists)
+  @    mL,CB+revertm: chained merges (salvaged -> simple) - same content (when the file exists)
   |\
-  | | o  46 mL,BC+revertm: chained merges (salvaged -> simple) - same content (when the file exists)
+  | | o  mL,BC+revertm: chained merges (salvaged -> simple) - same content (when the file exists)
   | |/|
-  +-+---o  45 mCB+revert,Lm: chained merges (salvaged -> simple) - same content (when the file exists)
+  +-+---o  mCB+revert,Lm: chained merges (salvaged -> simple) - same content (when the file exists)
   | | |
-  | +---o  44 mBC+revert,Lm: chained merges (salvaged -> simple) - same content (when the file exists)
+  | +---o  mBC+revert,Lm: chained merges (salvaged -> simple) - same content (when the file exists)
   | | |/
-  | o |  43 l-1: unrelated changes (based on "c" changes)
+  | o |  l-1: unrelated changes (based on "c" changes)
   | | |
-  | | o  33 mBC-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - the other way
+  | | o  mBC-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - the other way
   | |/|
-  o---+  32 mCB-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - one way
+  o---+  mCB-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - one way
   |/ /
-  o |  6 c-1 delete d
+  o |  c-1 delete d
   | |
-  | o  5 b-1: b update
+  | o  b-1: b update
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 
@@ -931,33 +931,33 @@
   created new head
 
   $ hg log -G --rev '::(desc("mFG,Om") + desc("mO,FGm") + desc("mGF,Nm") + desc("mN,GFm"))'
-  @    53 mN,GFm: chained merges (copy-overwrite -> simple) - same content
+  @    mN,GFm: chained merges (copy-overwrite -> simple) - same content
   |\
-  +---o  52 mGF,Nm: chained merges (copy-overwrite -> simple) - same content
+  +---o  mGF,Nm: chained merges (copy-overwrite -> simple) - same content
   | |/
-  | | o    51 mO,FGm: chained merges (copy-overwrite -> simple) - same content
+  | | o    mO,FGm: chained merges (copy-overwrite -> simple) - same content
   | | |\
-  | | +---o  50 mFG,Om: chained merges (copy-overwrite -> simple) - same content
+  | | +---o  mFG,Om: chained merges (copy-overwrite -> simple) - same content
   | | | |/
-  | | | o  49 o-1: unrelated changes (based on "g" changes)
+  | | | o  o-1: unrelated changes (based on "g" changes)
   | | | |
-  | o | |  48 n-1: unrelated changes (based on the "f" series of changes)
+  | o | |  n-1: unrelated changes (based on the "f" series of changes)
   | | | |
-  o-----+  29 mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
+  o-----+  mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
   |/ / /
-  | o /  28 mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way
+  | o /  mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way
   |/|/
-  | o  25 g-1: update d
+  | o  g-1: update d
   | |
-  o |  22 f-2: rename i -> d
+  o |  f-2: rename i -> d
   | |
-  o |  21 f-1: rename h -> i
+  o |  f-1: rename h -> i
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 Summary of all created cases
@@ -1364,21 +1364,21 @@
 - unrelated change on the other side
 
   $ hg log -G --rev '::(desc("mABm")+desc("mBAm"))'
-  o    12 mABm-0 simple merge - A side: multiple renames, B side: unrelated update - the other way
+  o    mABm-0 simple merge - A side: multiple renames, B side: unrelated update - the other way
   |\
-  +---o  11 mBAm-0 simple merge - A side: multiple renames, B side: unrelated update - one way
+  +---o  mBAm-0 simple merge - A side: multiple renames, B side: unrelated update - one way
   | |/
-  | o  5 b-1: b update
+  | o  b-1: b update
   | |
-  o |  4 a-2: e -move-> f
+  o |  a-2: e -move-> f
   | |
-  o |  3 a-1: d -move-> e
+  o |  a-1: d -move-> e
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
   $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mABm")'
@@ -1423,23 +1423,23 @@
 and recreate an unrelated file after the merge
 
   $ hg log -G --rev '::(desc("mCBm")+desc("mBCm"))'
-  o  16 mCBm-1 re-add d
+  o  mCBm-1 re-add d
   |
-  o    15 mCBm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - the other way
+  o    mCBm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - the other way
   |\
-  | | o  14 mBCm-1 re-add d
+  | | o  mBCm-1 re-add d
   | | |
-  +---o  13 mBCm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - one way
+  +---o  mBCm-0 simple merge - C side: delete a file with copies history , B side: unrelated update - one way
   | |/
-  | o  6 c-1 delete d
+  | o  c-1 delete d
   | |
-  o |  5 b-1: b update
+  o |  b-1: b update
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 - comparing from the merge
 
@@ -1499,21 +1499,21 @@
 - one deleting and recreating the change
 
   $ hg log -G --rev '::(desc("mDBm")+desc("mBDm"))'
-  o    18 mDBm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - the other way
+  o    mDBm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - the other way
   |\
-  +---o  17 mBDm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - one way
+  +---o  mBDm-0 simple merge - B side: unrelated update, D side: delete and recreate a file (with different content) - one way
   | |/
-  | o  8 d-2 re-add d
+  | o  d-2 re-add d
   | |
-  | o  7 d-1 delete d
+  | o  d-1 delete d
   | |
-  o |  5 b-1: b update
+  o |  b-1: b update
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
   $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBDm-0")'
   M d
@@ -1553,12 +1553,12 @@
 Log output should not include a merge commit as it did not happen
 
   $ hg log -Gfr 'desc("mBDm-0")' d
-  o  8 d-2 re-add d
+  o  d-2 re-add d
   |
   ~
 
   $ hg log -Gfr 'desc("mDBm-0")' d
-  o  8 d-2 re-add d
+  o  d-2 re-add d
   |
   ~
 
@@ -1582,23 +1582,23 @@
 - the "a-" branch renaming d to f (through e)
 
   $ hg log -G --rev '::(desc("mAEm")+desc("mEAm"))'
-  o    20 mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way
+  o    mEAm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - the other way
   |\
-  +---o  19 mAEm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - one way
+  +---o  mAEm-0 merge with copies info on both side - A side: rename d to f, E side: b to f, (same content for f) - one way
   | |/
-  | o  10 e-2 g -move-> f
+  | o  e-2 g -move-> f
   | |
-  | o  9 e-1 b -move-> g
+  | o  e-1 b -move-> g
   | |
-  o |  4 a-2: e -move-> f
+  o |  a-2: e -move-> f
   | |
-  o |  3 a-1: d -move-> e
+  o |  a-1: d -move-> e
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 #if no-changeset
   $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644   f'
@@ -1705,21 +1705,21 @@
 - one overwriting a file (d) with a rename (from h to i to d)
 
   $ hg log -G --rev '::(desc("mBFm")+desc("mFBm"))'
-  o    24 mFBm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - the other way
+  o    mFBm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - the other way
   |\
-  +---o  23 mBFm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - one way
+  +---o  mBFm-0 simple merge - B side: unrelated change, F side: overwrite d with a copy (from h->i->d) - one way
   | |/
-  | o  22 f-2: rename i -> d
+  | o  f-2: rename i -> d
   | |
-  | o  21 f-1: rename h -> i
+  | o  f-1: rename h -> i
   | |
-  o |  5 b-1: b update
+  o |  b-1: b update
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBFm-0")'
   M b
@@ -1758,32 +1758,32 @@
 
 #if no-changeset
   $ hg log -Gfr 'desc("mBFm-0")' d
-  o  22 f-2: rename i -> d
+  o  f-2: rename i -> d
   |
-  o  21 f-1: rename h -> i
+  o  f-1: rename h -> i
   :
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 #else
 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
   $ hg log -Gfr 'desc("mBFm-0")' d
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
   ~
 #endif
 
 #if no-changeset
   $ hg log -Gfr 'desc("mFBm-0")' d
-  o  22 f-2: rename i -> d
+  o  f-2: rename i -> d
   |
-  o  21 f-1: rename h -> i
+  o  f-1: rename h -> i
   :
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 #else
 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
   $ hg log -Gfr 'desc("mFBm-0")' d
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
   ~
 #endif
@@ -1799,21 +1799,21 @@
 consider history and rename on both branch of the merge.
 
   $ hg log -G --rev '::(desc("mDGm")+desc("mGDm"))'
-  o    27 mGDm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - the other way
+  o    mGDm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - the other way
   |\
-  +---o  26 mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
+  +---o  mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
   | |/
-  | o  25 g-1: update d
+  | o  g-1: update d
   | |
-  o |  8 d-2 re-add d
+  o |  d-2 re-add d
   | |
-  o |  7 d-1 delete d
+  o |  d-1 delete d
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 One side of the merge have a long history with rename. The other side of the
 merge point to a new file with a smaller history. Each side is "valid".
@@ -1840,28 +1840,28 @@
 
 #if no-changeset
   $ hg log -Gfr 'desc("mDGm-0")' d
-  o    26 mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
+  o    mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
   |\
-  | o  25 g-1: update d
+  | o  g-1: update d
   | |
-  o |  8 d-2 re-add d
+  o |  d-2 re-add d
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 #else
 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
   $ hg log -Gfr 'desc("mDGm-0")' d
-  o    26 mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
+  o    mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
   |\
-  | o  25 g-1: update d
+  | o  g-1: update d
   | |
-  o |  8 d-2 re-add d
+  o |  d-2 re-add d
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
   ~
 #endif
@@ -1869,28 +1869,28 @@
 
 #if no-changeset
   $ hg log -Gfr 'desc("mDGm-0")' d
-  o    26 mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
+  o    mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
   |\
-  | o  25 g-1: update d
+  | o  g-1: update d
   | |
-  o |  8 d-2 re-add d
+  o |  d-2 re-add d
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 #else
 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
   $ hg log -Gfr 'desc("mDGm-0")' d
-  o    26 mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
+  o    mDGm-0 actual content merge, copies on one side - D side: delete and re-add (different content), G side: update content - one way
   |\
-  | o  25 g-1: update d
+  | o  g-1: update d
   | |
-  o |  8 d-2 re-add d
+  o |  d-2 re-add d
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
   ~
 #endif
@@ -1907,21 +1907,21 @@
 
 
   $ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))'
-  o    29 mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
+  o    mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
   |\
-  +---o  28 mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way
+  +---o  mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way
   | |/
-  | o  25 g-1: update d
+  | o  g-1: update d
   | |
-  o |  22 f-2: rename i -> d
+  o |  f-2: rename i -> d
   | |
-  o |  21 f-1: rename h -> i
+  o |  f-1: rename h -> i
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 Note:
@@ -1985,52 +1985,52 @@
 
 #if no-changeset
   $ hg log -Gfr 'desc("mFGm-0")' d
-  o    28 mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way
+  o    mFGm-0 merge - G side: content change, F side: copy overwrite, no content change - one way
   |\
-  | o  25 g-1: update d
+  | o  g-1: update d
   | |
-  o |  22 f-2: rename i -> d
+  o |  f-2: rename i -> d
   | |
-  o |  21 f-1: rename h -> i
+  o |  f-1: rename h -> i
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 #else
 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
   $ hg log -Gfr 'desc("mFGm-0")' d
-  o  25 g-1: update d
+  o  g-1: update d
   |
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
   ~
 #endif
 
 #if no-changeset
   $ hg log -Gfr 'desc("mGFm-0")' d
-  o    29 mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
+  o    mGFm-0 merge - G side: content change, F side: copy overwrite, no content change - the other way
   |\
-  | o  25 g-1: update d
+  | o  g-1: update d
   | |
-  o |  22 f-2: rename i -> d
+  o |  f-2: rename i -> d
   | |
-  o |  21 f-1: rename h -> i
+  o |  f-1: rename h -> i
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 #else
 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
   $ hg log -Gfr 'desc("mGFm-0")' d
-  o  25 g-1: update d
+  o  g-1: update d
   |
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
   ~
 #endif
@@ -2048,19 +2048,19 @@
 copy tracing chain.
 
   $ hg log -G --rev '::(desc("mCGm")+desc("mGCm"))'
-  o    31 mGCm-0 merge updated/deleted - revive the file (updated content) - the other way
+  o    mGCm-0 merge updated/deleted - revive the file (updated content) - the other way
   |\
-  +---o  30 mCGm-0 merge updated/deleted - revive the file (updated content) - one way
+  +---o  mCGm-0 merge updated/deleted - revive the file (updated content) - one way
   | |/
-  | o  25 g-1: update d
+  | o  g-1: update d
   | |
-  o |  6 c-1 delete d
+  o |  c-1 delete d
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 'a' is the copy source of 'd'
@@ -2093,19 +2093,19 @@
 copy tracing chain.
 
   $ hg log -G --rev '::(desc("mCB-revert-m")+desc("mBC-revert-m"))'
-  o    33 mBC-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - the other way
+  o    mBC-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - the other way
   |\
-  +---o  32 mCB-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - one way
+  +---o  mCB-revert-m-0 merge explicitely revive deleted file - B side: unrelated change, C side: delete d (restored by merge) - one way
   | |/
-  | o  6 c-1 delete d
+  | o  c-1 delete d
   | |
-  o |  5 b-1: b update
+  o |  b-1: b update
   |/
-  o  2 i-2: c -move-> d
+  o  i-2: c -move-> d
   |
-  o  1 i-1: a -move-> c
+  o  i-1: a -move-> c
   |
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
 'a' is the the copy source of 'd'
@@ -2139,19 +2139,19 @@
 (the copy information from the branch that was not deleted should win).
 
   $ hg log -G --rev '::(desc("mCH-delete-before-conflict-m")+desc("mHC-delete-before-conflict-m"))'
-  o    36 mHC-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - the other way
+  o    mHC-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - the other way
   |\
-  +---o  35 mCH-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - one way
+  +---o  mCH-delete-before-conflict-m-0 simple merge - C side: d is the results of renames then deleted, H side: d is result of another rename (same content as the other branch) - one way
   | |/
-  | o  34 h-1: b -(move)-> d
+  | o  h-1: b -(move)-> d
   | |
-  o |  6 c-1 delete d
+  o |  c-1 delete d
   | |
-  o |  2 i-2: c -move-> d
+  o |  i-2: c -move-> d
   | |
-  o |  1 i-1: a -move-> c
+  o |  i-1: a -move-> c
   |/
-  o  0 i-0 initial commit: a b h
+  o  i-0 initial commit: a b h
   
 
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCH-delete-before-conflict-m")'