##// END OF EJS Templates
mq: use dirstateguard instead of dirstate.invalidate (qpush)...
mq: use dirstateguard instead of dirstate.invalidate (qpush) Before this patch, "mq.queue.apply()" uses "dirstate.invalidate()" as a kind of "restore .hg/dirstate to the original status" during afailure. But it just discards changes in memory, and doesn't actually restore ".hg/dirstate". Then, it can't work as expected, if "dirstate.write()" is executed while processing. This patch uses "dirstateguard" instead of "dirstate.invalidate()" to restore ".hg/dirstate" at failure even if "dirstate.write()" is executed before failure. This is a part of preparations to fix the issue that the recent (in memory) dirstate isn't visible to external processes (e.g. "precommit" hook).

File last commit:

r12156:4c94b6d0 default
r24996:58308dde default
Show More
test-revert-unknown.t
29 lines | 319 B | text/troff | Tads3Lexer
/ tests / test-revert-unknown.t
Nicolas Dumazet
tests: unify test-revert-unknown
r12111 $ hg init
$ touch unknown
$ touch a
$ hg add a
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -m "1"
Nicolas Dumazet
tests: unify test-revert-unknown
r12111
$ touch b
$ hg add b
Martin Geisler
tests: remove unneeded -d flags...
r12156 $ hg ci -m "2"
Nicolas Dumazet
tests: unify test-revert-unknown
r12111
Should show unknown
$ hg status
? unknown
$ hg revert -r 0 --all
removing b
Should show unknown and b removed
$ hg status
R b
? unknown
Should show a and unknown
$ ls
a
unknown