amend: invalidate dirstate in case of failure (
issue3670)
The temporary commit created by amend update the dirstate. If the final commit
fails, we need to invalidate the change made to the dirstate, otherwise the
release of the wlock will write the dirstate created after the rollbacked
temporary commit.
This dirstate writing logic should probably be handled in the same object than
the transaction one. However such change are too big for stable.
$ echo 'raise Exception("bit bucket overflow")' > badext.py
$ abspath=`pwd`/badext.py
$ echo '[extensions]' >> $HGRCPATH
$ echo "gpg =" >> $HGRCPATH
$ echo "hgext.gpg =" >> $HGRCPATH
$ echo "badext = $abspath" >> $HGRCPATH
$ echo "badext2 =" >> $HGRCPATH
$ hg -q help help
*** failed to import extension badext from $TESTTMP/badext.py: bit bucket overflow
*** failed to import extension badext2: No module named badext2
hg help [-ec] [TOPIC]
show help for a given topic or a help overview