% 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 % convert to hg initializing destination proj.hg repository connecting to *REPO* scanning source... using builtin cvsps collecting CVS rlog 10 log entries creating changesets 8 changeset entries sorting... converting... 7 add file1 on trunk 6 add text 5 unrelated change 4 add text [MERGE from v1_0] 3 add text [MERGE from v1_1] 2 add file2 on trunk 1 add other text 0 add other text [MERGE from HEAD] % complete log 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 % parents of rev 3 2: 'v1_1' unrelated change 1: 'v1_0' add text % parents of rev 4 0: '' add file1 on trunk 3: 'v1_1' add text [MERGE from v1_0] % parents of rev 5 4: '' add text [MERGE from v1_1] % parents of rev 7 3: 'v1_1' add text [MERGE from v1_0] 6: '' add other text