contrib/remote-helpers: style updates for test scripts

During the review of the main series it was noticed that these test
scripts can use updates to conform to our coding style better, but
fixing the style should be done in a patch separate from the main
series.

This updates the test-*.sh scripts only for style issues:

 * We do not leave SP between a redirection operator and the
   filename;

 * We change line before "then", "do", etc. rather than terminating
   the condition for "if"/"while" and list for "for" with a
   semicolon;

 * When HERE document does not use any expansion, we quote the end
   marker (e.g. "cat <<\EOF" not "cat <<EOF") to signal the readers
   that there is no funny substitution to worry about when reading
   the code.

 * We use "test" rather than "[".

Reviewed-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 2013-08-29 14:10:04 -07:00
parent c587d65512
commit ff867963f0
4 changed files with 248 additions and 226 deletions

View File

@ -7,19 +7,21 @@ test_description='Test remote-bzr'


. ./test-lib.sh . ./test-lib.sh


if ! test_have_prereq PYTHON; then if ! test_have_prereq PYTHON
then
skip_all='skipping remote-bzr tests; python not available' skip_all='skipping remote-bzr tests; python not available'
test_done test_done
fi fi


if ! python -c 'import bzrlib'; then if ! python -c 'import bzrlib'
then
skip_all='skipping remote-bzr tests; bzr not available' skip_all='skipping remote-bzr tests; bzr not available'
test_done test_done
fi fi


check () { check () {
echo $3 > expected && echo $3 >expected &&
git --git-dir=$1/.git log --format='%s' -1 $2 > actual git --git-dir=$1/.git log --format='%s' -1 $2 >actual
test_cmp expected actual test_cmp expected actual
} }


@ -29,7 +31,7 @@ test_expect_success 'cloning' '
( (
bzr init bzrrepo && bzr init bzrrepo &&
cd bzrrepo && cd bzrrepo &&
echo one > content && echo one >content &&
bzr add content && bzr add content &&
bzr commit -m one bzr commit -m one
) && ) &&
@ -41,7 +43,7 @@ test_expect_success 'cloning' '
test_expect_success 'pulling' ' test_expect_success 'pulling' '
( (
cd bzrrepo && cd bzrrepo &&
echo two > content && echo two >content &&
bzr commit -m two bzr commit -m two
) && ) &&


@ -53,13 +55,13 @@ test_expect_success 'pulling' '
test_expect_success 'pushing' ' test_expect_success 'pushing' '
( (
cd gitrepo && cd gitrepo &&
echo three > content && echo three >content &&
git commit -a -m three && git commit -a -m three &&
git push git push
) && ) &&


echo three > expected && echo three >expected &&
cat bzrrepo/content > actual && cat bzrrepo/content >actual &&
test_cmp expected actual test_cmp expected actual
' '


@ -67,16 +69,16 @@ test_expect_success 'roundtrip' '
( (
cd gitrepo && cd gitrepo &&
git pull && git pull &&
git log --format="%s" -1 origin/master > actual git log --format="%s" -1 origin/master >actual
) && ) &&
echo three > expected && echo three >expected &&
test_cmp expected actual && test_cmp expected actual &&


(cd gitrepo && git push && git pull) && (cd gitrepo && git push && git pull) &&


( (
cd bzrrepo && cd bzrrepo &&
echo four > content && echo four >content &&
bzr commit -m four bzr commit -m four
) && ) &&


@ -86,19 +88,19 @@ test_expect_success 'roundtrip' '


( (
cd gitrepo && cd gitrepo &&
echo five > content && echo five >content &&
git commit -a -m five && git commit -a -m five &&
git push && git pull git push && git pull
) && ) &&


(cd bzrrepo && bzr revert) && (cd bzrrepo && bzr revert) &&


echo five > expected && echo five >expected &&
cat bzrrepo/content > actual && cat bzrrepo/content >actual &&
test_cmp expected actual test_cmp expected actual
' '


