Mercurial > hg
view tests/test-subrepo @ 10378:e1401c74572f
subrepo: change default path in hgrc of subrepo after cloning
Previous behavior was to put in the cloned subrepos the path found in the original main repo.
However it isn't valid for relative path and it seems more logical to reference instead the subrepos
working copy path of the original main repo.
author | Saint Germain <saintger@gmail.com> |
---|---|
date | Sat, 06 Feb 2010 19:14:37 +0100 |
parents | 0bc93fa2cf2b |
children | e433002acb05 |
line wrap: on
line source
#!/bin/sh rm -rf sub mkdir sub cd sub hg init t cd t echo % first revision, no sub echo a > a hg ci -Am0 echo % add first sub echo s = s > .hgsub hg add .hgsub hg init s echo a > s/a hg -R s ci -Ams0 hg ci -m1 echo % add sub sub echo ss = ss > s/.hgsub hg init s/ss echo a > s/ss/a hg -R s add s/.hgsub hg -R s/ss add s/ss/a hg ci -m2 echo % bump sub rev echo b > s/a hg -R s ci -ms1 hg ci -m3 echo % leave sub dirty echo c > s/a hg ci -m4 hg tip -R s echo % check caching hg co 0 hg debugsub echo % restore hg co hg debugsub echo % new branch for merge tests hg co 1 echo t = t >> .hgsub hg init t echo t > t/t hg -R t add t echo % 5 hg ci -m5 # add sub echo t2 > t/t echo % 6 hg st -R s hg ci -m6 # change sub hg debugsub echo t3 > t/t echo % 7 hg ci -m7 # change sub again for conflict test hg rm .hgsub echo % 8 hg ci -m8 # remove sub echo % merge tests hg co -C 3 hg merge 5 # test adding hg debugsub hg ci -m9 hg merge 6 --debug # test change hg debugsub echo conflict > t/t hg ci -m10 HGMERGE=internal:merge hg merge --debug 7 # test conflict echo % should conflict cat t/t echo % clone cd .. hg clone t tc cd tc hg debugsub echo % push echo bah > t/t hg ci -m11 hg push | sed 's/ .*sub/ ...sub/g' echo % push -f echo bah > s/a hg ci -m12 hg push | sed 's/ .*sub/ ...sub/g' hg push -f | sed 's/ .*sub/ ...sub/g' echo % update cd ../t hg up -C # discard our earlier merge echo blah > t/t hg ci -m13 echo % pull cd ../tc hg pull | sed 's/ .*sub/ ...sub/g' hg up # should pull t cat t/t echo % bogus subrepo path aborts echo 'bogus=[boguspath' >> .hgsub hg ci -m 'bogus subrepo path' echo % issue 1986 cd .. rm -rf sub hg init main cd main hg init s # subrepo layout cd s # echo a > a # o 5 br hg ci -Am1 # /| hg branch br # o | 4 default echo a >> a # | | hg ci -m1 # | o 3 br hg up default # |/| echo b > b # o | 2 default hg ci -Am1 # | | hg up br # | o 1 br hg merge tip # |/ hg ci -m1 # o 0 default hg up 2 echo c > c hg ci -Am1 hg up 3 hg merge 4 hg ci -m1 cd .. # main repo layout: echo 's = s' > .hgsub # hg -R s up 2 # * <-- try to merge default into br again hg ci -Am1 # .`| hg branch br # . o 5 br --> substate = 5 echo b > b # . | hg -R s up 3 # o | 4 default --> substate = 4 hg ci -Am1 # | | hg up default # | o 3 br --> substate = 2 echo c > c # |/| hg ci -Am1 # o | 2 default --> substate = 2 hg up 1 # | | hg merge 2 # | o 1 br --> substate = 3 hg ci -m1 # |/ hg up 2 # o 0 default --> substate = 2 hg -R s up 4 echo d > d hg ci -Am1 hg up 3 hg -R s up 5 echo e > e hg ci -Am1 hg up 5 hg merge 4 # try to merge default into br again cd .. echo % test repository cloning mkdir mercurial mercurial2 hg init nested_absolute echo test > nested_absolute/foo hg -R nested_absolute add hg -R nested_absolute ci -mtest cd mercurial hg init nested_relative echo test2 > nested_relative/foo2 hg -R nested_relative add hg -R nested_relative ci -mtest2 hg init main echo nested_relative = ../nested_relative > main/.hgsub echo nested_absolute = $PWD/nested_absolute >> main/.hgsub hg -R main add hg -R main ci -m "add subrepos" cd .. hg clone mercurial/main mercurial2/main cat mercurial2/main/nested_absolute/.hg/hgrc mercurial2/main/nested_relative/.hg/hgrc | sed "s:${PWD}:/tmp:" rm -rf mercurial mercurial2 exit 0