##// END OF EJS Templates
mq: Fix --qrefresh --short to work with --exclude and --include...
mq: Fix --qrefresh --short to work with --exclude and --include pmezard expects hg qref -s -X b to apply the -X to the list of files in the patch, and thus remove b from the patch. That's how it worked before f7fc5f5ecd62. That change seemed sensible, but it wasn't... mpm says (17:22:30) pmezard_: kiilerix1: do you mean that -X should be forbidden with -s ? (17:22:54) pmezard_: kiilerix1: and --include too (17:23:03) mpm: No because you should be able to say hg qref -s foo* -X foo-bar so mpm expects hg qref -s -X b * to apply the -X to the list of files in the working directory, and thus don't include b in the patch This patch tries to make both usecases work by creating a matchfn which uses the include/excludes but not the filelist.

File last commit:

r6210:942287cb default
r7177:09ed32b7 default
Show More
test-issue660
94 lines | 1.3 KiB | text/plain | TextLexer
#!/bin/sh
# http://www.selenic.com/mercurial/bts/issue660
hg init a
cd a
echo a > a
mkdir b
echo b > b/b
hg commit -A -m "a is file, b is dir"
echo % file replaced with directory
rm a
mkdir a
echo a > a/a
echo % should fail - would corrupt dirstate
hg add a/a
echo % removing shadow
hg rm --after a
echo % should succeed - shadow removed
hg add a/a
echo % directory replaced with file
rm -r b
echo b > b
echo % should fail - would corrupt dirstate
hg add b
echo % removing shadow
hg rm --after b/b
echo % should succeed - shadow removed
hg add b
echo % look what we got
hg st
echo % revert reintroducing shadow - should fail
rm -r a b
hg revert b/b
echo % revert all - should succeed
hg revert --all
hg st
echo % addremove
rm -r a b
mkdir a
echo a > a/a
echo b > b
hg addremove
hg st
echo % commit
hg ci -A -m "a is dir, b is file"
hg st --all
echo % long directory replaced with file
mkdir d
mkdir d/d
echo d > d/d/d
hg commit -A -m "d is long directory"
rm -r d
echo d > d
echo % should fail - would corrupt dirstate
hg add d
echo % removing shadow
hg rm --after d/d/d
echo % should succeed - shadow removed
hg add d
hg ci -md
echo % update should work at least with clean workdir
rm -r a b d
hg up -r 0
hg st --all
rm -r a b
hg up -r 1
hg st --all
exit 0