tests/test-subrepo-paths.t
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Thu, 25 Dec 2014 23:33:26 +0900
changeset 23682 1642eb429536
parent 19380 ee07f9d142c9
child 35393 4441705b7111
permissions -rw-r--r--
windows: quote the specified string only when it has to be quoted Before this patch, "windows.shellquote" (as used as "util.shellquote") always quotes specified strings with double quotation marks, for external process invocation. But some problematic applications can't work correctly, when command line arguments are quoted: see issue4463 for detail. On the other hand, quoting itself is needed to specify arguments containing whitespaces and/or some special characters exactly. This patch makes "windows.shellquote" examine the specified string and quote it only when it may have to be quoted for safety.

  $ hg init outer
  $ cd outer

  $ echo '[paths]' >> .hg/hgrc
  $ echo 'default = http://example.net/' >> .hg/hgrc

hg debugsub with no remapping

  $ echo 'sub = libfoo' > .hgsub
  $ hg add .hgsub

  $ hg debugsub
  path sub
   source   libfoo
   revision 

hg debugsub with remapping

  $ echo '[subpaths]' >> .hg/hgrc
  $ printf 'http://example.net/lib(.*) = C:\\libs\\\\1-lib\\\n' >> .hg/hgrc

  $ hg debugsub
  path sub
   source   C:\libs\foo-lib\
   revision 

test cumulative remapping, the $HGRCPATH file is loaded first

  $ echo '[subpaths]' >> $HGRCPATH
  $ echo 'libfoo = libbar' >> $HGRCPATH
  $ hg debugsub
  path sub
   source   C:\libs\bar-lib\
   revision 

test absolute source path -- testing with a URL is important since
standard os.path.join wont treat that as an absolute path

  $ echo 'abs = http://example.net/abs' > .hgsub
  $ hg debugsub
  path abs
   source   http://example.net/abs
   revision 

  $ echo 'abs = /abs' > .hgsub
  $ hg debugsub
  path abs
   source   /abs
   revision 

test bad subpaths pattern

  $ cat > .hg/hgrc <<EOF
  > [subpaths]
  > .* = \1
  > EOF
  $ hg debugsub
  abort: bad subrepository pattern in $TESTTMP/outer/.hg/hgrc:2: invalid group reference (glob)
  [255]

  $ cd ..