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.
+ 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
pulling from ../test1
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 2 changes to 2 files
(run 'hg update' to get a working copy)
+ hg co
+ chmod +x a
+ hg ci -m 'chmod +x a' -d '0 0'
+ cd ../test1
+ echo 123
+ hg ci -m 'a updated' -d '0 0'
+ hg pull ../test2
pulling from ../test2
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
(run 'hg update' to get a working copy)
+ hg heads
changeset: 2:3ef543305655
tag: tip
parent: 0:22a449e20da5
user: test
date: Thu Jan 1 00:00:00 1970
summary: chmod +x a
changeset: 1:c6ecefc45368
user: test
date: Thu Jan 1 00:00:00 1970
summary: a updated
+ hg history
changeset: 2:3ef543305655
tag: tip
parent: 0:22a449e20da5
user: test
date: Thu Jan 1 00:00:00 1970
summary: chmod +x a
changeset: 1:c6ecefc45368
user: test
date: Thu Jan 1 00:00:00 1970
summary: a updated
changeset: 0:22a449e20da5
user: test
date: Thu Jan 1 00:00:00 1970
summary: added a b
+ hg -v co -m
resolving manifests
merging a
resolving a
+ ls -l ../test1/a ../test2/a
+ cut -b 0-10
-rwxr-x---
-rwxr-x---