changeset 2480:519a1011db91

fix -I/-X when relative paths used or in subdir
author Vadim Gelfer <vadim.gelfer@gmail.com>
date Wed, 21 Jun 2006 17:30:31 -0700
parents 10ec8039e1d8
children 5c65b4e51610
files mercurial/util.py tests/test-locate tests/test-locate.out
diffstat 3 files changed, 19 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -356,10 +356,12 @@ def _matcher(canonroot, cwd, names, inc,
     filematch = matchfn(files, '(?:/|$)') or always
     incmatch = always
     if inc:
-        incmatch = matchfn(map(patkind, inc), '(?:/|$)')
+        inckinds = [patkind(canonpath(canonroot, cwd, i)) for i in inc]
+        incmatch = matchfn(inckinds, '(?:/|$)')
     excmatch = lambda fn: False
     if exc:
-        excmatch = matchfn(map(patkind, exc), '(?:/|$)')
+        exckinds = [patkind(canonpath(canonroot, cwd, x)) for x in exc]
+        excmatch = matchfn(exckinds, '(?:/|$)')
 
     return (roots,
             lambda fn: (incmatch(fn) and not excmatch(fn) and
--- a/tests/test-locate
+++ b/tests/test-locate
@@ -5,6 +5,8 @@ cd t
 hg init
 echo 0 > a
 echo 0 > b
+mkdir t
+echo 0 > t/x
 hg ci -A -m m -d "1000000 0"
 touch nottracked
 hg locate a
@@ -18,3 +20,7 @@ hg locate
 hg locate -r 0 a
 hg locate -r 0 NONEXISTENT
 hg locate -r 0
+echo % -I/-X with relative path should work
+cd t
+hg locate
+hg locate -I ../t
--- a/tests/test-locate.out
+++ b/tests/test-locate.out
@@ -1,13 +1,21 @@
 adding a
 adding b
+adding t/x
 a
 NONEXISTENT: No such file or directory
 a
 b
+t/x
 a: No such file or directory
 NONEXISTENT: No such file or directory
 b
+t/x
 a
-NONEXISTENT: No such file in rev 14467d15ef43
+NONEXISTENT: No such file in rev 9449ae447738
 a
+t/x
 b
+% -I/-X with relative path should work
+b
+t/x
+t/x