cat > expected <<EOF cat >expected <<\EOF
100644 blob 54f9d6da5c91d556e6b54340b1327573073030af content 100644 blob 54f9d6da5c91d556e6b54340b1327573073030af content
100755 blob 68769579c3eaadbe555379b9c3538e6628bae1eb executable 100755 blob 68769579c3eaadbe555379b9c3538e6628bae1eb executable
120000 blob 6b584e8ece562ebffc15d38808cd6b98fc3d97ea link 120000 blob 6b584e8ece562ebffc15d38808cd6b98fc3d97ea link
@ -107,7 +109,7 @@ EOF
test_expect_success 'special modes' ' test_expect_success 'special modes' '
( (
cd bzrrepo && cd bzrrepo &&
echo exec > executable echo exec >executable
chmod +x executable && chmod +x executable &&
bzr add executable bzr add executable
bzr commit -m exec && bzr commit -m exec &&
@ -122,21 +124,21 @@ test_expect_success 'special modes' '
( (
cd gitrepo && cd gitrepo &&
git pull git pull
git ls-tree HEAD > ../actual git ls-tree HEAD >../actual
) && ) &&


test_cmp expected actual && test_cmp expected actual &&


( (
cd gitrepo && cd gitrepo &&
git cat-file -p HEAD:link > ../actual git cat-file -p HEAD:link >../actual
) && ) &&


printf content > expected && printf content >expected &&
test_cmp expected actual test_cmp expected actual
' '


cat > expected <<EOF cat >expected <<\EOF
100644 blob 54f9d6da5c91d556e6b54340b1327573073030af content 100644 blob 54f9d6da5c91d556e6b54340b1327573073030af content
100755 blob 68769579c3eaadbe555379b9c3538e6628bae1eb executable 100755 blob 68769579c3eaadbe555379b9c3538e6628bae1eb executable
120000 blob 6b584e8ece562ebffc15d38808cd6b98fc3d97ea link 120000 blob 6b584e8ece562ebffc15d38808cd6b98fc3d97ea link
@ -147,8 +149,8 @@ test_expect_success 'moving directory' '
( (
cd bzrrepo && cd bzrrepo &&
mkdir movedir && mkdir movedir &&
echo one > movedir/one && echo one >movedir/one &&
echo two > movedir/two && echo two >movedir/two &&
bzr add movedir && bzr add movedir &&
bzr commit -m movedir && bzr commit -m movedir &&
bzr mv movedir movedir-new && bzr mv movedir movedir-new &&
@ -158,7 +160,7 @@ test_expect_success 'moving directory' '
( (
cd gitrepo && cd gitrepo &&
git pull && git pull &&
git ls-tree HEAD > ../actual git ls-tree HEAD >../actual
) && ) &&


test_cmp expected actual test_cmp expected actual
@ -167,7 +169,7 @@ test_expect_success 'moving directory' '
test_expect_success 'different authors' ' test_expect_success 'different authors' '
( (
cd bzrrepo && cd bzrrepo &&
echo john >> content && echo john >>content &&
bzr commit -m john \ bzr commit -m john \
--author "Jane Rey <jrey@example.com>" \ --author "Jane Rey <jrey@example.com>" \
--author "John Doe <jdoe@example.com>" --author "John Doe <jdoe@example.com>"
@ -176,10 +178,10 @@ test_expect_success 'different authors' '
( (
cd gitrepo && cd gitrepo &&
git pull && git pull &&
git show --format="%an <%ae>, %cn <%ce>" --quiet > ../actual git show --format="%an <%ae>, %cn <%ce>" --quiet >../actual
) && ) &&


echo "Jane Rey <jrey@example.com>, A U Thor <author@example.com>" > expected && echo "Jane Rey <jrey@example.com>, A U Thor <author@example.com>" >expected &&
test_cmp expected actual test_cmp expected actual
' '


@ -196,12 +198,12 @@ test_expect_success 'fetch utf-8 filenames' '
bzr init bzrrepo && bzr init bzrrepo &&
cd bzrrepo && cd bzrrepo &&


echo test >> "ærø" && echo test >>"ærø" &&
bzr add "ærø" && bzr add "ærø" &&
echo test >> "ø~?" && echo test >>"ø~?" &&
bzr add "ø~?" && bzr add "ø~?" &&
bzr commit -m add-utf-8 && bzr commit -m add-utf-8 &&
echo test >> "ærø" && echo test >>"ærø" &&
bzr commit -m test-utf-8 && bzr commit -m test-utf-8 &&
bzr rm "ø~?" && bzr rm "ø~?" &&
bzr mv "ærø" "ø~?" && bzr mv "ærø" "ø~?" &&
@ -211,9 +213,9 @@ test_expect_success 'fetch utf-8 filenames' '
( (
git clone "bzr::bzrrepo" gitrepo && git clone "bzr::bzrrepo" gitrepo &&
cd gitrepo && cd gitrepo &&
git -c core.quotepath=false ls-files > ../actual git -c core.quotepath=false ls-files >../actual
) && ) &&
echo "ø~?" > expected && echo "ø~?" >expected &&
test_cmp expected actual test_cmp expected actual
' '


@ -229,7 +231,7 @@ test_expect_success 'push utf-8 filenames' '
bzr init bzrrepo && bzr init bzrrepo &&
cd bzrrepo && cd bzrrepo &&


echo one >> content && echo one >>content &&
bzr add content && bzr add content &&
bzr commit -m one bzr commit -m one
) && ) &&
@ -238,15 +240,15 @@ test_expect_success 'push utf-8 filenames' '
git clone "bzr::bzrrepo" gitrepo && git clone "bzr::bzrrepo" gitrepo &&
cd gitrepo && cd gitrepo &&


echo test >> "ærø" && echo test >>"ærø" &&
git add "ærø" && git add "ærø" &&
git commit -m utf-8 && git commit -m utf-8 &&


git push git push
) && ) &&


(cd bzrrepo && bzr ls > ../actual) && (cd bzrrepo && bzr ls >../actual) &&
printf "content\nærø\n" > expected && printf "content\nærø\n" >expected &&
test_cmp expected actual test_cmp expected actual
' '


@ -256,7 +258,7 @@ test_expect_success 'pushing a merge' '
( (
bzr init bzrrepo && bzr init bzrrepo &&
cd bzrrepo && cd bzrrepo &&
echo one > content && echo one >content &&
bzr add content && bzr add content &&
bzr commit -m one bzr commit -m one
) && ) &&
@ -265,27 +267,27 @@ test_expect_success 'pushing a merge' '


( (
cd bzrrepo && cd bzrrepo &&
echo two > content && echo two >content &&
bzr commit -m two bzr commit -m two
) && ) &&


( (
cd gitrepo && cd gitrepo &&
echo three > content && echo three >content &&
git commit -a -m three && git commit -a -m three &&
git fetch && git fetch &&
git merge origin/master || true && git merge origin/master || true &&
echo three > content && echo three >content &&
git commit -a --no-edit && git commit -a --no-edit &&
git push git push
) && ) &&


echo three > expected && echo three >expected &&
cat bzrrepo/content > actual && cat bzrrepo/content >actual &&
test_cmp expected actual test_cmp expected actual
' '


cat > expected <<EOF cat >expected <<\EOF
origin/HEAD origin/HEAD
origin/branch origin/branch
origin/trunk origin/trunk
@ -299,7 +301,7 @@ test_expect_success 'proper bzr repo' '
( (
bzr init bzrrepo/trunk && bzr init bzrrepo/trunk &&
cd bzrrepo/trunk && cd bzrrepo/trunk &&
echo one >> content && echo one >>content &&
bzr add content && bzr add content &&
bzr commit -m one bzr commit -m one
) && ) &&
@ -307,14 +309,14 @@ test_expect_success 'proper bzr repo' '
( (
bzr branch bzrrepo/trunk bzrrepo/branch && bzr branch bzrrepo/trunk bzrrepo/branch &&
cd bzrrepo/branch && cd bzrrepo/branch &&
echo two >> content && echo two >>content &&
bzr commit -m one bzr commit -m one
) && ) &&


( (
git clone "bzr::bzrrepo" gitrepo && git clone "bzr::bzrrepo" gitrepo &&
cd gitrepo && cd gitrepo &&
git for-each-ref --format "%(refname:short)" refs/remotes/origin > ../actual git for-each-ref --format "%(refname:short)" refs/remotes/origin >../actual
) && ) &&


test_cmp expected actual test_cmp expected actual
@ -327,11 +329,11 @@ test_expect_success 'strip' '
bzr init bzrrepo && bzr init bzrrepo &&
cd bzrrepo && cd bzrrepo &&


echo one >> content && echo one >>content &&
bzr add content && bzr add content &&
bzr commit -m one && bzr commit -m one &&


echo two >> content && echo two >>content &&
bzr commit -m two bzr commit -m two
) && ) &&


@ -341,18 +343,18 @@ test_expect_success 'strip' '
cd bzrrepo && cd bzrrepo &&
bzr uncommit --force && bzr uncommit --force &&


echo three >> content && echo three >>content &&
bzr commit -m three && bzr commit -m three &&


echo four >> content && echo four >>content &&
bzr commit -m four && bzr commit -m four &&
bzr log --line | sed -e "s/^[0-9][0-9]*: //" > ../expected bzr log --line | sed -e "s/^[0-9][0-9]*: //" >../expected
) && ) &&


( (
cd gitrepo && cd gitrepo &&
git fetch && git fetch &&
git log --format="%an %ad %s" --date=short origin/master > ../actual git log --format="%an %ad %s" --date=short origin/master >../actual
) && ) &&


test_cmp expected actual test_cmp expected actual
@ -372,7 +374,7 @@ test_expect_success 'export utf-8 authors' '
( (
git init gitrepo && git init gitrepo &&
cd gitrepo && cd gitrepo &&
echo greg >> content && echo greg >>content &&
git add content && git add content &&
git commit -m one && git commit -m one &&
git remote add bzr "bzr::../bzrrepo" && git remote add bzr "bzr::../bzrrepo" &&
@ -381,10 +383,10 @@ test_expect_success 'export utf-8 authors' '


( (
cd bzrrepo && cd bzrrepo &&
bzr log | grep "^committer: " > ../actual bzr log | grep "^committer: " >../actual
) && ) &&


echo "committer: Grégoire <committer@example.com>" > expected && echo "committer: Grégoire <committer@example.com>" >expected &&
test_cmp expected actual test_cmp expected actual
' '



View File

@ -10,12 +10,14 @@ test_description='Test bidirectionality of remote-hg'


. ./test-lib.sh . ./test-lib.sh


if ! test_have_prereq PYTHON; then if ! test_have_prereq PYTHON
then
skip_all='skipping remote-hg tests; python not available' skip_all='skipping remote-hg tests; python not available'
test_done test_done
fi fi


if ! python -c 'import mercurial'; then if ! python -c 'import mercurial'
then
skip_all='skipping remote-hg tests; mercurial not available' skip_all='skipping remote-hg tests; mercurial not available'
test_done test_done
fi fi
@ -43,7 +45,7 @@ hg_push () {
git checkout -q -b tmp && git checkout -q -b tmp &&
git fetch -q "hg::../$1" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' && git fetch -q "hg::../$1" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' &&
git checkout -q @{-1} && git checkout -q @{-1} &&
git branch -q -D tmp 2> /dev/null || true git branch -q -D tmp 2>/dev/null || true
) )
} }


