Mercurial > hg-stable
view tests/test-convert-cvsnt-mergepoints.out @ 10251:a19d2993385d stable
subrepo: fix merging of already merged subrepos (issue1986)
This fixes a bug seen when merging a main repo which contains a subrepo when
both repos have been merged before. Each repo (main and sub) has two
branches, both of which have been merged before.
In a subrepo, if the revision to merge to is an ancestor of the current rev,
then the merge should be a noop.
Test provided by Steve Losh.
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Fri, 15 Jan 2010 21:08:04 +0100 |
parents | c66e324d3961 |
children |
line wrap: on
line source
% create cvs repository cvs -f -Q -d *REPO* init % checkout #1: add foo.txt cvs -f -Q checkout -d cvsworktmp . cvs -f -Q add foo cvs -f -Q add foo.txt cvs -f ci -f -m add foo.txt foo.txt initial revision: 1.1 % checkout #2: create MYBRANCH1 and modify foo.txt on it cvs -f -Q checkout -d cvswork foo cvs -f -q rtag -b -R MYBRANCH1 foo cvs -f -Q update -P -r MYBRANCH1 cvs -f ci -f -m bar foo.txt new revision: 1.1.2.1; previous revision: 1.1 cvs -f ci -f -m baz foo.txt new revision: 1.1.2.2; previous revision: 1.1.2.1 % create MYBRANCH1_2 and modify foo.txt some more cvs -f -q rtag -b -R -r MYBRANCH1 MYBRANCH1_2 foo cvs -f -Q update -P -r MYBRANCH1_2 cvs -f ci -f -m bazzie foo.txt new revision: 1.1.2.2.2.1; previous revision: 1.1.2.2 % create MYBRANCH1_1 and modify foo.txt yet again cvs -f -q rtag -b -R MYBRANCH1_1 foo cvs -f -Q update -P -r MYBRANCH1_1 cvs -f ci -f -m quux foo.txt new revision: 1.1.4.1; previous revision: 1.1 % merge MYBRANCH1 to MYBRANCH1_1 rcsmerge: warning: conflicts during merge cvs -f -Q update -P -jMYBRANCH1 RCS file: *REPO*/foo/foo.txt,v retrieving revision 1.1 retrieving revision 1.1.2.2 Merging differences between 1.1 and 1.1.2.2 into foo.txt cvs -f ci -f -m merge1+clobber foo.txt new revision: 1.1.4.2; previous revision: 1.1.4.1 % return to trunk and merge MYBRANCH1_2 cvs -f -Q update -P -A cvs -f -Q update -P -jMYBRANCH1_2 RCS file: *REPO*/foo/foo.txt,v retrieving revision 1.1 retrieving revision 1.1.2.2.2.1 Merging differences between 1.1 and 1.1.2.2.2.1 into foo.txt cvs -f ci -f -m merge2 foo.txt new revision: 1.2; previous revision: 1.1 collecting CVS rlog 7 log entries creating changesets 7 changeset entries --------------------- PatchSet 1 Date: Author: Branch: HEAD Tag: (none) Branchpoints: MYBRANCH1_1, MYBRANCH1 Log: foo.txt Members: foo.txt:INITIAL->1.1 --------------------- PatchSet 2 Date: Author: Branch: MYBRANCH1 Tag: (none) Parent: 1 Log: bar Members: foo.txt:1.1->1.1.2.1 --------------------- PatchSet 3 Date: Author: Branch: MYBRANCH1 Tag: (none) Branchpoints: MYBRANCH1_2 Parent: 2 Log: baz Members: foo.txt:1.1.2.1->1.1.2.2 --------------------- PatchSet 4 Date: Author: Branch: MYBRANCH1_1 Tag: (none) Parent: 1 Log: quux Members: foo.txt:1.1->1.1.4.1 --------------------- PatchSet 5 Date: Author: Branch: MYBRANCH1_2 Tag: (none) Parent: 3 Log: bazzie Members: foo.txt:1.1.2.2->1.1.2.2.2.1 --------------------- PatchSet 6 Date: Author: Branch: HEAD Tag: (none) Parents: 1,5 Log: merge Members: foo.txt:1.1->1.2 --------------------- PatchSet 7 Date: Author: Branch: MYBRANCH1_1 Tag: (none) Parents: 4,3 Log: merge Members: foo.txt:1.1.4.1->1.1.4.2