|
|
#!/bin/sh
|
|
|
|
|
|
echo '# basic operation'
|
|
|
hg init basic
|
|
|
cd basic
|
|
|
echo a > a
|
|
|
hg commit -d '0 0' -A -m a
|
|
|
echo b >> a
|
|
|
hg commit -d '1 0' -m b
|
|
|
|
|
|
hg backout -d '2 0' tip
|
|
|
cat a
|
|
|
|
|
|
echo '# file that was removed is recreated'
|
|
|
cd ..
|
|
|
hg init remove
|
|
|
cd remove
|
|
|
|
|
|
echo content > a
|
|
|
hg commit -d '0 0' -A -m a
|
|
|
|
|
|
hg rm a
|
|
|
hg commit -d '1 0' -m b
|
|
|
|
|
|
hg backout -d '2 0' --merge tip
|
|
|
cat a
|
|
|
|
|
|
echo '# backout of backout is as if nothing happened'
|
|
|
|
|
|
hg backout -d '3 0' --merge tip
|
|
|
cat a 2>/dev/null || echo cat: a: No such file or directory
|
|
|
|
|
|
echo '# backout with merge'
|
|
|
cd ..
|
|
|
hg init merge
|
|
|
cd merge
|
|
|
|
|
|
echo line 1 > a
|
|
|
hg commit -d '0 0' -A -m a
|
|
|
|
|
|
echo line 2 >> a
|
|
|
hg commit -d '1 0' -m b
|
|
|
|
|
|
echo line 3 >> a
|
|
|
hg commit -d '2 0' -m c
|
|
|
|
|
|
hg backout --merge -d '3 0' 1
|
|
|
hg commit -d '4 0' -m d
|
|
|
cat a
|
|
|
|
|
|
echo '# backout should not back out subsequent changesets'
|
|
|
hg init onecs
|
|
|
cd onecs
|
|
|
echo 1 > a
|
|
|
hg commit -d '0 0' -A -m a
|
|
|
echo 2 >> a
|
|
|
hg commit -d '1 0' -m b
|
|
|
echo 1 > b
|
|
|
hg commit -d '2 0' -A -m c
|
|
|
hg backout -d '3 0' 1
|
|
|
hg locate b
|
|
|
|
|
|
cd ..
|
|
|
hg init m
|
|
|
cd m
|
|
|
echo a > a
|
|
|
hg commit -d '0 0' -A -m a
|
|
|
echo b > b
|
|
|
hg commit -d '1 0' -A -m b
|
|
|
echo c > c
|
|
|
hg commit -d '2 0' -A -m b
|
|
|
hg update 1
|
|
|
echo d > d
|
|
|
hg commit -d '3 0' -A -m c
|
|
|
hg merge 2
|
|
|
hg commit -d '4 0' -A -m d
|
|
|
|
|
|
echo '# backout of merge should fail'
|
|
|
|
|
|
hg backout 4
|
|
|
|
|
|
echo '# backout of merge with bad parent should fail'
|
|
|
|
|
|
hg backout --parent 0 4
|
|
|
|
|
|
echo '# backout of non-merge with parent should fail'
|
|
|
|
|
|
hg backout --parent 0 3
|
|
|
|
|
|
echo '# backout with valid parent should be ok'
|
|
|
|
|
|
hg backout -d '5 0' --parent 2 4
|
|
|
|
|
|
hg rollback
|
|
|
hg update -C
|
|
|
|
|
|
hg backout -d '6 0' --parent 3 4
|
|
|
|
|
|
exit 0
|
|
|
|