##// 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:

r23277:581d3bc0 default
r24996:58308dde default
Show More
test-hup.t
47 lines | 923 B | text/troff | Tads3Lexer
Matt Mackall
tests: replace exit 80 with #require
r22046 #require serve fifo
Matt Mackall
tests: unify test-hup
r12413 Test hangup signal in the middle of transaction
$ hg init
$ mkfifo p
Matt Mackall
tests: make test-hup more race-proof...
r16342 $ hg serve --stdio < p 1>out 2>&1 &
Matt Mackall
tests: unify test-hup
r12413 $ P=$!
Matt Mackall
tests: remove sleep/startup/shutdown races from test-hup
r16299
Do test while holding fifo open
$ (
> echo lock
> echo addchangegroup
Pierre-Yves David
tests: prevent test-hup from hanging forever if the transaction does not start...
r20896 > start=`date +%s`
> # 10 second seems much enough to let the server catch up
> deadline=`expr $start + 10`
> while [ ! -s .hg/store/journal ]; do
> sleep 0;
> if [ `date +%s` -gt $deadline ]; then
> echo "transaction did not start after 10 seconds" >&2;
> exit 1;
> fi
> done
Matt Mackall
tests: remove sleep/startup/shutdown races from test-hup
r16299 > kill -HUP $P
> ) > p
Matt Mackall
tests: make test-hup more race-proof...
r16342
Matt Mackall
tests: avoid zombie lockup with test-hup...
r16344 $ wait
Matt Mackall
tests: make test-hup more race-proof...
r16342 $ cat out
Matt Mackall
tests: unify test-hup
r12413 0
0
adding changesets
transaction abort!
rollback completed
killed!
Matt Mackall
tests: remove sleep/startup/shutdown races from test-hup
r16299
Pierre-Yves David
test-hup: use ls instead of echo...
r23277 $ ls -1d .hg/* .hg/store/*
.hg/00changelog.i
.hg/journal.bookmarks
.hg/journal.branch
.hg/journal.desc
.hg/journal.dirstate
.hg/requires
.hg/store
.hg/store/00changelog.i
.hg/store/00changelog.i.a
.hg/store/journal.phaseroots