@ -62,7 +64,7 @@ setup () {
echo "tag = -d \"0 0\"" echo "tag = -d \"0 0\""
echo "[extensions]" echo "[extensions]"
echo "graphlog =" echo "graphlog ="
) >> "$HOME"/.hgrc && ) >>"$HOME"/.hgrc &&
git config --global remote-hg.hg-git-compat true git config --global remote-hg.hg-git-compat true
git config --global remote-hg.track-branches true git config --global remote-hg.track-branches true


@ -81,22 +83,22 @@ test_expect_success 'encoding' '
git init -q gitrepo && git init -q gitrepo &&
cd gitrepo && cd gitrepo &&


echo alpha > alpha && echo alpha >alpha &&
git add alpha && git add alpha &&
git commit -m "add älphà" && git commit -m "add älphà" &&


GIT_AUTHOR_NAME="tést èncödîng" && GIT_AUTHOR_NAME="tést èncödîng" &&
export GIT_AUTHOR_NAME && export GIT_AUTHOR_NAME &&
echo beta > beta && echo beta >beta &&
git add beta && git add beta &&
git commit -m "add beta" && git commit -m "add beta" &&


echo gamma > gamma && echo gamma >gamma &&
git add gamma && git add gamma &&
git commit -m "add gämmâ" && git commit -m "add gämmâ" &&


: TODO git config i18n.commitencoding latin-1 && : TODO git config i18n.commitencoding latin-1 &&
echo delta > delta && echo delta >delta &&
git add delta && git add delta &&
git commit -m "add déltà" git commit -m "add déltà"
) && ) &&
@ -105,8 +107,8 @@ test_expect_success 'encoding' '
git_clone hgrepo gitrepo2 && git_clone hgrepo gitrepo2 &&
hg_clone gitrepo2 hgrepo2 && hg_clone gitrepo2 hgrepo2 &&


HGENCODING=utf-8 hg_log hgrepo > expected && HGENCODING=utf-8 hg_log hgrepo >expected &&
HGENCODING=utf-8 hg_log hgrepo2 > actual && HGENCODING=utf-8 hg_log hgrepo2 >actual &&


test_cmp expected actual test_cmp expected actual
' '
@ -117,14 +119,14 @@ test_expect_success 'file removal' '
( (
git init -q gitrepo && git init -q gitrepo &&
cd gitrepo && cd gitrepo &&
echo alpha > alpha && echo alpha >alpha &&
git add alpha && git add alpha &&
git commit -m "add alpha" && git commit -m "add alpha" &&
echo beta > beta && echo beta >beta &&
git add beta && git add beta &&
git commit -m "add beta" git commit -m "add beta"
mkdir foo && mkdir foo &&
echo blah > foo/bar && echo blah >foo/bar &&
git add foo && git add foo &&
git commit -m "add foo" && git commit -m "add foo" &&
git rm alpha && git rm alpha &&
@ -137,8 +139,8 @@ test_expect_success 'file removal' '
git_clone hgrepo gitrepo2 && git_clone hgrepo gitrepo2 &&
hg_clone gitrepo2 hgrepo2 && hg_clone gitrepo2 hgrepo2 &&


hg_log hgrepo > expected && hg_log hgrepo >expected &&
hg_log hgrepo2 > actual && hg_log hgrepo2 >actual &&


test_cmp expected actual test_cmp expected actual
' '
@ -150,12 +152,12 @@ test_expect_success 'git tags' '
git init -q gitrepo && git init -q gitrepo &&
cd gitrepo && cd gitrepo &&
git config receive.denyCurrentBranch ignore && git config receive.denyCurrentBranch ignore &&
echo alpha > alpha && echo alpha >alpha &&
git add alpha && git add alpha &&
git commit -m "add alpha" && git commit -m "add alpha" &&
git tag alpha && git tag alpha &&


echo beta > beta && echo beta >beta &&
git add beta && git add beta &&
git commit -m "add beta" && git commit -m "add beta" &&
git tag -a -m "added tag beta" beta git tag -a -m "added tag beta" beta
@ -165,8 +167,8 @@ test_expect_success 'git tags' '
git_clone hgrepo gitrepo2 && git_clone hgrepo gitrepo2 &&
hg_clone gitrepo2 hgrepo2 && hg_clone gitrepo2 hgrepo2 &&


hg_log hgrepo > expected && hg_log hgrepo >expected &&
hg_log hgrepo2 > actual && hg_log hgrepo2 >actual &&


test_cmp expected actual test_cmp expected actual
' '
@ -178,7 +180,7 @@ test_expect_success 'hg branch' '
git init -q gitrepo && git init -q gitrepo &&
cd gitrepo && cd gitrepo &&


echo alpha > alpha && echo alpha >alpha &&
git add alpha && git add alpha &&
git commit -q -m "add alpha" && git commit -q -m "add alpha" &&
git checkout -q -b not-master git checkout -q -b not-master
@ -201,8 +203,8 @@ test_expect_success 'hg branch' '
: Back to the common revision && : Back to the common revision &&
(cd hgrepo && hg checkout default) && (cd hgrepo && hg checkout default) &&


hg_log hgrepo > expected && hg_log hgrepo >expected &&
hg_log hgrepo2 > actual && hg_log hgrepo2 >actual &&


test_cmp expected actual test_cmp expected actual
' '
@ -214,7 +216,7 @@ test_expect_success 'hg tags' '
git init -q gitrepo && git init -q gitrepo &&
cd gitrepo && cd gitrepo &&


echo alpha > alpha && echo alpha >alpha &&
git add alpha && git add alpha &&
git commit -m "add alpha" && git commit -m "add alpha" &&
git checkout -q -b not-master git checkout -q -b not-master
@ -231,8 +233,8 @@ test_expect_success 'hg tags' '
hg_push hgrepo gitrepo && hg_push hgrepo gitrepo &&
hg_clone gitrepo hgrepo2 && hg_clone gitrepo hgrepo2 &&


hg_log hgrepo > expected && hg_log hgrepo >expected &&
hg_log hgrepo2 > actual && hg_log hgrepo2 >actual &&


test_cmp expected actual test_cmp expected actual
' '

View File

@ -10,17 +10,20 @@ test_description='Test remote-hg output compared to hg-git'


. ./test-lib.sh . ./test-lib.sh


if ! test_have_prereq PYTHON; then if ! test_have_prereq PYTHON
then
skip_all='skipping remote-hg tests; python not available' skip_all='skipping remote-hg tests; python not available'
test_done test_done
fi fi


if ! python -c 'import mercurial'; then if ! python -c 'import mercurial'
then
skip_all='skipping remote-hg tests; mercurial not available' skip_all='skipping remote-hg tests; mercurial not available'
test_done test_done
fi fi


if ! python -c 'import hggit'; then if ! python -c 'import hggit'
then
skip_all='skipping remote-hg tests; hg-git not available' skip_all='skipping remote-hg tests; hg-git not available'
test_done test_done
fi fi
@ -66,7 +69,7 @@ hg_push_git () {
git fetch -q "hg::../$1" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' && git fetch -q "hg::../$1" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' &&
git branch -D default && git branch -D default &&
git checkout -q @{-1} && git checkout -q @{-1} &&
git branch -q -D tmp 2> /dev/null || true git branch -q -D tmp 2>/dev/null || true
) )
} }


