|
|
% create cvs repository with one project
|
|
|
cvs -f -q -d *REPO* init
|
|
|
% populate cvs repository
|
|
|
cvs -f -Q co proj
|
|
|
cvs -f -Q add file1
|
|
|
cvs -f ci -madd file1 on trunk
|
|
|
% create two release branches
|
|
|
cvs -f -q tag -b v1_0
|
|
|
T file1
|
|
|
cvs -f -q tag -b v1_1
|
|
|
T file1
|
|
|
% modify file1 on branch v1_0
|
|
|
cvs -f -Q update -rv1_0
|
|
|
cvs -f ci -madd text
|
|
|
% make unrelated change on v1_1
|
|
|
cvs -f -Q update -rv1_1
|
|
|
cvs -f -Q add unrelated
|
|
|
cvs -f ci -munrelated change
|
|
|
% merge file1 to v1_1
|
|
|
cvs -f -Q update -jv1_0
|
|
|
RCS file: *REPO*/proj/file1,v
|
|
|
retrieving revision 1.1
|
|
|
retrieving revision 1.1.2.1
|
|
|
Merging differences between 1.1 and 1.1.2.1 into file1
|
|
|
cvs -f ci -madd text [MERGE from v1_0]
|
|
|
% merge change to trunk
|
|
|
cvs -f -Q update -A
|
|
|
cvs -f -Q update -jv1_1
|
|
|
RCS file: *REPO*/proj/file1,v
|
|
|
retrieving revision 1.1
|
|
|
retrieving revision 1.1.4.1
|
|
|
Merging differences between 1.1 and 1.1.4.1 into file1
|
|
|
cvs -f ci -madd text [MERGE from v1_1]
|
|
|
% non-merged change on trunk
|
|
|
cvs -f -Q add file2
|
|
|
cvs -f ci -madd file2 on trunk file2
|
|
|
% change on trunk to backport
|
|
|
cvs -f ci -madd other text file1
|
|
|
revision 1.3
|
|
|
add other text
|
|
|
----------------------------
|
|
|
revision 1.2
|
|
|
add text [MERGE from v1_1]
|
|
|
----------------------------
|
|
|
revision 1.1
|
|
|
branches: 1.1.2; 1.1.4;
|
|
|
add file1 on trunk
|
|
|
----------------------------
|
|
|
revision 1.1.4.1
|
|
|
add text [MERGE from v1_0]
|
|
|
----------------------------
|
|
|
revision 1.1.2.1
|
|
|
add text
|
|
|
=============================================================================
|
|
|
% backport trunk change to v1_1
|
|
|
cvs -f -Q update -rv1_1
|
|
|
cvs -f -Q update -j1.2 -j1.3 file1
|
|
|
RCS file: *REPO*/proj/file1,v
|
|
|
retrieving revision 1.2
|
|
|
retrieving revision 1.3
|
|
|
Merging differences between 1.2 and 1.3 into file1
|
|
|
cvs -f ci -madd other text [MERGE from HEAD] file1
|
|
|
% fix bug on v1_1, merge to trunk with error
|
|
|
cvs -f -Q update -rv1_1
|
|
|
cvs -f -Q tag unmerged
|
|
|
cvs -f ci -mfix file1
|
|
|
cvs -f -Q update -A
|
|
|
cvs -f -Q update -junmerged -jv1_1
|
|
|
RCS file: *REPO*/proj/file1,v
|
|
|
retrieving revision 1.1.4.2
|
|
|
retrieving revision 1.1.4.3
|
|
|
Merging differences between 1.1.4.2 and 1.1.4.3 into file1
|
|
|
cvs -f ci -mfix file1 [MERGE from v1-1]
|
|
|
% convert to hg
|
|
|
warning: CVS commit message references non-existent branch 'v1-1':
|
|
|
fix file1 [MERGE from v1-1]
|
|
|
initializing destination proj.hg repository
|
|
|
connecting to *REPO*
|
|
|
scanning source...
|
|
|
using builtin cvsps
|
|
|
collecting CVS rlog
|
|
|
12 log entries
|
|
|
creating changesets
|
|
|
10 changeset entries
|
|
|
sorting...
|
|
|
converting...
|
|
|
9 add file1 on trunk
|
|
|
8 add text
|
|
|
7 unrelated change
|
|
|
6 add text [MERGE from v1_0]
|
|
|
5 add text [MERGE from v1_1]
|
|
|
4 add file2 on trunk
|
|
|
3 add other text
|
|
|
2 add other text [MERGE from HEAD]
|
|
|
1 fix file1
|
|
|
0 fix file1 [MERGE from v1-1]
|
|
|
% complete log
|
|
|
9: '' fix file1 [MERGE from v1-1]
|
|
|
8: 'v1_1' fix file1
|
|
|
7: 'v1_1' add other text [MERGE from HEAD]
|
|
|
6: '' add other text
|
|
|
5: '' add file2 on trunk
|
|
|
4: '' add text [MERGE from v1_1]
|
|
|
3: 'v1_1' add text [MERGE from v1_0]
|
|
|
2: 'v1_1' unrelated change
|
|
|
1: 'v1_0' add text
|
|
|
0: '' add file1 on trunk
|
|
|
% graphical log
|
|
|
o 9: '' fix file1 [MERGE from v1-1]
|
|
|
|
|
|
|
| o 8: 'v1_1' fix file1
|
|
|
| |
|
|
|
| o 7: 'v1_1' add other text [MERGE from HEAD]
|
|
|
|/|
|
|
|
o | 6: '' add other text
|
|
|
| |
|
|
|
o | 5: '' add file2 on trunk
|
|
|
| |
|
|
|
o | 4: '' add text [MERGE from v1_1]
|
|
|
|\|
|
|
|
| o 3: 'v1_1' add text [MERGE from v1_0]
|
|
|
| |\
|
|
|
+---o 2: 'v1_1' unrelated change
|
|
|
| |
|
|
|
| o 1: 'v1_0' add text
|
|
|
|/
|
|
|
o 0: '' add file1 on trunk
|
|
|
|
|
|
|