changeset 1312:c9cf171f30dd

Merge with TAH
author mpm@selenic.com
date Thu, 22 Sep 2005 09:41:34 -0700
parents 3b717f27ffea (current diff) db8bebb08f8f (diff)
children 1cc7c0cbc30b
files doc/hgrc.5.txt mercurial/commands.py mercurial/util.py
diffstat 23 files changed, 117 insertions(+), 112 deletions(-) [+]
line wrap: on
line diff
--- a/CONTRIBUTORS	Thu Sep 22 09:39:05 2005 -0700
+++ b/CONTRIBUTORS	Thu Sep 22 09:41:34 2005 -0700
@@ -9,6 +9,7 @@
 Edouard Gomez <ed.gomez at free.fr>
 Eric Hopper <hopper at omnifarious.org>
 Alecs King <alecsk at gmail.com>
+Volker Kleinfeld <Volker.Kleinfeld at gmx.de>
 Vadim Lebedev <vadim at mbdsys.com>
 Christopher Li <hg at chrisli.org>
 Chris Mason <mason at suse.com>
@@ -18,10 +19,11 @@
 Vicent SeguĂ­ Pascual <vseguip at gmail.com>
 Sean Perry <shaleh at speakeasy.net>
 Nguyen Anh Quynh <aquynh at gmail.com>
+Ollivier Robert <roberto at keltia.freenix.fr>
 Arun Sharma <arun at sharma-home.net>
 Josef "Jeff" Sipek <jeffpc at optonline.net>
+Kevin Smith <yarcs at qualitycode.com>
 TK Soh <teekaysoh at yahoo.com>
-Kevin Smith <yarcs at qualitycode.com>
 Radoslaw Szkodzinski <astralstorm at gorzow.mm.pl>
 Samuel Tardieu <sam at rfc1149.net>
 K Thananchayan <thananck at yahoo.com>
--- a/README	Thu Sep 22 09:39:05 2005 -0700
+++ b/README	Thu Sep 22 09:41:34 2005 -0700
@@ -63,7 +63,7 @@
  $ hg commit `lsdiff -p1 ../p/foo.patch`
 
  Fastest:
- $ cat ../p/patchlist | xargs hg import -p1 -b ../p 
+ $ cat ../p/patchlist | xargs hg import -p1 -b ../p
 
 Exporting a patch:
 
@@ -76,12 +76,12 @@
 Network support:
 
  # pull from the primary Mercurial repo
- foo$ hg clone http://selenic.com/hg/ 
+ foo$ hg clone http://selenic.com/hg/
  foo$ cd hg
 
  # export your current repo via HTTP with browsable interface
  foo$ hg serve -n "My repo" -p 80
- 
+
  # pushing changes to a remote repo with SSH
  foo$ hg push ssh://user@example.com/~/hg/
 
--- a/comparison.txt	Thu Sep 22 09:39:05 2005 -0700
+++ b/comparison.txt	Thu Sep 22 09:41:34 2005 -0700
@@ -3,7 +3,7 @@
 storage naming      by filename    by revision hash        by filename
 merge               file DAGs      changeset DAG           file DAGs?
 consistency         SHA1           SHA1                    CRC
-signable?           yes            yes                     no       
+signable?           yes            yes                     no
 
 retrieve file tip   O(1)           O(1)                    O(revs)
 add rev             O(1)           O(1)                    O(revs)
--- a/contrib/bash_completion	Thu Sep 22 09:39:05 2005 -0700
+++ b/contrib/bash_completion	Thu Sep 22 09:41:34 2005 -0700
@@ -1,12 +1,14 @@
 #!/bin/bash
 
+shopt -s extglob
+
 _hg_commands()
 {
     local commands="$(hg -v help | sed -e '1,/^list of commands:/d' \
-                                       -e '/^global options:/,$d' \
+				       -e '/^global options:/,$d' \
 				       -e '/^ [^ ]/!d; s/[,:]//g;')"
-    
-    # hide debug commands from users, but complete them if 
+
+    # hide debug commands from users, but complete them if
     # specifically asked for
     if [[ "$cur" == de* ]]; then
 	commands="$commands debugcheckstate debugstate debugindex"
@@ -62,7 +64,7 @@
     cur="$2"
     prev="$3"
 
-    # searching for the command 
+    # searching for the command
     # (first non-option argument that doesn't follow a global option that
     #  receives an argument)
     for (( i=1; $i<=$COMP_CWORD; i++ )); do
@@ -160,7 +162,7 @@
 		COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -- "$cur" ))
 	    fi
 	;;
