diff --git a/tests/test-mq-merge b/tests/test-mq-merge new file mode 100755 --- /dev/null +++ b/tests/test-mq-merge @@ -0,0 +1,39 @@ +#!/bin/sh + +# Test issue 529 - mq aborts when merging patch deleting files + +rewrite_path() +{ + sed -e 's:\\:/:g' -e 's:[^ ]*/t/::g' +} + +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 + +# 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 +hg manifest