@ -100,7 +103,7 @@ setup () {
echo "hgext.bookmarks =" echo "hgext.bookmarks ="
echo "hggit =" echo "hggit ="
echo "graphlog =" echo "graphlog ="
) >> "$HOME"/.hgrc && ) >>"$HOME"/.hgrc &&
git config --global receive.denycurrentbranch warn git config --global receive.denycurrentbranch warn
git config --global remote-hg.hg-git-compat true git config --global remote-hg.hg-git-compat true
git config --global remote-hg.track-branches false git config --global remote-hg.track-branches false
@ -121,7 +124,7 @@ test_expect_success 'executable bit' '
( (
git init -q gitrepo && git init -q gitrepo &&
cd gitrepo && cd gitrepo &&
echo alpha > alpha && echo alpha >alpha &&
chmod 0644 alpha && chmod 0644 alpha &&
git add alpha && git add alpha &&
git commit -m "add alpha" && git commit -m "add alpha" &&
@ -133,17 +136,18 @@ test_expect_success 'executable bit' '
git commit -m "clear executable bit" git commit -m "clear executable bit"
) && ) &&


for x in hg git; do for x in hg git
do
( (
hg_clone_$x gitrepo hgrepo-$x && hg_clone_$x gitrepo hgrepo-$x &&
cd hgrepo-$x && cd hgrepo-$x &&
hg_log . && hg_log . &&
hg manifest -r 1 -v && hg manifest -r 1 -v &&
hg manifest -v hg manifest -v
) > output-$x && ) >output-$x &&


git_clone_$x hgrepo-$x gitrepo2-$x && git_clone_$x hgrepo-$x gitrepo2-$x &&
git_log gitrepo2-$x > log-$x git_log gitrepo2-$x >log-$x
done && done &&


test_cmp output-hg output-git && test_cmp output-hg output-git &&
@ -156,7 +160,7 @@ test_expect_success 'symlink' '
( (
git init -q gitrepo && git init -q gitrepo &&
cd gitrepo && cd gitrepo &&
echo alpha > alpha && echo alpha >alpha &&
git add alpha && git add alpha &&
git commit -m "add alpha" && git commit -m "add alpha" &&
ln -s alpha beta && ln -s alpha beta &&
@ -164,16 +168,17 @@ test_expect_success 'symlink' '
git commit -m "add beta" git commit -m "add beta"
) && ) &&


for x in hg git; do for x in hg git
do
( (
hg_clone_$x gitrepo hgrepo-$x && hg_clone_$x gitrepo hgrepo-$x &&
cd hgrepo-$x && cd hgrepo-$x &&
hg_log . && hg_log . &&
hg manifest -v hg manifest -v
) > output-$x && ) >output-$x &&


git_clone_$x hgrepo-$x gitrepo2-$x && git_clone_$x hgrepo-$x gitrepo2-$x &&
git_log gitrepo2-$x > log-$x git_log gitrepo2-$x >log-$x
done && done &&


test_cmp output-hg output-git && test_cmp output-hg output-git &&
@ -186,28 +191,29 @@ test_expect_success 'merge conflict 1' '
( (
hg init hgrepo1 && hg init hgrepo1 &&
cd hgrepo1 && cd hgrepo1 &&
echo A > afile && echo A >afile &&
hg add afile && hg add afile &&
hg ci -m "origin" && hg ci -m "origin" &&


echo B > afile && echo B >afile &&
hg ci -m "A->B" && hg ci -m "A->B" &&


hg up -r0 && hg up -r0 &&
echo C > afile && echo C >afile &&
hg ci -m "A->C" && hg ci -m "A->C" &&


hg merge -r1 && hg merge -r1 &&
echo C > afile && echo C >afile &&
hg resolve -m afile && hg resolve -m afile &&
hg ci -m "merge to C" hg ci -m "merge to C"
) && ) &&


for x in hg git; do for x in hg git
do
git_clone_$x hgrepo1 gitrepo-$x && git_clone_$x hgrepo1 gitrepo-$x &&
hg_clone_$x gitrepo-$x hgrepo2-$x && hg_clone_$x gitrepo-$x hgrepo2-$x &&
hg_log hgrepo2-$x > hg-log-$x && hg_log hgrepo2-$x >hg-log-$x &&
git_log gitrepo-$x > git-log-$x git_log gitrepo-$x >git-log-$x
done && done &&


test_cmp hg-log-hg hg-log-git && test_cmp hg-log-hg hg-log-git &&
@ -220,28 +226,29 @@ test_expect_success 'merge conflict 2' '
( (
hg init hgrepo1 && hg init hgrepo1 &&
cd hgrepo1 && cd hgrepo1 &&
echo A > afile && echo A >afile &&
hg add afile && hg add afile &&
hg ci -m "origin" && hg ci -m "origin" &&


echo B > afile && echo B >afile &&
hg ci -m "A->B" && hg ci -m "A->B" &&


hg up -r0 && hg up -r0 &&
echo C > afile && echo C >afile &&
hg ci -m "A->C" && hg ci -m "A->C" &&


hg merge -r1 || true && hg merge -r1 || true &&
echo B > afile && echo B >afile &&
hg resolve -m afile && hg resolve -m afile &&
hg ci -m "merge to B" hg ci -m "merge to B"
) && ) &&


for x in hg git; do for x in hg git
do
git_clone_$x hgrepo1 gitrepo-$x && git_clone_$x hgrepo1 gitrepo-$x &&
hg_clone_$x gitrepo-$x hgrepo2-$x && hg_clone_$x gitrepo-$x hgrepo2-$x &&
hg_log hgrepo2-$x > hg-log-$x && hg_log hgrepo2-$x >hg-log-$x &&
git_log gitrepo-$x > git-log-$x git_log gitrepo-$x >git-log-$x
done && done &&


test_cmp hg-log-hg hg-log-git && test_cmp hg-log-hg hg-log-git &&
@ -254,29 +261,30 @@ test_expect_success 'converged merge' '
( (
hg init hgrepo1 && hg init hgrepo1 &&
cd hgrepo1 && cd hgrepo1 &&
echo A > afile && echo A >afile &&
hg add afile && hg add afile &&
hg ci -m "origin" && hg ci -m "origin" &&


echo B > afile && echo B >afile &&
hg ci -m "A->B" && hg ci -m "A->B" &&


echo C > afile && echo C >afile &&
hg ci -m "B->C" && hg ci -m "B->C" &&


hg up -r0 && hg up -r0 &&
echo C > afile && echo C >afile &&
hg ci -m "A->C" && hg ci -m "A->C" &&


hg merge -r2 || true && hg merge -r2 || true &&
hg ci -m "merge" hg ci -m "merge"
) && ) &&