-	*) 
+	*)
             COMPREPLY=(${COMPREPLY[@]:-} $( compgen -f -- "$cur" ))
 	;;
     esac
--- a/contrib/hgk	Thu Sep 22 09:39:05 2005 -0700
+++ b/contrib/hgk	Thu Sep 22 09:41:34 2005 -0700
@@ -2113,7 +2113,7 @@
 	}
 	$ctext insert end "\n"
     }
- 
+
     set comment {}
     if {[info exists parents($id)]} {
 	foreach p $parents($id) {
--- a/contrib/hgk.py	Thu Sep 22 09:39:05 2005 -0700
+++ b/contrib/hgk.py	Thu Sep 22 09:41:34 2005 -0700
@@ -86,7 +86,7 @@
 
         for f in c:
             # TODO get file permissions
-            print ":100664 100664 %s %s M\t%s\t%s" % (hg.hex(mmap[f]), 
+            print ":100664 100664 %s %s M\t%s\t%s" % (hg.hex(mmap[f]),
                                                       hg.hex(mmap2[f]), f, f)
         for f in a:
             print ":000000 100664 %s %s N\t%s\t%s" % (empty, hg.hex(mmap2[f]), f, f)
@@ -137,7 +137,7 @@
         committer = lines[-1].split(': ')[1].rstrip()
     else:
         committer = "%s %s %s" % (changes[1], date, date_ar[1])
-        
+
     print "author %s %s %s" % (changes[1], date, date_ar[1])
     print "committer %s" % (committer)
     print ""
@@ -220,7 +220,7 @@
                     yield (i + x, full != None and l[x] or None)
             if i == 0:
                 break
-            
+
     # calculate and return the reachability bitmask for sha
     def is_reachable(ar, reachable, sha):
         if len(ar) == 0:
--- a/contrib/mercurial.el	Thu Sep 22 09:39:05 2005 -0700
+++ b/contrib/mercurial.el	Thu Sep 22 09:41:34 2005 -0700
@@ -262,7 +262,7 @@
   'hg-commit-mouse-clicked)
 (define-key hg-commit-mode-file-map " " 'hg-commit-toggle-file)
 (define-key hg-commit-mode-file-map "\r" 'hg-commit-toggle-file)
-  
+
 
 ;;; Convenience functions.
 
@@ -327,7 +327,7 @@
 	  (vc-buffer-sync))
       (hg-do-across-repo path
 	(vc-buffer-sync)))))
-  
+
 (defun hg-buffer-commands (pnt)
   "Use the properties of a character to do something sensible."
   (interactive "d")
@@ -402,7 +402,7 @@
 	     (key (split-string left "\\."))
 	     (value (hg-replace-in-string right "\\\\n" "\n" t)))
 	(setq items (cons (cons (cons (car key) (cadr key)) value) items))))))
-  
+
 (defun hg-config-section (section config)
   "Return an alist of (name . value) pairs for SECTION of CONFIG."
   (let (items)
@@ -522,7 +522,7 @@
   (when file-name
     (set (make-local-variable 'hg-view-file-name)
 	 (hg-abbrev-file-name file-name))))
-  
+
 (defun hg-file-status (file)
   "Return status of FILE, or nil if FILE does not exist or is unmanaged."
   (let* ((s (hg-run "status" file))
@@ -591,7 +591,7 @@
 	(mark-context (let ((mark (mark-marker)))
 			(and mark (hg-position-context mark)))))
     (list point-context mark-context)))
-	
+
 (defun hg-find-context (ctx)
   "Attempt to find a context in the given buffer.
 Always returns a valid, hopefully sane, position."
@@ -740,7 +740,7 @@
 	(add-text-properties bol (point) '(face bold))
 	(message "%s will be committed"
 		 (buffer-substring bol (point)))))))
-	
+
 (defun hg-commit-mouse-clicked (event)
   "Toggle whether or not the file at POS will be committed."
   (interactive "@e")
@@ -927,7 +927,7 @@
     (when update
       (with-current-buffer buf
 	(hg-mode-line)))))
