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

r16551:ebf6d38c stable
r24996:58308dde default
Show More
rename.sh
30 lines | 346 B | application/x-sh | BashLexer
#!/bin/sh
# @ 3: 'move2'
# |
# o 2: 'move1'
# |
# | o 1: 'change'
# |/
# o 0: 'add'
hg init copies
cd copies
echo a > a
echo b > b
echo c > c
hg ci -Am add
echo a >> a
echo b >> b
echo c >> c
hg ci -m change
hg up -qC 0
hg cp a d
hg mv b e
hg mv c f
hg ci -m move1
hg mv e g
hg mv f c
hg ci -m move2
hg bundle -a ../renames.hg
cd ..