mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 00:14:35 +03:00
905ce16584
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 c302ef4372b2. 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.
256 lines
3.5 KiB
Plaintext
256 lines
3.5 KiB
Plaintext
% 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
|