diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 14:47:53 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 14:47:53 +0000 |
commit | c8bae7493d2f2910b57f13ded012e86bdcfb0532 (patch) | |
tree | 24e09d9f84dec336720cf393e156089ca2835791 /t/t9117-git-svn-init-clone.sh | |
parent | Initial commit. (diff) | |
download | git-17a789943131483bc454986d1be6da6caaabce8c.tar.xz git-17a789943131483bc454986d1be6da6caaabce8c.zip |
Adding upstream version 1:2.39.2.upstream/1%2.39.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 't/t9117-git-svn-init-clone.sh')
-rwxr-xr-x | t/t9117-git-svn-init-clone.sh | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/t/t9117-git-svn-init-clone.sh b/t/t9117-git-svn-init-clone.sh new file mode 100755 index 0000000..62de819 --- /dev/null +++ b/t/t9117-git-svn-init-clone.sh @@ -0,0 +1,122 @@ +#!/bin/sh +# +# Copyright (c) 2007 Eric Wong +# + +test_description='git svn init/clone tests' + +. ./lib-git-svn.sh + +test_expect_success 'setup svnrepo' ' + mkdir project project/trunk project/branches project/tags && + echo foo > project/trunk/foo && + svn_cmd import -m "$test_description" project "$svnrepo"/project && + rm -rf project + ' + +test_expect_success 'basic clone' ' + test ! -d trunk && + git svn clone "$svnrepo"/project/trunk && + test -d trunk/.git/svn && + test -e trunk/foo && + rm -rf trunk + ' + +test_expect_success 'clone to target directory' ' + test ! -d target && + git svn clone "$svnrepo"/project/trunk target && + test -d target/.git/svn && + test -e target/foo && + rm -rf target + ' + +test_expect_success 'clone with --stdlayout' ' + test ! -d project && + git svn clone -s "$svnrepo"/project && + test -d project/.git/svn && + test -e project/foo && + rm -rf project + ' + +test_expect_success 'clone to target directory with --stdlayout' ' + test ! -d target && + git svn clone -s "$svnrepo"/project target && + test -d target/.git/svn && + test -e target/foo && + rm -rf target + ' + +test_expect_success 'init without -s/-T/-b/-t does not warn' ' + test ! -d trunk && + git svn init "$svnrepo"/project/trunk trunk 2>warning && + ! grep -q prefix warning && + rm -rf trunk && + rm -f warning + ' + +test_expect_success 'clone without -s/-T/-b/-t does not warn' ' + test ! -d trunk && + git svn clone "$svnrepo"/project/trunk 2>warning && + ! grep -q prefix warning && + rm -rf trunk && + rm -f warning + ' + +test_svn_configured_prefix () { + prefix=$1 && + cat >expect <<EOF && +project/trunk:refs/remotes/${prefix}trunk +project/branches/*:refs/remotes/${prefix}* +project/tags/*:refs/remotes/${prefix}tags/* +EOF + test ! -f actual && + git --git-dir=project/.git config svn-remote.svn.fetch >>actual && + git --git-dir=project/.git config svn-remote.svn.branches >>actual && + git --git-dir=project/.git config svn-remote.svn.tags >>actual && + test_cmp expect actual && + rm -f expect actual +} + +test_expect_success 'init with -s/-T/-b/-t assumes --prefix=origin/' ' + test ! -d project && + git svn init -s "$svnrepo"/project project 2>warning && + ! grep -q prefix warning && + test_svn_configured_prefix "origin/" && + rm -rf project && + rm -f warning + ' + +test_expect_success 'clone with -s/-T/-b/-t assumes --prefix=origin/' ' + test ! -d project && + git svn clone -s "$svnrepo"/project 2>warning && + ! grep -q prefix warning && + test_svn_configured_prefix "origin/" && + rm -rf project && + rm -f warning + ' + +test_expect_success 'init with -s/-T/-b/-t and --prefix "" still works' ' + test ! -d project && + git svn init -s "$svnrepo"/project project --prefix "" 2>warning && + ! grep -q prefix warning && + test_svn_configured_prefix "" && + rm -rf project && + rm -f warning + ' + +test_expect_success 'clone with -s/-T/-b/-t and --prefix "" still works' ' + test ! -d project && + git svn clone -s "$svnrepo"/project --prefix "" 2>warning && + ! grep -q prefix warning && + test_svn_configured_prefix "" && + rm -rf project && + rm -f warning + ' + +test_expect_success 'init with -T as a full url works' ' + test ! -d project && + git svn init -T "$svnrepo"/project/trunk project && + rm -rf project + ' + +test_done |