view tests/test-subrepo-paths.t @ 46386:d6fa9fbd375d stable

commit: reorder if-else conditional to give mergestate info priority Looking at the code now, I was unable to find a good reason as why we only rely on mergestate extras info after checking whether a filelog parent is ancestor of other or not. I mean if we have stored in mergestate that `other` was chosed, we should blindly pick that one. This cleanup will also help introduce more cases when both `fparent1` and `fparent2` are non-null but using info from mergestate, we can fastpath. The test change actually demonstrates the point of the patch. During merge we were getting the other side of the file but on commit we were marking that as merged. Differential Revision: https://phab.mercurial-scm.org/D10147
author Pulkit Goyal <7895pulkit@gmail.com>
date Thu, 04 Mar 2021 17:35:58 +0530
parents f97c83d94911
children
line wrap: on
line source

  $ 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 ..