for x in hg git; do for x in hg git
do
git_clone_$x hgrepo1 gitrepo-$x && git_clone_$x hgrepo1 gitrepo-$x &&
hg_clone_$x gitrepo-$x hgrepo2-$x && hg_clone_$x gitrepo-$x hgrepo2-$x &&
hg_log hgrepo2-$x > hg-log-$x && hg_log hgrepo2-$x >hg-log-$x &&
git_log gitrepo-$x > git-log-$x git_log gitrepo-$x >git-log-$x
done && done &&


test_cmp hg-log-hg hg-log-git && test_cmp hg-log-hg hg-log-git &&
@ -290,32 +298,33 @@ test_expect_success 'encoding' '
git init -q gitrepo && git init -q gitrepo &&
cd gitrepo && cd gitrepo &&


echo alpha > alpha && echo alpha >alpha &&
git add alpha && git add alpha &&
git commit -m "add älphà" && git commit -m "add älphà" &&


GIT_AUTHOR_NAME="tést èncödîng" && GIT_AUTHOR_NAME="tést èncödîng" &&
export GIT_AUTHOR_NAME && export GIT_AUTHOR_NAME &&
echo beta > beta && echo beta >beta &&
git add beta && git add beta &&
git commit -m "add beta" && git commit -m "add beta" &&


echo gamma > gamma && echo gamma >gamma &&
git add gamma && git add gamma &&
git commit -m "add gämmâ" && git commit -m "add gämmâ" &&


: TODO git config i18n.commitencoding latin-1 && : TODO git config i18n.commitencoding latin-1 &&
echo delta > delta && echo delta >delta &&
git add delta && git add delta &&
git commit -m "add déltà" git commit -m "add déltà"
) && ) &&


for x in hg git; do for x in hg git
do
hg_clone_$x gitrepo hgrepo-$x && hg_clone_$x gitrepo hgrepo-$x &&
git_clone_$x hgrepo-$x gitrepo2-$x && git_clone_$x hgrepo-$x gitrepo2-$x &&


HGENCODING=utf-8 hg_log hgrepo-$x > hg-log-$x && HGENCODING=utf-8 hg_log hgrepo-$x >hg-log-$x &&
git_log gitrepo2-$x > git-log-$x git_log gitrepo2-$x >git-log-$x
done && done &&


test_cmp hg-log-hg hg-log-git && test_cmp hg-log-hg hg-log-git &&
@ -328,14 +337,14 @@ test_expect_success 'file removal' '
( (
git init -q gitrepo && git init -q gitrepo &&
cd gitrepo && cd gitrepo &&
echo alpha > alpha && echo alpha >alpha &&
git add alpha && git add alpha &&
git commit -m "add alpha" && git commit -m "add alpha" &&
echo beta > beta && echo beta >beta &&
git add beta && git add beta &&
git commit -m "add beta" git commit -m "add beta"
mkdir foo && mkdir foo &&
echo blah > foo/bar && echo blah >foo/bar &&
git add foo && git add foo &&
git commit -m "add foo" && git commit -m "add foo" &&
git rm alpha && git rm alpha &&
@ -344,17 +353,18 @@ test_expect_success 'file removal' '
git commit -m "remove foo/bar" git commit -m "remove foo/bar"
) && ) &&


for x in hg git; do for x in hg git
do
( (
hg_clone_$x gitrepo hgrepo-$x && hg_clone_$x gitrepo hgrepo-$x &&
cd hgrepo-$x && cd hgrepo-$x &&
hg_log . && hg_log . &&
hg manifest -r 3 && hg manifest -r 3 &&
hg manifest hg manifest
) > output-$x && ) >output-$x &&


git_clone_$x hgrepo-$x gitrepo2-$x && git_clone_$x hgrepo-$x gitrepo2-$x &&
git_log gitrepo2-$x > log-$x git_log gitrepo2-$x >log-$x
done && done &&


test_cmp output-hg output-git && test_cmp output-hg output-git &&
@ -368,20 +378,21 @@ test_expect_success 'git tags' '
git init -q gitrepo && git init -q gitrepo &&
cd gitrepo && cd gitrepo &&
git config receive.denyCurrentBranch ignore && git config receive.denyCurrentBranch ignore &&
echo alpha > alpha && echo alpha >alpha &&
git add alpha && git add alpha &&
git commit -m "add alpha" && git commit -m "add alpha" &&
git tag alpha && git tag alpha &&


echo beta > beta && echo beta >beta &&
git add beta && git add beta &&
git commit -m "add beta" && git commit -m "add beta" &&
git tag -a -m "added tag beta" beta git tag -a -m "added tag beta" beta
) && ) &&


for x in hg git; do for x in hg git
do
hg_clone_$x gitrepo hgrepo-$x && hg_clone_$x gitrepo hgrepo-$x &&
hg_log hgrepo-$x > log-$x hg_log hgrepo-$x >log-$x
done && done &&


test_cmp log-hg log-git test_cmp log-hg log-git
@ -390,12 +401,13 @@ test_expect_success 'git tags' '
test_expect_success 'hg author' ' test_expect_success 'hg author' '
test_when_finished "rm -rf gitrepo* hgrepo*" && test_when_finished "rm -rf gitrepo* hgrepo*" &&


for x in hg git; do for x in hg git
do
( (
git init -q gitrepo-$x && git init -q gitrepo-$x &&
cd gitrepo-$x && cd gitrepo-$x &&


echo alpha > alpha && echo alpha >alpha &&
git add alpha && git add alpha &&
git commit -m "add alpha" && git commit -m "add alpha" &&
git checkout -q -b not-master git checkout -q -b not-master
@ -406,38 +418,38 @@ test_expect_success 'hg author' '
cd hgrepo-$x && cd hgrepo-$x &&


hg co master && hg co master &&
echo beta > beta && echo beta >beta &&
hg add beta && hg add beta &&
hg commit -u "test" -m "add beta" && hg commit -u "test" -m "add beta" &&


echo gamma >> beta && echo gamma >>beta &&
hg commit -u "test <test@example.com> (comment)" -m "modify beta" && hg commit -u "test <test@example.com> (comment)" -m "modify beta" &&


echo gamma > gamma && echo gamma >gamma &&
hg add gamma && hg add gamma &&
hg commit -u "<test@example.com>" -m "add gamma" && hg commit -u "<test@example.com>" -m "add gamma" &&


echo delta > delta && echo delta >delta &&
hg add delta && hg add delta &&
hg commit -u "name<test@example.com>" -m "add delta" && hg commit -u "name<test@example.com>" -m "add delta" &&


echo epsilon > epsilon && echo epsilon >epsilon &&
hg add epsilon && hg add epsilon &&
hg commit -u "name <test@example.com" -m "add epsilon" && hg commit -u "name <test@example.com" -m "add epsilon" &&


echo zeta > zeta && echo zeta >zeta &&
hg add zeta && hg add zeta &&
hg commit -u " test " -m "add zeta" && hg commit -u " test " -m "add zeta" &&


echo eta > eta && echo eta >eta &&
hg add eta && hg add eta &&
hg commit -u "test < test@example.com >" -m "add eta" && hg commit -u "test < test@example.com >" -m "add eta" &&


echo theta > theta && echo theta >theta &&
hg add theta && hg add theta &&
hg commit -u "test >test@example.com>" -m "add theta" && hg commit -u "test >test@example.com>" -m "add theta" &&


echo iota > iota && echo iota >iota &&
hg add iota && hg add iota &&
hg commit -u "test <test <at> example <dot> com>" -m "add iota" hg commit -u "test <test <at> example <dot> com>" -m "add iota"
) && ) &&
@ -445,8 +457,8 @@ test_expect_success 'hg author' '
hg_push_$x hgrepo-$x gitrepo-$x && hg_push_$x hgrepo-$x gitrepo-$x &&
hg_clone_$x gitrepo-$x hgrepo2-$x && hg_clone_$x gitrepo-$x hgrepo2-$x &&


