Mercurial > hg
comparison tests/test-rebase-obsolete.t @ 27746:f0e9f38d250f
rebase: prevent creating divergence
Before this patch rebase would create divergence when you were rebasing obsolete
changesets on a destination not containing one of its successors.
This patch introduces rebase.allowdivergence to explicitly allow
divergence creation with rebase.
author | Laurent Charignon <lcharignon@fb.com> |
---|---|
date | Tue, 12 Jan 2016 13:43:41 -0800 |
parents | f9e755736b0e |
children | bb14a81ce647 |
comparison
equal
deleted
inserted
replaced
27745:d3a128e8604a | 27746:f0e9f38d250f |
---|---|
710 $ hg debugobsolete `hg log -r 11 -T '{node}\n'` --config experimental.evolution=all | 710 $ hg debugobsolete `hg log -r 11 -T '{node}\n'` --config experimental.evolution=all |
711 $ hg rebase -r . -d 10 | 711 $ hg rebase -r . -d 10 |
712 abort: all requested changesets have equivalents or were marked as obsolete | 712 abort: all requested changesets have equivalents or were marked as obsolete |
713 (to force the rebase, set the config experimental.rebaseskipobsolete to False) | 713 (to force the rebase, set the config experimental.rebaseskipobsolete to False) |
714 [255] | 714 [255] |
715 | |
716 If a rebase is going to create divergence, it should abort | |
717 | |
718 $ hg log -G | |
719 @ 11:f44da1f4954c nonrelevant | |
720 | | |
721 | o 10:121d9e3bc4c6 P | |
722 |/ | |
723 o 9:4be60e099a77 C | |
724 | | |
725 o 6:9c48361117de D | |
726 | | |
727 o 2:261e70097290 B2 | |
728 | | |
729 o 0:4a2df7238c3b A | |
730 | |
731 | |
732 $ hg up 9 | |
733 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
734 $ echo "john" > doe | |
735 $ hg add doe | |
736 $ hg commit -m "john doe" | |
737 created new head | |
738 $ hg up 10 | |
739 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
740 $ echo "foo" > bar | |
741 $ hg add bar | |
742 $ hg commit --amend -m "10'" | |
743 $ hg up 10 --hidden | |
744 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
745 $ echo "bar" > foo | |
746 $ hg add foo | |
747 $ hg commit -m "bar foo" | |
748 $ hg log -G | |
749 @ 15:73568ab6879d bar foo | |
750 | | |
751 | o 14:77d874d096a2 10' | |
752 | | | |
753 | | o 12:3eb461388009 john doe | |
754 | |/ | |
755 x | 10:121d9e3bc4c6 P | |
756 |/ | |
757 o 9:4be60e099a77 C | |
758 | | |
759 o 6:9c48361117de D | |
760 | | |
761 o 2:261e70097290 B2 | |
762 | | |
763 o 0:4a2df7238c3b A | |
764 | |
765 $ hg summary | |
766 parent: 15:73568ab6879d tip | |
767 bar foo | |
768 branch: default | |
769 commit: (clean) | |
770 update: 2 new changesets, 3 branch heads (merge) | |
771 phases: 8 draft | |
772 unstable: 1 changesets | |
773 $ hg rebase -s 10 -d 12 | |
774 abort: this rebase will cause divergence | |
775 (to force the rebase please set rebase.allowdivergence=True) | |
776 [255] | |
777 $ hg log -G | |
778 @ 15:73568ab6879d bar foo | |
779 | | |
780 | o 14:77d874d096a2 10' | |
781 | | | |
782 | | o 12:3eb461388009 john doe | |
783 | |/ | |
784 x | 10:121d9e3bc4c6 P | |
785 |/ | |
786 o 9:4be60e099a77 C | |
787 | | |
788 o 6:9c48361117de D | |
789 | | |
790 o 2:261e70097290 B2 | |
791 | | |
792 o 0:4a2df7238c3b A | |
793 | |
794 With rebase.allowdivergence=True, rebase can create divergence | |
795 | |
796 $ hg rebase -s 10 -d 12 --config rebase.allowdivergence=True | |
797 rebasing 10:121d9e3bc4c6 "P" | |
798 rebasing 15:73568ab6879d "bar foo" (tip) | |
799 $ hg summary | |
800 parent: 17:61bd55f69bc4 tip | |
801 bar foo | |
802 branch: default | |
803 commit: (clean) | |
804 update: 1 new changesets, 2 branch heads (merge) | |
805 phases: 8 draft | |
806 divergent: 2 changesets | |
807 |