Merge branch 'jk/test-z-n-unquoted'

t9xxx series has been updated primarily for readability, while
fixing small bugs in it.  A few scripted Porcelains have also been
updated to fix possible bugs around their use of "test -z" and
"test -n".

* jk/test-z-n-unquoted:
  always quote shell arguments to test -z/-n
  t9103: modernize test style
  t9107: switch inverted single/double quotes in test
  t9107: use "return 1" instead of "exit 1"
  t9100,t3419: enclose all test code in single-quotes
  t/lib-git-svn: drop $remote_git_svn and $git_svn_id
This commit is contained in:
Junio C Hamano 2016-05-23 14:54:35 -07:00
commit dca05bb591
15 changed files with 125 additions and 115 deletions

View File

@ -867,12 +867,12 @@ add_exec_commands () {
# $3: the input filename # $3: the input filename
check_commit_sha () { check_commit_sha () {
badsha=0 badsha=0
if test -z $1 if test -z "$1"
then then
badsha=1 badsha=1
else else
sha1_verif="$(git rev-parse --verify --quiet $1^{commit})" sha1_verif="$(git rev-parse --verify --quiet $1^{commit})"
if test -z $sha1_verif if test -z "$sha1_verif"
then then
badsha=1 badsha=1
fi fi

View File

@ -185,7 +185,7 @@ store_stash () {
git update-ref --create-reflog -m "$stash_msg" $ref_stash $w_commit git update-ref --create-reflog -m "$stash_msg" $ref_stash $w_commit
ret=$? ret=$?
test $ret != 0 && test -z $quiet && test $ret != 0 && test -z "$quiet" &&
die "$(eval_gettext "Cannot update \$ref_stash with \$w_commit")" die "$(eval_gettext "Cannot update \$ref_stash with \$w_commit")"
return $ret return $ret
} }
@ -277,7 +277,7 @@ save_stash () {
git clean --force --quiet -d $CLEAN_X_OPTION git clean --force --quiet -d $CLEAN_X_OPTION
fi fi
if test "$keep_index" = "t" && test -n $i_tree if test "$keep_index" = "t" && test -n "$i_tree"
then then
git read-tree --reset -u $i_tree git read-tree --reset -u $i_tree
fi fi

View File

@ -1,8 +1,5 @@
. ./test-lib.sh . ./test-lib.sh
remotes_git_svn=remotes/git""-svn
git_svn_id=git""-svn-id
if test -n "$NO_SVN_TESTS" if test -n "$NO_SVN_TESTS"
then then
skip_all='skipping git svn tests, NO_SVN_TESTS defined' skip_all='skipping git svn tests, NO_SVN_TESTS defined'

View File

@ -73,17 +73,17 @@ do_tests () {
run git format-patch --stdout --ignore-if-in-upstream master run git format-patch --stdout --ignore-if-in-upstream master
" "
test_expect_success $pr 'detect upstream patch' " test_expect_success $pr 'detect upstream patch' '
git checkout -q master && git checkout -q master &&
scramble file && scramble file &&
git add file && git add file &&
git commit -q -m 'change big file again' && git commit -q -m "change big file again" &&
git checkout -q other^{} && git checkout -q other^{} &&
git rebase master && git rebase master &&
test_must_fail test -n \"\$(git rev-list master...HEAD~)\" test_must_fail test -n "$(git rev-list master...HEAD~)"
" '
test_expect_success $pr 'do not drop patch' " test_expect_success $pr 'do not drop patch' '
git branch -f squashed master && git branch -f squashed master &&
git checkout -q -f squashed && git checkout -q -f squashed &&
git reset -q --soft HEAD~2 && git reset -q --soft HEAD~2 &&
@ -91,7 +91,7 @@ do_tests () {
git checkout -q other^{} && git checkout -q other^{} &&
test_must_fail git rebase squashed && test_must_fail git rebase squashed &&
rm -rf .git/rebase-apply rm -rf .git/rebase-apply
" '
} }
do_tests 500 do_tests 500

View File

@ -45,13 +45,13 @@ test_expect_success "checkout from svn" 'svn co "$svnrepo" "$SVN_TREE"'
name='try a deep --rmdir with a commit' name='try a deep --rmdir with a commit'
test_expect_success "$name" ' test_expect_success "$name" '
git checkout -f -b mybranch ${remotes_git_svn} && git checkout -f -b mybranch remotes/git-svn &&
mv dir/a/b/c/d/e/file dir/file && mv dir/a/b/c/d/e/file dir/file &&
cp dir/file file && cp dir/file file &&
git update-index --add --remove dir/a/b/c/d/e/file dir/file file && git update-index --add --remove dir/a/b/c/d/e/file dir/file file &&
git commit -m "$name" && git commit -m "$name" &&
git svn set-tree --find-copies-harder --rmdir \ git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch && remotes/git-svn..mybranch &&
svn_cmd up "$SVN_TREE" && svn_cmd up "$SVN_TREE" &&
test -d "$SVN_TREE"/dir && test ! -d "$SVN_TREE"/dir/a' test -d "$SVN_TREE"/dir && test ! -d "$SVN_TREE"/dir/a'
@ -65,14 +65,14 @@ test_expect_success "$name" "
git update-index --add dir/file/file && git update-index --add dir/file/file &&
git commit -m '$name' && git commit -m '$name' &&
test_must_fail git svn set-tree --find-copies-harder --rmdir \ test_must_fail git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch remotes/git-svn..mybranch
" "
name='detect node change from directory to file #1' name='detect node change from directory to file #1'
test_expect_success "$name" ' test_expect_success "$name" '
rm -rf dir "$GIT_DIR"/index && rm -rf dir "$GIT_DIR"/index &&
git checkout -f -b mybranch2 ${remotes_git_svn} && git checkout -f -b mybranch2 remotes/git-svn &&
mv bar/zzz zzz && mv bar/zzz zzz &&
rm -rf bar && rm -rf bar &&
mv zzz bar && mv zzz bar &&
@ -80,14 +80,14 @@ test_expect_success "$name" '
git update-index --add -- bar && git update-index --add -- bar &&
git commit -m "$name" && git commit -m "$name" &&
test_must_fail git svn set-tree --find-copies-harder --rmdir \ test_must_fail git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch2 remotes/git-svn..mybranch2
' '
name='detect node change from file to directory #2' name='detect node change from file to directory #2'
test_expect_success "$name" ' test_expect_success "$name" '
rm -f "$GIT_DIR"/index && rm -f "$GIT_DIR"/index &&
git checkout -f -b mybranch3 ${remotes_git_svn} && git checkout -f -b mybranch3 remotes/git-svn &&
rm bar/zzz && rm bar/zzz &&
git update-index --remove bar/zzz && git update-index --remove bar/zzz &&
mkdir bar/zzz && mkdir bar/zzz &&
@ -95,7 +95,7 @@ test_expect_success "$name" '
git update-index --add bar/zzz/yyy && git update-index --add bar/zzz/yyy &&
git commit -m "$name" && git commit -m "$name" &&
git svn set-tree --find-copies-harder --rmdir \ git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch3 && remotes/git-svn..mybranch3 &&
svn_cmd up "$SVN_TREE" && svn_cmd up "$SVN_TREE" &&
test -d "$SVN_TREE"/bar/zzz && test -d "$SVN_TREE"/bar/zzz &&
test -e "$SVN_TREE"/bar/zzz/yyy test -e "$SVN_TREE"/bar/zzz/yyy
@ -104,7 +104,7 @@ test_expect_success "$name" '
name='detect node change from directory to file #2' name='detect node change from directory to file #2'
test_expect_success "$name" ' test_expect_success "$name" '
rm -f "$GIT_DIR"/index && rm -f "$GIT_DIR"/index &&
git checkout -f -b mybranch4 ${remotes_git_svn} && git checkout -f -b mybranch4 remotes/git-svn &&
rm -rf dir && rm -rf dir &&
git update-index --remove -- dir/file && git update-index --remove -- dir/file &&
touch dir && touch dir &&
@ -112,19 +112,19 @@ test_expect_success "$name" '
git update-index --add -- dir && git update-index --add -- dir &&
git commit -m "$name" && git commit -m "$name" &&
test_must_fail git svn set-tree --find-copies-harder --rmdir \ test_must_fail git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch4 remotes/git-svn..mybranch4
' '
name='remove executable bit from a file' name='remove executable bit from a file'
test_expect_success POSIXPERM "$name" ' test_expect_success POSIXPERM "$name" '
rm -f "$GIT_DIR"/index && rm -f "$GIT_DIR"/index &&
git checkout -f -b mybranch5 ${remotes_git_svn} && git checkout -f -b mybranch5 remotes/git-svn &&
chmod -x exec.sh && chmod -x exec.sh &&
git update-index exec.sh && git update-index exec.sh &&
git commit -m "$name" && git commit -m "$name" &&
git svn set-tree --find-copies-harder --rmdir \ git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch5 && remotes/git-svn..mybranch5 &&
svn_cmd up "$SVN_TREE" && svn_cmd up "$SVN_TREE" &&
test ! -x "$SVN_TREE"/exec.sh' test ! -x "$SVN_TREE"/exec.sh'
@ -135,7 +135,7 @@ test_expect_success POSIXPERM "$name" '
git update-index exec.sh && git update-index exec.sh &&
git commit -m "$name" && git commit -m "$name" &&
git svn set-tree --find-copies-harder --rmdir \ git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch5 && remotes/git-svn..mybranch5 &&
svn_cmd up "$SVN_TREE" && svn_cmd up "$SVN_TREE" &&
test -x "$SVN_TREE"/exec.sh' test -x "$SVN_TREE"/exec.sh'
@ -147,7 +147,7 @@ test_expect_success SYMLINKS "$name" '
git update-index exec.sh && git update-index exec.sh &&
git commit -m "$name" && git commit -m "$name" &&
git svn set-tree --find-copies-harder --rmdir \ git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch5 && remotes/git-svn..mybranch5 &&
svn_cmd up "$SVN_TREE" && svn_cmd up "$SVN_TREE" &&
test -h "$SVN_TREE"/exec.sh' test -h "$SVN_TREE"/exec.sh'
@ -159,7 +159,7 @@ test_expect_success POSIXPERM,SYMLINKS "$name" '
git update-index --add file exec-2.sh && git update-index --add file exec-2.sh &&
git commit -m "$name" && git commit -m "$name" &&
git svn set-tree --find-copies-harder --rmdir \ git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch5 && remotes/git-svn..mybranch5 &&
svn_cmd up "$SVN_TREE" && svn_cmd up "$SVN_TREE" &&
test -x "$SVN_TREE"/file && test -x "$SVN_TREE"/file &&
test -h "$SVN_TREE"/exec-2.sh' test -h "$SVN_TREE"/exec-2.sh'
@ -172,7 +172,7 @@ test_expect_success POSIXPERM,SYMLINKS "$name" '
git update-index exec-2.sh && git update-index exec-2.sh &&
git commit -m "$name" && git commit -m "$name" &&
git svn set-tree --find-copies-harder --rmdir \ git svn set-tree --find-copies-harder --rmdir \
${remotes_git_svn}..mybranch5 && remotes/git-svn..mybranch5 &&
svn_cmd up "$SVN_TREE" && svn_cmd up "$SVN_TREE" &&
test -f "$SVN_TREE"/exec-2.sh && test -f "$SVN_TREE"/exec-2.sh &&
test ! -h "$SVN_TREE"/exec-2.sh && test ! -h "$SVN_TREE"/exec-2.sh &&
@ -194,7 +194,7 @@ GIT_SVN_ID=alt
export GIT_SVN_ID export GIT_SVN_ID
test_expect_success "$name" \ test_expect_success "$name" \
'git svn init "$svnrepo" && git svn fetch && 'git svn init "$svnrepo" && git svn fetch &&
git rev-list --pretty=raw ${remotes_git_svn} | grep ^tree | uniq > a && git rev-list --pretty=raw remotes/git-svn | grep ^tree | uniq > a &&
git rev-list --pretty=raw remotes/alt | grep ^tree | uniq > b && git rev-list --pretty=raw remotes/alt | grep ^tree | uniq > b &&
test_cmp a b' test_cmp a b'
@ -217,17 +217,17 @@ EOF
test_expect_success POSIXPERM,SYMLINKS "$name" "test_cmp a expected" test_expect_success POSIXPERM,SYMLINKS "$name" "test_cmp a expected"
test_expect_success 'exit if remote refs are ambigious' " test_expect_success 'exit if remote refs are ambigious' '
git config --add svn-remote.svn.fetch \ git config --add svn-remote.svn.fetch \
bar:refs/${remotes_git_svn} && bar:refs/remotes/git-svn &&
test_must_fail git svn migrate test_must_fail git svn migrate
" '
test_expect_success 'exit if init-ing a would clobber a URL' ' test_expect_success 'exit if init-ing a would clobber a URL' '
svnadmin create "${PWD}/svnrepo2" && svnadmin create "${PWD}/svnrepo2" &&
svn mkdir -m "mkdir bar" "${svnrepo}2/bar" && svn mkdir -m "mkdir bar" "${svnrepo}2/bar" &&
git config --unset svn-remote.svn.fetch \ git config --unset svn-remote.svn.fetch \
"^bar:refs/${remotes_git_svn}$" && "^bar:refs/remotes/git-svn$" &&
test_must_fail git svn init "${svnrepo}2/bar" test_must_fail git svn init "${svnrepo}2/bar"
' '
@ -237,7 +237,7 @@ test_expect_success \
git config --get svn-remote.svn.fetch \ git config --get svn-remote.svn.fetch \
"^bar:refs/remotes/bar$" && "^bar:refs/remotes/bar$" &&
git config --get svn-remote.svn.fetch \ git config --get svn-remote.svn.fetch \
"^:refs/${remotes_git_svn}$" "^:refs/remotes/git-svn$"
' '
test_expect_success 'dcommit $rev does not clobber current branch' ' test_expect_success 'dcommit $rev does not clobber current branch' '
@ -259,26 +259,26 @@ test_expect_success 'dcommit $rev does not clobber current branch' '
git branch -D my-bar git branch -D my-bar
' '
test_expect_success 'able to dcommit to a subdirectory' " test_expect_success 'able to dcommit to a subdirectory' '
git svn fetch -i bar && git svn fetch -i bar &&
git checkout -b my-bar refs/remotes/bar && git checkout -b my-bar refs/remotes/bar &&
echo abc > d && echo abc > d &&
git update-index --add d && git update-index --add d &&
git commit -m '/bar/d should be in the log' && git commit -m "/bar/d should be in the log" &&
git svn dcommit -i bar && git svn dcommit -i bar &&
test -z \"\$(git diff refs/heads/my-bar refs/remotes/bar)\" && test -z "$(git diff refs/heads/my-bar refs/remotes/bar)" &&
mkdir newdir && mkdir newdir &&
echo new > newdir/dir && echo new > newdir/dir &&
git update-index --add newdir/dir && git update-index --add newdir/dir &&
git commit -m 'add a new directory' && git commit -m "add a new directory" &&
git svn dcommit -i bar && git svn dcommit -i bar &&
test -z \"\$(git diff refs/heads/my-bar refs/remotes/bar)\" && test -z "$(git diff refs/heads/my-bar refs/remotes/bar)" &&
echo foo >> newdir/dir && echo foo >> newdir/dir &&
git update-index newdir/dir && git update-index newdir/dir &&
git commit -m 'modify a file in new directory' && git commit -m "modify a file in new directory" &&
git svn dcommit -i bar && git svn dcommit -i bar &&
test -z \"\$(git diff refs/heads/my-bar refs/remotes/bar)\" test -z "$(git diff refs/heads/my-bar refs/remotes/bar)"
" '
test_expect_success 'dcommit should not fail with a touched file' ' test_expect_success 'dcommit should not fail with a touched file' '
test_commit "commit-new-file-foo2" foo2 && test_commit "commit-new-file-foo2" foo2 &&
@ -291,13 +291,13 @@ test_expect_success 'rebase should not fail with a touched file' '
git svn rebase git svn rebase
' '
test_expect_success 'able to set-tree to a subdirectory' " test_expect_success 'able to set-tree to a subdirectory' '
echo cba > d && echo cba > d &&
git update-index d && git update-index d &&
git commit -m 'update /bar/d' && git commit -m "update /bar/d" &&
git svn set-tree -i bar HEAD && git svn set-tree -i bar HEAD &&
test -z \"\$(git diff refs/heads/my-bar refs/remotes/bar)\" test -z "$(git diff refs/heads/my-bar refs/remotes/bar)"
" '
test_expect_success 'git-svn works in a bare repository' ' test_expect_success 'git-svn works in a bare repository' '
mkdir bare-repo && mkdir bare-repo &&

View File

@ -73,11 +73,11 @@ test_expect_success 'fetch revisions from svn' 'git svn fetch'
name='test svn:keywords ignoring' name='test svn:keywords ignoring'
test_expect_success "$name" \ test_expect_success "$name" \
'git checkout -b mybranch ${remotes_git_svn} && 'git checkout -b mybranch remotes/git-svn &&
echo Hi again >> kw.c && echo Hi again >> kw.c &&
git commit -a -m "test keywords ignoring" && git commit -a -m "test keywords ignoring" &&
git svn set-tree ${remotes_git_svn}..mybranch && git svn set-tree remotes/git-svn..mybranch &&
git pull . ${remotes_git_svn}' git pull . remotes/git-svn'
expect='/* $Id$ */' expect='/* $Id$ */'
got="$(sed -ne 2p kw.c)" got="$(sed -ne 2p kw.c)"
@ -95,7 +95,7 @@ test_expect_success "propset CR on crlf files" '
test_expect_success 'fetch and pull latest from svn and checkout a new wc' \ test_expect_success 'fetch and pull latest from svn and checkout a new wc' \
'git svn fetch && 'git svn fetch &&
git pull . ${remotes_git_svn} && git pull . remotes/git-svn &&
svn_cmd co "$svnrepo" new_wc' svn_cmd co "$svnrepo" new_wc'
for i in crlf ne_crlf lf ne_lf cr ne_cr empty_cr empty_lf empty empty_crlf for i in crlf ne_crlf lf ne_lf cr ne_cr empty_cr empty_lf empty empty_crlf
@ -117,7 +117,7 @@ cd test_wc
svn_cmd commit -m "propset CRLF on cr files"' svn_cmd commit -m "propset CRLF on cr files"'
cd .. cd ..
test_expect_success 'fetch and pull latest from svn' \ test_expect_success 'fetch and pull latest from svn' \
'git svn fetch && git pull . ${remotes_git_svn}' 'git svn fetch && git pull . remotes/git-svn'
b_cr="$(git hash-object cr)" b_cr="$(git hash-object cr)"
b_ne_cr="$(git hash-object ne_cr)" b_ne_cr="$(git hash-object ne_cr)"
@ -168,7 +168,7 @@ cat >create-ignore-index.expect <<\EOF
EOF EOF
test_expect_success 'test create-ignore' " test_expect_success 'test create-ignore' "
git svn fetch && git pull . ${remotes_git_svn} && git svn fetch && git pull . remotes/git-svn &&
git svn create-ignore && git svn create-ignore &&
cmp ./.gitignore create-ignore.expect && cmp ./.gitignore create-ignore.expect &&
cmp ./deeply/.gitignore create-ignore.expect && cmp ./deeply/.gitignore create-ignore.expect &&

View File

@ -17,7 +17,7 @@ test_expect_success 'initialize repo' '
test_expect_success 'mirror via git svn' ' test_expect_success 'mirror via git svn' '
git svn init "$svnrepo" && git svn init "$svnrepo" &&
git svn fetch && git svn fetch &&
git checkout -f -b test-rmdir ${remotes_git_svn} git checkout -f -b test-rmdir remotes/git-svn
' '
test_expect_success 'Try a commit on rmdir' ' test_expect_success 'Try a commit on rmdir' '

View File

@ -23,17 +23,19 @@ test_expect_success 'make history for tracking' '
test_expect_success 'clone repo with git' ' test_expect_success 'clone repo with git' '
git svn clone -s "$svnrepo" x && git svn clone -s "$svnrepo" x &&
test -f x/FOLLOWME && test_path_is_file x/FOLLOWME &&
test ! -f x/README test_path_is_missing x/README
' '
test_expect_success 'make sure r2 still has old file' " test_expect_success 'make sure r2 still has old file' '
cd x && (
test -n \"\$(git svn find-rev r1)\" && cd x &&
git reset --hard \$(git svn find-rev r1) && test -n "$(git svn find-rev r1)" &&
test -f README && git reset --hard "$(git svn find-rev r1)" &&
test ! -f FOLLOWME && test_path_is_file README &&
test x\$(git svn find-rev r2) = x test_path_is_missing FOLLOWME &&
" test -z "$(git svn find-rev r2)"
)
'
test_done test_done

View File

@ -44,7 +44,7 @@ test_expect_success 'commit complementing change from git' '
test_expect_success 'dcommit fails to commit because of conflict' ' test_expect_success 'dcommit fails to commit because of conflict' '
git svn init "$svnrepo" && git svn init "$svnrepo" &&
git svn fetch && git svn fetch &&
git reset --hard refs/${remotes_git_svn} && git reset --hard refs/remotes/git-svn &&
svn_cmd co "$svnrepo" t.svn && svn_cmd co "$svnrepo" t.svn &&
( (
cd t.svn && cd t.svn &&
@ -59,7 +59,7 @@ test_expect_success 'dcommit fails to commit because of conflict' '
' '
test_expect_success 'dcommit does the svn equivalent of an index merge' " test_expect_success 'dcommit does the svn equivalent of an index merge' "
git reset --hard refs/${remotes_git_svn} && git reset --hard refs/remotes/git-svn &&
echo 'index merge' > file2 && echo 'index merge' > file2 &&
git update-index --add file2 && git update-index --add file2 &&
git commit -a -m 'index merge' && git commit -a -m 'index merge' &&
@ -81,7 +81,7 @@ test_expect_success 'commit another change from svn side' '
' '
test_expect_success 'multiple dcommit from git svn will not clobber svn' " test_expect_success 'multiple dcommit from git svn will not clobber svn' "
git reset --hard refs/${remotes_git_svn} && git reset --hard refs/remotes/git-svn &&
echo new file >> new-file && echo new file >> new-file &&
git update-index --add new-file && git update-index --add new-file &&
git commit -a -m 'new file' && git commit -a -m 'new file' &&

View File

@ -19,13 +19,14 @@ test_expect_success 'setup old-looking metadata' '
git svn init "$svnrepo" && git svn init "$svnrepo" &&
git svn fetch && git svn fetch &&
rm -rf "$GIT_DIR"/svn && rm -rf "$GIT_DIR"/svn &&
git update-ref refs/heads/git-svn-HEAD refs/${remotes_git_svn} && git update-ref refs/heads/git-svn-HEAD refs/remotes/git-svn &&
git update-ref refs/heads/svn-HEAD refs/${remotes_git_svn} && git update-ref refs/heads/svn-HEAD refs/remotes/git-svn &&
git update-ref -d refs/${remotes_git_svn} refs/${remotes_git_svn} git update-ref -d refs/remotes/git-svn refs/remotes/git-svn
' '
head=$(git rev-parse --verify refs/heads/git-svn-HEAD^0) test_expect_success 'git-svn-HEAD is a real HEAD' '
test_expect_success 'git-svn-HEAD is a real HEAD' "test -n '$head'" git rev-parse --verify refs/heads/git-svn-HEAD^0
'
svnrepo_escaped=$(echo $svnrepo | sed 's/ /%20/') svnrepo_escaped=$(echo $svnrepo | sed 's/ /%20/')
@ -35,11 +36,11 @@ test_expect_success 'initialize old-style (v0) git svn layout' '
echo "$svnrepo" > "$GIT_DIR"/svn/info/url && echo "$svnrepo" > "$GIT_DIR"/svn/info/url &&
git svn migrate && git svn migrate &&
! test -d "$GIT_DIR"/git-svn && ! test -d "$GIT_DIR"/git-svn &&
git rev-parse --verify refs/${remotes_git_svn}^0 && git rev-parse --verify refs/remotes/git-svn^0 &&
git rev-parse --verify refs/remotes/svn^0 && git rev-parse --verify refs/remotes/svn^0 &&
test "$(git config --get svn-remote.svn.url)" = "$svnrepo_escaped" && test "$(git config --get svn-remote.svn.url)" = "$svnrepo_escaped" &&
test $(git config --get svn-remote.svn.fetch) = \ test $(git config --get svn-remote.svn.fetch) = \
":refs/${remotes_git_svn}" ":refs/remotes/git-svn"
' '
test_expect_success 'initialize a multi-repository repo' ' test_expect_success 'initialize a multi-repository repo' '
@ -56,9 +57,11 @@ test_expect_success 'initialize a multi-repository repo' '
"^tags/\*:refs/remotes/origin/tags/\*$" && "^tags/\*:refs/remotes/origin/tags/\*$" &&
git config --add svn-remote.svn.fetch "branches/a:refs/remotes/origin/a" && git config --add svn-remote.svn.fetch "branches/a:refs/remotes/origin/a" &&
git config --add svn-remote.svn.fetch "branches/b:refs/remotes/origin/b" && git config --add svn-remote.svn.fetch "branches/b:refs/remotes/origin/b" &&
for i in tags/0.1 tags/0.2 tags/0.3; do for i in tags/0.1 tags/0.2 tags/0.3
do
git config --add svn-remote.svn.fetch \ git config --add svn-remote.svn.fetch \
$i:refs/remotes/origin/$i || exit 1; done && $i:refs/remotes/origin/$i || return 1
done &&
git config --get-all svn-remote.svn.fetch > fetch.out && git config --get-all svn-remote.svn.fetch > fetch.out &&
grep "^trunk:refs/remotes/origin/trunk$" fetch.out && grep "^trunk:refs/remotes/origin/trunk$" fetch.out &&
grep "^branches/a:refs/remotes/origin/a$" fetch.out && grep "^branches/a:refs/remotes/origin/a$" fetch.out &&
@ -66,34 +69,42 @@ test_expect_success 'initialize a multi-repository repo' '
grep "^tags/0\.1:refs/remotes/origin/tags/0\.1$" fetch.out && grep "^tags/0\.1:refs/remotes/origin/tags/0\.1$" fetch.out &&
grep "^tags/0\.2:refs/remotes/origin/tags/0\.2$" fetch.out && grep "^tags/0\.2:refs/remotes/origin/tags/0\.2$" fetch.out &&
grep "^tags/0\.3:refs/remotes/origin/tags/0\.3$" fetch.out && grep "^tags/0\.3:refs/remotes/origin/tags/0\.3$" fetch.out &&
grep "^:refs/${remotes_git_svn}" fetch.out grep "^:refs/remotes/git-svn" fetch.out
' '
# refs should all be different, but the trees should all be the same: # refs should all be different, but the trees should all be the same:
test_expect_success 'multi-fetch works on partial urls + paths' " test_expect_success 'multi-fetch works on partial urls + paths' '
refs="trunk a b tags/0.1 tags/0.2 tags/0.3" &&
git svn multi-fetch && git svn multi-fetch &&
for i in trunk a b tags/0.1 tags/0.2 tags/0.3; do for i in $refs
git rev-parse --verify refs/remotes/origin/\$i^0 >> refs.out || exit 1; do
done && git rev-parse --verify refs/remotes/origin/$i^0 || return 1;
test -z \"\$(sort < refs.out | uniq -d)\" && done >refs.out &&
for i in trunk a b tags/0.1 tags/0.2 tags/0.3; do test -z "$(sort <refs.out | uniq -d)" &&
for j in trunk a b tags/0.1 tags/0.2 tags/0.3; do for i in $refs
if test \$j != \$i; then continue; fi do
test -z \"\$(git diff refs/remotes/origin/\$i \ for j in $refs
refs/remotes/origin/\$j)\" ||exit 1; done; done do
" git diff --exit-code refs/remotes/origin/$i \
refs/remotes/origin/$j ||
return 1
done
done
'
test_expect_success 'migrate --minimize on old inited layout' ' test_expect_success 'migrate --minimize on old inited layout' '
git config --unset-all svn-remote.svn.fetch && git config --unset-all svn-remote.svn.fetch &&
git config --unset-all svn-remote.svn.url && git config --unset-all svn-remote.svn.url &&
rm -rf "$GIT_DIR"/svn && rm -rf "$GIT_DIR"/svn &&
for i in $(cat fetch.out); do for i in $(cat fetch.out)
do
path=$(expr $i : "\([^:]*\):.*$") path=$(expr $i : "\([^:]*\):.*$")
ref=$(expr $i : "[^:]*:\(refs/remotes/.*\)$") ref=$(expr $i : "[^:]*:\(refs/remotes/.*\)$")
if test -z "$ref"; then continue; fi if test -z "$ref"; then continue; fi
if test -n "$path"; then path="/$path"; fi if test -n "$path"; then path="/$path"; fi
( mkdir -p "$GIT_DIR"/svn/$ref/info/ && mkdir -p "$GIT_DIR"/svn/$ref/info/ &&
echo "$svnrepo"$path > "$GIT_DIR"/svn/$ref/info/url ) || exit 1; echo "$svnrepo"$path >"$GIT_DIR"/svn/$ref/info/url ||
return 1
done && done &&
git svn migrate --minimize && git svn migrate --minimize &&
test -z "$(git config -l | grep "^svn-remote\.git-svn\.")" && test -z "$(git config -l | grep "^svn-remote\.git-svn\.")" &&
@ -104,7 +115,7 @@ test_expect_success 'migrate --minimize on old inited layout' '
grep "^tags/0\.1:refs/remotes/origin/tags/0\.1$" fetch.out && grep "^tags/0\.1:refs/remotes/origin/tags/0\.1$" fetch.out &&
grep "^tags/0\.2:refs/remotes/origin/tags/0\.2$" fetch.out && grep "^tags/0\.2:refs/remotes/origin/tags/0\.2$" fetch.out &&
grep "^tags/0\.3:refs/remotes/origin/tags/0\.3$" fetch.out && grep "^tags/0\.3:refs/remotes/origin/tags/0\.3$" fetch.out &&
grep "^:refs/${remotes_git_svn}" fetch.out grep "^:refs/remotes/git-svn" fetch.out
' '
test_expect_success ".rev_db auto-converted to .rev_map.UUID" ' test_expect_success ".rev_db auto-converted to .rev_map.UUID" '

View File

@ -22,31 +22,31 @@ uuid=161ce429-a9dd-4828-af4a-52023f968c89
bar_url=http://mayonaise/svnrepo/bar bar_url=http://mayonaise/svnrepo/bar
test_expect_success 'verify metadata for /bar' " test_expect_success 'verify metadata for /bar' "
git cat-file commit refs/remotes/bar | \ git cat-file commit refs/remotes/bar | \
grep '^${git_svn_id}: $bar_url@12 $uuid$' && grep '^git-svn-id: $bar_url@12 $uuid$' &&
git cat-file commit refs/remotes/bar~1 | \ git cat-file commit refs/remotes/bar~1 | \
grep '^${git_svn_id}: $bar_url@11 $uuid$' && grep '^git-svn-id: $bar_url@11 $uuid$' &&
git cat-file commit refs/remotes/bar~2 | \ git cat-file commit refs/remotes/bar~2 | \
grep '^${git_svn_id}: $bar_url@10 $uuid$' && grep '^git-svn-id: $bar_url@10 $uuid$' &&
git cat-file commit refs/remotes/bar~3 | \ git cat-file commit refs/remotes/bar~3 | \
grep '^${git_svn_id}: $bar_url@9 $uuid$' && grep '^git-svn-id: $bar_url@9 $uuid$' &&
git cat-file commit refs/remotes/bar~4 | \ git cat-file commit refs/remotes/bar~4 | \
grep '^${git_svn_id}: $bar_url@6 $uuid$' && grep '^git-svn-id: $bar_url@6 $uuid$' &&
git cat-file commit refs/remotes/bar~5 | \ git cat-file commit refs/remotes/bar~5 | \
grep '^${git_svn_id}: $bar_url@1 $uuid$' grep '^git-svn-id: $bar_url@1 $uuid$'
" "
e_url=http://mayonaise/svnrepo/dir/a/b/c/d/e e_url=http://mayonaise/svnrepo/dir/a/b/c/d/e
test_expect_success 'verify metadata for /dir/a/b/c/d/e' " test_expect_success 'verify metadata for /dir/a/b/c/d/e' "
git cat-file commit refs/remotes/e | \ git cat-file commit refs/remotes/e | \
grep '^${git_svn_id}: $e_url@1 $uuid$' grep '^git-svn-id: $e_url@1 $uuid$'
" "
dir_url=http://mayonaise/svnrepo/dir dir_url=http://mayonaise/svnrepo/dir
test_expect_success 'verify metadata for /dir' " test_expect_success 'verify metadata for /dir' "
git cat-file commit refs/remotes/dir | \ git cat-file commit refs/remotes/dir | \
grep '^${git_svn_id}: $dir_url@2 $uuid$' && grep '^git-svn-id: $dir_url@2 $uuid$' &&
git cat-file commit refs/remotes/dir~1 | \ git cat-file commit refs/remotes/dir~1 | \
grep '^${git_svn_id}: $dir_url@1 $uuid$' grep '^git-svn-id: $dir_url@1 $uuid$'
" "
test_expect_success 'find commit based on SVN revision number' " test_expect_success 'find commit based on SVN revision number' "

View File

@ -21,31 +21,31 @@ uuid=161ce429-a9dd-4828-af4a-52023f968c89
bar_url=http://mayonaise/svnrepo/bar bar_url=http://mayonaise/svnrepo/bar
test_expect_success 'verify metadata for /bar' " test_expect_success 'verify metadata for /bar' "
git cat-file commit refs/remotes/bar | \ git cat-file commit refs/remotes/bar | \
grep '^${git_svn_id}: $bar_url@12 $uuid$' && grep '^git-svn-id: $bar_url@12 $uuid$' &&
git cat-file commit refs/remotes/bar~1 | \ git cat-file commit refs/remotes/bar~1 | \
grep '^${git_svn_id}: $bar_url@11 $uuid$' && grep '^git-svn-id: $bar_url@11 $uuid$' &&
git cat-file commit refs/remotes/bar~2 | \ git cat-file commit refs/remotes/bar~2 | \
grep '^${git_svn_id}: $bar_url@10 $uuid$' && grep '^git-svn-id: $bar_url@10 $uuid$' &&
git cat-file commit refs/remotes/bar~3 | \ git cat-file commit refs/remotes/bar~3 | \
grep '^${git_svn_id}: $bar_url@9 $uuid$' && grep '^git-svn-id: $bar_url@9 $uuid$' &&
git cat-file commit refs/remotes/bar~4 | \ git cat-file commit refs/remotes/bar~4 | \
grep '^${git_svn_id}: $bar_url@6 $uuid$' && grep '^git-svn-id: $bar_url@6 $uuid$' &&
git cat-file commit refs/remotes/bar~5 | \ git cat-file commit refs/remotes/bar~5 | \
grep '^${git_svn_id}: $bar_url@1 $uuid$' grep '^git-svn-id: $bar_url@1 $uuid$'
" "
e_url=http://mayonaise/svnrepo/dir/a/b/c/d/e e_url=http://mayonaise/svnrepo/dir/a/b/c/d/e
test_expect_success 'verify metadata for /dir/a/b/c/d/e' " test_expect_success 'verify metadata for /dir/a/b/c/d/e' "
git cat-file commit refs/remotes/e | \ git cat-file commit refs/remotes/e | \
grep '^${git_svn_id}: $e_url@1 $uuid$' grep '^git-svn-id: $e_url@1 $uuid$'
" "
dir_url=http://mayonaise/svnrepo/dir dir_url=http://mayonaise/svnrepo/dir
test_expect_success 'verify metadata for /dir' " test_expect_success 'verify metadata for /dir' "
git cat-file commit refs/remotes/dir | \ git cat-file commit refs/remotes/dir | \
grep '^${git_svn_id}: $dir_url@2 $uuid$' && grep '^git-svn-id: $dir_url@2 $uuid$' &&
git cat-file commit refs/remotes/dir~1 | \ git cat-file commit refs/remotes/dir~1 | \
grep '^${git_svn_id}: $dir_url@1 $uuid$' grep '^git-svn-id: $dir_url@1 $uuid$'
" "
test_done test_done

View File

@ -22,7 +22,7 @@ test_expect_success 'test clone with percent escapes' '
git svn clone "$svnrepo/pr%20ject" clone && git svn clone "$svnrepo/pr%20ject" clone &&
( (
cd clone && cd clone &&
git rev-parse refs/${remotes_git_svn} git rev-parse refs/remotes/git-svn
) )
' '
@ -42,7 +42,7 @@ test_expect_success 'test clone trunk with percent escapes and minimize-url' '
git svn clone --minimize-url "$svnrepo/pr%20ject/trunk" minimize && git svn clone --minimize-url "$svnrepo/pr%20ject/trunk" minimize &&
( (
cd minimize && cd minimize &&
git rev-parse refs/${remotes_git_svn} git rev-parse refs/remotes/git-svn
) )
' '
@ -50,7 +50,7 @@ test_expect_success 'test clone trunk with percent escapes' '
git svn clone "$svnrepo/pr%20ject/trunk" trunk && git svn clone "$svnrepo/pr%20ject/trunk" trunk &&
( (
cd trunk && cd trunk &&
git rev-parse refs/${remotes_git_svn} git rev-parse refs/remotes/git-svn
) )
' '

View File

@ -17,7 +17,7 @@ rm -rf import
test_expect_success 'init, fetch and checkout repository' ' test_expect_success 'init, fetch and checkout repository' '
git svn init --rewrite-root=http://invalid.invalid/ "$svnrepo" && git svn init --rewrite-root=http://invalid.invalid/ "$svnrepo" &&
git svn fetch && git svn fetch &&
git checkout -b mybranch ${remotes_git_svn} git checkout -b mybranch remotes/git-svn
' '
test_expect_success 'remove rev_map' ' test_expect_success 'remove rev_map' '

View File

@ -17,9 +17,9 @@ test_expect_success 'load svn repo' "
test_expect_success 'verify uuid' " test_expect_success 'verify uuid' "
git cat-file commit refs/remotes/git-svn~0 | \ git cat-file commit refs/remotes/git-svn~0 | \
grep '^${git_svn_id}: .*@2 $uuid$' && grep '^git-svn-id: .*@2 $uuid$' &&
git cat-file commit refs/remotes/git-svn~1 | \ git cat-file commit refs/remotes/git-svn~1 | \
grep '^${git_svn_id}: .*@1 $uuid$' grep '^git-svn-id: .*@1 $uuid$'
" "
test_done test_done