[PATCH 3 of 3] match: consistently return paths with native separators from uipath()

Matt Harbison mharbison72 at gmail.com
Mon Dec 29 19:38:12 CST 2014


# HG changeset patch
# User Matt Harbison <matt_harbison at yahoo.com>
# Date 1419480918 18000
#      Wed Dec 24 23:15:18 2014 -0500
# Node ID ae491c5bcc4cb921975740149f5b07bdb14e965f
# Parent  1f18e86a4d081a4d5217cd78cd9d92d060996be4
match: consistently return paths with native separators from uipath()

The path returned from uipath() was previously os.sep based if files or patterns
were used to create the matcher, but '/' based otherwise.  Given that the path
returned can either be relative to cwd or the root of the repo, depending upon
how the matcher was created, this method is only useful for display.  Therefore,
it seems harmless to convert the absolute paths to use os.sep too, since this
can be done without taking a dependency on the os module.

With this change, there are only a relative handful of 'adding <file>' and
'removing <file>' lines in the tests that are not globbed.  Many are tests that
could be globbed, but aren't run on Windows.  A couple require code changes in
largefiles and archiving, after which rules can be added to the test suite to
ensure that the globs don't go missing.

diff --git a/mercurial/match.py b/mercurial/match.py
--- a/mercurial/match.py
+++ b/mercurial/match.py
@@ -138,7 +138,8 @@
         '''Convert repo path to a display path.  If patterns or -I/-X were used
         to create this matcher, the display path will be relative to cwd.
         Otherwise it is relative to the root of the repo.'''
