tests/test-copies-chain-merge.t
changeset 46527 018d622e814d
parent 46479 c2435280ca63
child 46531 d46885119f90
equal deleted inserted replaced
46526:67b5fafd3a46 46527:018d622e814d
    48   $ hg init repo-chain
    48   $ hg init repo-chain
    49   $ cd repo-chain
    49   $ cd repo-chain
    50 
    50 
    51 Add some linear rename initialy
    51 Add some linear rename initialy
    52 
    52 
    53   $ echo a > a
    53   $ touch a b h
    54   $ echo b > b
       
    55   $ echo h > h
       
    56   $ hg ci -Am 'i-0 initial commit: a b h'
    54   $ hg ci -Am 'i-0 initial commit: a b h'
    57   adding a
    55   adding a
    58   adding b
    56   adding b
    59   adding h
    57   adding h
    60   $ hg mv a c
    58   $ hg mv a c
   300 - the "e-" branch renaming b to f (through 'g')
   298 - the "e-" branch renaming b to f (through 'g')
   301 - the "a-" branch renaming d to f (through e)
   299 - the "a-" branch renaming d to f (through e)
   302 
   300 
   303   $ hg up 'desc("a-2")'
   301   $ hg up 'desc("a-2")'
   304   2 files updated, 0 files merged, 1 files removed, 0 files unresolved
   302   2 files updated, 0 files merged, 1 files removed, 0 files unresolved
   305   $ hg merge 'desc("e-2")' --tool :union
   303   $ hg merge 'desc("e-2")'
   306   merging f
   304   1 files updated, 0 files merged, 1 files removed, 0 files unresolved (no-changeset !)
   307   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   305   0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !)
   308   (branch merge, don't forget to commit)
   306   (branch merge, don't forget to commit)
   309   $ hg ci -m 'mAEm-0 simple merge - one way'
   307   $ hg ci -m 'mAEm-0 simple merge - one way'
   310   $ hg up 'desc("e-2")'
   308   $ hg up 'desc("e-2")'
   311   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   309   2 files updated, 0 files merged, 0 files removed, 0 files unresolved (no-changeset !)
   312   $ hg merge 'desc("a-2")' --tool :union
   310   1 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !)
   313   merging f
   311   $ hg merge 'desc("a-2")'
   314   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   312   1 files updated, 0 files merged, 1 files removed, 0 files unresolved (no-changeset !)
       
   313   0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !)
   315   (branch merge, don't forget to commit)
   314   (branch merge, don't forget to commit)
   316   $ hg ci -m 'mEAm-0 simple merge - the other way'
   315   $ hg ci -m 'mEAm-0 simple merge - the other way'
   317   created new head
   316   created new head
   318   $ hg log -G --rev '::(desc("mAEm")+desc("mEAm"))'
   317   $ hg log -G --rev '::(desc("mAEm")+desc("mEAm"))'
   319   @    20 mEAm-0 simple merge - the other way
   318   @    20 mEAm-0 simple merge - the other way
   347   created new head
   346   created new head
   348   $ hg mv --force i d
   347   $ hg mv --force i d
   349   $ hg commit -m "f-2: rename i -> d"
   348   $ hg commit -m "f-2: rename i -> d"
   350   $ hg debugindex d
   349   $ hg debugindex d
   351      rev linkrev nodeid       p1           p2
   350      rev linkrev nodeid       p1           p2
   352        0       2 169be882533b 000000000000 000000000000 (no-changeset !)
   351        0       2 01c2f5eabdc4 000000000000 000000000000 (no-changeset !)
   353        0       2 b789fdd96dc2 000000000000 000000000000 (changeset !)
   352        0       2 b80de5d13875 000000000000 000000000000 (changeset !)
   354        1       8 b004912a8510 000000000000 000000000000
   353        1       8 b004912a8510 000000000000 000000000000
   355        2      22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
   354        2      22 c72365ee036f 000000000000 000000000000 (no-changeset !)
   356        2      22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
       
   357   $ hg up 'desc("b-1")'
   355   $ hg up 'desc("b-1")'
   358   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   356   3 files updated, 0 files merged, 0 files removed, 0 files unresolved (no-changeset !)
       
   357   2 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !)
   359   $ hg merge 'desc("f-2")'
   358   $ hg merge 'desc("f-2")'
   360   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   359   1 files updated, 0 files merged, 1 files removed, 0 files unresolved (no-changeset !)
       
   360   0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !)
   361   (branch merge, don't forget to commit)
   361   (branch merge, don't forget to commit)
   362   $ hg ci -m 'mBFm-0 simple merge - one way'
   362   $ hg ci -m 'mBFm-0 simple merge - one way'
   363   $ hg up 'desc("f-2")'
   363   $ hg up 'desc("f-2")'
   364   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   364   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   365   $ hg merge 'desc("b-1")'
   365   $ hg merge 'desc("b-1")'
   392 
   392 
   393 Unlike in the 'BD/DB' cases, an actual merge happened here. So we should
   393 Unlike in the 'BD/DB' cases, an actual merge happened here. So we should
   394 consider history and rename on both branch of the merge.
   394 consider history and rename on both branch of the merge.
   395 
   395 
   396   $ hg up 'desc("i-2")'
   396   $ hg up 'desc("i-2")'
   397   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   397   3 files updated, 0 files merged, 0 files removed, 0 files unresolved (no-changeset !)
       
   398   2 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !)
   398   $ echo "some update" >> d
   399   $ echo "some update" >> d
   399   $ hg commit -m "g-1: update d"
   400   $ hg commit -m "g-1: update d"
   400   created new head
   401   created new head
   401   $ hg up 'desc("d-2")'
   402   $ hg up 'desc("d-2")'
   402   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   403   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   446 | The current code arbitrarily pick one side
   447 | The current code arbitrarily pick one side
   447 
   448 
   448   $ hg up 'desc("f-2")'
   449   $ hg up 'desc("f-2")'
   449   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   450   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   450   $ hg merge 'desc("g-1")' --tool :union
   451   $ hg merge 'desc("g-1")' --tool :union
   451   merging d
   452   merging d (no-changeset !)
   452   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   453   0 files updated, 1 files merged, 0 files removed, 0 files unresolved (no-changeset !)
       
   454   1 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !)
   453   (branch merge, don't forget to commit)
   455   (branch merge, don't forget to commit)
   454   $ hg ci -m 'mFGm-0 simple merge - one way'
   456   $ hg ci -m 'mFGm-0 simple merge - one way'
   455   created new head
   457   created new head
   456   $ hg up 'desc("g-1")'
   458   $ hg up 'desc("g-1")'
   457   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   459   2 files updated, 0 files merged, 0 files removed, 0 files unresolved (no-changeset !)
       
   460   1 files updated, 0 files merged, 0 files removed, 0 files unresolved (changeset !)
   458   $ hg merge 'desc("f-2")' --tool :union
   461   $ hg merge 'desc("f-2")' --tool :union
   459   merging d
   462   merging d (no-changeset !)
   460   1 files updated, 0 files merged, 1 files removed, 0 files unresolved
   463   0 files updated, 1 files merged, 1 files removed, 0 files unresolved (no-changeset !)
       
   464   0 files updated, 0 files merged, 1 files removed, 0 files unresolved (changeset !)
   461   (branch merge, don't forget to commit)
   465   (branch merge, don't forget to commit)
   462   $ hg ci -m 'mGFm-0 simple merge - the other way'
   466   $ hg ci -m 'mGFm-0 simple merge - the other way'
   463   created new head
   467   created new head
   464   $ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))'
   468   $ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))'
   465   @    29 mGFm-0 simple merge - the other way
   469   @    29 mGFm-0 simple merge - the other way
  1118   b004912a8510032a0350a74daa2803dadfb00e12 644   d
  1122   b004912a8510032a0350a74daa2803dadfb00e12 644   d
  1119 
  1123 
  1120   $ hg manifest --debug --rev 'desc("d-2")' | grep '644   d'
  1124   $ hg manifest --debug --rev 'desc("d-2")' | grep '644   d'
  1121   b004912a8510032a0350a74daa2803dadfb00e12 644   d
  1125   b004912a8510032a0350a74daa2803dadfb00e12 644   d
  1122   $ hg manifest --debug --rev 'desc("b-1")' | grep '644   d'
  1126   $ hg manifest --debug --rev 'desc("b-1")' | grep '644   d'
  1123   169be882533bc917905d46c0c951aa9a1e288dcf 644   d (no-changeset !)
  1127   01c2f5eabdc4ce2bdee42b5f86311955e6c8f573 644   d (no-changeset !)
  1124   b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644   d (changeset !)
  1128   b80de5d138758541c5f05265ad144ab9fa86d1db 644   d (changeset !)
  1125   $ hg debugindex d | head -n 4
  1129   $ hg debugindex d | head -n 4
  1126      rev linkrev nodeid       p1           p2
  1130      rev linkrev nodeid       p1           p2
  1127        0       2 169be882533b 000000000000 000000000000 (no-changeset !)
  1131        0       2 01c2f5eabdc4 000000000000 000000000000 (no-changeset !)
  1128        0       2 b789fdd96dc2 000000000000 000000000000 (changeset !)
  1132        0       2 b80de5d13875 000000000000 000000000000 (changeset !)
  1129        1       8 b004912a8510 000000000000 000000000000
  1133        1       8 b004912a8510 000000000000 000000000000
  1130        2      22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
  1134        2      22 c72365ee036f 000000000000 000000000000 (no-changeset !)
  1131        2      22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
  1135        2      25 68d5bca9df05 b80de5d13875 000000000000 (changeset !)
  1132 
  1136 
  1133 Log output should not include a merge commit as it did not happen
  1137 Log output should not include a merge commit as it did not happen
  1134 
  1138 
  1135   $ hg log -Gfr 'desc("mBDm-0")' d
  1139   $ hg log -Gfr 'desc("mBDm-0")' d
  1136   o  8 d-2 re-add d
  1140   o  8 d-2 re-add d
  1177   |
  1181   |
  1178   o  0 i-0 initial commit: a b h
  1182   o  0 i-0 initial commit: a b h
  1179   
  1183   
  1180 #if no-changeset
  1184 #if no-changeset
  1181   $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644   f'
  1185   $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644   f'
  1182   c39c6083dad048d5138618a46f123e2f397f4f18 644   f
  1186   eb806e34ef6be4c264effd5933d31004ad15a793 644   f
  1183   $ hg manifest --debug --rev 'desc("mEAm-0")' | grep '644   f'
  1187   $ hg manifest --debug --rev 'desc("mEAm-0")' | grep '644   f'
  1184   a9a8bc3860c9d8fa5f2f7e6ea8d40498322737fd 644   f
  1188   eb806e34ef6be4c264effd5933d31004ad15a793 644   f
  1185   $ hg manifest --debug --rev 'desc("a-2")' | grep '644   f'
  1189   $ hg manifest --debug --rev 'desc("a-2")' | grep '644   f'
  1186   263ea25e220aaeb7b9bac551c702037849aa75e8 644   f
  1190   0dd616bc7ab1a111921d95d76f69cda5c2ac539c 644   f
  1187   $ hg manifest --debug --rev 'desc("e-2")' | grep '644   f'
  1191   $ hg manifest --debug --rev 'desc("e-2")' | grep '644   f'
  1188   71b9b7e73d973572ade6dd765477fcee6890e8b1 644   f
  1192   6da5a2eecb9c833f830b67a4972366d49a9a142c 644   f
  1189   $ hg debugindex f
  1193   $ hg debugindex f
  1190      rev linkrev nodeid       p1           p2
  1194      rev linkrev nodeid       p1           p2
  1191        0       4 263ea25e220a 000000000000 000000000000
  1195        0       4 0dd616bc7ab1 000000000000 000000000000
  1192        1      10 71b9b7e73d97 000000000000 000000000000
  1196        1      10 6da5a2eecb9c 000000000000 000000000000
  1193        2      19 c39c6083dad0 263ea25e220a 71b9b7e73d97
  1197        2      19 eb806e34ef6b 0dd616bc7ab1 6da5a2eecb9c
  1194        3      20 a9a8bc3860c9 71b9b7e73d97 263ea25e220a
       
  1195 #else
  1198 #else
  1196   $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644   f'
  1199   $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644   f'
  1197   498e8799f49f9da1ca06bb2d6d4accf165c5b572 644   f
  1200   b80de5d138758541c5f05265ad144ab9fa86d1db 644   f
  1198   $ hg manifest --debug --rev 'desc("mEAm-0")' | grep '644   f'
  1201   $ hg manifest --debug --rev 'desc("mEAm-0")' | grep '644   f'
  1199   c5b506a7118667a38a9c9348a1f63b679e382f57 644   f
  1202   b80de5d138758541c5f05265ad144ab9fa86d1db 644   f
  1200   $ hg manifest --debug --rev 'desc("a-2")' | grep '644   f'
  1203   $ hg manifest --debug --rev 'desc("a-2")' | grep '644   f'
  1201   b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644   f
  1204   b80de5d138758541c5f05265ad144ab9fa86d1db 644   f
  1202   $ hg manifest --debug --rev 'desc("e-2")' | grep '644   f'
  1205   $ hg manifest --debug --rev 'desc("e-2")' | grep '644   f'
  1203   1e88685f5ddec574a34c70af492f95b6debc8741 644   f
  1206   b80de5d138758541c5f05265ad144ab9fa86d1db 644   f
  1204   $ hg debugindex f
  1207   $ hg debugindex f
  1205      rev linkrev nodeid       p1           p2
  1208      rev linkrev nodeid       p1           p2
  1206        0       4 b789fdd96dc2 000000000000 000000000000
  1209        0       4 b80de5d13875 000000000000 000000000000
  1207        1      10 1e88685f5dde 000000000000 000000000000
       
  1208        2      19 498e8799f49f b789fdd96dc2 1e88685f5dde
       
  1209        3      20 c5b506a71186 1e88685f5dde b789fdd96dc2
       
  1210 #endif
  1210 #endif
  1211 
  1211 
  1212 # Here the filelog based implementation is not looking at the rename
  1212 # Here the filelog based implementation is not looking at the rename
  1213 # information (because the file exist on both side). However the changelog
  1213 # information (because the file exist on both side). However the changelog
  1214 # based on works fine. We have different output.
  1214 # based on works fine. We have different output.
  1215 
  1215 
  1216   $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mAEm-0")'
  1216   $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mAEm-0")'
  1217   M f
  1217   M f (no-changeset !)
  1218     b (no-filelog !)
  1218     b (no-filelog no-changeset !)
  1219   R b
  1219   R b
  1220   $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mEAm-0")'
  1220   $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mEAm-0")'
  1221   M f
  1221   M f (no-changeset !)
  1222     b (no-filelog !)
  1222     b (no-filelog no-changeset !)
  1223   R b
  1223   R b
  1224   $ hg status --copies --rev 'desc("e-2")' --rev 'desc("mAEm-0")'
  1224   $ hg status --copies --rev 'desc("e-2")' --rev 'desc("mAEm-0")'
  1225   M f
  1225   M f (no-changeset !)
  1226     d (no-filelog !)
  1226     d (no-filelog no-changeset !)
  1227   R d
  1227   R d
  1228   $ hg status --copies --rev 'desc("e-2")' --rev 'desc("mEAm-0")'
  1228   $ hg status --copies --rev 'desc("e-2")' --rev 'desc("mEAm-0")'
  1229   M f
  1229   M f (no-changeset !)
  1230     d (no-filelog !)
  1230     d (no-filelog no-changeset !)
  1231   R d
  1231   R d
  1232   $ hg status --copies --rev 'desc("i-2")' --rev 'desc("a-2")'
  1232   $ hg status --copies --rev 'desc("i-2")' --rev 'desc("a-2")'
  1233   A f
  1233   A f
  1234     d
  1234     d
  1235   R d
  1235   R d
  1310   A d
  1310   A d
  1311     h
  1311     h
  1312   R a
  1312   R a
  1313   R h
  1313   R h
  1314   $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBFm-0")'
  1314   $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBFm-0")'
  1315   M d
  1315   M d (no-changeset !)
  1316     h (no-filelog !)
  1316     h (no-filelog no-changeset !)
  1317   R h
  1317   R h
  1318   $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mBFm-0")'
  1318   $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mBFm-0")'
  1319   M b
  1319   M b
  1320   $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mBFm-0")'
  1320   $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mBFm-0")'
  1321   M b
  1321   M b
  1322   M d
  1322   M d (no-changeset !)
  1323     i (no-filelog !)
  1323     i (no-filelog no-changeset !)
  1324   R i
  1324   R i
  1325   $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mFBm-0")'
  1325   $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mFBm-0")'
  1326   M d
  1326   M d (no-changeset !)
  1327     h (no-filelog !)
  1327     h (no-filelog no-changeset !)
  1328   R h
  1328   R h
  1329   $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFBm-0")'
  1329   $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFBm-0")'
  1330   M b
  1330   M b
  1331   $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mFBm-0")'
  1331   $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mFBm-0")'
  1332   M b
  1332   M b
  1333   M d
  1333   M d (no-changeset !)
  1334     i (no-filelog !)
  1334     i (no-filelog no-changeset !)
  1335   R i
  1335   R i
  1336 
  1336 
  1337 #if no-changeset
  1337 #if no-changeset
  1338   $ hg log -Gfr 'desc("mBFm-0")' d
  1338   $ hg log -Gfr 'desc("mBFm-0")' d
  1339   o  22 f-2: rename i -> d
  1339   o  22 f-2: rename i -> d
  1343   o  0 i-0 initial commit: a b h
  1343   o  0 i-0 initial commit: a b h
  1344   
  1344   
  1345 #else
  1345 #else
  1346 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
  1346 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
  1347   $ hg log -Gfr 'desc("mBFm-0")' d
  1347   $ hg log -Gfr 'desc("mBFm-0")' d
  1348   o  22 f-2: rename i -> d
  1348   o  2 i-2: c -move-> d
  1349   |
  1349   |
  1350   ~
  1350   ~
  1351 #endif
  1351 #endif
  1352 
  1352 
  1353 #if no-changeset
  1353 #if no-changeset
  1359   o  0 i-0 initial commit: a b h
  1359   o  0 i-0 initial commit: a b h
  1360   
  1360   
  1361 #else
  1361 #else
  1362 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
  1362 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
  1363   $ hg log -Gfr 'desc("mFBm-0")' d
  1363   $ hg log -Gfr 'desc("mFBm-0")' d
  1364   o  22 f-2: rename i -> d
  1364   o  2 i-2: c -move-> d
  1365   |
  1365   |
  1366   ~
  1366   ~
  1367 #endif
  1367 #endif
  1368 
  1368 
  1369 
  1369 
  1507 In this case, the file hash from "f-2" is lower, so it will be `p1` of the resulting filenode its copy tracing information will win (and trace back to "h"):
  1507 In this case, the file hash from "f-2" is lower, so it will be `p1` of the resulting filenode its copy tracing information will win (and trace back to "h"):
  1508 
  1508 
  1509 Details on this hash ordering pick:
  1509 Details on this hash ordering pick:
  1510 
  1510 
  1511   $ hg manifest --debug 'desc("g-1")' | egrep 'd$'
  1511   $ hg manifest --debug 'desc("g-1")' | egrep 'd$'
  1512   f2b277c39e0d2bbac99d8aae075c0d8b5304d266 644   d (no-changeset !)
  1512   7bded9d9da1f7bf9bf7cbfb24fe1e6ccf68ec440 644   d (no-changeset !)
  1513   4ff57b4e8dceedb487e70e6965ea188a7c042cca 644   d (changeset !)
  1513   68d5bca9df0577b6bc2ea30ca724e13ead60da81 644   d (changeset !)
  1514   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("g-1")' d
  1514   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("g-1")' d
  1515   A d
  1515   A d
  1516     a (no-changeset no-compatibility !)
  1516     a (no-changeset no-compatibility !)
  1517 
  1517 
  1518   $ hg manifest --debug 'desc("f-2")' | egrep 'd$'
  1518   $ hg manifest --debug 'desc("f-2")' | egrep 'd$'
  1519   4a067cf8965d1bfff130057ade26b44f580231be 644   d (no-changeset !)
  1519   c72365ee036fca4fb27fd745459bfb6ea1ac6993 644   d (no-changeset !)
  1520   fe6f8b4f507fe3eb524c527192a84920a4288dac 644   d (changeset !)
  1520   b80de5d138758541c5f05265ad144ab9fa86d1db 644   d (changeset !)
  1521   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("f-2")' d
  1521   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("f-2")' d
  1522   A d
  1522   A d
  1523     h (no-changeset no-compatibility !)
  1523     h (no-changeset no-compatibility !)
  1524 
  1524 
  1525 Copy tracing data on the resulting merge:
  1525 Copy tracing data on the resulting merge:
  1526 
  1526 
  1527   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mFGm-0")'
  1527   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mFGm-0")'
  1528   A d
  1528   A d
  1529     h
  1529     h (no-filelog !)
       
  1530     a (filelog !)
  1530   R a
  1531   R a
  1531   R h
  1532   R h
  1532   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGFm-0")'
  1533   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGFm-0")'
  1533   A d
  1534   A d
  1534     a (no-filelog !)
  1535     a (no-changeset !)
  1535     h (filelog !)
  1536     h (changeset !)
  1536   R a
  1537   R a
  1537   R h
  1538   R h
  1538   $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFGm-0")'
  1539   $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFGm-0")'
  1539   M d
  1540   M d
  1540   $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mGFm-0")'
  1541   $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mGFm-0")'
  1546   $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mGFm-0")'
  1547   $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mGFm-0")'
  1547   M d
  1548   M d
  1548     i (no-filelog !)
  1549     i (no-filelog !)
  1549   R i
  1550   R i
  1550   $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mFGm-0")'
  1551   $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mFGm-0")'
  1551   M d
  1552   M d (no-changeset !)
  1552     h (no-filelog !)
  1553     h (no-filelog no-changeset !)
  1553   R h
  1554   R h
  1554   $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGFm-0")'
  1555   $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGFm-0")'
  1555   M d
  1556   M d (no-changeset !)
  1556     h (no-filelog !)
  1557     h (no-filelog no-changeset !)
  1557   R h
  1558   R h
  1558 
  1559 
  1559 #if no-changeset
  1560 #if no-changeset
  1560   $ hg log -Gfr 'desc("mFGm-0")' d
  1561   $ hg log -Gfr 'desc("mFGm-0")' d
  1561   o    28 mFGm-0 simple merge - one way
  1562   o    28 mFGm-0 simple merge - one way
  1573   o  0 i-0 initial commit: a b h
  1574   o  0 i-0 initial commit: a b h
  1574   
  1575   
  1575 #else
  1576 #else
  1576 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
  1577 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
  1577   $ hg log -Gfr 'desc("mFGm-0")' d
  1578   $ hg log -Gfr 'desc("mFGm-0")' d
  1578   o    28 mFGm-0 simple merge - one way
  1579   o  25 g-1: update d
  1579   |\
  1580   |
  1580   | o  25 g-1: update d
       
  1581   | |
       
  1582   o |  22 f-2: rename i -> d
       
  1583   |/
       
  1584   o  2 i-2: c -move-> d
  1581   o  2 i-2: c -move-> d
  1585   |
  1582   |
  1586   ~
  1583   ~
  1587 #endif
  1584 #endif
  1588 
  1585 
  1603   o  0 i-0 initial commit: a b h
  1600   o  0 i-0 initial commit: a b h
  1604   
  1601   
  1605 #else
  1602 #else
  1606 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
  1603 BROKEN: `hg log --follow <file>` relies on filelog metadata to work
  1607   $ hg log -Gfr 'desc("mGFm-0")' d
  1604   $ hg log -Gfr 'desc("mGFm-0")' d
  1608   o    29 mGFm-0 simple merge - the other way
  1605   o  25 g-1: update d
  1609   |\
  1606   |
  1610   | o  25 g-1: update d
       
  1611   | |
       
  1612   o |  22 f-2: rename i -> d
       
  1613   |/
       
  1614   o  2 i-2: c -move-> d
  1607   o  2 i-2: c -move-> d
  1615   |
  1608   |
  1616   ~
  1609   ~
  1617 #endif
  1610 #endif
  1618 
  1611