mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 15:27:13 +03:00
ca80dfaea9
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.
187 lines
3.6 KiB
Bash
Executable File
187 lines
3.6 KiB
Bash
Executable File
#!/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
|