hg_log hgrepo2-$x > hg-log-$x && hg_log hgrepo2-$x >hg-log-$x &&
git_log gitrepo-$x > git-log-$x git_log gitrepo-$x >git-log-$x
done && done &&


test_cmp hg-log-hg hg-log-git && test_cmp hg-log-hg hg-log-git &&
@ -456,12 +468,13 @@ test_expect_success 'hg author' '
test_expect_success 'hg branch' ' test_expect_success 'hg branch' '
test_when_finished "rm -rf gitrepo* hgrepo*" && test_when_finished "rm -rf gitrepo* hgrepo*" &&


for x in hg git; do for x in hg git
do
( (
git init -q gitrepo-$x && git init -q gitrepo-$x &&
cd gitrepo-$x && cd gitrepo-$x &&


echo alpha > alpha && echo alpha >alpha &&
git add alpha && git add alpha &&
git commit -q -m "add alpha" && git commit -q -m "add alpha" &&
git checkout -q -b not-master git checkout -q -b not-master
@ -481,8 +494,8 @@ test_expect_success 'hg branch' '
hg_push_$x hgrepo-$x gitrepo-$x && hg_push_$x hgrepo-$x gitrepo-$x &&
hg_clone_$x gitrepo-$x hgrepo2-$x && hg_clone_$x gitrepo-$x hgrepo2-$x &&


hg_log hgrepo2-$x > hg-log-$x && hg_log hgrepo2-$x >hg-log-$x &&
git_log gitrepo-$x > git-log-$x git_log gitrepo-$x >git-log-$x
done && done &&


test_cmp hg-log-hg hg-log-git && test_cmp hg-log-hg hg-log-git &&
@ -492,12 +505,13 @@ test_expect_success 'hg branch' '
test_expect_success 'hg tags' ' test_expect_success 'hg tags' '
test_when_finished "rm -rf gitrepo* hgrepo*" && test_when_finished "rm -rf gitrepo* hgrepo*" &&


for x in hg git; do for x in hg git
do
( (
git init -q gitrepo-$x && git init -q gitrepo-$x &&
cd gitrepo-$x && cd gitrepo-$x &&


echo alpha > alpha && echo alpha >alpha &&
git add alpha && git add alpha &&
git commit -m "add alpha" && git commit -m "add alpha" &&
git checkout -q -b not-master git checkout -q -b not-master
@ -518,7 +532,7 @@ test_expect_success 'hg tags' '
git --git-dir=gitrepo-$x/.git tag -l && git --git-dir=gitrepo-$x/.git tag -l &&
hg_log hgrepo2-$x && hg_log hgrepo2-$x &&
cat hgrepo2-$x/.hgtags cat hgrepo2-$x/.hgtags
) > output-$x ) >output-$x
done && done &&


test_cmp output-hg output-git test_cmp output-hg output-git

View File

@ -10,40 +10,44 @@ test_description='Test remote-hg'


. ./test-lib.sh . ./test-lib.sh


if ! test_have_prereq PYTHON; then if ! test_have_prereq PYTHON
then
skip_all='skipping remote-hg tests; python not available' skip_all='skipping remote-hg tests; python not available'
test_done test_done
fi fi


if ! python -c 'import mercurial'; then if ! python -c 'import mercurial'
then
skip_all='skipping remote-hg tests; mercurial not available' skip_all='skipping remote-hg tests; mercurial not available'
test_done test_done
fi fi


check () { check () {
echo $3 > expected && echo $3 >expected &&
git --git-dir=$1/.git log --format='%s' -1 $2 > actual git --git-dir=$1/.git log --format='%s' -1 $2 >actual
test_cmp expected actual test_cmp expected actual
} }


check_branch () { check_branch () {
if [ -n "$3" ]; then if test -n "$3"
echo $3 > expected && then
hg -R $1 log -r $2 --template '{desc}\n' > actual && echo $3 >expected &&
hg -R $1 log -r $2 --template '{desc}\n' >actual &&
test_cmp expected actual test_cmp expected actual
else else
hg -R $1 branches > out && hg -R $1 branches >out &&
! grep $2 out ! grep $2 out
fi fi
} }


check_bookmark () { check_bookmark () {
if [ -n "$3" ]; then if test -n "$3"
echo $3 > expected && then
hg -R $1 log -r "bookmark('$2')" --template '{desc}\n' > actual && echo $3 >expected &&
hg -R $1 log -r "bookmark('$2')" --template '{desc}\n' >actual &&
test_cmp expected actual test_cmp expected actual
else else
hg -R $1 bookmarks > out && hg -R $1 bookmarks >out &&
! grep $2 out ! grep $2 out
fi fi
} }
@ -52,7 +56,7 @@ check_push () {
local expected_ret=$1 ret=0 ref_ret=0 IFS=':' local expected_ret=$1 ret=0 ref_ret=0 IFS=':'


shift shift
git push origin "$@" 2> error git push origin "$@" 2>error
ret=$? ret=$?
cat error cat error


@ -92,7 +96,7 @@ setup () {
echo "username = H G Wells <wells@example.com>" echo "username = H G Wells <wells@example.com>"
echo "[extensions]" echo "[extensions]"
echo "mq =" echo "mq ="
) >> "$HOME"/.hgrc && ) >>"$HOME"/.hgrc &&


GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0230" && GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0230" &&
GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" && GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" &&
@ -107,7 +111,7 @@ test_expect_success 'cloning' '
( (
hg init hgrepo && hg init hgrepo &&
cd hgrepo && cd hgrepo &&
echo zero > content && echo zero >content &&
hg add content && hg add content &&
hg commit -m zero hg commit -m zero
) && ) &&
@ -122,7 +126,7 @@ test_expect_success 'cloning with branches' '
( (
cd hgrepo && cd hgrepo &&
hg branch next && hg branch next &&
echo next > content && echo next >content &&
hg commit -m next hg commit -m next
) && ) &&


@ -137,7 +141,7 @@ test_expect_success 'cloning with bookmarks' '
cd hgrepo && cd hgrepo &&
hg checkout default && hg checkout default &&
hg bookmark feature-a && hg bookmark feature-a &&
echo feature-a > content && echo feature-a >content &&
hg commit -m feature-a hg commit -m feature-a
) && ) &&


@ -157,7 +161,7 @@ test_expect_success 'update bookmark' '
git clone "hg::hgrepo" gitrepo && git clone "hg::hgrepo" gitrepo &&
cd gitrepo && cd gitrepo &&
git checkout --quiet devel && git checkout --quiet devel &&
echo devel > content && echo devel >content &&
git commit -a -m devel && git commit -a -m devel &&
git push --quiet git push --quiet
) && ) &&
@ -172,7 +176,7 @@ test_expect_success 'new bookmark' '
git clone "hg::hgrepo" gitrepo && git clone "hg::hgrepo" gitrepo &&
cd gitrepo && cd gitrepo &&
git checkout --quiet -b feature-b && git checkout --quiet -b feature-b &&
echo feature-b > content && echo feature-b >content &&
git commit -a -m feature-b && git commit -a -m feature-b &&
git push --quiet origin feature-b git push --quiet origin feature-b
) && ) &&
@ -184,9 +188,9 @@ test_expect_success 'new bookmark' '
rm -rf hgrepo rm -rf hgrepo


