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.
#!/bin/sh
hg init repo
cd repo
cat > a <<EOF
c
c
a
a
b
a
a
c
c
EOF
hg ci -Am adda
cat > a <<EOF
c
c
a
a
dd
a
a
c
c
EOF
echo '% default context'
hg diff --nodates
echo '% invalid --unified'
hg diff --nodates -U foo
echo '% --unified=2'
hg diff --nodates -U 2
echo '% diff.unified=2'
hg --config diff.unified=2 diff --nodates
echo '% diff.unified=2 --unified=1'
hg diff --nodates -U 1
echo '% invalid diff.unified'
hg --config diff.unified=foo diff --nodates
echo % test off-by-one error with diff -p
hg init diffp
cd diffp
echo a > a
hg ci -Ama
rm a
echo b > a
echo a >> a
echo c >> a
hg diff -U0 -p --nodates
exit 0