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

r23623:80a37f70 default
r24996:58308dde default
Show More
test-check-commit-hg.t
24 lines | 617 B | text/troff | Tads3Lexer
/ tests / test-check-commit-hg.t
#require test-repo
Enable obsolescence to avoid the warning issue when obsmarker are found
$ cat >> $HGRCPATH << EOF
> [experimental]
> evolution=createmarkers
> EOF
Go back in the hg repo
$ cd $TESTDIR/..
$ for node in `hg log --rev 'draft() and ::.' --template '{node|short}\n'`; do
> hg export $node | contrib/check-commit > ${TESTTMP}/check-commit.out
> if [ $? -ne 0 ]; then
> echo "Revision $node does not comply to rules"
> echo '------------------------------------------------------'
> cat ${TESTTMP}/check-commit.out
> echo
> fi
> done