-        return (self._pathrestricted and self.rel(f)) or self.abs(f)
+        return ((self._pathrestricted and self.rel(f))
+                    or util.localpath(self.abs(f)))
 
     def files(self):
         '''Explicitly listed files or patterns or roots:
diff --git a/tests/test-addremove-similar.t b/tests/test-addremove-similar.t
--- a/tests/test-addremove-similar.t
+++ b/tests/test-addremove-similar.t
@@ -79,8 +79,8 @@
 
   $ mv d/a d/b
   $ hg addremove -s80
-  removing d/a
-  adding d/b
+  removing d/a (glob)
+  adding d/b (glob)
   recording removal of d/a as rename to d/b (100% similar) (glob)
   $ hg debugstate
   r   0          0 1970-01-01 00:00:00 d/a
diff --git a/tests/test-addremove.t b/tests/test-addremove.t
--- a/tests/test-addremove.t
+++ b/tests/test-addremove.t
@@ -3,7 +3,7 @@
   $ mkdir dir
   $ touch foo dir/bar
   $ hg -v addremove
-  adding dir/bar
+  adding dir/bar (glob)
   adding foo
   $ hg -v commit -m "add 1"
   dir/bar
@@ -12,7 +12,7 @@
   $ cd dir/
   $ touch ../foo_2 bar_2
   $ hg -v addremove
-  adding dir/bar_2
+  adding dir/bar_2 (glob)
   adding foo_2
   $ hg -v commit -m "add 2"
   dir/bar_2
@@ -46,7 +46,7 @@
   adding a.py
   $ hg forget a.py
   $ hg addremove
-  adding dir/a.py
+  adding dir/a.py (glob)
   $ cd ..
 
   $ hg init sim
diff --git a/tests/test-dirstate.t b/tests/test-dirstate.t
--- a/tests/test-dirstate.t
+++ b/tests/test-dirstate.t
@@ -7,9 +7,9 @@
   $ touch a/b/c/d/y
   $ touch a/b/c/d/z
   $ hg ci -Am m
-  adding a/b/c/d/x
-  adding a/b/c/d/y
-  adding a/b/c/d/z
+  adding a/b/c/d/x (glob)
+  adding a/b/c/d/y (glob)
+  adding a/b/c/d/z (glob)
   $ hg mv a z
   moving a/b/c/d/x to z/b/c/d/x (glob)
   moving a/b/c/d/y to z/b/c/d/y (glob)
diff --git a/tests/test-fncache.t b/tests/test-fncache.t
--- a/tests/test-fncache.t
+++ b/tests/test-fncache.t
@@ -64,7 +64,7 @@
   $ mkdir tst.d
   $ echo foo > tst.d/foo
   $ hg ci -Amfoo
-  adding tst.d/foo
+  adding tst.d/foo (glob)
   $ find .hg | sort
   .hg
   .hg/00changelog.i
@@ -93,7 +93,7 @@
   $ mkdir tst.d
   $ echo foo > tst.d/Foo
   $ hg ci -Amfoo
-  adding tst.d/Foo
+  adding tst.d/Foo (glob)
   $ find .hg | sort
   .hg
   .hg/00changelog.i
diff --git a/tests/test-import.t b/tests/test-import.t
--- a/tests/test-import.t
+++ b/tests/test-import.t
@@ -5,7 +5,7 @@
   $ echo line 1 > a/d1/d2/a
   $ hg --cwd a ci -Ama
   adding a
-  adding d1/d2/a
+  adding d1/d2/a (glob)
 
   $ echo line 2 >> a/a
   $ hg --cwd a ci -u someone -d '1 0' -m'second change'
@@ -923,7 +923,7 @@
   $ mkdir -p src/cmd/gc
   $ touch src/cmd/gc/mksys.bash
   $ hg ci -Am init
-  adding src/cmd/gc/mksys.bash
+  adding src/cmd/gc/mksys.bash (glob)
   $ hg import - <<EOF
   > # HG changeset patch
   > # User Rob Pike
diff --git a/tests/test-issue1089.t b/tests/test-issue1089.t
--- a/tests/test-issue1089.t
+++ b/tests/test-issue1089.t
@@ -4,7 +4,7 @@
   $ mkdir a
   $ echo a > a/b
   $ hg ci -Am m
-  adding a/b
+  adding a/b (glob)
 
   $ hg rm a
   removing a/b (glob)
@@ -13,7 +13,7 @@
   $ mkdir a b
   $ echo a > a/b
   $ hg ci -Am m
-  adding a/b
+  adding a/b (glob)
 
   $ hg rm a
   removing a/b (glob)
diff --git a/tests/test-issue612.t b/tests/test-issue612.t
--- a/tests/test-issue612.t
+++ b/tests/test-issue612.t
@@ -4,7 +4,7 @@
   $ mkdir src
   $ echo a > src/a.c
   $ hg ci -Ama
-  adding src/a.c
+  adding src/a.c (glob)
 
   $ hg mv src source
   moving src/a.c to source/a.c (glob)
diff --git a/tests/test-issue660.t b/tests/test-issue660.t
--- a/tests/test-issue660.t
+++ b/tests/test-issue660.t
@@ -7,7 +7,7 @@
   $ echo b > b/b
   $ hg commit -A -m "a is file, b is dir"
   adding a
-  adding b/b
+  adding b/b (glob)
 
 File replaced with directory:
 
@@ -91,9 +91,9 @@
 
   $ hg addremove -s 0
   removing a
-  adding a/a
+  adding a/a (glob)
   adding b
-  removing b/b
+  removing b/b (glob)
 
   $ hg st
   A a/a
@@ -114,7 +114,7 @@
   $ mkdir d/d
   $ echo d > d/d/d
   $ hg commit -A -m "d is long directory"
-  adding d/d/d
+  adding d/d/d (glob)
 
   $ rm -r d
   $ echo d > d
diff --git a/tests/test-lfconvert.t b/tests/test-lfconvert.t
--- a/tests/test-lfconvert.t
+++ b/tests/test-lfconvert.t
@@ -30,8 +30,8 @@
   adding large
   adding large2
   adding normal1
-  adding sub/maybelarge.dat
-  adding sub/normal2
+  adding sub/maybelarge.dat (glob)
+  adding sub/normal2 (glob)
   $ hg commit -m"add large, normal1" large normal1
   $ hg commit -m"add sub/*" sub
 
diff --git a/tests/test-locate.t b/tests/test-locate.t
--- a/tests/test-locate.t
+++ b/tests/test-locate.t
@@ -13,11 +13,11 @@
   $ hg ci -A -m m
   adding a
   adding b
-  adding dir.h/foo
+  adding dir.h/foo (glob)
   adding t.h
-  adding t/b
-  adding t/e.h
-  adding t/x
+  adding t/b (glob)
+  adding t/e.h (glob)
+  adding t/x (glob)
 
   $ touch nottracked
 
diff --git a/tests/test-mq-qnew.t b/tests/test-mq-qnew.t
--- a/tests/test-mq-qnew.t
+++ b/tests/test-mq-qnew.t
@@ -135,7 +135,7 @@
   popping mtest.patch
   popping uncommitted.patch
   patch queue now empty
-  adding d/b
+  adding d/b (glob)
   M d/b
   diff --git a/d/b b/d/b
   --- a/d/b
@@ -205,7 +205,7 @@
   popping mtest.patch
   popping uncommitted.patch
   patch queue now empty
-  adding d/b
+  adding d/b (glob)
   M d/b
   # HG changeset patch
   # Parent 
diff --git a/tests/test-mq-qrefresh.t b/tests/test-mq-qrefresh.t
--- a/tests/test-mq-qrefresh.t
+++ b/tests/test-mq-qrefresh.t
@@ -12,8 +12,8 @@
   $ echo 'base' > 1/base
   $ echo 'base' > 2/base
   $ hg ci -Ambase
-  adding 1/base
-  adding 2/base
+  adding 1/base (glob)
+  adding 2/base (glob)
 
   $ hg qnew -mmqbase mqbase
 
diff --git a/tests/test-mq.t b/tests/test-mq.t
--- a/tests/test-mq.t
+++ b/tests/test-mq.t
@@ -111,7 +111,7 @@
   $ mkdir b
   $ echo z > b/z
   $ hg ci -Ama
-  adding b/z
+  adding b/z (glob)
 
 
 qinit
diff --git a/tests/test-rebase-rename.t b/tests/test-rebase-rename.t
--- a/tests/test-rebase-rename.t
+++ b/tests/test-rebase-rename.t
@@ -18,7 +18,7 @@
 
   $ echo b > d/b
   $ hg ci -Am B
-  adding d/b
+  adding d/b (glob)
 
   $ hg mv d d-renamed
   moving d/b to d-renamed/b (glob)
diff --git a/tests/test-record.t b/tests/test-record.t
--- a/tests/test-record.t
+++ b/tests/test-record.t
@@ -664,7 +664,7 @@
   $ cd subdir
   $ echo a > a
   $ hg ci -d '16 0' -Amsubdir
-  adding subdir/a
+  adding subdir/a (glob)
 
   $ echo a >> a
   $ hg record -d '16 0' -m subdir-change a <<EOF
diff --git a/tests/test-remove.t b/tests/test-remove.t
--- a/tests/test-remove.t
+++ b/tests/test-remove.t
@@ -189,8 +189,8 @@
   $ echo a > test/foo
   $ echo b > test/bar
   $ hg ci -Am2
-  adding test/bar
-  adding test/foo
+  adding test/bar (glob)
+  adding test/foo (glob)
 
 dir, options none
 
@@ -247,8 +247,8 @@
   $ echo x > issue1861/x
   $ echo y > issue1861/b/c/y
   $ hg ci -Am add
-  adding issue1861/b/c/y
-  adding issue1861/x
+  adding issue1861/b/c/y (glob)
+  adding issue1861/x (glob)
   $ hg rm issue1861/b
   removing issue1861/b/c/y (glob)
   $ hg ci -m remove
diff --git a/tests/test-rename-dir-merge.t b/tests/test-rename-dir-merge.t
--- a/tests/test-rename-dir-merge.t
+++ b/tests/test-rename-dir-merge.t
@@ -5,8 +5,8 @@
   $ echo foo > a/a
   $ echo bar > a/b
   $ hg ci -Am "0"
-  adding a/a
-  adding a/b
+  adding a/a (glob)
+  adding a/b (glob)
 
   $ hg co -C 0
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
diff --git a/tests/test-rename.t b/tests/test-rename.t
--- a/tests/test-rename.t
+++ b/tests/test-rename.t
@@ -55,8 +55,8 @@
 
   $ mv d1/d11/a1 d2/c
   $ hg addrem -s 0
-  removing d1/d11/a1
-  adding d2/c
+  removing d1/d11/a1 (glob)
+  adding d2/c (glob)
   $ hg rename --after d1/d11/a1 d2/c
   $ hg status -C
   A d2/c
diff --git a/tests/test-revert.t b/tests/test-revert.t
--- a/tests/test-revert.t
+++ b/tests/test-revert.t
@@ -212,7 +212,7 @@
 ----------------------------------------------------
 
   $ hg ci -A -m b
-  adding b/b
+  adding b/b (glob)
   created new head
   $ echo foobar > b/b
   $ mkdir newdir
diff --git a/tests/test-subrepo-deep-nested-change.t b/tests/test-subrepo-deep-nested-change.t
--- a/tests/test-subrepo-deep-nested-change.t
+++ b/tests/test-subrepo-deep-nested-change.t
@@ -107,7 +107,7 @@
   $ mkdir sub1/sub2/folder
   $ echo 'subfolder' > sub1/sub2/folder/test.txt
   $ hg ci -ASm "add test.txt"
-  adding sub1/sub2/folder/test.txt
+  adding sub1/sub2/folder/test.txt (glob)
   committing subrepository sub1
   committing subrepository sub1/sub2 (glob)
 
@@ -162,11 +162,11 @@
   $ rm sub1/sub2/folder/test.txt
   $ rm sub1/sub2/test.txt
   $ hg ci -ASm "remove test.txt"
-  adding sub1/sub2/folder/bar
-  removing sub1/sub2/folder/test.txt
-  removing sub1/sub2/test.txt
-  adding sub1/foo
-  adding foo/bar/abc
+  adding sub1/sub2/folder/bar (glob)
+  removing sub1/sub2/folder/test.txt (glob)
+  removing sub1/sub2/test.txt (glob)
+  adding sub1/foo (glob)
+  adding foo/bar/abc (glob)
   committing subrepository sub1
   committing subrepository sub1/sub2 (glob)
   $ hg rollback -q
diff --git a/tests/test-walk.t b/tests/test-walk.t
--- a/tests/test-walk.t
+++ b/tests/test-walk.t
@@ -13,19 +13,19 @@
   $ echo fenugreek > fenugreek
   $ echo fiddlehead > fiddlehead
   $ hg addremove
-  adding beans/black
-  adding beans/borlotti
-  adding beans/kidney
-  adding beans/navy
-  adding beans/pinto
-  adding beans/turtle
+  adding beans/black (glob)
+  adding beans/borlotti (glob)
+  adding beans/kidney (glob)
+  adding beans/navy (glob)
+  adding beans/pinto (glob)
+  adding beans/turtle (glob)
   adding fennel
   adding fenugreek
   adding fiddlehead
-  adding mammals/Procyonidae/cacomistle
-  adding mammals/Procyonidae/coatimundi
-  adding mammals/Procyonidae/raccoon
-  adding mammals/skunk
+  adding mammals/Procyonidae/cacomistle (glob)
+  adding mammals/Procyonidae/coatimundi (glob)
+  adding mammals/Procyonidae/raccoon (glob)
+  adding mammals/skunk (glob)
   $ hg commit -m "commit #0"
 
   $ hg debugwalk


More information about the Mercurial-devel mailing list