Mercurial > hg
view tests/test-mq-qrefresh.out @ 7177:09ed32b79656
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.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sun, 19 Oct 2008 16:31:24 +0200 |
parents | f7fc5f5ecd62 |
children | 5f7e3f17aece |
line wrap: on
line source
% 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