-  
+
 (defun hg-incoming (&optional repo)
   "Display changesets present in REPO that are not present locally."
   (interactive (list (hg-read-repo-name " where changes would come from")))
--- a/contrib/tcsh_completion	Thu Sep 22 09:39:05 2005 -0700
+++ b/contrib/tcsh_completion	Thu Sep 22 09:41:34 2005 -0700
@@ -2,14 +2,14 @@
 # tcsh completion for Mercurial
 #
 # This file has been auto-generated by tcsh_completion_build.sh for
-# Mercurial Distributed SCM (version 325c07fd2ebd) 
+# Mercurial Distributed SCM (version 325c07fd2ebd)
 #
 # Copyright (C) 2005 TK Soh.
 #
 # This is free software; you can redistribute it and/or modify it under
 # the terms of the GNU General Public License as published by the Free
 # Software Foundation; either version 2 of the License, or (at your
-# option) any later version. 
+# option) any later version.
 #
 
 complete hg \
--- a/contrib/tcsh_completion_build.sh	Thu Sep 22 09:39:05 2005 -0700
+++ b/contrib/tcsh_completion_build.sh	Thu Sep 22 09:41:34 2005 -0700
@@ -9,7 +9,7 @@
 # This is free software; you can redistribute it and/or modify it under
 # the terms of the GNU General Public License as published by the Free
 # Software Foundation; either version 2 of the License, or (at your
-# option) any later version. 
+# option) any later version.
 #
 #
 # Description
@@ -55,14 +55,14 @@
 # tcsh completion for Mercurial
 #
 # This file has been auto-generated by $script_name for
-# $hg_version 
+# $hg_version
 #
 # Copyright (C) 2005 TK Soh.
 #
 # This is free software; you can redistribute it and/or modify it under
 # the terms of the GNU General Public License as published by the Free
 # Software Foundation; either version 2 of the License, or (at your
-# option) any later version. 
+# option) any later version.
 #
 
 complete hg \\
--- a/doc/hg.1.txt	Thu Sep 22 09:39:05 2005 -0700
+++ b/doc/hg.1.txt	Thu Sep 22 09:41:34 2005 -0700
@@ -202,7 +202,7 @@
     -X, --exclude <pat>   exclude names matching the given patterns
     -f, --force           forcibly copy over an existing managed file
     -p, --parents         append source path to dest
-    
+
     aliases: cp
 
 diff [-a] [-r revision] [-r revision] [files ...]::
--- a/doc/hgrc.5.txt	Thu Sep 22 09:39:05 2005 -0700
+++ b/doc/hgrc.5.txt	Thu Sep 22 09:41:34 2005 -0700
@@ -65,7 +65,7 @@
 Mercurial "hgrc" file, the purpose of each section, its possible
 keys, and their possible values.
 
-decode/encode:: 
+decode/encode::
   Filters for transforming files on checkout/checkin. This would
   typically be used for newline processing or other
   localization/canonicalization of files.
--- a/mercurial/commands.py	Thu Sep 22 09:39:05 2005 -0700
+++ b/mercurial/commands.py	Thu Sep 22 09:41:34 2005 -0700
@@ -902,11 +902,12 @@
     items = list(walk(repo, pats, opts))
     if not items:
         return
-    fmt = '%%s  %%-%ds  %%-%ds  %%s\n' % (
+    fmt = '%%s  %%-%ds  %%-%ds  %%s' % (
         max([len(abs) for (src, abs, rel, exact) in items]),
         max([len(rel) for (src, abs, rel, exact) in items]))
     for src, abs, rel, exact in items:
-        ui.write(fmt % (src, abs, rel, exact and 'exact' or ''))
+        line = fmt % (src, abs, rel, exact and 'exact' or '')
+        ui.write("%s\n" % line.rstrip())
 
 def diff(ui, repo, *pats, **opts):
     """diff working directory (or selected files)"""
--- a/mercurial/hgweb.py	Thu Sep 22 09:39:05 2005 -0700
+++ b/mercurial/hgweb.py	Thu Sep 22 09:41:34 2005 -0700
@@ -685,7 +685,7 @@
                 encoding = "gzip"
             else:
                 encoding = "x-bzip2"
-            req.header([('Content-type', 'application/x-tar'), 
+            req.header([('Content-type', 'application/x-tar'),
                     ('Content-disposition', 'attachment; filename=%s%s%s' %
                         (name[:-1], '.tar.', type)),
                     ('Content-encoding', encoding)])
--- a/mercurial/packagescan.py	Thu Sep 22 09:39:05 2005 -0700
+++ b/mercurial/packagescan.py	Thu Sep 22 09:41:34 2005 -0700
@@ -1,4 +1,4 @@
-# packagescan.py - Helper module for identifing used modules. 
+# packagescan.py - Helper module for identifing used modules.
 # Used for the py2exe distutil.
 #
 # Copyright 2005 Volker Kleinfeld <Volker.Kleinfeld@gmx.de>
@@ -26,9 +26,9 @@
     libpath = os.path.abspath(libpath)
     sys.path.insert(0,libpath)
     packdir = os.path.join(libpath,packagename)
-    # A normal import would not find the package in 
+    # A normal import would not find the package in
     # the build directory. ihook is used to force the import.
-    # After the package is imported the import scope for 
+    # After the package is imported the import scope for
     # the following imports is settled.
     p = importfrom(packdir)
     globals()[packagename] = p
@@ -46,7 +46,7 @@
         if m == '__init__.py': continue
         tmp = {}
         mname,ext = os.path.splitext(m)
-        fullname = packagename+'.'+mname 
+        fullname = packagename+'.'+mname
         __import__(fullname,tmp,tmp)
         requiredmodules[fullname] = 1
     # Import all extension modules and by that run the fake demandload
--- a/mercurial/util.py	Thu Sep 22 09:39:05 2005 -0700
+++ b/mercurial/util.py	Thu Sep 22 09:41:34 2005 -0700
@@ -515,7 +515,7 @@
 
     def read(self, l):
         """Read L bytes of data from the iterator of chunks of data.
-	Returns less than L bytes if the iterator runs dry."""
+        Returns less than L bytes if the iterator runs dry."""
         if l > len(self.buf) and not self.iterempty:
             # Clamp to a multiple of self.targetsize
             targetsize = self.targetsize * ((l // self.targetsize) + 1)
--- a/notes.txt	Thu Sep 22 09:39:05 2005 -0700
+++ b/notes.txt	Thu Sep 22 09:41:34 2005 -0700
@@ -91,7 +91,7 @@
 
 Then for each file, we perform a graph merge and resolve as above.
 It's important to merge files using per-file DAGs rather than just
-changeset level DAGs as this diagram illustrates: 
+changeset level DAGs as this diagram illustrates:
 
 M   M1   M2
 
--- a/templates/header.tmpl	Thu Sep 22 09:39:05 2005 -0700
+++ b/templates/header.tmpl	Thu Sep 22 09:41:34 2005 -0700
@@ -23,7 +23,7 @@
 .metatag {
   background-color: #888888;
   color: white;
-  text-align: right; 
+  text-align: right;
 }
 
 /* Common */
--- a/tests/run-tests	Thu Sep 22 09:39:05 2005 -0700
+++ b/tests/run-tests	Thu Sep 22 09:41:34 2005 -0700
@@ -104,14 +104,14 @@
     return $fail
 }
 
-# list of prerequisite programs 
+# list of prerequisite programs
 # stuff from coreutils (cat, rm, etc) are not tested
 prereqs="python merge diff grep unzip md5sum gunzip sed"
 missing=''
 for pre in $prereqs ; do
     if type $pre > /dev/null 2>&1 ; then
         : prereq exists
-    else 
+    else
         missing="$pre $missing"
     fi
 done
--- a/tests/test-rawcommit1	Thu Sep 22 09:39:05 2005 -0700
+++ b/tests/test-rawcommit1	Thu Sep 22 09:41:34 2005 -0700
@@ -2,10 +2,10 @@
 hg --debug init
 echo this is a1 > a
 hg add a
-hg commit -m0 -d "0 0" 
+hg commit -m0 -d "0 0"
 echo this is b1 > b
 hg add b
-hg commit -m1 -d "0 0" 
+hg commit -m1 -d "0 0"
 hg manifest 1
 echo this is c1 > c
 hg rawcommit -p 1 -d "0 0" -m2 c
--- a/tests/test-tag	Thu Sep 22 09:39:05 2005 -0700
+++ b/tests/test-tag	Thu Sep 22 09:41:34 2005 -0700
@@ -5,9 +5,9 @@
 hg add a
 hg commit -m "test" -d "0 0"
 hg history
-hg tag -d "0 0" "bleah" 
+hg tag -d "0 0" "bleah"
 hg history
 
 echo foo >> .hgtags
-hg tag -d "0 0" "bleah2" || echo "failed" 
+hg tag -d "0 0" "bleah2" || echo "failed"
 
--- a/tests/test-unrelated-pull	Thu Sep 22 09:39:05 2005 -0700
+++ b/tests/test-unrelated-pull	Thu Sep 22 09:41:34 2005 -0700
@@ -10,7 +10,7 @@
 cd ..
 mkdir b
 cd b
-hg init 
+hg init
 echo 321 > b
 hg add b
 hg commit -m "b" -u b -d "0 0"
--- a/tests/test-update-reverse	Thu Sep 22 09:39:05 2005 -0700
+++ b/tests/test-update-reverse	Thu Sep 22 09:41:34 2005 -0700
@@ -13,7 +13,7 @@
 echo Main should be gone
 ls
 
-touch side1 
+touch side1
 hg add side1
 hg commit -m "Added side1" -d "0 0"
 touch side2
--- a/tests/test-walk.out	Thu Sep 22 09:39:05 2005 -0700
+++ b/tests/test-walk.out	Thu Sep 22 09:41:34 2005 -0700
@@ -12,74 +12,74 @@
 adding mammals/Procyonidae/coatimundi
 adding mammals/Procyonidae/raccoon
 adding mammals/skunk
-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                   
-f  mammals/Procyonidae/cacomistle  Procyonidae/cacomistle  
-f  mammals/Procyonidae/coatimundi  Procyonidae/coatimundi  
-f  mammals/Procyonidae/raccoon     Procyonidae/raccoon     
-f  mammals/skunk                   skunk                   
-f  mammals/Procyonidae/cacomistle  Procyonidae/cacomistle  
-f  mammals/Procyonidae/coatimundi  Procyonidae/coatimundi  
-f  mammals/Procyonidae/raccoon     Procyonidae/raccoon     
-f  mammals/Procyonidae/cacomistle  cacomistle  
-f  mammals/Procyonidae/coatimundi  coatimundi  
-f  mammals/Procyonidae/raccoon     raccoon     
-f  mammals/Procyonidae/cacomistle  cacomistle  
-f  mammals/Procyonidae/coatimundi  coatimundi  
-f  mammals/Procyonidae/raccoon     raccoon     
-f  mammals/skunk                   ../skunk    
-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  mammals/Procyonidae/cacomistle  Procyonidae/cacomistle  
-f  mammals/Procyonidae/coatimundi  Procyonidae/coatimundi  
-f  mammals/Procyonidae/raccoon     Procyonidae/raccoon     
-f  mammals/skunk                   skunk                   
-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  beans/black     beans/black     
-f  beans/borlotti  beans/borlotti  
-f  mammals/skunk  mammals/skunk  
-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                   
+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
+f  mammals/Procyonidae/cacomistle  Procyonidae/cacomistle
+f  mammals/Procyonidae/coatimundi  Procyonidae/coatimundi
+f  mammals/Procyonidae/raccoon     Procyonidae/raccoon
+f  mammals/skunk                   skunk
+f  mammals/Procyonidae/cacomistle  Procyonidae/cacomistle
+f  mammals/Procyonidae/coatimundi  Procyonidae/coatimundi
+f  mammals/Procyonidae/raccoon     Procyonidae/raccoon
+f  mammals/Procyonidae/cacomistle  cacomistle
+f  mammals/Procyonidae/coatimundi  coatimundi
+f  mammals/Procyonidae/raccoon     raccoon
+f  mammals/Procyonidae/cacomistle  cacomistle
+f  mammals/Procyonidae/coatimundi  coatimundi
+f  mammals/Procyonidae/raccoon     raccoon
+f  mammals/skunk                   ../skunk
+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  mammals/Procyonidae/cacomistle  Procyonidae/cacomistle
+f  mammals/Procyonidae/coatimundi  Procyonidae/coatimundi
+f  mammals/Procyonidae/raccoon     Procyonidae/raccoon
+f  mammals/skunk                   skunk
+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  beans/black     beans/black
+f  beans/borlotti  beans/borlotti
+f  mammals/skunk  mammals/skunk
+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
 abort: .. not under root
 abort: beans/../.. not under root
-f  fennel      fennel      
-f  fenugreek   fenugreek   
-f  fiddlehead  fiddlehead  
-f  glob:glob   glob:glob   
-f  beans/black    beans/black    
-f  fenugreek      fenugreek      
-f  glob:glob      glob:glob      
-f  mammals/skunk  mammals/skunk  
-f  beans/black  beans/black  
-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  beans/black    beans/black
+f  fenugreek      fenugreek
+f  glob:glob      glob:glob
+f  mammals/skunk  mammals/skunk
+f  beans/black  beans/black
+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
 NOEXIST: No such file or directory
 fifo: unsupported file type (type is fifo)
 m  fenugreek  fenugreek  exact