debugbuilddag: build a changelog dag from a concise description
Useful in tests to quickly build a complex DAG in an empty repo.
Handles local tags and named branches.
Options to, at each rev,
- create a new file,
- overwrite the same file,
- append to the same file,
- write to a specific line in a mergeable file.
Can run shell commands during DAG buildup.
% create cvs repository
% create source directory
% import source directory
N src/a
N src/b/c
No conflicts created by this import
% checkout source directory
U src/a
U src/b/c
% commit a new revision changing b/c
checking in src/b/c,v
% convert fresh repo
initializing destination src-hg repository
connecting to cvsrepo
scanning source...
collecting CVS rlog
5 log entries
cvslog hook: 5 entries
creating changesets
3 changeset entries
cvschangesets hook: 3 changesets
sorting...
converting...
2 Initial revision
1 import
0 ci0
updating tags
a
c
c
% convert fresh repo with --filemap
initializing destination src-filemap repository
connecting to cvsrepo
scanning source...
collecting CVS rlog
5 log entries
cvslog hook: 5 entries
creating changesets
3 changeset entries
cvschangesets hook: 3 changesets
sorting...
converting...
2 Initial revision
1 import
filtering out empty revision
rolling back to revision 0 (undo commit)
0 ci0
updating tags
c
c
2 update tags files: .hgtags
1 ci0 files: b/c
0 Initial revision files: b/c
% convert full repository (issue1649)
U srcfull/src/a
U srcfull/src/b/c
CVS
CVSROOT
src
initializing destination srcfull-hg repository
connecting to cvsrepo
scanning source...
collecting CVS rlog
creating changesets
4 changeset entries
sorting...
converting...
updating tags
a
c
c
% commit new file revisions
checking in src/a,v
checking in src/b/c,v
% convert again
connecting to cvsrepo
scanning source...
collecting CVS rlog
7 log entries
cvslog hook: 7 entries
creating changesets
4 changeset entries
cvschangesets hook: 4 changesets
sorting...
converting...
0 ci1
a
a
c
c
c
% convert again with --filemap
connecting to cvsrepo
scanning source...
collecting CVS rlog
7 log entries
cvslog hook: 7 entries
creating changesets
4 changeset entries
cvschangesets hook: 4 changesets
sorting...
converting...
0 ci1
c
c
c
3 ci1 files: b/c
2 update tags files: .hgtags
1 ci0 files: b/c
0 Initial revision files: b/c
% commit branch
U b/c
T a
T b/c
checking in src/b/c,v
% convert again
connecting to cvsrepo
scanning source...
collecting CVS rlog
8 log entries
cvslog hook: 8 entries
creating changesets
5 changeset entries
cvschangesets hook: 5 changesets
sorting...
converting...
0 ci2
c
d
% convert again with --filemap
connecting to cvsrepo
scanning source...
collecting CVS rlog
8 log entries
cvslog hook: 8 entries
creating changesets
5 changeset entries
cvschangesets hook: 5 changesets
sorting...
converting...
0 ci2
c
d
4 ci2 files: b/c
3 ci1 files: b/c
2 update tags files: .hgtags
1 ci0 files: b/c
0 Initial revision files: b/c
% commit a new revision with funny log message
checking in src/a,v
% convert again
connecting to cvsrepo
scanning source...
collecting CVS rlog
9 log entries
cvslog hook: 9 entries
creating changesets
6 changeset entries
cvschangesets hook: 6 changesets
sorting...
converting...
0 funny
o 6 (branch) funny
| ----------------------------
| log message files: a
o 5 (branch) ci2 files: b/c
o 4 () ci1 files: a b/c
|
o 3 () update tags files: .hgtags
|
o 2 () ci0 files: b/c
|
| o 1 (INITIAL) import files:
|/
o 0 () Initial revision files: a b/c
% testing debugcvsps
collecting CVS rlog
9 log entries
cvslog hook: 9 entries
creating changesets
8 changeset entries
cvschangesets hook: 8 changesets
---------------------
PatchSet 1
Date:
Author:
Branch: HEAD
Tag: (none)
Branchpoints: INITIAL
Log:
Initial revision
Members:
a:INITIAL->1.1
---------------------
PatchSet 2
Date:
Author:
Branch: HEAD
Tag: (none)
Branchpoints: INITIAL, branch
Log:
Initial revision
Members:
b/c:INITIAL->1.1
---------------------
PatchSet 3
Date:
Author:
Branch: INITIAL
Tag: start
Log:
import
Members:
a:1.1->1.1.1.1
b/c:1.1->1.1.1.1
---------------------
PatchSet 4
Date:
Author:
Branch: HEAD
Tag: (none)
Log:
ci0
Members:
b/c:1.1->1.2
---------------------
PatchSet 5
Date:
Author:
Branch: HEAD
Tag: (none)
Branchpoints: branch
Log:
ci1
Members:
a:1.1->1.2
---------------------
PatchSet 6
Date:
Author:
Branch: HEAD
Tag: (none)
Log:
ci1
Members:
b/c:1.2->1.3
---------------------
PatchSet 7
Date:
Author:
Branch: branch
Tag: (none)
Log:
ci2
Members:
b/c:1.1->1.1.2.1
---------------------
PatchSet 8
Date:
Author:
Branch: branch
Tag: (none)
Log:
funny
----------------------------
log message
Members:
a:1.2->1.2.2.1