##// END OF EJS Templates
mq: really remove undo after a qpush (and after a strip)...
mq: really remove undo after a qpush (and after a strip) For qpush, removeundo has to be called after the transaction has finished. strip may use unbundle, which also leaves an undo file. Fixes issue780.

File last commit:

r5527:0b3f910d default
r5527:0b3f910d default
Show More
test-mq-merge
51 lines | 900 B | text/plain | TextLexer
#!/bin/sh
# Test issue 529 - mq aborts when merging patch deleting files
rewrite_path()
{
sed -e 's:\\:/:g' -e 's:[^ ]*/t/::g'
}
checkundo()
{
if [ -f .hg/store/undo ]; then
echo ".hg/store/undo still exists after $1"
fi
}
echo "[extensions]" >> $HGRCPATH
echo "hgext.mq=" >> $HGRCPATH
# Commit two dummy files in "init" changeset
hg init t
cd t
echo a > a
echo b > b
hg ci -Am init
hg tag -l init
# Create a patch removing a
hg qnew rm_a
hg rm a
hg qrefresh -m "rm a"
# Save the patch queue so we can merge it later
hg qsave -c -e 2>&1 | rewrite_path
checkundo qsave
# Update b and commit in an "update" changeset
hg up -C init
echo b >> b
hg st
hg ci -m update
# Here, qpush used to abort with :
# The system cannot find the file specified => a
hg manifest
hg qpush -a -m 2>&1 | rewrite_path
checkundo 'qpush -m'
hg manifest
# ensure status is correct after merge
hg qpop -a