% create cvs repository with one project cvs -f -d *REPO* init cvs -f -q co proj % create file1 on the trunk cvs -f -Q add file1 cvs -f ci -madd file1 on trunk file1 % create two branches cvs -f -q tag -b v1_0 T file1 cvs -f -q tag -b v1_1 T file1 % create file2 on branch v1_0 cvs -f -Q up -rv1_0 cvs -f -Q add file2 cvs -f ci -madd file2 file2 % create file3, file4 on branch v1_1 cvs -f -Q up -rv1_1 cvs -f -Q add file3 file4 cvs -f ci -madd file3, file4 on branch v1_1 file3 file4 % merge file2 from v1_0 to v1_1 cvs -f -Q up -jv1_0 cvs -f ci -mMERGE from v1_0: add file2 % create branch v1_2 cvs -f -Q up -A cvs -f -q tag -b v1_2 T file1 % create file5 on branch v1_2 cvs -f -Q up -rv1_2 cvs -f ci -madd file5 on v1_2 % create file6 on trunk post-v1_2 cvs -f -Q up -A cvs -f -Q add file6 cvs -f ci -madd file6 on trunk post-v1_2 % merge file5 from v1_2 to trunk cvs -f -Q up -A cvs -f -Q up -jv1_2 file5 cvs -f ci -mMERGE from v1_2: add file5 % merge file6 from trunk to v1_2 cvs -f -Q up -rv1_2 cvs -f up -jHEAD file6 U file6 cvs -f ci -mMERGE from HEAD: add file6 % cvs rlog output RCS file: *REPO*/proj/file1,v revision 1.1 RCS file: *REPO*/proj/Attic/file2,v revision 1.1 revision 1.1.4.2 revision 1.1.4.1 revision 1.1.2.1 RCS file: *REPO*/proj/Attic/file3,v revision 1.1 revision 1.1.2.1 RCS file: *REPO*/proj/Attic/file4,v revision 1.1 revision 1.1.2.1 RCS file: *REPO*/proj/file5,v revision 1.2 revision 1.1 revision 1.1.2.1 RCS file: *REPO*/proj/file6,v revision 1.1 revision 1.1.2.2 revision 1.1.2.1 % convert to hg (#1) initializing destination proj.hg repository connecting to *REPO* scanning source... using builtin cvsps collecting CVS rlog 15 log entries creating changesets 8 changeset entries sorting... converting... 7 add file1 on trunk 6 add file2 5 add file3, file4 on branch v1_1 4 MERGE from v1_0: add file2 3 add file5 on v1_2 2 add file6 on trunk post-v1_2 1 MERGE from v1_2: add file5 0 MERGE from HEAD: add file6 % hg glog output (#1) o 7 MERGE from HEAD: add file6 | | o 6 MERGE from v1_2: add file5 | | | o 5 add file6 on trunk post-v1_2 | | o | 4 add file5 on v1_2 |/ | o 3 MERGE from v1_0: add file2 | | | o 2 add file3, file4 on branch v1_1 |/ | o 1 add file2 |/ o 0 add file1 on trunk % convert to hg (#2: with merge detection) initializing destination proj.hg2 repository connecting to *REPO* scanning source... using builtin cvsps collecting CVS rlog 15 log entries creating changesets 8 changeset entries sorting... converting... 7 add file1 on trunk 6 add file2 5 add file3, file4 on branch v1_1 4 MERGE from v1_0: add file2 3 add file5 on v1_2 2 add file6 on trunk post-v1_2 1 MERGE from v1_2: add file5 0 MERGE from HEAD: add file6 % hg glog output (#2) o 7 MERGE from HEAD: add file6 |\ | o 6 MERGE from v1_2: add file5 | | | o 5 add file6 on trunk post-v1_2 | | o | 4 add file5 on v1_2 |/ | o 3 MERGE from v1_0: add file2 | |\ +---o 2 add file3, file4 on branch v1_1 | | | o 1 add file2 |/ o 0 add file1 on trunk