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 |
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")' |