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.
% convert trunk and branches
initializing destination A-hg repository
scanning source...
sorting...
converting...
13 createtrunk
12 moved1
11 moved1
10 moved2
9 changeb and rm d2
8 changeb and rm d2
7 moved1again
6 moved1again
5 copyfilefrompast
4 copydirfrompast
3 add d3
2 copy dir and remove subdir
1 add d4old
0 rename d4old into d4new
o 13 rename d4old into d4new files: d4new/g d4old/g
|
o 12 add d4old files: d4old/g
|
o 11 copy dir and remove subdir files: d3/d31/e d4/d31/e d4/f
|
o 10 add d3 files: d3/d31/e d3/f
|
o 9 copydirfrompast files: d2/d
|
o 8 copyfilefrompast files: d
|
o 7 moved1again files: d1/b d1/c
|
| o 6 moved1again files:
| |
o | 5 changeb and rm d2 files: d1/b d2/d
| |
| o 4 changeb and rm d2 files: b
| |
o | 3 moved2 files: d2/d
| |
o | 2 moved1 files: d1/b d1/c
| |
| o 1 moved1 files: b c
|
o 0 createtrunk files:
% check move copy records
A d4new/g
d4old/g
R d4old/g
% check branches
default 13:
d1 6:
% convert files being replaced by directories
initializing destination hg-repo repository
scanning source...
sorting...
converting...
3 initial
2 clobber symlink
1 clobber1
0 clobber2
% manifest before
644 a
644 d/b
644 @ dlink
644 @ dlink2
644 dlink3
% manifest after clobber1
644 a/b
644 d/b
644 dlink/b
644 @ dlink2
644 dlink3
% manifest after clobber2
644 a/b
644 d/b
644 dlink/b
644 @ dlink2
644 @ dlink3
% try updating
% test convert progress bar
scanning [ <=> ] 1
scanning [ <=> ] 2
scanning [ <=> ] 3
scanning [ <=> ] 4
converting [ ] 0/4
retrieving file [==========> ] 1/5
retrieving file [=====================> ] 2/5
retrieving file [=================================> ] 3/5
retrieving file [============================================> ] 4/5
retrieving file [========================================================>] 5/5
converting [==============> ] 1/4
scanning paths [ ] 0/1
retrieving file [========================================================>] 1/1
converting [==============================> ] 2/4
scanning paths [ ] 0/2
scanning paths [============================> ] 1/2
retrieving file [=============> ] 1/4
retrieving file [===========================> ] 2/4
retrieving file [=========================================> ] 3/4
retrieving file [========================================================>] 4/4
converting [=============================================> ] 3/4
scanning paths [ ] 0/1
retrieving file [========================================================>] 1/1
initializing destination hg-progress repository
scanning source...
sorting...
converting...
3 initial
2 clobber symlink
1 clobber1
0 clobber2