Fix tests breaking when checkout path contains shell metacharacters
This fixes the remainder of the issues where the test script itself is at fault for failing when the git checkout path contains whitespace or other shell metacharacters. The majority of git svn tests used the idiom test_expect_success "title" "test script using $svnrepo" These were changed to have the test script in single-quotes: test_expect_success "title" 'test script using "$svnrepo"' which unfortunately makes the patch appear larger than it really is. One consequence of this change is that in the verbose test output the value of $svnrepo (and in some cases other variables, too) is no longer expanded, i.e. previously we saw * expecting success: test script using /path/to/git/t/trash/svnrepo but now it is: * expecting success: test script using "$svnrepo" Signed-off-by: Bryan Donlan <bdonlan@fushizen.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
0e46e70462
commit
f69e836fab
@ -305,10 +305,10 @@ test_expect_success 'absolute path works as expected' '
|
|||||||
file="$dir"/index &&
|
file="$dir"/index &&
|
||||||
test "$file" = "$(test-absolute-path $dir2/index)" &&
|
test "$file" = "$(test-absolute-path $dir2/index)" &&
|
||||||
basename=blub &&
|
basename=blub &&
|
||||||
test "$dir/$basename" = $(cd .git && test-absolute-path $basename) &&
|
test "$dir/$basename" = "$(cd .git && test-absolute-path "$basename")" &&
|
||||||
ln -s ../first/file .git/syml &&
|
ln -s ../first/file .git/syml &&
|
||||||
sym="$(cd first; pwd -P)"/file &&
|
sym="$(cd first; pwd -P)"/file &&
|
||||||
test "$sym" = "$(test-absolute-path $dir2/syml)"
|
test "$sym" = "$(test-absolute-path "$dir2/syml")"
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'very long name in the index handled sanely' '
|
test_expect_success 'very long name in the index handled sanely' '
|
||||||
|
@ -21,7 +21,7 @@ LF='
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'update-index and ls-files' '
|
test_expect_success 'update-index and ls-files' '
|
||||||
cd $HERE &&
|
cd "$HERE" &&
|
||||||
git update-index --add one &&
|
git update-index --add one &&
|
||||||
case "`git ls-files`" in
|
case "`git ls-files`" in
|
||||||
one) echo ok one ;;
|
one) echo ok one ;;
|
||||||
@ -41,7 +41,7 @@ test_expect_success 'update-index and ls-files' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'cat-file' '
|
test_expect_success 'cat-file' '
|
||||||
cd $HERE &&
|
cd "$HERE" &&
|
||||||
two=`git ls-files -s dir/two` &&
|
two=`git ls-files -s dir/two` &&
|
||||||
two=`expr "$two" : "[0-7]* \\([0-9a-f]*\\)"` &&
|
two=`expr "$two" : "[0-7]* \\([0-9a-f]*\\)"` &&
|
||||||
echo "$two" &&
|
echo "$two" &&
|
||||||
@ -54,7 +54,7 @@ test_expect_success 'cat-file' '
|
|||||||
rm -f actual dir/actual
|
rm -f actual dir/actual
|
||||||
|
|
||||||
test_expect_success 'diff-files' '
|
test_expect_success 'diff-files' '
|
||||||
cd $HERE &&
|
cd "$HERE" &&
|
||||||
echo a >>one &&
|
echo a >>one &&
|
||||||
echo d >>dir/two &&
|
echo d >>dir/two &&
|
||||||
case "`git diff-files --name-only`" in
|
case "`git diff-files --name-only`" in
|
||||||
@ -74,7 +74,7 @@ test_expect_success 'diff-files' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'write-tree' '
|
test_expect_success 'write-tree' '
|
||||||
cd $HERE &&
|
cd "$HERE" &&
|
||||||
top=`git write-tree` &&
|
top=`git write-tree` &&
|
||||||
echo $top &&
|
echo $top &&
|
||||||
cd dir &&
|
cd dir &&
|
||||||
@ -84,7 +84,7 @@ test_expect_success 'write-tree' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'checkout-index' '
|
test_expect_success 'checkout-index' '
|
||||||
cd $HERE &&
|
cd "$HERE" &&
|
||||||
git checkout-index -f -u one &&
|
git checkout-index -f -u one &&
|
||||||
cmp one original.one &&
|
cmp one original.one &&
|
||||||
cd dir &&
|
cd dir &&
|
||||||
@ -93,7 +93,7 @@ test_expect_success 'checkout-index' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'read-tree' '
|
test_expect_success 'read-tree' '
|
||||||
cd $HERE &&
|
cd "$HERE" &&
|
||||||
rm -f one dir/two &&
|
rm -f one dir/two &&
|
||||||
tree=`git write-tree` &&
|
tree=`git write-tree` &&
|
||||||
git read-tree --reset -u "$tree" &&
|
git read-tree --reset -u "$tree" &&
|
||||||
@ -107,27 +107,27 @@ test_expect_success 'read-tree' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'no file/rev ambiguity check inside .git' '
|
test_expect_success 'no file/rev ambiguity check inside .git' '
|
||||||
cd $HERE &&
|
cd "$HERE" &&
|
||||||
git commit -a -m 1 &&
|
git commit -a -m 1 &&
|
||||||
cd $HERE/.git &&
|
cd "$HERE"/.git &&
|
||||||
git show -s HEAD
|
git show -s HEAD
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'no file/rev ambiguity check inside a bare repo' '
|
test_expect_success 'no file/rev ambiguity check inside a bare repo' '
|
||||||
cd $HERE &&
|
cd "$HERE" &&
|
||||||
git clone -s --bare .git foo.git &&
|
git clone -s --bare .git foo.git &&
|
||||||
cd foo.git && GIT_DIR=. git show -s HEAD
|
cd foo.git && GIT_DIR=. git show -s HEAD
|
||||||
'
|
'
|
||||||
|
|
||||||
# This still does not work as it should...
|
# This still does not work as it should...
|
||||||
: test_expect_success 'no file/rev ambiguity check inside a bare repo' '
|
: test_expect_success 'no file/rev ambiguity check inside a bare repo' '
|
||||||
cd $HERE &&
|
cd "$HERE" &&
|
||||||
git clone -s --bare .git foo.git &&
|
git clone -s --bare .git foo.git &&
|
||||||
cd foo.git && git show -s HEAD
|
cd foo.git && git show -s HEAD
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'detection should not be fooled by a symlink' '
|
test_expect_success 'detection should not be fooled by a symlink' '
|
||||||
cd $HERE &&
|
cd "$HERE" &&
|
||||||
rm -fr foo.git &&
|
rm -fr foo.git &&
|
||||||
git clone -s .git another &&
|
git clone -s .git another &&
|
||||||
ln -s another yetanother &&
|
ln -s another yetanother &&
|
||||||
|
@ -20,7 +20,7 @@ test_expect_success setup '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success clone '
|
test_expect_success clone '
|
||||||
git clone file://`pwd`/.git cloned &&
|
git clone "file://$(pwd)/.git" cloned &&
|
||||||
(git rev-parse HEAD; git ls-files -s) >expected &&
|
(git rev-parse HEAD; git ls-files -s) >expected &&
|
||||||
(
|
(
|
||||||
cd cloned &&
|
cd cloned &&
|
||||||
|
@ -91,9 +91,8 @@ for line in $FAKE_LINES; do
|
|||||||
done
|
done
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
test_set_editor "$(pwd)/fake-editor.sh"
|
||||||
chmod a+x fake-editor.sh
|
chmod a+x fake-editor.sh
|
||||||
VISUAL="$(pwd)/fake-editor.sh"
|
|
||||||
export VISUAL
|
|
||||||
|
|
||||||
test_expect_success 'no changes are a nop' '
|
test_expect_success 'no changes are a nop' '
|
||||||
git rebase -i F &&
|
git rebase -i F &&
|
||||||
|
@ -129,7 +129,7 @@ pull_to_client 2nd "B" $((64*3))
|
|||||||
|
|
||||||
pull_to_client 3rd "A" $((1*3)) # old fails
|
pull_to_client 3rd "A" $((1*3)) # old fails
|
||||||
|
|
||||||
test_expect_success "clone shallow" "git-clone --depth 2 file://`pwd`/. shallow"
|
test_expect_success "clone shallow" 'git-clone --depth 2 "file://$(pwd)/." shallow'
|
||||||
|
|
||||||
(cd shallow; git count-objects -v) > count.shallow
|
(cd shallow; git count-objects -v) > count.shallow
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ test_expect_success setup '
|
|||||||
git show-ref -d | sed -e "s/ / /"
|
git show-ref -d | sed -e "s/ / /"
|
||||||
) >expected.all &&
|
) >expected.all &&
|
||||||
|
|
||||||
git remote add self $(pwd)/.git
|
git remote add self "$(pwd)/.git"
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ test_expect_success 'fetch with insteadOf' '
|
|||||||
(
|
(
|
||||||
TRASH=$(pwd)/ &&
|
TRASH=$(pwd)/ &&
|
||||||
cd testrepo &&
|
cd testrepo &&
|
||||||
git config url.$TRASH.insteadOf trash/
|
git config "url.$TRASH.insteadOf" trash/ &&
|
||||||
git config remote.up.url trash/. &&
|
git config remote.up.url trash/. &&
|
||||||
git config remote.up.fetch "refs/heads/*:refs/remotes/origin/*" &&
|
git config remote.up.fetch "refs/heads/*:refs/remotes/origin/*" &&
|
||||||
git fetch up &&
|
git fetch up &&
|
||||||
@ -145,8 +145,8 @@ test_expect_success 'push with wildcard' '
|
|||||||
|
|
||||||
test_expect_success 'push with insteadOf' '
|
test_expect_success 'push with insteadOf' '
|
||||||
mk_empty &&
|
mk_empty &&
|
||||||
TRASH=$(pwd)/ &&
|
TRASH="$(pwd)/" &&
|
||||||
git config url.$TRASH.insteadOf trash/ &&
|
git config "url./$TRASH/.insteadOf" trash/ &&
|
||||||
git push trash/testrepo refs/heads/master:refs/remotes/origin/master &&
|
git push trash/testrepo refs/heads/master:refs/remotes/origin/master &&
|
||||||
(
|
(
|
||||||
cd testrepo &&
|
cd testrepo &&
|
||||||
|
@ -51,7 +51,7 @@ diff expected current'
|
|||||||
cd "$base_dir"
|
cd "$base_dir"
|
||||||
|
|
||||||
test_expect_success 'cloning with reference (no -l -s)' \
|
test_expect_success 'cloning with reference (no -l -s)' \
|
||||||
'git clone --reference B file://`pwd`/A D'
|
'git clone --reference B "file://$(pwd)/A" D'
|
||||||
|
|
||||||
cd "$base_dir"
|
cd "$base_dir"
|
||||||
|
|
||||||
|
@ -81,9 +81,9 @@ test_valid_repo'
|
|||||||
cd "$base_dir"
|
cd "$base_dir"
|
||||||
|
|
||||||
test_expect_success 'breaking of loops' \
|
test_expect_success 'breaking of loops' \
|
||||||
"echo '$base_dir/B/.git/objects' >> '$base_dir'/A/.git/objects/info/alternates&&
|
'echo "$base_dir"/B/.git/objects >> "$base_dir"/A/.git/objects/info/alternates&&
|
||||||
cd C &&
|
cd C &&
|
||||||
test_valid_repo"
|
test_valid_repo'
|
||||||
|
|
||||||
cd "$base_dir"
|
cd "$base_dir"
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ test_expect_success 'use index-filter to move into a subdirectory' '
|
|||||||
"git ls-files -s | sed \"s-\\t-&newsubdir/-\" |
|
"git ls-files -s | sed \"s-\\t-&newsubdir/-\" |
|
||||||
GIT_INDEX_FILE=\$GIT_INDEX_FILE.new \
|
GIT_INDEX_FILE=\$GIT_INDEX_FILE.new \
|
||||||
git update-index --index-info &&
|
git update-index --index-info &&
|
||||||
mv \$GIT_INDEX_FILE.new \$GIT_INDEX_FILE" directorymoved &&
|
mv \"\$GIT_INDEX_FILE.new\" \"\$GIT_INDEX_FILE\"" directorymoved &&
|
||||||
test -z "$(git diff HEAD directorymoved:newsubdir)"'
|
test -z "$(git diff HEAD directorymoved:newsubdir)"'
|
||||||
|
|
||||||
test_expect_success 'stops when msg filter fails' '
|
test_expect_success 'stops when msg filter fails' '
|
||||||
|
@ -122,7 +122,7 @@ test_expect_success 'commit using absolute path names' '
|
|||||||
|
|
||||||
test_expect_success 'log using absolute path names' '
|
test_expect_success 'log using absolute path names' '
|
||||||
echo bb >>a/b/c/d &&
|
echo bb >>a/b/c/d &&
|
||||||
git commit -m "bb" $(pwd)/a/b/c/d &&
|
git commit -m "bb" "$(pwd)/a/b/c/d" &&
|
||||||
|
|
||||||
git log a/b/c/d >f1.txt &&
|
git log a/b/c/d >f1.txt &&
|
||||||
git log "$(pwd)/a/b/c/d" >f2.txt &&
|
git log "$(pwd)/a/b/c/d" >f2.txt &&
|
||||||
|
@ -112,7 +112,7 @@ test_expect_success 'git-clean with absolute path' '
|
|||||||
touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
|
touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
|
||||||
would_clean=$(
|
would_clean=$(
|
||||||
cd docs &&
|
cd docs &&
|
||||||
git clean -n $(pwd)/../src |
|
git clean -n "$(pwd)/../src" |
|
||||||
sed -n -e "s|^Would remove ||p"
|
sed -n -e "s|^Would remove ||p"
|
||||||
) &&
|
) &&
|
||||||
test "$would_clean" = ../src/part3.c || {
|
test "$would_clean" = ../src/part3.c || {
|
||||||
|
@ -79,8 +79,8 @@ test_expect_success \
|
|||||||
|
|
||||||
cat >editor <<\EOF
|
cat >editor <<\EOF
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
sed -e "s/a file/an amend commit/g" < $1 > $1-
|
sed -e "s/a file/an amend commit/g" < "$1" > "$1-"
|
||||||
mv $1- $1
|
mv "$1-" "$1"
|
||||||
EOF
|
EOF
|
||||||
chmod 755 editor
|
chmod 755 editor
|
||||||
|
|
||||||
@ -99,8 +99,8 @@ test_expect_success \
|
|||||||
|
|
||||||
cat >editor <<\EOF
|
cat >editor <<\EOF
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
sed -e "s/amend/older/g" < $1 > $1-
|
sed -e "s/amend/older/g" < "$1" > "$1-"
|
||||||
mv $1- $1
|
mv "$1-" "$1"
|
||||||
EOF
|
EOF
|
||||||
chmod 755 editor
|
chmod 755 editor
|
||||||
|
|
||||||
|
@ -19,6 +19,9 @@ cp FAKE_MSG "$1"
|
|||||||
exit 0
|
exit 0
|
||||||
EOF
|
EOF
|
||||||
chmod +x fake-editor
|
chmod +x fake-editor
|
||||||
|
|
||||||
|
## Not using test_set_editor here so we can easily ensure the editor variable
|
||||||
|
## is only set for the editor tests
|
||||||
FAKE_EDITOR="$(pwd)/fake-editor"
|
FAKE_EDITOR="$(pwd)/fake-editor"
|
||||||
export FAKE_EDITOR
|
export FAKE_EDITOR
|
||||||
|
|
||||||
@ -27,7 +30,7 @@ test_expect_success 'with no hook (editor)' '
|
|||||||
echo "more foo" >> file &&
|
echo "more foo" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
echo "more foo" > FAKE_MSG &&
|
echo "more foo" > FAKE_MSG &&
|
||||||
GIT_EDITOR="$FAKE_EDITOR" git commit
|
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
@ -44,7 +47,7 @@ test_expect_success '--no-verify with no hook (editor)' '
|
|||||||
echo "more bar" > file &&
|
echo "more bar" > file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
echo "more bar" > FAKE_MSG &&
|
echo "more bar" > FAKE_MSG &&
|
||||||
GIT_EDITOR="$FAKE_EDITOR" git commit --no-verify
|
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
@ -71,7 +74,7 @@ test_expect_success 'with succeeding hook (editor)' '
|
|||||||
echo "more more" >> file &&
|
echo "more more" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
echo "more more" > FAKE_MSG &&
|
echo "more more" > FAKE_MSG &&
|
||||||
GIT_EDITOR="$FAKE_EDITOR" git commit
|
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
@ -88,7 +91,7 @@ test_expect_success '--no-verify with succeeding hook (editor)' '
|
|||||||
echo "even more more" >> file &&
|
echo "even more more" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
echo "even more more" > FAKE_MSG &&
|
echo "even more more" > FAKE_MSG &&
|
||||||
GIT_EDITOR="$FAKE_EDITOR" git commit --no-verify
|
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
@ -111,7 +114,7 @@ test_expect_success 'with failing hook (editor)' '
|
|||||||
echo "more another" >> file &&
|
echo "more another" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
echo "more another" > FAKE_MSG &&
|
echo "more another" > FAKE_MSG &&
|
||||||
! (GIT_EDITOR="$FAKE_EDITOR" git commit)
|
! (GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit)
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
@ -128,7 +131,7 @@ test_expect_success '--no-verify with failing hook (editor)' '
|
|||||||
echo "more stuff" >> file &&
|
echo "more stuff" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
echo "more stuff" > FAKE_MSG &&
|
echo "more stuff" > FAKE_MSG &&
|
||||||
GIT_EDITOR="$FAKE_EDITOR" git commit --no-verify
|
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
@ -146,7 +149,7 @@ test_expect_success 'with non-executable hook (editor)' '
|
|||||||
echo "content again" >> file &&
|
echo "content again" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
echo "content again" > FAKE_MSG &&
|
echo "content again" > FAKE_MSG &&
|
||||||
GIT_EDITOR="$FAKE_EDITOR" git commit -m "content again"
|
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -m "content again"
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
@ -163,7 +166,7 @@ test_expect_success '--no-verify with non-executable hook (editor)' '
|
|||||||
echo "even more content" >> file &&
|
echo "even more content" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
echo "even more content" > FAKE_MSG &&
|
echo "even more content" > FAKE_MSG &&
|
||||||
GIT_EDITOR="$FAKE_EDITOR" git commit --no-verify
|
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
@ -193,7 +196,7 @@ test_expect_success 'hook edits commit message (editor)' '
|
|||||||
echo "additional content" >> file &&
|
echo "additional content" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
echo "additional content" > FAKE_MSG &&
|
echo "additional content" > FAKE_MSG &&
|
||||||
GIT_EDITOR="$FAKE_EDITOR" git commit &&
|
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit &&
|
||||||
commit_msg_is "new message"
|
commit_msg_is "new message"
|
||||||
|
|
||||||
'
|
'
|
||||||
@ -212,7 +215,7 @@ test_expect_success "hook doesn't edit commit message (editor)" '
|
|||||||
echo "more plus" >> file &&
|
echo "more plus" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
echo "more plus" > FAKE_MSG &&
|
echo "more plus" > FAKE_MSG &&
|
||||||
GIT_EDITOR="$FAKE_EDITOR" git commit --no-verify &&
|
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify &&
|
||||||
commit_msg_is "more plus"
|
commit_msg_is "more plus"
|
||||||
|
|
||||||
'
|
'
|
||||||
|
@ -18,6 +18,9 @@ cat > fake-editor <<'EOF'
|
|||||||
exit 0
|
exit 0
|
||||||
EOF
|
EOF
|
||||||
chmod +x fake-editor
|
chmod +x fake-editor
|
||||||
|
|
||||||
|
## Not using test_set_editor here so we can easily ensure the editor variable
|
||||||
|
## is only set for the editor tests
|
||||||
FAKE_EDITOR="$(pwd)/fake-editor"
|
FAKE_EDITOR="$(pwd)/fake-editor"
|
||||||
export FAKE_EDITOR
|
export FAKE_EDITOR
|
||||||
|
|
||||||
@ -58,7 +61,7 @@ test_expect_success 'with hook (-m editor)' '
|
|||||||
|
|
||||||
echo "more" >> file &&
|
echo "more" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
GIT_EDITOR="$FAKE_EDITOR" git commit -e -m "more more" &&
|
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -e -m "more more" &&
|
||||||
test "`git log -1 --pretty=format:%s`" = message
|
test "`git log -1 --pretty=format:%s`" = message
|
||||||
|
|
||||||
'
|
'
|
||||||
@ -85,7 +88,7 @@ test_expect_success 'with hook (-F editor)' '
|
|||||||
|
|
||||||
echo "more" >> file &&
|
echo "more" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
(echo more more | GIT_EDITOR="$FAKE_EDITOR" git commit -e -F -) &&
|
(echo more more | GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -e -F -) &&
|
||||||
test "`git log -1 --pretty=format:%s`" = message
|
test "`git log -1 --pretty=format:%s`" = message
|
||||||
|
|
||||||
'
|
'
|
||||||
@ -104,7 +107,7 @@ test_expect_success 'with hook (editor)' '
|
|||||||
|
|
||||||
echo "more more" >> file &&
|
echo "more more" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
GIT_EDITOR="$FAKE_EDITOR" git commit &&
|
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit &&
|
||||||
test "`git log -1 --pretty=format:%s`" = default
|
test "`git log -1 --pretty=format:%s`" = default
|
||||||
|
|
||||||
'
|
'
|
||||||
@ -114,7 +117,7 @@ test_expect_success 'with hook (--amend)' '
|
|||||||
head=`git rev-parse HEAD` &&
|
head=`git rev-parse HEAD` &&
|
||||||
echo "more" >> file &&
|
echo "more" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
GIT_EDITOR="$FAKE_EDITOR" git commit --amend &&
|
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --amend &&
|
||||||
test "`git log -1 --pretty=format:%s`" = "$head"
|
test "`git log -1 --pretty=format:%s`" = "$head"
|
||||||
|
|
||||||
'
|
'
|
||||||
@ -124,7 +127,7 @@ test_expect_success 'with hook (-c)' '
|
|||||||
head=`git rev-parse HEAD` &&
|
head=`git rev-parse HEAD` &&
|
||||||
echo "more" >> file &&
|
echo "more" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
GIT_EDITOR="$FAKE_EDITOR" git commit -c $head &&
|
GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -c $head &&
|
||||||
test "`git log -1 --pretty=format:%s`" = "$head"
|
test "`git log -1 --pretty=format:%s`" = "$head"
|
||||||
|
|
||||||
'
|
'
|
||||||
@ -139,7 +142,7 @@ test_expect_success 'with failing hook' '
|
|||||||
head=`git rev-parse HEAD` &&
|
head=`git rev-parse HEAD` &&
|
||||||
echo "more" >> file &&
|
echo "more" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
! GIT_EDITOR="$FAKE_EDITOR" git commit -c $head
|
! GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -c $head
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
@ -148,7 +151,7 @@ test_expect_success 'with failing hook (--no-verify)' '
|
|||||||
head=`git rev-parse HEAD` &&
|
head=`git rev-parse HEAD` &&
|
||||||
echo "more" >> file &&
|
echo "more" >> file &&
|
||||||
git add file &&
|
git add file &&
|
||||||
! GIT_EDITOR="$FAKE_EDITOR" git commit --no-verify -c $head
|
! GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify -c $head
|
||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
|
@ -20,39 +20,39 @@ esac
|
|||||||
echo 'define NO_SVN_TESTS to skip git-svn tests'
|
echo 'define NO_SVN_TESTS to skip git-svn tests'
|
||||||
|
|
||||||
test_expect_success \
|
test_expect_success \
|
||||||
'initialize git-svn' "
|
'initialize git-svn' '
|
||||||
mkdir import &&
|
mkdir import &&
|
||||||
cd import &&
|
cd import &&
|
||||||
echo foo > foo &&
|
echo foo > foo &&
|
||||||
ln -s foo foo.link
|
ln -s foo foo.link
|
||||||
mkdir -p dir/a/b/c/d/e &&
|
mkdir -p dir/a/b/c/d/e &&
|
||||||
echo 'deep dir' > dir/a/b/c/d/e/file &&
|
echo "deep dir" > dir/a/b/c/d/e/file &&
|
||||||
mkdir bar &&
|
mkdir bar &&
|
||||||
echo 'zzz' > bar/zzz &&
|
echo "zzz" > bar/zzz &&
|
||||||
echo '#!/bin/sh' > exec.sh &&
|
echo "#!/bin/sh" > exec.sh &&
|
||||||
chmod +x exec.sh &&
|
chmod +x exec.sh &&
|
||||||
svn import -m 'import for git-svn' . $svnrepo >/dev/null &&
|
svn import -m "import for git-svn" . "$svnrepo" >/dev/null &&
|
||||||
cd .. &&
|
cd .. &&
|
||||||
rm -rf import &&
|
rm -rf import &&
|
||||||
git-svn init $svnrepo"
|
git-svn init "$svnrepo"'
|
||||||
|
|
||||||
test_expect_success \
|
test_expect_success \
|
||||||
'import an SVN revision into git' \
|
'import an SVN revision into git' \
|
||||||
'git-svn fetch'
|
'git-svn fetch'
|
||||||
|
|
||||||
test_expect_success "checkout from svn" "svn co $svnrepo '$SVN_TREE'"
|
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 up '$SVN_TREE' &&
|
svn 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'
|
||||||
|
|
||||||
|
|
||||||
name='detect node change from file to directory #1'
|
name='detect node change from file to directory #1'
|
||||||
@ -68,108 +68,108 @@ test_expect_success "$name" "
|
|||||||
|
|
||||||
|
|
||||||
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 &&
|
||||||
git update-index --remove -- bar/zzz &&
|
git update-index --remove -- bar/zzz &&
|
||||||
git update-index --add -- bar &&
|
git update-index --add -- bar &&
|
||||||
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..mybranch2" || true
|
remotes/git-svn..mybranch2' || true
|
||||||
|
|
||||||
|
|
||||||
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 &&
|
||||||
echo yyy > bar/zzz/yyy &&
|
echo yyy > bar/zzz/yyy &&
|
||||||
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" || true
|
remotes/git-svn..mybranch3' || true
|
||||||
|
|
||||||
|
|
||||||
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 &&
|
||||||
echo asdf > dir &&
|
echo asdf > dir &&
|
||||||
git update-index --add -- dir &&
|
git update-index --add -- dir &&
|
||||||
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..mybranch4" || true
|
remotes/git-svn..mybranch4' || true
|
||||||
|
|
||||||
|
|
||||||
name='remove executable bit from a file'
|
name='remove executable bit from a file'
|
||||||
test_expect_success "$name" "
|
test_expect_success "$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 up '$SVN_TREE' &&
|
svn up "$SVN_TREE" &&
|
||||||
test ! -x '$SVN_TREE'/exec.sh"
|
test ! -x "$SVN_TREE"/exec.sh'
|
||||||
|
|
||||||
|
|
||||||
name='add executable bit back file'
|
name='add executable bit back file'
|
||||||
test_expect_success "$name" "
|
test_expect_success "$name" '
|
||||||
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 up '$SVN_TREE' &&
|
svn up "$SVN_TREE" &&
|
||||||
test -x '$SVN_TREE'/exec.sh"
|
test -x "$SVN_TREE"/exec.sh'
|
||||||
|
|
||||||
|
|
||||||
name='executable file becomes a symlink to bar/zzz (file)'
|
name='executable file becomes a symlink to bar/zzz (file)'
|
||||||
test_expect_success "$name" "
|
test_expect_success "$name" '
|
||||||
rm exec.sh &&
|
rm exec.sh &&
|
||||||
ln -s bar/zzz exec.sh &&
|
ln -s bar/zzz 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 up '$SVN_TREE' &&
|
svn up "$SVN_TREE" &&
|
||||||
test -L '$SVN_TREE'/exec.sh"
|
test -L "$SVN_TREE"/exec.sh'
|
||||||
|
|
||||||
name='new symlink is added to a file that was also just made executable'
|
name='new symlink is added to a file that was also just made executable'
|
||||||
|
|
||||||
test_expect_success "$name" "
|
test_expect_success "$name" '
|
||||||
chmod +x bar/zzz &&
|
chmod +x bar/zzz &&
|
||||||
ln -s bar/zzz exec-2.sh &&
|
ln -s bar/zzz exec-2.sh &&
|
||||||
git update-index --add bar/zzz exec-2.sh &&
|
git update-index --add bar/zzz 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 up '$SVN_TREE' &&
|
svn up "$SVN_TREE" &&
|
||||||
test -x '$SVN_TREE'/bar/zzz &&
|
test -x "$SVN_TREE"/bar/zzz &&
|
||||||
test -L '$SVN_TREE'/exec-2.sh"
|
test -L "$SVN_TREE"/exec-2.sh'
|
||||||
|
|
||||||
name='modify a symlink to become a file'
|
name='modify a symlink to become a file'
|
||||||
test_expect_success "$name" "
|
test_expect_success "$name" '
|
||||||
echo git help > help || true &&
|
echo git help > help || true &&
|
||||||
rm exec-2.sh &&
|
rm exec-2.sh &&
|
||||||
cp help exec-2.sh &&
|
cp help exec-2.sh &&
|
||||||
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 up '$SVN_TREE' &&
|
svn up "$SVN_TREE" &&
|
||||||
test -f '$SVN_TREE'/exec-2.sh &&
|
test -f "$SVN_TREE"/exec-2.sh &&
|
||||||
test ! -L '$SVN_TREE'/exec-2.sh &&
|
test ! -L "$SVN_TREE"/exec-2.sh &&
|
||||||
git diff help $SVN_TREE/exec-2.sh"
|
git diff help "$SVN_TREE"/exec-2.sh'
|
||||||
|
|
||||||
if test "$have_utf8" = t
|
if test "$have_utf8" = t
|
||||||
then
|
then
|
||||||
@ -190,10 +190,10 @@ name='test fetch functionality (svn => git) with alternate GIT_SVN_ID'
|
|||||||
GIT_SVN_ID=alt
|
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 &&
|
||||||
git diff a b"
|
git diff a b'
|
||||||
|
|
||||||
name='check imported tree checksums expected tree checksums'
|
name='check imported tree checksums expected tree checksums'
|
||||||
rm -f expected
|
rm -f expected
|
||||||
@ -219,22 +219,22 @@ test_expect_success 'exit if remote refs are ambigious' "
|
|||||||
! git-svn migrate
|
! 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$" &&
|
||||||
! git-svn init ${svnrepo}2/bar
|
! git-svn init "${svnrepo}2/bar"
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success \
|
test_expect_success \
|
||||||
'init allows us to connect to another directory in the same repo' "
|
'init allows us to connect to another directory in the same repo' '
|
||||||
git-svn init --minimize-url -i bar $svnrepo/bar &&
|
git-svn init --minimize-url -i bar "$svnrepo/bar" &&
|
||||||
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 '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 &&
|
||||||
|
@ -52,7 +52,7 @@ EOF
|
|||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
rm -rf import
|
rm -rf import
|
||||||
test_expect_success 'checkout working copy from svn' "svn co $svnrepo test_wc"
|
test_expect_success 'checkout working copy from svn' 'svn co "$svnrepo" test_wc'
|
||||||
test_expect_success 'setup some commits to svn' \
|
test_expect_success 'setup some commits to svn' \
|
||||||
'cd test_wc &&
|
'cd test_wc &&
|
||||||
echo Greetings >> kw.c &&
|
echo Greetings >> kw.c &&
|
||||||
@ -66,7 +66,7 @@ test_expect_success 'setup some commits to svn' \
|
|||||||
svn commit -m "Propset Id" &&
|
svn commit -m "Propset Id" &&
|
||||||
cd ..'
|
cd ..'
|
||||||
|
|
||||||
test_expect_success 'initialize git-svn' "git-svn init $svnrepo"
|
test_expect_success 'initialize git-svn' 'git-svn init "$svnrepo"'
|
||||||
test_expect_success 'fetch revisions from svn' 'git-svn fetch'
|
test_expect_success 'fetch revisions from svn' 'git-svn fetch'
|
||||||
|
|
||||||
name='test svn:keywords ignoring'
|
name='test svn:keywords ignoring'
|
||||||
@ -90,9 +90,9 @@ test_expect_success "propset CR on crlf files" \
|
|||||||
cd ..'
|
cd ..'
|
||||||
|
|
||||||
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 co $svnrepo new_wc"
|
svn 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
|
||||||
do
|
do
|
||||||
|
@ -2,29 +2,29 @@
|
|||||||
test_description='git-svn rmdir'
|
test_description='git-svn rmdir'
|
||||||
. ./lib-git-svn.sh
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
test_expect_success 'initialize repo' "
|
test_expect_success 'initialize repo' '
|
||||||
mkdir import &&
|
mkdir import &&
|
||||||
cd import &&
|
cd import &&
|
||||||
mkdir -p deeply/nested/directory/number/1 &&
|
mkdir -p deeply/nested/directory/number/1 &&
|
||||||
mkdir -p deeply/nested/directory/number/2 &&
|
mkdir -p deeply/nested/directory/number/2 &&
|
||||||
echo foo > deeply/nested/directory/number/1/file &&
|
echo foo > deeply/nested/directory/number/1/file &&
|
||||||
echo foo > deeply/nested/directory/number/2/another &&
|
echo foo > deeply/nested/directory/number/2/another &&
|
||||||
svn import -m 'import for git-svn' . $svnrepo &&
|
svn import -m "import for git-svn" . "$svnrepo" &&
|
||||||
cd ..
|
cd ..
|
||||||
"
|
'
|
||||||
|
|
||||||
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' '
|
||||||
git rm -f deeply/nested/directory/number/2/another &&
|
git rm -f deeply/nested/directory/number/2/another &&
|
||||||
git commit -a -m 'remove another' &&
|
git commit -a -m "remove another" &&
|
||||||
git-svn set-tree --rmdir HEAD &&
|
git-svn set-tree --rmdir HEAD &&
|
||||||
svn ls -R $svnrepo | grep ^deeply/nested/directory/number/1
|
svn ls -R "$svnrepo" | grep ^deeply/nested/directory/number/1
|
||||||
"
|
'
|
||||||
|
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -10,30 +10,30 @@ test_expect_success 'make history for tracking' '
|
|||||||
mkdir import &&
|
mkdir import &&
|
||||||
mkdir import/trunk &&
|
mkdir import/trunk &&
|
||||||
echo hello >> import/trunk/README &&
|
echo hello >> import/trunk/README &&
|
||||||
svn import -m initial import $svnrepo &&
|
svn import -m initial import "$svnrepo" &&
|
||||||
rm -rf import &&
|
rm -rf import &&
|
||||||
svn co $svnrepo/trunk trunk &&
|
svn co "$svnrepo"/trunk trunk &&
|
||||||
echo bye bye >> trunk/README &&
|
echo bye bye >> trunk/README &&
|
||||||
svn rm -m "gone" $svnrepo/trunk &&
|
svn rm -m "gone" "$svnrepo"/trunk &&
|
||||||
rm -rf trunk &&
|
rm -rf trunk &&
|
||||||
mkdir trunk &&
|
mkdir trunk &&
|
||||||
echo "new" > trunk/FOLLOWME &&
|
echo "new" > trunk/FOLLOWME &&
|
||||||
svn import -m "new trunk" trunk $svnrepo/trunk
|
svn import -m "new trunk" trunk "$svnrepo"/trunk
|
||||||
'
|
'
|
||||||
|
|
||||||
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 -f x/FOLLOWME &&
|
||||||
test ! -f x/README
|
test ! -f x/README
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'make sure r2 still has old file' '
|
test_expect_success 'make sure r2 still has old file' "
|
||||||
cd x &&
|
cd x &&
|
||||||
test -n "$(git svn find-rev r1)" &&
|
test -n \"\$(git svn find-rev r1)\" &&
|
||||||
git reset --hard $(git svn find-rev r1) &&
|
git reset --hard \$(git svn find-rev r1) &&
|
||||||
test -f README &&
|
test -f README &&
|
||||||
test ! -f FOLLOWME &&
|
test ! -f FOLLOWME &&
|
||||||
test x$(git svn find-rev r2) = x
|
test x\$(git svn find-rev r2) = x
|
||||||
'
|
"
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -6,165 +6,165 @@
|
|||||||
test_description='git-svn fetching'
|
test_description='git-svn fetching'
|
||||||
. ./lib-git-svn.sh
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
test_expect_success 'initialize repo' "
|
test_expect_success 'initialize repo' '
|
||||||
mkdir import &&
|
mkdir import &&
|
||||||
cd import &&
|
cd import &&
|
||||||
mkdir -p trunk &&
|
mkdir -p trunk &&
|
||||||
echo hello > trunk/readme &&
|
echo hello > trunk/readme &&
|
||||||
svn import -m 'initial' . $svnrepo &&
|
svn import -m "initial" . "$svnrepo" &&
|
||||||
cd .. &&
|
cd .. &&
|
||||||
svn co $svnrepo wc &&
|
svn co "$svnrepo" wc &&
|
||||||
cd wc &&
|
cd wc &&
|
||||||
echo world >> trunk/readme &&
|
echo world >> trunk/readme &&
|
||||||
poke trunk/readme &&
|
poke trunk/readme &&
|
||||||
svn commit -m 'another commit' &&
|
svn commit -m "another commit" &&
|
||||||
svn up &&
|
svn up &&
|
||||||
svn mv trunk thunk &&
|
svn mv trunk thunk &&
|
||||||
echo goodbye >> thunk/readme &&
|
echo goodbye >> thunk/readme &&
|
||||||
poke thunk/readme &&
|
poke thunk/readme &&
|
||||||
svn commit -m 'bye now' &&
|
svn commit -m "bye now" &&
|
||||||
cd ..
|
cd ..
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'init and fetch a moved directory' "
|
test_expect_success 'init and fetch a moved directory' '
|
||||||
git-svn init --minimize-url -i thunk $svnrepo/thunk &&
|
git-svn init --minimize-url -i thunk "$svnrepo"/thunk &&
|
||||||
git-svn fetch -i thunk &&
|
git-svn fetch -i thunk &&
|
||||||
test \"\`git rev-parse --verify refs/remotes/thunk@2\`\" \
|
test "`git rev-parse --verify refs/remotes/thunk@2`" \
|
||||||
= \"\`git rev-parse --verify refs/remotes/thunk~1\`\" &&
|
= "`git rev-parse --verify refs/remotes/thunk~1`" &&
|
||||||
test \"\`git cat-file blob refs/remotes/thunk:readme |\
|
test "`git cat-file blob refs/remotes/thunk:readme |\
|
||||||
sed -n -e '3p'\`\" = goodbye &&
|
sed -n -e "3p"`" = goodbye &&
|
||||||
test -z \"\`git config --get svn-remote.svn.fetch \
|
test -z "`git config --get svn-remote.svn.fetch \
|
||||||
'^trunk:refs/remotes/thunk@2$'\`\"
|
"^trunk:refs/remotes/thunk@2$"`"
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'init and fetch from one svn-remote' "
|
test_expect_success 'init and fetch from one svn-remote' '
|
||||||
git config svn-remote.svn.url $svnrepo &&
|
git config svn-remote.svn.url "$svnrepo" &&
|
||||||
git config --add svn-remote.svn.fetch \
|
git config --add svn-remote.svn.fetch \
|
||||||
trunk:refs/remotes/svn/trunk &&
|
trunk:refs/remotes/svn/trunk &&
|
||||||
git config --add svn-remote.svn.fetch \
|
git config --add svn-remote.svn.fetch \
|
||||||
thunk:refs/remotes/svn/thunk &&
|
thunk:refs/remotes/svn/thunk &&
|
||||||
git-svn fetch -i svn/thunk &&
|
git-svn fetch -i svn/thunk &&
|
||||||
test \"\`git rev-parse --verify refs/remotes/svn/trunk\`\" \
|
test "`git rev-parse --verify refs/remotes/svn/trunk`" \
|
||||||
= \"\`git rev-parse --verify refs/remotes/svn/thunk~1\`\" &&
|
= "`git rev-parse --verify refs/remotes/svn/thunk~1`" &&
|
||||||
test \"\`git cat-file blob refs/remotes/svn/thunk:readme |\
|
test "`git cat-file blob refs/remotes/svn/thunk:readme |\
|
||||||
sed -n -e '3p'\`\" = goodbye
|
sed -n -e "3p"`" = goodbye
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'follow deleted parent' "
|
test_expect_success 'follow deleted parent' '
|
||||||
(svn cp -m 'resurrecting trunk as junk' \
|
(svn cp -m "resurrecting trunk as junk" \
|
||||||
$svnrepo/trunk@2 $svnrepo/junk ||
|
"$svnrepo"/trunk@2 "$svnrepo"/junk ||
|
||||||
svn cp -m 'resurrecting trunk as junk' \
|
svn cp -m "resurrecting trunk as junk" \
|
||||||
-r2 $svnrepo/trunk $svnrepo/junk) &&
|
-r2 "$svnrepo"/trunk "$svnrepo"/junk) &&
|
||||||
git config --add svn-remote.svn.fetch \
|
git config --add svn-remote.svn.fetch \
|
||||||
junk:refs/remotes/svn/junk &&
|
junk:refs/remotes/svn/junk &&
|
||||||
git-svn fetch -i svn/thunk &&
|
git-svn fetch -i svn/thunk &&
|
||||||
git-svn fetch -i svn/junk &&
|
git-svn fetch -i svn/junk &&
|
||||||
test -z \"\`git diff svn/junk svn/trunk\`\" &&
|
test -z "`git diff svn/junk svn/trunk`" &&
|
||||||
test \"\`git merge-base svn/junk svn/trunk\`\" \
|
test "`git merge-base svn/junk svn/trunk`" \
|
||||||
= \"\`git rev-parse svn/trunk\`\"
|
= "`git rev-parse svn/trunk`"
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'follow larger parent' "
|
test_expect_success 'follow larger parent' '
|
||||||
mkdir -p import/trunk/thunk/bump/thud &&
|
mkdir -p import/trunk/thunk/bump/thud &&
|
||||||
echo hi > import/trunk/thunk/bump/thud/file &&
|
echo hi > import/trunk/thunk/bump/thud/file &&
|
||||||
svn import -m 'import a larger parent' import $svnrepo/larger-parent &&
|
svn import -m "import a larger parent" import "$svnrepo"/larger-parent &&
|
||||||
svn cp -m 'hi' $svnrepo/larger-parent $svnrepo/another-larger &&
|
svn cp -m "hi" "$svnrepo"/larger-parent "$svnrepo"/another-larger &&
|
||||||
git-svn init --minimize-url -i larger \
|
git-svn init --minimize-url -i larger \
|
||||||
$svnrepo/another-larger/trunk/thunk/bump/thud &&
|
"$svnrepo"/another-larger/trunk/thunk/bump/thud &&
|
||||||
git-svn fetch -i larger &&
|
git-svn fetch -i larger &&
|
||||||
git rev-parse --verify refs/remotes/larger &&
|
git rev-parse --verify refs/remotes/larger &&
|
||||||
git rev-parse --verify \
|
git rev-parse --verify \
|
||||||
refs/remotes/larger-parent/trunk/thunk/bump/thud &&
|
refs/remotes/larger-parent/trunk/thunk/bump/thud &&
|
||||||
test \"\`git merge-base \
|
test "`git merge-base \
|
||||||
refs/remotes/larger-parent/trunk/thunk/bump/thud \
|
refs/remotes/larger-parent/trunk/thunk/bump/thud \
|
||||||
refs/remotes/larger\`\" = \
|
refs/remotes/larger`" = \
|
||||||
\"\`git rev-parse refs/remotes/larger\`\"
|
"`git rev-parse refs/remotes/larger`"
|
||||||
true
|
true
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'follow higher-level parent' "
|
test_expect_success 'follow higher-level parent' '
|
||||||
svn mkdir -m 'follow higher-level parent' $svnrepo/blob &&
|
svn mkdir -m "follow higher-level parent" "$svnrepo"/blob &&
|
||||||
svn co $svnrepo/blob blob &&
|
svn co "$svnrepo"/blob blob &&
|
||||||
cd blob &&
|
cd blob &&
|
||||||
echo hi > hi &&
|
echo hi > hi &&
|
||||||
svn add hi &&
|
svn add hi &&
|
||||||
svn commit -m 'hihi' &&
|
svn commit -m "hihi" &&
|
||||||
cd ..
|
cd ..
|
||||||
svn mkdir -m 'new glob at top level' $svnrepo/glob &&
|
svn mkdir -m "new glob at top level" "$svnrepo"/glob &&
|
||||||
svn mv -m 'move blob down a level' $svnrepo/blob $svnrepo/glob/blob &&
|
svn mv -m "move blob down a level" "$svnrepo"/blob "$svnrepo"/glob/blob &&
|
||||||
git-svn init --minimize-url -i blob $svnrepo/glob/blob &&
|
git-svn init --minimize-url -i blob "$svnrepo"/glob/blob &&
|
||||||
git-svn fetch -i blob
|
git-svn fetch -i blob
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'follow deleted directory' "
|
test_expect_success 'follow deleted directory' '
|
||||||
svn mv -m 'bye!' $svnrepo/glob/blob/hi $svnrepo/glob/blob/bye &&
|
svn mv -m "bye!" "$svnrepo"/glob/blob/hi "$svnrepo"/glob/blob/bye &&
|
||||||
svn rm -m 'remove glob' $svnrepo/glob &&
|
svn rm -m "remove glob" "$svnrepo"/glob &&
|
||||||
git-svn init --minimize-url -i glob $svnrepo/glob &&
|
git-svn init --minimize-url -i glob "$svnrepo"/glob &&
|
||||||
git-svn fetch -i glob &&
|
git-svn fetch -i glob &&
|
||||||
test \"\`git cat-file blob refs/remotes/glob:blob/bye\`\" = hi &&
|
test "`git cat-file blob refs/remotes/glob:blob/bye`" = hi &&
|
||||||
test \"\`git ls-tree refs/remotes/glob | wc -l \`\" -eq 1
|
test "`git ls-tree refs/remotes/glob | wc -l `" -eq 1
|
||||||
"
|
'
|
||||||
|
|
||||||
# ref: r9270 of the Subversion repository: (http://svn.collab.net/repos/svn)
|
# ref: r9270 of the Subversion repository: (http://svn.collab.net/repos/svn)
|
||||||
# in trunk/subversion/bindings/swig/perl
|
# in trunk/subversion/bindings/swig/perl
|
||||||
test_expect_success 'follow-parent avoids deleting relevant info' "
|
test_expect_success 'follow-parent avoids deleting relevant info' '
|
||||||
mkdir -p import/trunk/subversion/bindings/swig/perl/t &&
|
mkdir -p import/trunk/subversion/bindings/swig/perl/t &&
|
||||||
for i in a b c ; do \
|
for i in a b c ; do \
|
||||||
echo \$i > import/trunk/subversion/bindings/swig/perl/\$i.pm &&
|
echo $i > import/trunk/subversion/bindings/swig/perl/$i.pm &&
|
||||||
echo _\$i > import/trunk/subversion/bindings/swig/perl/t/\$i.t; \
|
echo _$i > import/trunk/subversion/bindings/swig/perl/t/$i.t; \
|
||||||
done &&
|
done &&
|
||||||
echo 'bad delete test' > \
|
echo "bad delete test" > \
|
||||||
import/trunk/subversion/bindings/swig/perl/t/larger-parent &&
|
import/trunk/subversion/bindings/swig/perl/t/larger-parent &&
|
||||||
echo 'bad delete test 2' > \
|
echo "bad delete test 2" > \
|
||||||
import/trunk/subversion/bindings/swig/perl/another-larger &&
|
import/trunk/subversion/bindings/swig/perl/another-larger &&
|
||||||
cd import &&
|
cd import &&
|
||||||
svn import -m 'r9270 test' . $svnrepo/r9270 &&
|
svn import -m "r9270 test" . "$svnrepo"/r9270 &&
|
||||||
cd .. &&
|
cd .. &&
|
||||||
svn co $svnrepo/r9270/trunk/subversion/bindings/swig/perl r9270 &&
|
svn co "$svnrepo"/r9270/trunk/subversion/bindings/swig/perl r9270 &&
|
||||||
cd r9270 &&
|
cd r9270 &&
|
||||||
svn mkdir native &&
|
svn mkdir native &&
|
||||||
svn mv t native/t &&
|
svn mv t native/t &&
|
||||||
for i in a b c; do svn mv \$i.pm native/\$i.pm; done &&
|
for i in a b c; do svn mv $i.pm native/$i.pm; done &&
|
||||||
echo z >> native/t/c.t &&
|
echo z >> native/t/c.t &&
|
||||||
poke native/t/c.t &&
|
poke native/t/c.t &&
|
||||||
svn commit -m 'reorg test' &&
|
svn commit -m "reorg test" &&
|
||||||
cd .. &&
|
cd .. &&
|
||||||
git-svn init --minimize-url -i r9270-t \
|
git-svn init --minimize-url -i r9270-t \
|
||||||
$svnrepo/r9270/trunk/subversion/bindings/swig/perl/native/t &&
|
"$svnrepo"/r9270/trunk/subversion/bindings/swig/perl/native/t &&
|
||||||
git-svn fetch -i r9270-t &&
|
git-svn fetch -i r9270-t &&
|
||||||
test \`git rev-list r9270-t | wc -l\` -eq 2 &&
|
test `git rev-list r9270-t | wc -l` -eq 2 &&
|
||||||
test \"\`git ls-tree --name-only r9270-t~1\`\" = \
|
test "`git ls-tree --name-only r9270-t~1`" = \
|
||||||
\"\`git ls-tree --name-only r9270-t\`\"
|
"`git ls-tree --name-only r9270-t`"
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success "track initial change if it was only made to parent" "
|
test_expect_success "track initial change if it was only made to parent" '
|
||||||
svn cp -m 'wheee!' $svnrepo/r9270/trunk $svnrepo/r9270/drunk &&
|
svn cp -m "wheee!" "$svnrepo"/r9270/trunk "$svnrepo"/r9270/drunk &&
|
||||||
git-svn init --minimize-url -i r9270-d \
|
git-svn init --minimize-url -i r9270-d \
|
||||||
$svnrepo/r9270/drunk/subversion/bindings/swig/perl/native/t &&
|
"$svnrepo"/r9270/drunk/subversion/bindings/swig/perl/native/t &&
|
||||||
git-svn fetch -i r9270-d &&
|
git-svn fetch -i r9270-d &&
|
||||||
test \`git rev-list r9270-d | wc -l\` -eq 3 &&
|
test `git rev-list r9270-d | wc -l` -eq 3 &&
|
||||||
test \"\`git ls-tree --name-only r9270-t\`\" = \
|
test "`git ls-tree --name-only r9270-t`" = \
|
||||||
\"\`git ls-tree --name-only r9270-d\`\" &&
|
"`git ls-tree --name-only r9270-d`" &&
|
||||||
test \"\`git rev-parse r9270-t\`\" = \
|
test "`git rev-parse r9270-t`" = \
|
||||||
\"\`git rev-parse r9270-d~1\`\"
|
"`git rev-parse r9270-d~1`"
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success "track multi-parent paths" "
|
test_expect_success "track multi-parent paths" '
|
||||||
svn cp -m 'resurrect /glob' $svnrepo/r9270 $svnrepo/glob &&
|
svn cp -m "resurrect /glob" "$svnrepo"/r9270 "$svnrepo"/glob &&
|
||||||
git-svn multi-fetch &&
|
git-svn multi-fetch &&
|
||||||
test \`git cat-file commit refs/remotes/glob | \
|
test `git cat-file commit refs/remotes/glob | \
|
||||||
grep '^parent ' | wc -l\` -eq 2
|
grep "^parent " | wc -l` -eq 2
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success "multi-fetch continues to work" "
|
test_expect_success "multi-fetch continues to work" "
|
||||||
git-svn multi-fetch
|
git-svn multi-fetch
|
||||||
"
|
"
|
||||||
|
|
||||||
test_expect_success "multi-fetch works off a 'clean' repository" "
|
test_expect_success "multi-fetch works off a 'clean' repository" '
|
||||||
rm -r $GIT_DIR/svn $GIT_DIR/refs/remotes $GIT_DIR/logs &&
|
rm -r "$GIT_DIR/svn" "$GIT_DIR/refs/remotes" "$GIT_DIR/logs" &&
|
||||||
mkdir $GIT_DIR/svn &&
|
mkdir "$GIT_DIR/svn" &&
|
||||||
git-svn multi-fetch
|
git-svn multi-fetch
|
||||||
"
|
'
|
||||||
|
|
||||||
test_debug 'gitk --all &'
|
test_debug 'gitk --all &'
|
||||||
|
|
||||||
|
@ -4,18 +4,18 @@
|
|||||||
test_description='git-svn commit-diff'
|
test_description='git-svn commit-diff'
|
||||||
. ./lib-git-svn.sh
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
test_expect_success 'initialize repo' "
|
test_expect_success 'initialize repo' '
|
||||||
mkdir import &&
|
mkdir import &&
|
||||||
cd import &&
|
cd import &&
|
||||||
echo hello > readme &&
|
echo hello > readme &&
|
||||||
svn import -m 'initial' . $svnrepo &&
|
svn import -m "initial" . "$svnrepo" &&
|
||||||
cd .. &&
|
cd .. &&
|
||||||
echo hello > readme &&
|
echo hello > readme &&
|
||||||
git update-index --add readme &&
|
git update-index --add readme &&
|
||||||
git commit -a -m 'initial' &&
|
git commit -a -m "initial" &&
|
||||||
echo world >> readme &&
|
echo world >> readme &&
|
||||||
git commit -a -m 'another'
|
git commit -a -m "another"
|
||||||
"
|
'
|
||||||
|
|
||||||
head=`git rev-parse --verify HEAD^0`
|
head=`git rev-parse --verify HEAD^0`
|
||||||
prev=`git rev-parse --verify HEAD^1`
|
prev=`git rev-parse --verify HEAD^1`
|
||||||
@ -24,20 +24,20 @@ prev=`git rev-parse --verify HEAD^1`
|
|||||||
# commit, so only a basic test of functionality is needed since we've
|
# commit, so only a basic test of functionality is needed since we've
|
||||||
# already tested commit extensively elsewhere
|
# already tested commit extensively elsewhere
|
||||||
|
|
||||||
test_expect_success 'test the commit-diff command' "
|
test_expect_success 'test the commit-diff command' '
|
||||||
test -n '$prev' && test -n '$head' &&
|
test -n "$prev" && test -n "$head" &&
|
||||||
git-svn commit-diff -r1 '$prev' '$head' '$svnrepo' &&
|
git-svn commit-diff -r1 "$prev" "$head" "$svnrepo" &&
|
||||||
svn co $svnrepo wc &&
|
svn co "$svnrepo" wc &&
|
||||||
cmp readme wc/readme
|
cmp readme wc/readme
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'commit-diff to a sub-directory (with git-svn config)' "
|
test_expect_success 'commit-diff to a sub-directory (with git-svn config)' '
|
||||||
svn import -m 'sub-directory' import $svnrepo/subdir &&
|
svn import -m "sub-directory" import "$svnrepo"/subdir &&
|
||||||
git-svn init --minimize-url $svnrepo/subdir &&
|
git-svn init --minimize-url "$svnrepo"/subdir &&
|
||||||
git-svn fetch &&
|
git-svn fetch &&
|
||||||
git-svn commit-diff -r3 '$prev' '$head' &&
|
git-svn commit-diff -r3 "$prev" "$head" &&
|
||||||
svn cat $svnrepo/subdir/readme > readme.2 &&
|
svn cat "$svnrepo"/subdir/readme > readme.2 &&
|
||||||
cmp readme readme.2
|
cmp readme readme.2
|
||||||
"
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -4,56 +4,56 @@
|
|||||||
test_description='git-svn commit-diff clobber'
|
test_description='git-svn commit-diff clobber'
|
||||||
. ./lib-git-svn.sh
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
test_expect_success 'initialize repo' "
|
test_expect_success 'initialize repo' '
|
||||||
mkdir import &&
|
mkdir import &&
|
||||||
cd import &&
|
cd import &&
|
||||||
echo initial > file &&
|
echo initial > file &&
|
||||||
svn import -m 'initial' . $svnrepo &&
|
svn import -m "initial" . "$svnrepo" &&
|
||||||
cd .. &&
|
cd .. &&
|
||||||
echo initial > file &&
|
echo initial > file &&
|
||||||
git update-index --add file &&
|
git update-index --add file &&
|
||||||
git commit -a -m 'initial'
|
git commit -a -m "initial"
|
||||||
"
|
'
|
||||||
test_expect_success 'commit change from svn side' "
|
test_expect_success 'commit change from svn side' '
|
||||||
svn co $svnrepo t.svn &&
|
svn co "$svnrepo" t.svn &&
|
||||||
cd t.svn &&
|
cd t.svn &&
|
||||||
echo second line from svn >> file &&
|
echo second line from svn >> file &&
|
||||||
poke file &&
|
poke file &&
|
||||||
svn commit -m 'second line from svn' &&
|
svn commit -m "second line from svn" &&
|
||||||
cd .. &&
|
cd .. &&
|
||||||
rm -rf t.svn
|
rm -rf t.svn
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'commit conflicting change from git' "
|
test_expect_success 'commit conflicting change from git' '
|
||||||
echo second line from git >> file &&
|
echo second line from git >> file &&
|
||||||
git commit -a -m 'second line from git' &&
|
git commit -a -m "second line from git" &&
|
||||||
! git-svn commit-diff -r1 HEAD~1 HEAD $svnrepo
|
! git-svn commit-diff -r1 HEAD~1 HEAD "$svnrepo"
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'commit complementing change from git' "
|
test_expect_success 'commit complementing change from git' '
|
||||||
git reset --hard HEAD~1 &&
|
git reset --hard HEAD~1 &&
|
||||||
echo second line from svn >> file &&
|
echo second line from svn >> file &&
|
||||||
git commit -a -m 'second line from svn' &&
|
git commit -a -m "second line from svn" &&
|
||||||
echo third line from git >> file &&
|
echo third line from git >> file &&
|
||||||
git commit -a -m 'third line from git' &&
|
git commit -a -m "third line from git" &&
|
||||||
git-svn commit-diff -r2 HEAD~1 HEAD $svnrepo
|
git-svn commit-diff -r2 HEAD~1 HEAD "$svnrepo"
|
||||||
"
|
'
|
||||||
|
|
||||||
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 co $svnrepo t.svn &&
|
svn co "$svnrepo" t.svn &&
|
||||||
cd t.svn &&
|
cd t.svn &&
|
||||||
echo fourth line from svn >> file &&
|
echo fourth line from svn >> file &&
|
||||||
poke file &&
|
poke file &&
|
||||||
svn commit -m 'fourth line from svn' &&
|
svn commit -m "fourth line from svn" &&
|
||||||
cd .. &&
|
cd .. &&
|
||||||
rm -rf t.svn &&
|
rm -rf t.svn &&
|
||||||
echo 'fourth line from git' >> file &&
|
echo "fourth line from git" >> file &&
|
||||||
git commit -a -m 'fourth line from git' &&
|
git commit -a -m "fourth line from git" &&
|
||||||
! git-svn dcommit
|
! git-svn dcommit
|
||||||
"
|
'
|
||||||
|
|
||||||
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 &&
|
||||||
@ -66,15 +66,15 @@ test_expect_success 'dcommit does the svn equivalent of an index merge' "
|
|||||||
git-svn dcommit
|
git-svn dcommit
|
||||||
"
|
"
|
||||||
|
|
||||||
test_expect_success 'commit another change from svn side' "
|
test_expect_success 'commit another change from svn side' '
|
||||||
svn co $svnrepo t.svn &&
|
svn co "$svnrepo" t.svn &&
|
||||||
cd t.svn &&
|
cd t.svn &&
|
||||||
echo third line from svn >> file &&
|
echo third line from svn >> file &&
|
||||||
poke file &&
|
poke file &&
|
||||||
svn commit -m 'third line from svn' &&
|
svn commit -m "third line from svn" &&
|
||||||
cd .. &&
|
cd .. &&
|
||||||
rm -rf t.svn
|
rm -rf t.svn
|
||||||
"
|
'
|
||||||
|
|
||||||
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 &&
|
||||||
|
@ -4,30 +4,30 @@
|
|||||||
test_description='git-svn dcommit clobber series'
|
test_description='git-svn dcommit clobber series'
|
||||||
. ./lib-git-svn.sh
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
test_expect_success 'initialize repo' "
|
test_expect_success 'initialize repo' '
|
||||||
mkdir import &&
|
mkdir import &&
|
||||||
cd import &&
|
cd import &&
|
||||||
awk 'BEGIN { for (i = 1; i < 64; i++) { print i } }' > file
|
awk "BEGIN { for (i = 1; i < 64; i++) { print i } }" > file
|
||||||
svn import -m 'initial' . $svnrepo &&
|
svn import -m "initial" . "$svnrepo" &&
|
||||||
cd .. &&
|
cd .. &&
|
||||||
git svn init $svnrepo &&
|
git svn init "$svnrepo" &&
|
||||||
git svn fetch &&
|
git svn fetch &&
|
||||||
test -e file
|
test -e file
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success '(supposedly) non-conflicting change from SVN' "
|
test_expect_success '(supposedly) non-conflicting change from SVN' '
|
||||||
test x\"\`sed -n -e 58p < file\`\" = x58 &&
|
test x"`sed -n -e 58p < file`" = x58 &&
|
||||||
test x\"\`sed -n -e 61p < file\`\" = x61 &&
|
test x"`sed -n -e 61p < file`" = x61 &&
|
||||||
svn co $svnrepo tmp &&
|
svn co "$svnrepo" tmp &&
|
||||||
cd tmp &&
|
cd tmp &&
|
||||||
perl -i -p -e 's/^58\$/5588/' file &&
|
perl -i -p -e "s/^58$/5588/" file &&
|
||||||
perl -i -p -e 's/^61\$/6611/' file &&
|
perl -i -p -e "s/^61$/6611/" file &&
|
||||||
poke file &&
|
poke file &&
|
||||||
test x\"\`sed -n -e 58p < file\`\" = x5588 &&
|
test x"`sed -n -e 58p < file`" = x5588 &&
|
||||||
test x\"\`sed -n -e 61p < file\`\" = x6611 &&
|
test x"`sed -n -e 61p < file`" = x6611 &&
|
||||||
svn commit -m '58 => 5588, 61 => 6611' &&
|
svn commit -m "58 => 5588, 61 => 6611" &&
|
||||||
cd ..
|
cd ..
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'some unrelated changes to git' "
|
test_expect_success 'some unrelated changes to git' "
|
||||||
echo hi > life &&
|
echo hi > life &&
|
||||||
|
@ -3,61 +3,61 @@
|
|||||||
test_description='git-svn metadata migrations from previous versions'
|
test_description='git-svn metadata migrations from previous versions'
|
||||||
. ./lib-git-svn.sh
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
test_expect_success 'setup old-looking metadata' "
|
test_expect_success 'setup old-looking metadata' '
|
||||||
cp $GIT_DIR/config $GIT_DIR/config-old-git-svn &&
|
cp "$GIT_DIR"/config "$GIT_DIR"/config-old-git-svn &&
|
||||||
mkdir import &&
|
mkdir import &&
|
||||||
cd import &&
|
cd import &&
|
||||||
for i in trunk branches/a branches/b \
|
for i in trunk branches/a branches/b \
|
||||||
tags/0.1 tags/0.2 tags/0.3; do
|
tags/0.1 tags/0.2 tags/0.3; do
|
||||||
mkdir -p \$i && \
|
mkdir -p $i && \
|
||||||
echo hello >> \$i/README || exit 1
|
echo hello >> $i/README || exit 1
|
||||||
done && \
|
done && \
|
||||||
svn import -m test . $svnrepo
|
svn import -m test . "$svnrepo"
|
||||||
cd .. &&
|
cd .. &&
|
||||||
git-svn init $svnrepo &&
|
git-svn init "$svnrepo" &&
|
||||||
git-svn fetch &&
|
git-svn fetch &&
|
||||||
mv $GIT_DIR/svn/* $GIT_DIR/ &&
|
mv "$GIT_DIR"/svn/* "$GIT_DIR"/ &&
|
||||||
mv $GIT_DIR/svn/.metadata $GIT_DIR/ &&
|
mv "$GIT_DIR"/svn/.metadata "$GIT_DIR"/ &&
|
||||||
rmdir $GIT_DIR/svn &&
|
rmdir "$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`
|
head=`git rev-parse --verify refs/heads/git-svn-HEAD^0`
|
||||||
test_expect_success 'git-svn-HEAD is a real HEAD' "test -n '$head'"
|
test_expect_success 'git-svn-HEAD is a real HEAD' "test -n '$head'"
|
||||||
|
|
||||||
test_expect_success 'initialize old-style (v0) git-svn layout' "
|
test_expect_success 'initialize old-style (v0) git-svn layout' '
|
||||||
mkdir -p $GIT_DIR/git-svn/info $GIT_DIR/svn/info &&
|
mkdir -p "$GIT_DIR"/git-svn/info "$GIT_DIR"/svn/info &&
|
||||||
echo $svnrepo > $GIT_DIR/git-svn/info/url &&
|
echo "$svnrepo" > "$GIT_DIR"/git-svn/info/url &&
|
||||||
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' &&
|
test "$(git config --get svn-remote.svn.url)" = "$svnrepo" &&
|
||||||
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' '
|
||||||
git-svn init $svnrepo -T trunk -t tags -b branches &&
|
git-svn init "$svnrepo" -T trunk -t tags -b branches &&
|
||||||
git config --get-all svn-remote.svn.fetch > fetch.out &&
|
git config --get-all svn-remote.svn.fetch > fetch.out &&
|
||||||
grep '^trunk:refs/remotes/trunk$' fetch.out &&
|
grep "^trunk:refs/remotes/trunk$" fetch.out &&
|
||||||
test -n \"\`git config --get svn-remote.svn.branches \
|
test -n "`git config --get svn-remote.svn.branches \
|
||||||
'^branches/\*:refs/remotes/\*$'\`\" &&
|
"^branches/\*:refs/remotes/\*$"`" &&
|
||||||
test -n \"\`git config --get svn-remote.svn.tags \
|
test -n "`git config --get svn-remote.svn.tags \
|
||||||
'^tags/\*:refs/remotes/tags/\*$'\`\" &&
|
"^tags/\*:refs/remotes/tags/\*$"`" &&
|
||||||
git config --unset svn-remote.svn.branches \
|
git config --unset svn-remote.svn.branches \
|
||||||
'^branches/\*:refs/remotes/\*$' &&
|
"^branches/\*:refs/remotes/\*$" &&
|
||||||
git config --unset svn-remote.svn.tags \
|
git config --unset svn-remote.svn.tags \
|
||||||
'^tags/\*:refs/remotes/tags/\*$' &&
|
"^tags/\*:refs/remotes/tags/\*$" &&
|
||||||
git config --add svn-remote.svn.fetch 'branches/a:refs/remotes/a' &&
|
git config --add svn-remote.svn.fetch "branches/a:refs/remotes/a" &&
|
||||||
git config --add svn-remote.svn.fetch 'branches/b:refs/remotes/b' &&
|
git config --add svn-remote.svn.fetch "branches/b:refs/remotes/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/\$i || exit 1; done
|
$i:refs/remotes/$i || exit 1; done
|
||||||
"
|
'
|
||||||
|
|
||||||
# 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' "
|
||||||
@ -73,43 +73,43 @@ test_expect_success 'multi-fetch works on partial urls + paths' "
|
|||||||
refs/remotes/\$j\`\" ||exit 1; done; done
|
refs/remotes/\$j\`\" ||exit 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 ) || exit 1;
|
||||||
done &&
|
done &&
|
||||||
git-svn migrate --minimize &&
|
git-svn migrate --minimize &&
|
||||||
test -z \"\`git config -l |grep -v '^svn-remote\.git-svn\.'\`\" &&
|
test -z "`git config -l |grep -v "^svn-remote\.git-svn\."`" &&
|
||||||
git config --get-all svn-remote.svn.fetch > fetch.out &&
|
git config --get-all svn-remote.svn.fetch > fetch.out &&
|
||||||
grep '^trunk:refs/remotes/trunk$' fetch.out &&
|
grep "^trunk:refs/remotes/trunk$" fetch.out &&
|
||||||
grep '^branches/a:refs/remotes/a$' fetch.out &&
|
grep "^branches/a:refs/remotes/a$" fetch.out &&
|
||||||
grep '^branches/b:refs/remotes/b$' fetch.out &&
|
grep "^branches/b:refs/remotes/b$" fetch.out &&
|
||||||
grep '^tags/0\.1:refs/remotes/tags/0\.1$' fetch.out &&
|
grep "^tags/0\.1:refs/remotes/tags/0\.1$" fetch.out &&
|
||||||
grep '^tags/0\.2:refs/remotes/tags/0\.2$' fetch.out &&
|
grep "^tags/0\.2:refs/remotes/tags/0\.2$" fetch.out &&
|
||||||
grep '^tags/0\.3:refs/remotes/tags/0\.3$' fetch.out
|
grep "^tags/0\.3:refs/remotes/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" '
|
||||||
git-svn fetch -i trunk &&
|
git-svn fetch -i trunk &&
|
||||||
test -z \"\$(ls $GIT_DIR/svn/trunk/.rev_db.* 2>/dev/null)\" &&
|
test -z "$(ls "$GIT_DIR"/svn/trunk/.rev_db.* 2>/dev/null)" &&
|
||||||
expect=\"\$(ls $GIT_DIR/svn/trunk/.rev_map.*)\" &&
|
expect="$(ls "$GIT_DIR"/svn/trunk/.rev_map.*)" &&
|
||||||
test -n \"\$expect\" &&
|
test -n "$expect" &&
|
||||||
rev_db=\$(echo \$expect | sed -e 's,_map,_db,') &&
|
rev_db="$(echo $expect | sed -e "s,_map,_db,")" &&
|
||||||
convert_to_rev_db \$expect \$rev_db &&
|
convert_to_rev_db "$expect" "$rev_db" &&
|
||||||
rm -f \$expect &&
|
rm -f "$expect" &&
|
||||||
test -f \$rev_db &&
|
test -f "$rev_db" &&
|
||||||
git-svn fetch -i trunk &&
|
git-svn fetch -i trunk &&
|
||||||
test -z \"\$(ls $GIT_DIR/svn/trunk/.rev_db.* 2>/dev/null)\" &&
|
test -z "$(ls "$GIT_DIR"/svn/trunk/.rev_db.* 2>/dev/null)" &&
|
||||||
test ! -e $GIT_DIR/svn/trunk/.rev_db &&
|
test ! -e "$GIT_DIR"/svn/trunk/.rev_db &&
|
||||||
test -f \$expect
|
test -f "$expect"
|
||||||
"
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -10,77 +10,77 @@ start a new branch
|
|||||||
initial
|
initial
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'test refspec globbing' "
|
test_expect_success 'test refspec globbing' '
|
||||||
mkdir -p trunk/src/a trunk/src/b trunk/doc &&
|
mkdir -p trunk/src/a trunk/src/b trunk/doc &&
|
||||||
echo 'hello world' > trunk/src/a/readme &&
|
echo "hello world" > trunk/src/a/readme &&
|
||||||
echo 'goodbye world' > trunk/src/b/readme &&
|
echo "goodbye world" > trunk/src/b/readme &&
|
||||||
svn import -m 'initial' trunk $svnrepo/trunk &&
|
svn import -m "initial" trunk "$svnrepo"/trunk &&
|
||||||
svn co $svnrepo tmp &&
|
svn co "$svnrepo" tmp &&
|
||||||
cd tmp &&
|
cd tmp &&
|
||||||
mkdir branches tags &&
|
mkdir branches tags &&
|
||||||
svn add branches tags &&
|
svn add branches tags &&
|
||||||
svn cp trunk branches/start &&
|
svn cp trunk branches/start &&
|
||||||
svn commit -m 'start a new branch' &&
|
svn commit -m "start a new branch" &&
|
||||||
svn up &&
|
svn up &&
|
||||||
echo 'hi' >> branches/start/src/b/readme &&
|
echo "hi" >> branches/start/src/b/readme &&
|
||||||
poke branches/start/src/b/readme &&
|
poke branches/start/src/b/readme &&
|
||||||
echo 'hey' >> branches/start/src/a/readme &&
|
echo "hey" >> branches/start/src/a/readme &&
|
||||||
poke branches/start/src/a/readme &&
|
poke branches/start/src/a/readme &&
|
||||||
svn commit -m 'hi' &&
|
svn commit -m "hi" &&
|
||||||
svn up &&
|
svn up &&
|
||||||
svn cp branches/start tags/end &&
|
svn cp branches/start tags/end &&
|
||||||
echo 'bye' >> tags/end/src/b/readme &&
|
echo "bye" >> tags/end/src/b/readme &&
|
||||||
poke tags/end/src/b/readme &&
|
poke tags/end/src/b/readme &&
|
||||||
echo 'aye' >> tags/end/src/a/readme &&
|
echo "aye" >> tags/end/src/a/readme &&
|
||||||
poke tags/end/src/a/readme &&
|
poke tags/end/src/a/readme &&
|
||||||
svn commit -m 'the end' &&
|
svn commit -m "the end" &&
|
||||||
echo 'byebye' >> tags/end/src/b/readme &&
|
echo "byebye" >> tags/end/src/b/readme &&
|
||||||
poke tags/end/src/b/readme &&
|
poke tags/end/src/b/readme &&
|
||||||
svn commit -m 'nothing to see here'
|
svn commit -m "nothing to see here"
|
||||||
cd .. &&
|
cd .. &&
|
||||||
git config --add svn-remote.svn.url $svnrepo &&
|
git config --add svn-remote.svn.url "$svnrepo" &&
|
||||||
git config --add svn-remote.svn.fetch \
|
git config --add svn-remote.svn.fetch \
|
||||||
'trunk/src/a:refs/remotes/trunk' &&
|
"trunk/src/a:refs/remotes/trunk" &&
|
||||||
git config --add svn-remote.svn.branches \
|
git config --add svn-remote.svn.branches \
|
||||||
'branches/*/src/a:refs/remotes/branches/*' &&
|
"branches/*/src/a:refs/remotes/branches/*" &&
|
||||||
git config --add svn-remote.svn.tags\
|
git config --add svn-remote.svn.tags\
|
||||||
'tags/*/src/a:refs/remotes/tags/*' &&
|
"tags/*/src/a:refs/remotes/tags/*" &&
|
||||||
git-svn multi-fetch &&
|
git-svn multi-fetch &&
|
||||||
git log --pretty=oneline refs/remotes/tags/end | \
|
git log --pretty=oneline refs/remotes/tags/end | \
|
||||||
sed -e 's/^.\{41\}//' > output.end &&
|
sed -e "s/^.\{41\}//" > output.end &&
|
||||||
cmp expect.end output.end &&
|
cmp expect.end output.end &&
|
||||||
test \"\`git rev-parse refs/remotes/tags/end~1\`\" = \
|
test "`git rev-parse refs/remotes/tags/end~1`" = \
|
||||||
\"\`git rev-parse refs/remotes/branches/start\`\" &&
|
"`git rev-parse refs/remotes/branches/start`" &&
|
||||||
test \"\`git rev-parse refs/remotes/branches/start~2\`\" = \
|
test "`git rev-parse refs/remotes/branches/start~2`" = \
|
||||||
\"\`git rev-parse refs/remotes/trunk\`\"
|
"`git rev-parse refs/remotes/trunk`"
|
||||||
"
|
'
|
||||||
|
|
||||||
echo try to try > expect.two
|
echo try to try > expect.two
|
||||||
echo nothing to see here >> expect.two
|
echo nothing to see here >> expect.two
|
||||||
cat expect.end >> expect.two
|
cat expect.end >> expect.two
|
||||||
|
|
||||||
test_expect_success 'test left-hand-side only globbing' "
|
test_expect_success 'test left-hand-side only globbing' '
|
||||||
git config --add svn-remote.two.url $svnrepo &&
|
git config --add svn-remote.two.url "$svnrepo" &&
|
||||||
git config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk &&
|
git config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk &&
|
||||||
git config --add svn-remote.two.branches \
|
git config --add svn-remote.two.branches \
|
||||||
'branches/*:refs/remotes/two/branches/*' &&
|
"branches/*:refs/remotes/two/branches/*" &&
|
||||||
git config --add svn-remote.two.tags \
|
git config --add svn-remote.two.tags \
|
||||||
'tags/*:refs/remotes/two/tags/*' &&
|
"tags/*:refs/remotes/two/tags/*" &&
|
||||||
cd tmp &&
|
cd tmp &&
|
||||||
echo 'try try' >> tags/end/src/b/readme &&
|
echo "try try" >> tags/end/src/b/readme &&
|
||||||
poke tags/end/src/b/readme &&
|
poke tags/end/src/b/readme &&
|
||||||
svn commit -m 'try to try'
|
svn commit -m "try to try"
|
||||||
cd .. &&
|
cd .. &&
|
||||||
git-svn fetch two &&
|
git-svn fetch two &&
|
||||||
test \`git rev-list refs/remotes/two/tags/end | wc -l\` -eq 6 &&
|
test `git rev-list refs/remotes/two/tags/end | wc -l` -eq 6 &&
|
||||||
test \`git rev-list refs/remotes/two/branches/start | wc -l\` -eq 3 &&
|
test `git rev-list refs/remotes/two/branches/start | wc -l` -eq 3 &&
|
||||||
test \`git rev-parse refs/remotes/two/branches/start~2\` = \
|
test `git rev-parse refs/remotes/two/branches/start~2` = \
|
||||||
\`git rev-parse refs/remotes/two/trunk\` &&
|
`git rev-parse refs/remotes/two/trunk` &&
|
||||||
test \`git rev-parse refs/remotes/two/tags/end~3\` = \
|
test `git rev-parse refs/remotes/two/tags/end~3` = \
|
||||||
\`git rev-parse refs/remotes/two/branches/start\` &&
|
`git rev-parse refs/remotes/two/branches/start` &&
|
||||||
git log --pretty=oneline refs/remotes/two/tags/end | \
|
git log --pretty=oneline refs/remotes/two/tags/end | \
|
||||||
sed -e 's/^.\{41\}//' > output.two &&
|
sed -e "s/^.\{41\}//" > output.two &&
|
||||||
cmp expect.two output.two
|
cmp expect.two output.two
|
||||||
"
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -7,15 +7,15 @@ test_description='git-svn useSvmProps test'
|
|||||||
|
|
||||||
. ./lib-git-svn.sh
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
test_expect_success 'load svm repo' "
|
test_expect_success 'load svm repo' '
|
||||||
svnadmin load -q $rawsvnrepo < ../t9110/svm.dump &&
|
svnadmin load -q "$rawsvnrepo" < ../t9110/svm.dump &&
|
||||||
git-svn init --minimize-url -R arr -i bar $svnrepo/mirror/arr &&
|
git-svn init --minimize-url -R arr -i bar "$svnrepo"/mirror/arr &&
|
||||||
git-svn init --minimize-url -R argh -i dir $svnrepo/mirror/argh &&
|
git-svn init --minimize-url -R argh -i dir "$svnrepo"/mirror/argh &&
|
||||||
git-svn init --minimize-url -R argh -i e \
|
git-svn init --minimize-url -R argh -i e \
|
||||||
$svnrepo/mirror/argh/a/b/c/d/e &&
|
"$svnrepo"/mirror/argh/a/b/c/d/e &&
|
||||||
git config svn.useSvmProps true &&
|
git config svn.useSvmProps true &&
|
||||||
git-svn fetch --all
|
git-svn fetch --all
|
||||||
"
|
'
|
||||||
|
|
||||||
uuid=161ce429-a9dd-4828-af4a-52023f968c89
|
uuid=161ce429-a9dd-4828-af4a-52023f968c89
|
||||||
|
|
||||||
|
@ -7,14 +7,14 @@ test_description='git-svn useSvnsyncProps test'
|
|||||||
|
|
||||||
. ./lib-git-svn.sh
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
test_expect_success 'load svnsync repo' "
|
test_expect_success 'load svnsync repo' '
|
||||||
svnadmin load -q $rawsvnrepo < ../t9111/svnsync.dump &&
|
svnadmin load -q "$rawsvnrepo" < ../t9111/svnsync.dump &&
|
||||||
git-svn init --minimize-url -R arr -i bar $svnrepo/bar &&
|
git-svn init --minimize-url -R arr -i bar "$svnrepo"/bar &&
|
||||||
git-svn init --minimize-url -R argh -i dir $svnrepo/dir &&
|
git-svn init --minimize-url -R argh -i dir "$svnrepo"/dir &&
|
||||||
git-svn init --minimize-url -R argh -i e $svnrepo/dir/a/b/c/d/e &&
|
git-svn init --minimize-url -R argh -i e "$svnrepo"/dir/a/b/c/d/e &&
|
||||||
git config svn.useSvnsyncProps true &&
|
git config svn.useSvnsyncProps true &&
|
||||||
git-svn fetch --all
|
git-svn fetch --all
|
||||||
"
|
'
|
||||||
|
|
||||||
uuid=161ce429-a9dd-4828-af4a-52023f968c89
|
uuid=161ce429-a9dd-4828-af4a-52023f968c89
|
||||||
|
|
||||||
|
@ -40,8 +40,8 @@ PROPS-END
|
|||||||
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'load svn dumpfile' "svnadmin load $rawsvnrepo < dumpfile.svn"
|
test_expect_success 'load svn dumpfile' 'svnadmin load "$rawsvnrepo" < dumpfile.svn'
|
||||||
|
|
||||||
test_expect_success 'initialize git-svn' "git-svn init $svnrepo"
|
test_expect_success 'initialize git-svn' 'git-svn init "$svnrepo"'
|
||||||
test_expect_success 'fetch revisions from svn' 'git-svn fetch'
|
test_expect_success 'fetch revisions from svn' 'git-svn fetch'
|
||||||
test_done
|
test_done
|
||||||
|
@ -15,18 +15,18 @@ test_description='git-svn dcommit new files over svn:// test'
|
|||||||
|
|
||||||
start_svnserve () {
|
start_svnserve () {
|
||||||
svnserve --listen-port $SVNSERVE_PORT \
|
svnserve --listen-port $SVNSERVE_PORT \
|
||||||
--root $rawsvnrepo \
|
--root "$rawsvnrepo" \
|
||||||
--listen-once \
|
--listen-once \
|
||||||
--listen-host 127.0.0.1 &
|
--listen-host 127.0.0.1 &
|
||||||
}
|
}
|
||||||
|
|
||||||
test_expect_success 'start tracking an empty repo' "
|
test_expect_success 'start tracking an empty repo' '
|
||||||
svn mkdir -m 'empty dir' $svnrepo/empty-dir &&
|
svn mkdir -m "empty dir" "$svnrepo"/empty-dir &&
|
||||||
echo anon-access = write >> $rawsvnrepo/conf/svnserve.conf &&
|
echo anon-access = write >> "$rawsvnrepo"/conf/svnserve.conf &&
|
||||||
start_svnserve &&
|
start_svnserve &&
|
||||||
git svn init svn://127.0.0.1:$SVNSERVE_PORT &&
|
git svn init svn://127.0.0.1:$SVNSERVE_PORT &&
|
||||||
git svn fetch
|
git svn fetch
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'create files in new directory with dcommit' "
|
test_expect_success 'create files in new directory with dcommit' "
|
||||||
mkdir git-new-dir &&
|
mkdir git-new-dir &&
|
||||||
|
@ -34,35 +34,35 @@ cat << EOF
|
|||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
test_expect_success 'setup svn repository' "
|
test_expect_success 'setup svn repository' '
|
||||||
svn co $svnrepo mysvnwork &&
|
svn co "$svnrepo" mysvnwork &&
|
||||||
mkdir -p mysvnwork/trunk &&
|
mkdir -p mysvnwork/trunk &&
|
||||||
cd mysvnwork &&
|
cd mysvnwork &&
|
||||||
big_text_block >> trunk/README &&
|
big_text_block >> trunk/README &&
|
||||||
svn add trunk &&
|
svn add trunk &&
|
||||||
svn ci -m 'first commit' trunk &&
|
svn ci -m "first commit" trunk &&
|
||||||
cd ..
|
cd ..
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'setup git mirror and merge' "
|
test_expect_success 'setup git mirror and merge' '
|
||||||
git svn init $svnrepo -t tags -T trunk -b branches &&
|
git svn init "$svnrepo" -t tags -T trunk -b branches &&
|
||||||
git svn fetch &&
|
git svn fetch &&
|
||||||
git checkout --track -b svn remotes/trunk &&
|
git checkout --track -b svn remotes/trunk &&
|
||||||
git checkout -b merge &&
|
git checkout -b merge &&
|
||||||
echo new file > new_file &&
|
echo new file > new_file &&
|
||||||
git add new_file &&
|
git add new_file &&
|
||||||
git commit -a -m 'New file' &&
|
git commit -a -m "New file" &&
|
||||||
echo hello >> README &&
|
echo hello >> README &&
|
||||||
git commit -a -m 'hello' &&
|
git commit -a -m "hello" &&
|
||||||
echo add some stuff >> new_file &&
|
echo add some stuff >> new_file &&
|
||||||
git commit -a -m 'add some stuff' &&
|
git commit -a -m "add some stuff" &&
|
||||||
git checkout svn &&
|
git checkout svn &&
|
||||||
mv -f README tmp &&
|
mv -f README tmp &&
|
||||||
echo friend > README &&
|
echo friend > README &&
|
||||||
cat tmp >> README &&
|
cat tmp >> README &&
|
||||||
git commit -a -m 'friend' &&
|
git commit -a -m "friend" &&
|
||||||
git pull . merge
|
git pull . merge
|
||||||
"
|
'
|
||||||
|
|
||||||
test_debug 'gitk --all & sleep 1'
|
test_debug 'gitk --all & sleep 1'
|
||||||
|
|
||||||
|
@ -7,16 +7,16 @@ test_description='git-svn dcommit can commit renames of files with ugly names'
|
|||||||
|
|
||||||
. ./lib-git-svn.sh
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
test_expect_success 'load repository with strange names' "
|
test_expect_success 'load repository with strange names' '
|
||||||
svnadmin load -q $rawsvnrepo < ../t9115/funky-names.dump &&
|
svnadmin load -q "$rawsvnrepo" < ../t9115/funky-names.dump &&
|
||||||
start_httpd
|
start_httpd
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'init and fetch repository' "
|
test_expect_success 'init and fetch repository' '
|
||||||
git svn init $svnrepo &&
|
git svn init "$svnrepo" &&
|
||||||
git svn fetch &&
|
git svn fetch &&
|
||||||
git reset --hard git-svn
|
git reset --hard git-svn
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'create file in existing ugly and empty dir' '
|
test_expect_success 'create file in existing ugly and empty dir' '
|
||||||
mkdir "#{bad_directory_name}" &&
|
mkdir "#{bad_directory_name}" &&
|
||||||
|
@ -6,17 +6,17 @@
|
|||||||
test_description='git-svn log tests'
|
test_description='git-svn log tests'
|
||||||
. ./lib-git-svn.sh
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
test_expect_success 'setup repository and import' "
|
test_expect_success 'setup repository and import' '
|
||||||
mkdir import &&
|
mkdir import &&
|
||||||
cd import &&
|
cd import &&
|
||||||
for i in trunk branches/a branches/b \
|
for i in trunk branches/a branches/b \
|
||||||
tags/0.1 tags/0.2 tags/0.3; do
|
tags/0.1 tags/0.2 tags/0.3; do
|
||||||
mkdir -p \$i && \
|
mkdir -p $i && \
|
||||||
echo hello >> \$i/README || exit 1
|
echo hello >> $i/README || exit 1
|
||||||
done && \
|
done && \
|
||||||
svn import -m test . $svnrepo
|
svn import -m test . "$svnrepo"
|
||||||
cd .. &&
|
cd .. &&
|
||||||
git-svn init $svnrepo -T trunk -b branches -t tags &&
|
git-svn init "$svnrepo" -T trunk -b branches -t tags &&
|
||||||
git-svn fetch &&
|
git-svn fetch &&
|
||||||
git reset --hard trunk &&
|
git reset --hard trunk &&
|
||||||
echo bye >> README &&
|
echo bye >> README &&
|
||||||
@ -37,7 +37,7 @@ test_expect_success 'setup repository and import' "
|
|||||||
echo try >> README &&
|
echo try >> README &&
|
||||||
git commit -a -m try &&
|
git commit -a -m try &&
|
||||||
git svn dcommit
|
git svn dcommit
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'run log' "
|
test_expect_success 'run log' "
|
||||||
git reset --hard a &&
|
git reset --hard a &&
|
||||||
|
@ -13,43 +13,43 @@ rm -r .git
|
|||||||
mkdir tmp
|
mkdir tmp
|
||||||
cd tmp
|
cd tmp
|
||||||
|
|
||||||
test_expect_success 'setup svnrepo' "
|
test_expect_success 'setup svnrepo' '
|
||||||
mkdir project project/trunk project/branches project/tags &&
|
mkdir project project/trunk project/branches project/tags &&
|
||||||
echo foo > project/trunk/foo &&
|
echo foo > project/trunk/foo &&
|
||||||
svn import -m '$test_description' project $svnrepo/project &&
|
svn import -m "$test_description" project "$svnrepo"/project &&
|
||||||
rm -rf project
|
rm -rf project
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'basic clone' "
|
test_expect_success 'basic clone' '
|
||||||
test ! -d trunk &&
|
test ! -d trunk &&
|
||||||
git svn clone $svnrepo/project/trunk &&
|
git svn clone "$svnrepo"/project/trunk &&
|
||||||
test -d trunk/.git/svn &&
|
test -d trunk/.git/svn &&
|
||||||
test -e trunk/foo &&
|
test -e trunk/foo &&
|
||||||
rm -rf trunk
|
rm -rf trunk
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'clone to target directory' "
|
test_expect_success 'clone to target directory' '
|
||||||
test ! -d target &&
|
test ! -d target &&
|
||||||
git svn clone $svnrepo/project/trunk target &&
|
git svn clone "$svnrepo"/project/trunk target &&
|
||||||
test -d target/.git/svn &&
|
test -d target/.git/svn &&
|
||||||
test -e target/foo &&
|
test -e target/foo &&
|
||||||
rm -rf target
|
rm -rf target
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'clone with --stdlayout' "
|
test_expect_success 'clone with --stdlayout' '
|
||||||
test ! -d project &&
|
test ! -d project &&
|
||||||
git svn clone -s $svnrepo/project &&
|
git svn clone -s "$svnrepo"/project &&
|
||||||
test -d project/.git/svn &&
|
test -d project/.git/svn &&
|
||||||
test -e project/foo &&
|
test -e project/foo &&
|
||||||
rm -rf project
|
rm -rf project
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'clone to target directory with --stdlayout' "
|
test_expect_success 'clone to target directory with --stdlayout' '
|
||||||
test ! -d target &&
|
test ! -d target &&
|
||||||
git svn clone -s $svnrepo/project target &&
|
git svn clone -s "$svnrepo"/project target &&
|
||||||
test -d target/.git/svn &&
|
test -d target/.git/svn &&
|
||||||
test -e target/foo &&
|
test -e target/foo &&
|
||||||
rm -rf target
|
rm -rf target
|
||||||
"
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -6,25 +6,25 @@
|
|||||||
test_description='git-svn funky branch names'
|
test_description='git-svn funky branch names'
|
||||||
. ./lib-git-svn.sh
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
test_expect_success 'setup svnrepo' "
|
test_expect_success 'setup svnrepo' '
|
||||||
mkdir project project/trunk project/branches project/tags &&
|
mkdir project project/trunk project/branches project/tags &&
|
||||||
echo foo > project/trunk/foo &&
|
echo foo > project/trunk/foo &&
|
||||||
svn import -m '$test_description' project \"$svnrepo/pr ject\" &&
|
svn import -m "$test_description" project "$svnrepo/pr ject" &&
|
||||||
rm -rf project &&
|
rm -rf project &&
|
||||||
svn cp -m 'fun' \"$svnrepo/pr ject/trunk\" \
|
svn cp -m "fun" "$svnrepo/pr ject/trunk" \
|
||||||
\"$svnrepo/pr ject/branches/fun plugin\" &&
|
"$svnrepo/pr ject/branches/fun plugin" &&
|
||||||
svn cp -m 'more fun!' \"$svnrepo/pr ject/branches/fun plugin\" \
|
svn cp -m "more fun!" "$svnrepo/pr ject/branches/fun plugin" \
|
||||||
\"$svnrepo/pr ject/branches/more fun plugin!\" &&
|
"$svnrepo/pr ject/branches/more fun plugin!" &&
|
||||||
start_httpd
|
start_httpd
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'test clone with funky branch names' "
|
test_expect_success 'test clone with funky branch names' '
|
||||||
git svn clone -s \"$svnrepo/pr ject\" project &&
|
git svn clone -s "$svnrepo/pr ject" project &&
|
||||||
cd project &&
|
cd project &&
|
||||||
git rev-parse 'refs/remotes/fun%20plugin' &&
|
git rev-parse "refs/remotes/fun%20plugin" &&
|
||||||
git rev-parse 'refs/remotes/more%20fun%20plugin!' &&
|
git rev-parse "refs/remotes/more%20fun%20plugin!" &&
|
||||||
cd ..
|
cd ..
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'test dcommit to funky branch' "
|
test_expect_success 'test dcommit to funky branch' "
|
||||||
cd project &&
|
cd project &&
|
||||||
|
@ -6,13 +6,13 @@
|
|||||||
test_description='git-svn clone with percent escapes'
|
test_description='git-svn clone with percent escapes'
|
||||||
. ./lib-git-svn.sh
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
test_expect_success 'setup svnrepo' "
|
test_expect_success 'setup svnrepo' '
|
||||||
mkdir project project/trunk project/branches project/tags &&
|
mkdir project project/trunk project/branches project/tags &&
|
||||||
echo foo > project/trunk/foo &&
|
echo foo > project/trunk/foo &&
|
||||||
svn import -m '$test_description' project '$svnrepo/pr ject' &&
|
svn import -m "$test_description" project "$svnrepo/pr ject" &&
|
||||||
rm -rf project &&
|
rm -rf project &&
|
||||||
start_httpd
|
start_httpd
|
||||||
"
|
'
|
||||||
|
|
||||||
if test "$SVN_HTTPD_PORT" = ""
|
if test "$SVN_HTTPD_PORT" = ""
|
||||||
then
|
then
|
||||||
|
@ -7,14 +7,14 @@ test_description='git-svn can fetch renamed directories'
|
|||||||
|
|
||||||
. ./lib-git-svn.sh
|
. ./lib-git-svn.sh
|
||||||
|
|
||||||
test_expect_success 'load repository with renamed directory' "
|
test_expect_success 'load repository with renamed directory' '
|
||||||
svnadmin load -q $rawsvnrepo < ../t9121/renamed-dir.dump
|
svnadmin load -q "$rawsvnrepo" < ../t9121/renamed-dir.dump
|
||||||
"
|
'
|
||||||
|
|
||||||
test_expect_success 'init and fetch repository' "
|
test_expect_success 'init and fetch repository' '
|
||||||
git svn init $svnrepo/newname &&
|
git svn init "$svnrepo/newname" &&
|
||||||
git svn fetch
|
git svn fetch
|
||||||
"
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
||||||
|
@ -153,21 +153,21 @@ test_expect_success 'req_Root failure (conflicting roots)' \
|
|||||||
tail log | grep "^error 1 Conflicting roots specified$"'
|
tail log | grep "^error 1 Conflicting roots specified$"'
|
||||||
|
|
||||||
test_expect_success 'req_Root (strict paths)' \
|
test_expect_success 'req_Root (strict paths)' \
|
||||||
'cat request-anonymous | git-cvsserver --strict-paths pserver $SERVERDIR >log 2>&1 &&
|
'cat request-anonymous | git-cvsserver --strict-paths pserver "$SERVERDIR" >log 2>&1 &&
|
||||||
sed -ne \$p log | grep "^I LOVE YOU$"'
|
sed -ne \$p log | grep "^I LOVE YOU$"'
|
||||||
|
|
||||||
test_expect_success 'req_Root failure (strict-paths)' '
|
test_expect_success 'req_Root failure (strict-paths)' '
|
||||||
! cat request-anonymous |
|
! cat request-anonymous |
|
||||||
git-cvsserver --strict-paths pserver $WORKDIR >log 2>&1
|
git-cvsserver --strict-paths pserver "$WORKDIR" >log 2>&1
|
||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'req_Root (w/o strict-paths)' \
|
test_expect_success 'req_Root (w/o strict-paths)' \
|
||||||
'cat request-anonymous | git-cvsserver pserver $WORKDIR/ >log 2>&1 &&
|
'cat request-anonymous | git-cvsserver pserver "$WORKDIR/" >log 2>&1 &&
|
||||||
sed -ne \$p log | grep "^I LOVE YOU$"'
|
sed -ne \$p log | grep "^I LOVE YOU$"'
|
||||||
|
|
||||||
test_expect_success 'req_Root failure (w/o strict-paths)' '
|
test_expect_success 'req_Root failure (w/o strict-paths)' '
|
||||||
! cat request-anonymous |
|
! cat request-anonymous |
|
||||||
git-cvsserver pserver $WORKDIR/gitcvs >log 2>&1
|
git-cvsserver pserver "$WORKDIR/gitcvs" >log 2>&1
|
||||||
'
|
'
|
||||||
|
|
||||||
cat >request-base <<EOF
|
cat >request-base <<EOF
|
||||||
@ -180,25 +180,25 @@ Root /gitcvs.git
|
|||||||
EOF
|
EOF
|
||||||
|
|
||||||
test_expect_success 'req_Root (base-path)' \
|
test_expect_success 'req_Root (base-path)' \
|
||||||
'cat request-base | git-cvsserver --strict-paths --base-path $WORKDIR/ pserver $SERVERDIR >log 2>&1 &&
|
'cat request-base | git-cvsserver --strict-paths --base-path "$WORKDIR/" pserver "$SERVERDIR" >log 2>&1 &&
|
||||||
sed -ne \$p log | grep "^I LOVE YOU$"'
|
sed -ne \$p log | grep "^I LOVE YOU$"'
|
||||||
|
|
||||||
test_expect_success 'req_Root failure (base-path)' '
|
test_expect_success 'req_Root failure (base-path)' '
|
||||||
! cat request-anonymous |
|
! cat request-anonymous |
|
||||||
git-cvsserver --strict-paths --base-path $WORKDIR pserver $SERVERDIR >log 2>&1
|
git-cvsserver --strict-paths --base-path "$WORKDIR" pserver "$SERVERDIR" >log 2>&1
|
||||||
'
|
'
|
||||||
|
|
||||||
GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled false || exit 1
|
GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled false || exit 1
|
||||||
|
|
||||||
test_expect_success 'req_Root (export-all)' \
|
test_expect_success 'req_Root (export-all)' \
|
||||||
'cat request-anonymous | git-cvsserver --export-all pserver $WORKDIR >log 2>&1 &&
|
'cat request-anonymous | git-cvsserver --export-all pserver "$WORKDIR" >log 2>&1 &&
|
||||||
sed -ne \$p log | grep "^I LOVE YOU$"'
|
sed -ne \$p log | grep "^I LOVE YOU$"'
|
||||||
|
|
||||||
test_expect_success 'req_Root failure (export-all w/o whitelist)' \
|
test_expect_success 'req_Root failure (export-all w/o whitelist)' \
|
||||||
'! (cat request-anonymous | git-cvsserver --export-all pserver >log 2>&1 || false)'
|
'! (cat request-anonymous | git-cvsserver --export-all pserver >log 2>&1 || false)'
|
||||||
|
|
||||||
test_expect_success 'req_Root (everything together)' \
|
test_expect_success 'req_Root (everything together)' \
|
||||||
'cat request-base | git-cvsserver --export-all --strict-paths --base-path $WORKDIR/ pserver $SERVERDIR >log 2>&1 &&
|
'cat request-base | git-cvsserver --export-all --strict-paths --base-path "$WORKDIR/" pserver "$SERVERDIR" >log 2>&1 &&
|
||||||
sed -ne \$p log | grep "^I LOVE YOU$"'
|
sed -ne \$p log | grep "^I LOVE YOU$"'
|
||||||
|
|
||||||
GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true || exit 1
|
GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true || exit 1
|
||||||
|
@ -10,6 +10,7 @@ commandline, and checks that it would not write any errors
|
|||||||
or warnings to log.'
|
or warnings to log.'
|
||||||
|
|
||||||
gitweb_init () {
|
gitweb_init () {
|
||||||
|
safe_pwd="$(perl -MPOSIX=getcwd -e 'print quotemeta(getcwd)')"
|
||||||
cat >gitweb_config.perl <<EOF
|
cat >gitweb_config.perl <<EOF
|
||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
|
|
||||||
@ -17,16 +18,16 @@ gitweb_init () {
|
|||||||
|
|
||||||
our \$version = "current";
|
our \$version = "current";
|
||||||
our \$GIT = "git";
|
our \$GIT = "git";
|
||||||
our \$projectroot = "$(pwd)";
|
our \$projectroot = "$safe_pwd";
|
||||||
our \$project_maxdepth = 8;
|
our \$project_maxdepth = 8;
|
||||||
our \$home_link_str = "projects";
|
our \$home_link_str = "projects";
|
||||||
our \$site_name = "[localhost]";
|
our \$site_name = "[localhost]";
|
||||||
our \$site_header = "";
|
our \$site_header = "";
|
||||||
our \$site_footer = "";
|
our \$site_footer = "";
|
||||||
our \$home_text = "indextext.html";
|
our \$home_text = "indextext.html";
|
||||||
our @stylesheets = ("file:///$(pwd)/../../gitweb/gitweb.css");
|
our @stylesheets = ("file:///$safe_pwd/../../gitweb/gitweb.css");
|
||||||
our \$logo = "file:///$(pwd)/../../gitweb/git-logo.png";
|
our \$logo = "file:///$safe_pwd/../../gitweb/git-logo.png";
|
||||||
our \$favicon = "file:///$(pwd)/../../gitweb/git-favicon.png";
|
our \$favicon = "file:///$safe_pwd/../../gitweb/git-favicon.png";
|
||||||
our \$projects_list = "";
|
our \$projects_list = "";
|
||||||
our \$export_ok = "";
|
our \$export_ok = "";
|
||||||
our \$strict_export = "";
|
our \$strict_export = "";
|
||||||
@ -53,7 +54,7 @@ gitweb_run () {
|
|||||||
# written to web server logs, so we are not interested in that:
|
# written to web server logs, so we are not interested in that:
|
||||||
# we are interested only in properly formatted errors/warnings
|
# we are interested only in properly formatted errors/warnings
|
||||||
rm -f gitweb.log &&
|
rm -f gitweb.log &&
|
||||||
perl -- $(pwd)/../../gitweb/gitweb.perl \
|
perl -- "$(pwd)/../../gitweb/gitweb.perl" \
|
||||||
>/dev/null 2>gitweb.log &&
|
>/dev/null 2>gitweb.log &&
|
||||||
if grep -q -s "^[[]" gitweb.log >/dev/null; then false; else true; fi
|
if grep -q -s "^[[]" gitweb.log >/dev/null; then false; else true; fi
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ test_expect_success 'setup cvsroot' 'cvs init'
|
|||||||
|
|
||||||
test_expect_success 'setup a cvs module' '
|
test_expect_success 'setup a cvs module' '
|
||||||
|
|
||||||
mkdir $CVSROOT/module &&
|
mkdir "$CVSROOT/module" &&
|
||||||
cvs co -d module-cvs module &&
|
cvs co -d module-cvs module &&
|
||||||
cd module-cvs &&
|
cd module-cvs &&
|
||||||
cat <<EOF >o_fortuna &&
|
cat <<EOF >o_fortuna &&
|
||||||
|
Loading…
Reference in New Issue
Block a user