##// 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:

r7177:09ed32b7 default
r7177:09ed32b7 default
Show More
test-mq-qrefresh.out
255 lines | 3.5 KiB | text/plain | TextLexer
/ tests / test-mq-qrefresh.out
% init
% commit
adding 1/base
adding 2/base
% qnew mqbase
% qrefresh
% qdiff
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
diff -r b55ecdccb5cf 2/base
--- a/2/base
+++ b/2/base
@@ -1,1 +1,1 @@
-base
+patched
% qdiff dirname
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
diff -r b55ecdccb5cf 2/base
--- a/2/base
+++ b/2/base
@@ -1,1 +1,1 @@
-base
+patched
% patch file contents
mqbase
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
diff -r b55ecdccb5cf 2/base
--- a/2/base
+++ b/2/base
@@ -1,1 +1,1 @@
-base
+patched
% qrefresh 1
% qdiff
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
diff -r b55ecdccb5cf 2/base
--- a/2/base
+++ b/2/base
@@ -1,1 +1,1 @@
-base
+patched
% qdiff dirname
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
diff -r b55ecdccb5cf 2/base
--- a/2/base
+++ b/2/base
@@ -1,1 +1,1 @@
-base
+patched
% patch file contents
mqbase
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
% qrefresh . in subdir
% qdiff
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
diff -r b55ecdccb5cf 2/base
--- a/2/base
+++ b/2/base
@@ -1,1 +1,1 @@
-base
+patched
% qdiff dirname
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
diff -r b55ecdccb5cf 2/base
--- a/2/base
+++ b/2/base
@@ -1,1 +1,1 @@
-base
+patched
% patch file contents
mqbase
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
% qrefresh in hg-root again
% qdiff
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
diff -r b55ecdccb5cf 2/base
--- a/2/base
+++ b/2/base
@@ -1,1 +1,1 @@
-base
+patched
% qdiff dirname
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
diff -r b55ecdccb5cf 2/base
--- a/2/base
+++ b/2/base
@@ -1,1 +1,1 @@
-base
+patched
% patch file contents
mqbase
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
diff -r b55ecdccb5cf 2/base
--- a/2/base
+++ b/2/base
@@ -1,1 +1,1 @@
-base
+patched
% qrefresh --short tests:
% - add 1/base and 2/base one by one
% -- qdiff output
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
diff -r b55ecdccb5cf 2/base
--- a/2/base
+++ b/2/base
@@ -1,1 +1,1 @@
-base
+patched
diff -r b55ecdccb5cf orphanchild
--- /dev/null
+++ b/orphanchild
@@ -0,0 +1,1 @@
+orphan
% -- patch file content
mqbase
diff -r b55ecdccb5cf 1/base
--- a/1/base
+++ b/1/base
@@ -1,1 +1,1 @@
-base
+patched
diff -r b55ecdccb5cf 2/base
--- a/2/base
+++ b/2/base
@@ -1,1 +1,1 @@
-base
+patched
A orphanchild
? base
% -- diff shows what is not in patch
diff
--- /dev/null
+++ b/orphanchild
@@ -0,0 +1,1 @@
+orphan
% - before starting exclusive tests
1/base
2/base
% - exclude 2/base
1/base
% -- status shows 2/base as dirty
M 2/base
A orphanchild
? base
% - remove 1/base and add 2/base again but not orphanchild
2/base
% - add 1/base with include filter - and thus remove 2/base from patch
1/base
% create test repo
adding a
% capture changes
diff --git a/a b/ab
copy from a
copy to ab
--- a/a
+++ b/ab
@@ -1,1 +1,2 @@
a
+b
diff --git a/a b/ac
copy from a
copy to ac
--- a/a
+++ b/ac
@@ -1,1 +1,2 @@
a
+c
% refresh and check changes again
diff --git a/a b/ab
copy from a
copy to ab
--- a/a
+++ b/ab
@@ -1,1 +1,2 @@
a
+b
diff --git a/a b/ac
copy from a
copy to ac
--- a/a
+++ b/ac
@@ -1,1 +1,2 @@
a
+c