author_test () { author_test () {
echo $1 >> content && echo $1 >>content &&
hg commit -u "$2" -m "add $1" && hg commit -u "$2" -m "add $1" &&
echo "$3" >> ../expected echo "$3" >>../expected
} }


test_expect_success 'authors' ' test_expect_success 'authors' '
@ -199,7 +203,7 @@ test_expect_success 'authors' '
touch content && touch content &&
hg add content && hg add content &&


> ../expected && >../expected &&
author_test alpha "" "H G Wells <wells@example.com>" && author_test alpha "" "H G Wells <wells@example.com>" &&
author_test beta "test" "test <unknown>" && author_test beta "test" "test <unknown>" &&
author_test beta "test <test@example.com> (comment)" "test <test@example.com>" && author_test beta "test <test@example.com> (comment)" "test <test@example.com>" &&
@ -214,7 +218,7 @@ test_expect_success 'authors' '
) && ) &&


git clone "hg::hgrepo" gitrepo && git clone "hg::hgrepo" gitrepo &&
git --git-dir=gitrepo/.git log --reverse --format="%an <%ae>" > actual && git --git-dir=gitrepo/.git log --reverse --format="%an <%ae>" >actual &&


test_cmp expected actual test_cmp expected actual
' '
@ -226,11 +230,11 @@ test_expect_success 'strip' '
hg init hgrepo && hg init hgrepo &&
cd hgrepo && cd hgrepo &&


echo one >> content && echo one >>content &&
hg add content && hg add content &&
hg commit -m one && hg commit -m one &&


echo two >> content && echo two >>content &&
hg commit -m two hg commit -m two
) && ) &&


@ -240,20 +244,20 @@ test_expect_success 'strip' '
cd hgrepo && cd hgrepo &&
hg strip 1 && hg strip 1 &&


echo three >> content && echo three >>content &&
hg commit -m three && hg commit -m three &&


echo four >> content && echo four >>content &&
hg commit -m four hg commit -m four
) && ) &&


( (
cd gitrepo && cd gitrepo &&
git fetch && git fetch &&
git log --format="%s" origin/master > ../actual git log --format="%s" origin/master >../actual
) && ) &&


hg -R hgrepo log --template "{desc}\n" > expected && hg -R hgrepo log --template "{desc}\n" >expected &&
test_cmp actual expected test_cmp actual expected
' '


@ -263,18 +267,18 @@ test_expect_success 'remote push with master bookmark' '
( (
hg init hgrepo && hg init hgrepo &&
cd hgrepo && cd hgrepo &&
echo zero > content && echo zero >content &&
hg add content && hg add content &&
hg commit -m zero && hg commit -m zero &&
hg bookmark master && hg bookmark master &&
echo one > content && echo one >content &&
hg commit -m one hg commit -m one
) && ) &&


( (
git clone "hg::hgrepo" gitrepo && git clone "hg::hgrepo" gitrepo &&
cd gitrepo && cd gitrepo &&
echo two > content && echo two >content &&
git commit -a -m two && git commit -a -m two &&
git push git push
) && ) &&
@ -282,7 +286,7 @@ test_expect_success 'remote push with master bookmark' '
check_branch hgrepo default two check_branch hgrepo default two
' '


cat > expected <<EOF cat >expected <<\EOF
changeset: 0:6e2126489d3d changeset: 0:6e2126489d3d
tag: tip tag: tip
user: A U Thor <author@example.com> user: A U Thor <author@example.com>
@ -300,13 +304,13 @@ test_expect_success 'remote push from master branch' '
git init gitrepo && git init gitrepo &&
cd gitrepo && cd gitrepo &&
git remote add origin "hg::../hgrepo" && git remote add origin "hg::../hgrepo" &&
echo one > content && echo one >content &&
git add content && git add content &&
git commit -a -m one && git commit -a -m one &&
git push origin master git push origin master
) && ) &&


hg -R hgrepo log > actual && hg -R hgrepo log >actual &&
cat actual && cat actual &&
test_cmp expected actual && test_cmp expected actual &&


@ -322,7 +326,7 @@ test_expect_success 'remote cloning' '
( (
hg init hgrepo && hg init hgrepo &&
cd hgrepo && cd hgrepo &&
echo zero > content && echo zero >content &&
hg add content && hg add content &&
hg commit -m zero hg commit -m zero
) && ) &&
@ -343,7 +347,7 @@ test_expect_success 'remote update bookmark' '
git clone "hg::hgrepo" gitrepo && git clone "hg::hgrepo" gitrepo &&
cd gitrepo && cd gitrepo &&
git checkout --quiet devel && git checkout --quiet devel &&
echo devel > content && echo devel >content &&
git commit -a -m devel && git commit -a -m devel &&
git push --quiet git push --quiet
) && ) &&
@ -358,7 +362,7 @@ test_expect_success 'remote new bookmark' '
git clone "hg::hgrepo" gitrepo && git clone "hg::hgrepo" gitrepo &&
cd gitrepo && cd gitrepo &&
git checkout --quiet -b feature-b && git checkout --quiet -b feature-b &&
echo feature-b > content && echo feature-b >content &&
git commit -a -m feature-b && git commit -a -m feature-b &&
git push --quiet origin feature-b git push --quiet origin feature-b
) && ) &&
@ -374,15 +378,15 @@ test_expect_success 'remote push diverged' '
( (
cd hgrepo && cd hgrepo &&
hg checkout default && hg checkout default &&
echo bump > content && echo bump >content &&
hg commit -m bump hg commit -m bump
) && ) &&


( (
cd gitrepo && cd gitrepo &&
echo diverge > content && echo diverge >content &&
git commit -a -m diverged && git commit -a -m diverged &&
check_push 1 <<-EOF check_push 1 <<-\EOF
master:non-fast-forward master:non-fast-forward
EOF EOF
) && ) &&
@ -403,16 +407,16 @@ test_expect_success 'remote update bookmark diverge' '


( (
cd hgrepo && cd hgrepo &&
echo "bump bookmark" > content && echo "bump bookmark" >content &&
hg commit -m "bump bookmark" hg commit -m "bump bookmark"
) && ) &&


