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