##// END OF EJS Templates
issue1577: fix broken test by assuming less about CVS output....
issue1577: fix broken test by assuming less about CVS output. Specifically, output of "cvs ci" varies unpredictably across CVS versions, so any test that includes the output of "cvs ci" is doomed to fail some of the time. This fixes that by discarding the output of "cvs ci".

File last commit:

r4659:7a7d4937 default
r8081:6c3b8132 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"