Mercurial > hg
view tests/test-mq-merge @ 5534:61c230f81068
mq: avoid qnew committing everything on invalid paths (issue 803)
If paths are supplied but resolve to nothing, localrepo.commit() is called with an empty set and commits the whole dirstate. Avoid this by passing the match function to commit.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Tue, 20 Nov 2007 14:31:58 +0100 |
parents | 0b3f910dfd17 |
children | f18f14bae172 |
line wrap: on
line source
#!/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