Show More
@@ -400,7 +400,10 b' def _merge_copies_dict(minor, major, isa' | |||
|
400 | 400 | elif changes is not None and dest in changes.merged: |
|
401 | 401 | minor[dest] = value |
|
402 | 402 | elif not isancestor(new_tt, other_tt): |
|
403 |
|
|
|
403 | if value[1] is not None: | |
|
404 | minor[dest] = value | |
|
405 | elif isancestor(other_tt, new_tt): | |
|
406 | minor[dest] = value | |
|
404 | 407 | |
|
405 | 408 | |
|
406 | 409 | def _revinfo_getter_extra(repo): |
@@ -585,6 +585,50 b' copy tracing chain.' | |||
|
585 | 585 | |
|
586 | 586 | $ hg up null --quiet |
|
587 | 587 | |
|
588 | Merging a branch where a rename was deleted with a branch where the same file was renamed | |
|
589 | ------------------------------------------------------------------------------------------ | |
|
590 | ||
|
591 | Create a "conflicting" merge where `d` get removed on one branch before its | |
|
592 | rename information actually conflict with the other branch. | |
|
593 | ||
|
594 | (the copy information from the branch that was not deleted should win). | |
|
595 | ||
|
596 | $ hg up 'desc("i-0")' | |
|
597 | 3 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
598 | $ hg mv b d | |
|
599 | $ hg ci -m "h-1: b -(move)-> d" | |
|
600 | created new head | |
|
601 | ||
|
602 | $ hg up 'desc("c-1")' | |
|
603 | 1 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
|
604 | $ hg merge 'desc("h-1")' | |
|
605 | 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
|
606 | (branch merge, don't forget to commit) | |
|
607 | $ hg ci -m "mCH-delete-before-conflict-m-0" | |
|
608 | ||
|
609 | $ hg up 'desc("h-1")' | |
|
610 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
611 | $ hg merge 'desc("c-1")' | |
|
612 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
|
613 | (branch merge, don't forget to commit) | |
|
614 | $ hg ci -m "mHC-delete-before-conflict-m-0" | |
|
615 | created new head | |
|
616 | $ hg log -G --rev '::(desc("mCH-delete-before-conflict-m")+desc("mHC-delete-before-conflict-m"))' | |
|
617 | @ 36 mHC-delete-before-conflict-m-0 | |
|
618 | |\ | |
|
619 | +---o 35 mCH-delete-before-conflict-m-0 | |
|
620 | | |/ | |
|
621 | | o 34 h-1: b -(move)-> d | |
|
622 | | | | |
|
623 | o | 6 c-1 delete d | |
|
624 | | | | |
|
625 | o | 2 i-2: c -move-> d | |
|
626 | | | | |
|
627 | o | 1 i-1: a -move-> c | |
|
628 | |/ | |
|
629 | o 0 i-0 initial commit: a b h | |
|
630 | ||
|
631 | ||
|
588 | 632 | |
|
589 | 633 | Test that sidedata computations during upgrades are correct |
|
590 | 634 |
========================================================== |
@@ -801,6 +845,20 b' We upgrade a repository that is not usin' | |||
|
801 | 845 | entry-0014 size 14 |
|
802 | 846 | '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
803 | 847 | salvaged : d, ; |
|
848 | ##### revision 34 ##### | |
|
849 | 1 sidedata entries | |
|
850 | entry-0014 size 24 | |
|
851 | '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00bd' | |
|
852 | removed : b, ; | |
|
853 | added p1: d, b; | |
|
854 | ##### revision 35 ##### | |
|
855 | 1 sidedata entries | |
|
856 | entry-0014 size 4 | |
|
857 | '\x00\x00\x00\x00' | |
|
858 | ##### revision 36 ##### | |
|
859 | 1 sidedata entries | |
|
860 | entry-0014 size 4 | |
|
861 | '\x00\x00\x00\x00' | |
|
804 | 862 | |
|
805 | 863 | #endif |
|
806 | 864 | |
@@ -1558,3 +1616,51 b' copy tracing chain.' | |||
|
1558 | 1616 | A d |
|
1559 | 1617 | $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mCB-revert-m-0")' |
|
1560 | 1618 | $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBC-revert-m-0")' |
|
1619 | ||
|
1620 | ||
|
1621 | Merging a branch where a rename was deleted with a branch where the same file was renamed | |
|
1622 | ------------------------------------------------------------------------------------------ | |
|
1623 | ||
|
1624 | Create a "conflicting" merge where `d` get removed on one branch before its | |
|
1625 | rename information actually conflict with the other branch. | |
|
1626 | ||
|
1627 | (the copy information from the branch that was not deleted should win). | |
|
1628 | ||
|
1629 | $ hg log -G --rev '::(desc("mCH-delete-before-conflict-m")+desc("mHC-delete-before-conflict-m"))' | |
|
1630 | @ 36 mHC-delete-before-conflict-m-0 | |
|
1631 | |\ | |
|
1632 | +---o 35 mCH-delete-before-conflict-m-0 | |
|
1633 | | |/ | |
|
1634 | | o 34 h-1: b -(move)-> d | |
|
1635 | | | | |
|
1636 | o | 6 c-1 delete d | |
|
1637 | | | | |
|
1638 | o | 2 i-2: c -move-> d | |
|
1639 | | | | |
|
1640 | o | 1 i-1: a -move-> c | |
|
1641 | |/ | |
|
1642 | o 0 i-0 initial commit: a b h | |
|
1643 | ||
|
1644 | ||
|
1645 | $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCH-delete-before-conflict-m")' | |
|
1646 | A d | |
|
1647 | b (no-compatibility no-changeset !) | |
|
1648 | R a | |
|
1649 | R b | |
|
1650 | $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mHC-delete-before-conflict-m")' | |
|
1651 | A d | |
|
1652 | b | |
|
1653 | R a | |
|
1654 | R b | |
|
1655 | $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCH-delete-before-conflict-m")' | |
|
1656 | A d | |
|
1657 | b | |
|
1658 | R b | |
|
1659 | $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mHC-delete-before-conflict-m")' | |
|
1660 | A d | |
|
1661 | b | |
|
1662 | R b | |
|
1663 | $ hg status --copies --rev 'desc("h-1")' --rev 'desc("mCH-delete-before-conflict-m")' | |
|
1664 | R a | |
|
1665 | $ hg status --copies --rev 'desc("h-1")' --rev 'desc("mHC-delete-before-conflict-m")' | |
|
1666 | R a |
@@ -502,7 +502,7 b' Try merging the other direction too' | |||
|
502 | 502 | $ hg debugpathcopies 2 4 |
|
503 | 503 | x -> z (no-filelog !) |
|
504 | 504 | $ hg debugpathcopies 0 4 |
|
505 | x -> z (filelog !) | |
|
505 | x -> z (no-changeset no-compatibility !) | |
|
506 | 506 | $ hg debugpathcopies 1 5 |
|
507 | 507 | $ hg debugpathcopies 2 5 |
|
508 | 508 | x -> z (no-filelog !) |
General Comments 0
You need to be logged in to leave comments.
Login now