Show More
@@ -864,7 +864,7 b' class header(object):' | |||||
864 | allhunks_re = re.compile('(?:index|deleted file) ') |
|
864 | allhunks_re = re.compile('(?:index|deleted file) ') | |
865 | pretty_re = re.compile('(?:new file|deleted file) ') |
|
865 | pretty_re = re.compile('(?:new file|deleted file) ') | |
866 | special_re = re.compile('(?:index|deleted|copy|rename|new mode) ') |
|
866 | special_re = re.compile('(?:index|deleted|copy|rename|new mode) ') | |
867 | newfile_re = re.compile('(?:new file)') |
|
867 | newfile_re = re.compile('(?:new file|copy to)') | |
868 |
|
868 | |||
869 | def __init__(self, header): |
|
869 | def __init__(self, header): | |
870 | self.header = header |
|
870 | self.header = header |
@@ -789,3 +789,100 b' TODO: Fix this on Windows. See issue 202' | |||||
789 | abort: cannot split an empty revision |
|
789 | abort: cannot split an empty revision | |
790 | [255] |
|
790 | [255] | |
791 | #endif |
|
791 | #endif | |
|
792 | ||||
|
793 | Test that splitting copies works properly (issue5723) | |||
|
794 | ---------------------------------------------------- | |||
|
795 | ||||
|
796 | $ hg init $TESTTMP/issue5723-cp | |||
|
797 | $ cd $TESTTMP/issue5723-cp | |||
|
798 | $ printf '1\n2\n' > file | |||
|
799 | $ hg ci -qAm initial | |||
|
800 | $ hg cp file file2 | |||
|
801 | $ printf 'a\nb\n1\n2\n3\n4\n' > file2 | |||
|
802 | Also modify 'file' to prove that the changes aren't being pulled in | |||
|
803 | accidentally. | |||
|
804 | $ printf 'this is the new contents of "file"' > file | |||
|
805 | $ cat > $TESTTMP/messages <<EOF | |||
|
806 | > split1, keeping "file" and only the numbered lines in file2 | |||
|
807 | > -- | |||
|
808 | > split2, keeping the lettered lines in file2 | |||
|
809 | > EOF | |||
|
810 | $ hg ci -m 'copy file->file2, modify both' | |||
|
811 | $ printf 'f\ny\nn\na\na\n' | hg split | |||
|
812 | diff --git a/file b/file | |||
|
813 | 1 hunks, 2 lines changed | |||
|
814 | examine changes to 'file'? | |||
|
815 | (enter ? for help) [Ynesfdaq?] f | |||
|
816 | ||||
|
817 | diff --git a/file b/file2 | |||
|
818 | copy from file | |||
|
819 | copy to file2 | |||
|
820 | 2 hunks, 4 lines changed | |||
|
821 | examine changes to 'file' and 'file2'? | |||
|
822 | (enter ? for help) [Ynesfdaq?] y | |||
|
823 | ||||
|
824 | @@ -0,0 +1,2 @@ | |||
|
825 | +a | |||
|
826 | +b | |||
|
827 | record change 2/3 to 'file2'? | |||
|
828 | (enter ? for help) [Ynesfdaq?] n | |||
|
829 | ||||
|
830 | @@ -2,0 +5,2 @@ 2 | |||
|
831 | +3 | |||
|
832 | +4 | |||
|
833 | record change 3/3 to 'file2'? | |||
|
834 | (enter ? for help) [Ynesfdaq?] a | |||
|
835 | ||||
|
836 | EDITOR: HG: Splitting 41c861dfa61e. Write commit message for the first split changeset. | |||
|
837 | EDITOR: copy file->file2, modify both | |||
|
838 | EDITOR: | |||
|
839 | EDITOR: | |||
|
840 | EDITOR: HG: Enter commit message. Lines beginning with 'HG:' are removed. | |||
|
841 | EDITOR: HG: Leave message empty to abort commit. | |||
|
842 | EDITOR: HG: -- | |||
|
843 | EDITOR: HG: user: test | |||
|
844 | EDITOR: HG: branch 'default' | |||
|
845 | EDITOR: HG: added file2 | |||
|
846 | EDITOR: HG: changed file | |||
|
847 | created new head | |||
|
848 | diff --git a/file2 b/file2 | |||
|
849 | 1 hunks, 2 lines changed | |||
|
850 | examine changes to 'file2'? | |||
|
851 | (enter ? for help) [Ynesfdaq?] a | |||
|
852 | ||||
|
853 | EDITOR: HG: Splitting 41c861dfa61e. So far it has been split into: | |||
|
854 | EDITOR: HG: - 4b19e06610eb: split1, keeping "file" and only the numbered lines in file2 | |||
|
855 | EDITOR: HG: Write commit message for the next split changeset. | |||
|
856 | EDITOR: copy file->file2, modify both | |||
|
857 | EDITOR: | |||
|
858 | EDITOR: | |||
|
859 | EDITOR: HG: Enter commit message. Lines beginning with 'HG:' are removed. | |||
|
860 | EDITOR: HG: Leave message empty to abort commit. | |||
|
861 | EDITOR: HG: -- | |||
|
862 | EDITOR: HG: user: test | |||
|
863 | EDITOR: HG: branch 'default' | |||
|
864 | EDITOR: HG: changed file2 | |||
|
865 | saved backup bundle to $TESTTMP/issue5723-cp/.hg/strip-backup/41c861dfa61e-467e8d3c-split.hg (obsstore-off !) | |||
|
866 | $ hg log -T '{desc}: {files%"{file} "}\n' | |||
|
867 | split2, keeping the lettered lines in file2: file2 | |||
|
868 | split1, keeping "file" and only the numbered lines in file2: file file2 | |||
|
869 | initial: file | |||
|
870 | $ cat file2 | |||
|
871 | a | |||
|
872 | b | |||
|
873 | 1 | |||
|
874 | 2 | |||
|
875 | 3 | |||
|
876 | 4 | |||
|
877 | $ hg cat -r ".^" file2 | |||
|
878 | 1 | |||
|
879 | 2 | |||
|
880 | 3 | |||
|
881 | 4 | |||
|
882 | $ hg cat -r . file2 | |||
|
883 | a | |||
|
884 | b | |||
|
885 | 1 | |||
|
886 | 2 | |||
|
887 | 3 | |||
|
888 | 4 |
General Comments 0
You need to be logged in to leave comments.
Login now