mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
0086f97dc7
For qpush, removeundo has to be called after the transaction has finished. strip may use unbundle, which also leaves an undo file. Fixes issue780.
52 lines
900 B
Bash
Executable File
52 lines
900 B
Bash
Executable File
#!/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
|