# HG changeset patch # User Patrick Mezard # Date 1175971346 -3600 # Node ID 4f721e96f1deae44bc3f23c39cab3619ce50ed0b # Parent 4e5e1638b165fa2fb9a0cdab4c9a8fb8f227e8be Add test for issue 529 - "mq aborts when merging patch deleting files". 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 diff --git a/tests/test-mq-merge.out b/tests/test-mq-merge.out new file mode 100644 --- /dev/null +++ b/tests/test-mq-merge.out @@ -0,0 +1,11 @@ +adding a +adding b +copy .hg/patches to .hg/patches.1 +1 files updated, 0 files merged, 0 files removed, 0 files unresolved +M b +a +b +merging with queue at: .hg/patches.1 +applying rm_a +Now at: rm_a +b