tests/test-walk.t
changeset 11799 ddebb6a690b4
parent 6048 cfb4a51da7d5
child 11903 a4cc9e6f41c3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-walk.t	Thu Aug 12 21:52:53 2010 +0900
@@ -0,0 +1,284 @@
+  $ mkdir t
+  $ cd t
+  $ hg init
+  $ mkdir -p beans
+  $ for b in kidney navy turtle borlotti black pinto; do
+  >     echo $b > beans/$b
+  $ done
+  $ mkdir -p mammals/Procyonidae
+  $ for m in cacomistle coatimundi raccoon; do
+  >     echo $m > mammals/Procyonidae/$m
+  $ done
+  $ echo skunk > mammals/skunk
+  $ echo fennel > fennel
+  $ echo fenugreek > fenugreek
+  $ echo fiddlehead > fiddlehead
+  $ echo glob:glob > glob:glob
+  $ hg addremove
+  adding beans/black
+  adding beans/borlotti
+  adding beans/kidney
+  adding beans/navy
+  adding beans/pinto
+  adding beans/turtle
+  adding fennel
+  adding fenugreek
+  adding fiddlehead
+  adding glob:glob
+  adding mammals/Procyonidae/cacomistle
+  adding mammals/Procyonidae/coatimundi
+  adding mammals/Procyonidae/raccoon
+  adding mammals/skunk
+  $ hg commit -m "commit #0" -d "1000000 0"
+
+  $ hg debugwalk
+  f  beans/black                     beans/black
+  f  beans/borlotti                  beans/borlotti
+  f  beans/kidney                    beans/kidney
+  f  beans/navy                      beans/navy
+  f  beans/pinto                     beans/pinto
+  f  beans/turtle                    beans/turtle
+  f  fennel                          fennel
+  f  fenugreek                       fenugreek
+  f  fiddlehead                      fiddlehead
+  f  glob:glob                       glob:glob
+  f  mammals/Procyonidae/cacomistle  mammals/Procyonidae/cacomistle
+  f  mammals/Procyonidae/coatimundi  mammals/Procyonidae/coatimundi
+  f  mammals/Procyonidae/raccoon     mammals/Procyonidae/raccoon
+  f  mammals/skunk                   mammals/skunk
+  $ hg debugwalk -I.
+  f  beans/black                     beans/black
+  f  beans/borlotti                  beans/borlotti
+  f  beans/kidney                    beans/kidney
+  f  beans/navy                      beans/navy
+  f  beans/pinto                     beans/pinto
+  f  beans/turtle                    beans/turtle
+  f  fennel                          fennel
+  f  fenugreek                       fenugreek
+  f  fiddlehead                      fiddlehead
+  f  glob:glob                       glob:glob
+  f  mammals/Procyonidae/cacomistle  mammals/Procyonidae/cacomistle
+  f  mammals/Procyonidae/coatimundi  mammals/Procyonidae/coatimundi
+  f  mammals/Procyonidae/raccoon     mammals/Procyonidae/raccoon
+  f  mammals/skunk                   mammals/skunk
+
+  $ cd mammals
+  $ hg debugwalk
+  f  beans/black                     ../beans/black
+  f  beans/borlotti                  ../beans/borlotti
+  f  beans/kidney                    ../beans/kidney
+  f  beans/navy                      ../beans/navy
+  f  beans/pinto                     ../beans/pinto
+  f  beans/turtle                    ../beans/turtle
+  f  fennel                          ../fennel
+  f  fenugreek                       ../fenugreek
+  f  fiddlehead                      ../fiddlehead
+  f  glob:glob                       ../glob:glob
+  f  mammals/Procyonidae/cacomistle  Procyonidae/cacomistle
+  f  mammals/Procyonidae/coatimundi  Procyonidae/coatimundi
+  f  mammals/Procyonidae/raccoon     Procyonidae/raccoon
+  f  mammals/skunk                   skunk
+  $ hg debugwalk -X ../beans
+  f  fennel                          ../fennel
+  f  fenugreek                       ../fenugreek
+  f  fiddlehead                      ../fiddlehead
+  f  glob:glob                       ../glob:glob
+  f  mammals/Procyonidae/cacomistle  Procyonidae/cacomistle
+  f  mammals/Procyonidae/coatimundi  Procyonidae/coatimundi
+  f  mammals/Procyonidae/raccoon     Procyonidae/raccoon
+  f  mammals/skunk                   skunk
+  $ hg debugwalk -I '*k'
+  f  mammals/skunk  skunk
+  $ hg debugwalk -I 'glob:*k'
+  f  mammals/skunk  skunk
+  $ hg debugwalk -I 'relglob:*k'
+  f  beans/black    ../beans/black
+  f  fenugreek      ../fenugreek
+  f  mammals/skunk  skunk
+  $ hg debugwalk -I 'relglob:*k' .
+  f  mammals/skunk  skunk
+  $ hg debugwalk -I 're:.*k$'
+  f  beans/black    ../beans/black
+  f  fenugreek      ../fenugreek
+  f  mammals/skunk  skunk
+  $ hg debugwalk -I 'relre:.*k$'
+  f  beans/black    ../beans/black
+  f  fenugreek      ../fenugreek
+  f  mammals/skunk  skunk
+  $ hg debugwalk -I 'path:beans'
+  f  beans/black     ../beans/black
+  f  beans/borlotti  ../beans/borlotti
+  f  beans/kidney    ../beans/kidney
+  f  beans/navy      ../beans/navy
+  f  beans/pinto     ../beans/pinto
+  f  beans/turtle    ../beans/turtle
+  $ hg debugwalk -I 'relpath:../beans'
+  f  beans/black     ../beans/black
+  f  beans/borlotti  ../beans/borlotti
+  f  beans/kidney    ../beans/kidney
+  f  beans/navy      ../beans/navy
+  f  beans/pinto     ../beans/pinto
+  f  beans/turtle    ../beans/turtle
+  $ hg debugwalk .
+  f  mammals/Procyonidae/cacomistle  Procyonidae/cacomistle
+  f  mammals/Procyonidae/coatimundi  Procyonidae/coatimundi
+  f  mammals/Procyonidae/raccoon     Procyonidae/raccoon
+  f  mammals/skunk                   skunk
+  $ hg debugwalk -I.
+  f  mammals/Procyonidae/cacomistle  Procyonidae/cacomistle
+  f  mammals/Procyonidae/coatimundi  Procyonidae/coatimundi
+  f  mammals/Procyonidae/raccoon     Procyonidae/raccoon
+  f  mammals/skunk                   skunk
+  $ hg debugwalk Procyonidae
+  f  mammals/Procyonidae/cacomistle  Procyonidae/cacomistle
+  f  mammals/Procyonidae/coatimundi  Procyonidae/coatimundi
+  f  mammals/Procyonidae/raccoon     Procyonidae/raccoon
+
+  $ cd Procyonidae
+  $ hg debugwalk .
+  f  mammals/Procyonidae/cacomistle  cacomistle
+  f  mammals/Procyonidae/coatimundi  coatimundi
+  f  mammals/Procyonidae/raccoon     raccoon
+  $ hg debugwalk ..
+  f  mammals/Procyonidae/cacomistle  cacomistle
+  f  mammals/Procyonidae/coatimundi  coatimundi
+  f  mammals/Procyonidae/raccoon     raccoon
+  f  mammals/skunk                   ../skunk
+  $ cd ..
+
+  $ hg debugwalk ../beans
+  f  beans/black     ../beans/black
+  f  beans/borlotti  ../beans/borlotti
+  f  beans/kidney    ../beans/kidney
+  f  beans/navy      ../beans/navy
+  f  beans/pinto     ../beans/pinto
+  f  beans/turtle    ../beans/turtle
+  $ hg debugwalk .
+  f  mammals/Procyonidae/cacomistle  Procyonidae/cacomistle
+  f  mammals/Procyonidae/coatimundi  Procyonidae/coatimundi
+  f  mammals/Procyonidae/raccoon     Procyonidae/raccoon
+  f  mammals/skunk                   skunk
+  $ hg debugwalk .hg
+  abort: path 'mammals/.hg' is inside repo 'mammals'
+  $ hg debugwalk ../.hg
+  abort: path contains illegal component: .hg
+  $ cd ..
+
+  $ hg debugwalk -Ibeans
+  f  beans/black     beans/black
+  f  beans/borlotti  beans/borlotti
+  f  beans/kidney    beans/kidney
+  f  beans/navy      beans/navy
+  f  beans/pinto     beans/pinto
+  f  beans/turtle    beans/turtle
+  $ hg debugwalk -I '{*,{b,m}*/*}k'
+  f  beans/black    beans/black
+  f  fenugreek      fenugreek
+  f  mammals/skunk  mammals/skunk
+  $ hg debugwalk 'glob:mammals/../beans/b*'
+  f  beans/black     beans/black
+  f  beans/borlotti  beans/borlotti
+  $ hg debugwalk '-X*/Procyonidae' mammals
+  f  mammals/skunk  mammals/skunk
+  $ hg debugwalk path:mammals
+  f  mammals/Procyonidae/cacomistle  mammals/Procyonidae/cacomistle
+  f  mammals/Procyonidae/coatimundi  mammals/Procyonidae/coatimundi
+  f  mammals/Procyonidae/raccoon     mammals/Procyonidae/raccoon
+  f  mammals/skunk                   mammals/skunk
+  $ hg debugwalk ..
+  abort: .. not under root
+  $ hg debugwalk beans/../..
+  abort: beans/../.. not under root
+  $ hg debugwalk .hg
+  abort: path contains illegal component: .hg
+  $ hg debugwalk beans/../.hg
+  abort: path contains illegal component: .hg
+  $ hg debugwalk beans/../.hg/data
+  abort: path contains illegal component: .hg/data
+  $ hg debugwalk beans/.hg
+  abort: path 'beans/.hg' is inside repo 'beans'
+
+Don't know how to test absolute paths without always getting a false
+error.
+# hg debugwalk `pwd`/beans
+# hg debugwalk `pwd`/..
+
+  $ hg debugwalk glob:\*
+  f  fennel      fennel
+  f  fenugreek   fenugreek
+  f  fiddlehead  fiddlehead
+  f  glob:glob   glob:glob
+  $ hg debugwalk 'glob:**e'
+  f  beans/turtle                    beans/turtle
+  f  mammals/Procyonidae/cacomistle  mammals/Procyonidae/cacomistle
+  $ hg debugwalk 're:.*[kb]$'
+  f  beans/black    beans/black
+  f  fenugreek      fenugreek
+  f  glob:glob      glob:glob
+  f  mammals/skunk  mammals/skunk
+  $ hg debugwalk path:beans/black
+  f  beans/black  beans/black  exact
+  $ hg debugwalk path:beans//black
+  f  beans/black  beans/black  exact
+  $ hg debugwalk relglob:Procyonidae
+  $ hg debugwalk 'relglob:Procyonidae/**'
+  f  mammals/Procyonidae/cacomistle  mammals/Procyonidae/cacomistle
+  f  mammals/Procyonidae/coatimundi  mammals/Procyonidae/coatimundi
+  f  mammals/Procyonidae/raccoon     mammals/Procyonidae/raccoon
+  $ hg debugwalk 'relglob:Procyonidae/**' fennel
+  f  fennel                          fennel                          exact
+  f  mammals/Procyonidae/cacomistle  mammals/Procyonidae/cacomistle
+  f  mammals/Procyonidae/coatimundi  mammals/Procyonidae/coatimundi
+  f  mammals/Procyonidae/raccoon     mammals/Procyonidae/raccoon
+  $ hg debugwalk beans 'glob:beans/*'
+  f  beans/black     beans/black
+  f  beans/borlotti  beans/borlotti
+  f  beans/kidney    beans/kidney
+  f  beans/navy      beans/navy
+  f  beans/pinto     beans/pinto
+  f  beans/turtle    beans/turtle
+  $ hg debugwalk 'glob:mamm**'
+  f  mammals/Procyonidae/cacomistle  mammals/Procyonidae/cacomistle
+  f  mammals/Procyonidae/coatimundi  mammals/Procyonidae/coatimundi
+  f  mammals/Procyonidae/raccoon     mammals/Procyonidae/raccoon
+  f  mammals/skunk                   mammals/skunk
+  $ hg debugwalk 'glob:mamm**' fennel
+  f  fennel                          fennel                          exact
+  f  mammals/Procyonidae/cacomistle  mammals/Procyonidae/cacomistle
+  f  mammals/Procyonidae/coatimundi  mammals/Procyonidae/coatimundi
+  f  mammals/Procyonidae/raccoon     mammals/Procyonidae/raccoon
+  f  mammals/skunk                   mammals/skunk
+  $ hg debugwalk 'glob:j*'
+  $ hg debugwalk NOEXIST
+  NOEXIST: No such file or directory
+
+  $ mkfifo fifo
+  $ hg debugwalk fifo
+  fifo: unsupported file type (type is fifo)
+
+  $ rm fenugreek
+  $ hg debugwalk fenugreek
+  f  fenugreek  fenugreek  exact
+  $ hg rm fenugreek
+  $ hg debugwalk fenugreek
+  f  fenugreek  fenugreek  exact
+  $ touch new
+  $ hg debugwalk new
+  f  new  new  exact
+
+  $ mkdir ignored
+  $ touch ignored/file
+  $ echo '^ignored$' > .hgignore
+  $ hg debugwalk ignored
+  $ hg debugwalk ignored/file
+  f  ignored/file  ignored/file  exact
+
+  $ cd ..
+  $ hg debugwalk -R t t/mammals/skunk
+  f  mammals/skunk  t/mammals/skunk  exact
+  $ mkdir t2
+  $ cd t2
+  $ hg debugwalk -R ../t ../t/mammals/skunk
+  f  mammals/skunk  ../t/mammals/skunk  exact
+  $ hg debugwalk --cwd ../t mammals/skunk
+  f  mammals/skunk  mammals/skunk  exact