tests/test-subrepo-paths.t
author Adrian Buehlmann <adrian@cadifra.com>
Sat, 09 Oct 2010 21:54:50 +0200
changeset 12687 34d8247a4595
parent 12640 6cc4b14fb76b
child 13578 e720b3324e35
permissions -rw-r--r--
store: encode first period or space in filenames (issue1713) - Mac OS X has problems with filenames starting with '._' (e.g. '.FOO' -> '._f_o_o' is now encoded as '~2e_f_o_o') - Explorer of Windows Vista and Windows 7 strip leading spaces of path elements of filenames when copying trees Above problems are avoided by encoding the first space (as '~20') or period (as '~2e') of all path elements. This introduces a new entry 'dotencode' in .hg/requires, that is, a new repository filename layout (inside .hg/store). Newly created repositories require 'dotencode' by default. Specifying [format] dotencode = False in a config file will use the old format instead. Prior Mercurial versions will abort with the message abort: requirement 'dotencode' not supported! when trying to access a local repository that requires 'dotencode'. New 'dotencode' repositories can be converted to the previous repository format with hg --config format.dotencode=0 clone --pull repoA repoB

  $ hg init outer
  $ cd outer

hg debugsub with no remapping

  $ echo 'sub = http://example.net/libfoo' > .hgsub
  $ hg add .hgsub

  $ hg debugsub
  path sub
   source   http://example.net/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 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
  [255]