( (
cd gitrepo && cd gitrepo &&
git checkout --quiet diverge && git checkout --quiet diverge &&
echo diverge > content && echo diverge >content &&
git commit -a -m diverge && git commit -a -m diverge &&
check_push 1 <<-EOF check_push 1 <<-\EOF
diverge:fetch-first diverge:fetch-first
EOF EOF
) && ) &&
@ -427,7 +431,7 @@ test_expect_success 'remote new bookmark multiple branch head' '
git clone "hg::hgrepo" gitrepo && git clone "hg::hgrepo" gitrepo &&
cd gitrepo && cd gitrepo &&
git checkout --quiet -b feature-c HEAD^ && git checkout --quiet -b feature-c HEAD^ &&
echo feature-c > content && echo feature-c >content &&
git commit -a -m feature-c && git commit -a -m feature-c &&
git push --quiet origin feature-c git push --quiet origin feature-c
) && ) &&
@ -442,20 +446,20 @@ setup_big_push () {
( (
hg init hgrepo && hg init hgrepo &&
cd hgrepo && cd hgrepo &&
echo zero > content && echo zero >content &&
hg add content && hg add content &&
hg commit -m zero && hg commit -m zero &&
hg bookmark bad_bmark1 && hg bookmark bad_bmark1 &&
echo one > content && echo one >content &&
hg commit -m one && hg commit -m one &&
hg bookmark bad_bmark2 && hg bookmark bad_bmark2 &&
hg bookmark good_bmark && hg bookmark good_bmark &&
hg bookmark -i good_bmark && hg bookmark -i good_bmark &&
hg -q branch good_branch && hg -q branch good_branch &&
echo "good branch" > content && echo "good branch" >content &&
hg commit -m "good branch" && hg commit -m "good branch" &&
hg -q branch bad_branch && hg -q branch bad_branch &&
echo "bad branch" > content && echo "bad branch" >content &&
hg commit -m "bad branch" hg commit -m "bad branch"
) && ) &&


@ -463,40 +467,40 @@ setup_big_push () {


( (
cd gitrepo && cd gitrepo &&
echo two > content && echo two >content &&
git commit -q -a -m two && git commit -q -a -m two &&


git checkout -q good_bmark && git checkout -q good_bmark &&
echo three > content && echo three >content &&
git commit -q -a -m three && git commit -q -a -m three &&


git checkout -q bad_bmark1 && git checkout -q bad_bmark1 &&
git reset --hard HEAD^ && git reset --hard HEAD^ &&
echo four > content && echo four >content &&
git commit -q -a -m four && git commit -q -a -m four &&


git checkout -q bad_bmark2 && git checkout -q bad_bmark2 &&
git reset --hard HEAD^ && git reset --hard HEAD^ &&
echo five > content && echo five >content &&
git commit -q -a -m five && git commit -q -a -m five &&


git checkout -q -b new_bmark master && git checkout -q -b new_bmark master &&
echo six > content && echo six >content &&
git commit -q -a -m six && git commit -q -a -m six &&


git checkout -q branches/good_branch && git checkout -q branches/good_branch &&
echo seven > content && echo seven >content &&
git commit -q -a -m seven && git commit -q -a -m seven &&
echo eight > content && echo eight >content &&
git commit -q -a -m eight && git commit -q -a -m eight &&


git checkout -q branches/bad_branch && git checkout -q branches/bad_branch &&
git reset --hard HEAD^ && git reset --hard HEAD^ &&
echo nine > content && echo nine >content &&
git commit -q -a -m nine && git commit -q -a -m nine &&


git checkout -q -b branches/new_branch master && git checkout -q -b branches/new_branch master &&
echo ten > content && echo ten >content &&
git commit -q -a -m ten git commit -q -a -m ten
) )
} }
@ -509,7 +513,7 @@ test_expect_success 'remote big push' '
( (
cd gitrepo && cd gitrepo &&


check_push 1 --all <<-EOF check_push 1 --all <<-\EOF
master master
good_bmark good_bmark
branches/good_branch branches/good_branch
@ -537,17 +541,17 @@ test_expect_success 'remote big push fetch first' '
( (
hg init hgrepo && hg init hgrepo &&
cd hgrepo && cd hgrepo &&
echo zero > content && echo zero >content &&
hg add content && hg add content &&
hg commit -m zero && hg commit -m zero &&
hg bookmark bad_bmark && hg bookmark bad_bmark &&
hg bookmark good_bmark && hg bookmark good_bmark &&
hg bookmark -i good_bmark && hg bookmark -i good_bmark &&
hg -q branch good_branch && hg -q branch good_branch &&
echo "good branch" > content && echo "good branch" >content &&
hg commit -m "good branch" && hg commit -m "good branch" &&
hg -q branch bad_branch && hg -q branch bad_branch &&
echo "bad branch" > content && echo "bad branch" >content &&
hg commit -m "bad branch" hg commit -m "bad branch"
) && ) &&


@ -556,28 +560,28 @@ test_expect_success 'remote big push fetch first' '
( (
cd hgrepo && cd hgrepo &&
hg bookmark -f bad_bmark && hg bookmark -f bad_bmark &&
echo update_bmark > content && echo update_bmark >content &&
hg commit -m "update bmark" hg commit -m "update bmark"
) && ) &&


( (
cd gitrepo && cd gitrepo &&
echo two > content && echo two >content &&
git commit -q -a -m two && git commit -q -a -m two &&


git checkout -q good_bmark && git checkout -q good_bmark &&
echo three > content && echo three >content &&
git commit -q -a -m three && git commit -q -a -m three &&


git checkout -q bad_bmark && git checkout -q bad_bmark &&
echo four > content && echo four >content &&
git commit -q -a -m four && git commit -q -a -m four &&


git checkout -q branches/bad_branch && git checkout -q branches/bad_branch &&
echo five > content && echo five >content &&
git commit -q -a -m five && git commit -q -a -m five &&


check_push 1 --all <<-EOF && check_push 1 --all <<-\EOF &&
master master
good_bmark good_bmark
bad_bmark:fetch-first bad_bmark:fetch-first
@ -586,7 +590,7 @@ test_expect_success 'remote big push fetch first' '


git fetch && git fetch &&


check_push 1 --all <<-EOF check_push 1 --all <<-\EOF
master master
good_bmark good_bmark
bad_bmark:non-fast-forward bad_bmark:non-fast-forward
@ -603,7 +607,7 @@ test_expect_failure 'remote big push force' '
( (
cd gitrepo && cd gitrepo &&


check_push 0 --force --all <<-EOF check_push 0 --force --all <<-\EOF
master master
good_bmark good_bmark
branches/good_branch branches/good_branch
@ -633,7 +637,7 @@ test_expect_failure 'remote big push dry-run' '
( (
cd gitrepo && cd gitrepo &&


check_push 1 --dry-run --all <<-EOF && check_push 1 --dry-run --all <<-\EOF &&
master master
good_bmark good_bmark
branches/good_branch branches/good_branch
@ -644,7 +648,7 @@ test_expect_failure 'remote big push dry-run' '
branches/bad_branch:non-fast-forward branches/bad_branch:non-fast-forward
EOF EOF


check_push 0 --dry-run master good_bmark new_bmark branches/good_branch branches/new_branch <<-EOF check_push 0 --dry-run master good_bmark new_bmark branches/good_branch branches/new_branch <<-\EOF
master master
good_bmark good_bmark
branches/good_branch branches/good_branch
@ -669,10 +673,10 @@ test_expect_success 'remote double failed push' '
( (
hg init hgrepo && hg init hgrepo &&
cd hgrepo && cd hgrepo &&
echo zero > content && echo zero >content &&
hg add content && hg add content &&
hg commit -m zero && hg commit -m zero &&
echo one > content && echo one >content &&
hg commit -m one hg commit -m one
) && ) &&


@ -680,7 +684,7 @@ test_expect_success 'remote double failed push' '
git clone "hg::hgrepo" gitrepo && git clone "hg::hgrepo" gitrepo &&
cd gitrepo && cd gitrepo &&
git reset --hard HEAD^ && git reset --hard HEAD^ &&
echo two > content && echo two >content &&
git commit -a -m two && git commit -a -m two &&
test_expect_code 1 git push && test_expect_code 1 git push &&
test_expect_code 1 git push test_expect_code 1 git push