##// END OF EJS Templates
fetch: switch the default parent used for a merge...
fetch: switch the default parent used for a merge This treats newly pulled changes as authoritative, and local changes as the "satellite" changes. The prior default behaviour is still available, via the --switch-parent option.

File last commit:

r4659:7a7d4937 default
r6206:0b6f1249 default
Show More
test-rename-merge2
104 lines | 2.7 KiB | text/plain | TextLexer
/ tests / test-rename-merge2
Matt Mackall
merge: copy fixes and tests...
r3252 #!/bin/sh
mkdir -p t
cd t
Alexis S. L. Carvalho
test-rename-merge2: avoid a shell script
r4296 cat <<EOF > merge
import sys, os
f = open(sys.argv[1], "wb")
f.write("merge %s %s %s" % (sys.argv[1], sys.argv[2], sys.argv[3]))
f.close()
Matt Mackall
merge: copy fixes and tests...
r3252 EOF
Alexis S. L. Carvalho
test-rename-merge2: avoid a shell script
r4296 HGMERGE="python ../merge"; export HGMERGE
Matt Mackall
merge: copy fixes and tests...
r3252
# perform a test merge with possible renaming
Thomas Arendsen Hein
Kill trailing spaces
r4659 #
Matt Mackall
merge: copy fixes and tests...
r3252 # args:
# $1 = action in local branch
# $2 = action in remote branch
# $3 = action in working dir
# $4 = expected result
tm()
{
mkdir t
cd t
hg init
echo "[merge]" >> .hg/hgrc
echo "followcopies = 1" >> .hg/hgrc
# base
echo base > a
echo base > rev # used to force commits
hg add a rev
hg ci -m "base" -d "0 0"
# remote
echo remote > rev
if [ "$2" != "" ] ; then $2 ; fi
hg ci -m "remote" -d "0 0"
# local
hg co -q 0
echo local > rev
if [ "$1" != "" ] ; then $1 ; fi
hg ci -m "local" -d "0 0"
# working dir
echo local > rev
if [ "$3" != "" ] ; then $3 ; fi
# merge
echo "--------------"
echo "test L:$1 R:$2 W:$3 - $4"
echo "--------------"
Alexis S. L. Carvalho
test-rename-merge2: avoid a shell script
r4296 hg merge -y --debug --traceback
Matt Mackall
merge: copy fixes and tests...
r3252
echo "--------------"
hg status -camC -X rev
hg ci -m "merge" -d "0 0"
Thomas Arendsen Hein
Kill trailing spaces
r4659
Matt Mackall
merge: copy fixes and tests...
r3252 echo "--------------"
echo
cd ..
Thomas Arendsen Hein
Don't use -f for rm in tests where not needed. Drop /bin/ from /bin/rm.
r3988 rm -r t
Matt Mackall
merge: copy fixes and tests...
r3252 }
Thomas Arendsen Hein
Kill trailing spaces
r4659 up() {
Matt Mackall
merge: copy fixes and tests...
r3252 cp rev $1
hg add $1 2> /dev/null
Thomas Arendsen Hein
Kill trailing spaces
r4659 if [ "$2" != "" ] ; then
Matt Mackall
merge: copy fixes and tests...
r3252 cp rev $2
hg add $2 2> /dev/null
fi
}
uc() { up $1; hg cp $1 $2; } # update + copy
um() { up $1; hg mv $1 $2; }
nc() { hg cp $1 $2; } # just copy
nm() { hg mv $1 $2; } # just move
tm "up a " "nc a b" " " "1 get local a to b"
tm "nc a b" "up a " " " "2 get rem change to a and b"
tm "up a " "nm a b" " " "3 get local a change to b, remove a"
tm "nm a b" "up a " " " "4 get remote change to b"
tm " " "nc a b" " " "5 get b"
tm "nc a b" " " " " "6 nothing"
tm " " "nm a b" " " "7 get b"
tm "nm a b" " " " " "8 nothing"
tm "um a b" "um a b" " " "9 do merge with ancestor in a"
#tm "um a c" "um x c" " " "10 do merge with no ancestor"
tm "nm a b" "nm a c" " " "11 get c, keep b"
tm "nc a b" "up b " " " "12 merge b no ancestor"
tm "up b " "nm a b" " " "13 merge b no ancestor"
tm "nc a b" "up a b" " " "14 merge b no ancestor"
tm "up b " "nm a b" " " "15 merge b no ancestor, remove a"
tm "nc a b" "up a b" " " "16 get a, merge b no ancestor"
Thomas Arendsen Hein
Kill trailing spaces
r4659 tm "up a b" "nc a b" " " "17 keep a, merge b no ancestor"
Matt Mackall
merge: copy fixes and tests...
r3252 tm "nm a b" "up a b" " " "18 merge b no ancestor"
tm "up a b" "nm a b" " " "19 merge b no ancestor, prompt remove a"
tm "up a " "um a b" " " "20 merge a and b to b, remove a"
tm "um a b" "up a " " " "21 merge a and b to b"
#tm "nm a b" "um x a" " " "22 get a, keep b"
tm "nm a b" "up a c" " " "23 get c, keep b"