Fix undo after aborted commit bug
Commit would overwrite undo.dirstate unconditionally, so an undo after
an aborted commit would restore the dirstate from the aborted commit
and not the prior transaction.
This copies dirstate to journal.dirstate and moves it after a
successful transaction.
#!/bin/sh -ex
umask 027
mkdir test1
cd test1
hg init
touch a b
hg add a b
hg ci -m "added a b" -d "0 0"
cd ..
mkdir test2
cd test2
hg init
hg pull ../test1
hg co
chmod +x a
hg ci -m "chmod +x a" -d "0 0"
cd ../test1
echo 123 >>a
hg ci -m "a updated" -d "0 0"
hg pull ../test2
hg heads
hg history
hg -v co -m
ls -l ../test[12]/a > foo
cut -b 0-10 < foo