]> git.ipfire.org Git - thirdparty/git.git/blame - t/t9117-git-svn-init-clone.sh
Git 2.0-rc0
[thirdparty/git.git] / t / t9117-git-svn-init-clone.sh
CommitLineData
41337e22
EW
1#!/bin/sh
2#
3# Copyright (c) 2007 Eric Wong
4#
5
1364ff27 6test_description='git svn init/clone tests'
41337e22
EW
7
8. ./lib-git-svn.sh
9
10# setup, run inside tmp so we don't have any conflicts with $svnrepo
11set -e
12rm -r .git
13mkdir tmp
14cd tmp
15
f69e836f 16test_expect_success 'setup svnrepo' '
41337e22
EW
17 mkdir project project/trunk project/branches project/tags &&
18 echo foo > project/trunk/foo &&
da083d68 19 svn_cmd import -m "$test_description" project "$svnrepo"/project &&
41337e22 20 rm -rf project
f69e836f 21 '
41337e22 22
f69e836f 23test_expect_success 'basic clone' '
41337e22 24 test ! -d trunk &&
f69e836f 25 git svn clone "$svnrepo"/project/trunk &&
41337e22
EW
26 test -d trunk/.git/svn &&
27 test -e trunk/foo &&
28 rm -rf trunk
f69e836f 29 '
41337e22 30
f69e836f 31test_expect_success 'clone to target directory' '
41337e22 32 test ! -d target &&
f69e836f 33 git svn clone "$svnrepo"/project/trunk target &&
41337e22
EW
34 test -d target/.git/svn &&
35 test -e target/foo &&
36 rm -rf target
f69e836f 37 '
41337e22 38
f69e836f 39test_expect_success 'clone with --stdlayout' '
41337e22 40 test ! -d project &&
f69e836f 41 git svn clone -s "$svnrepo"/project &&
41337e22
EW
42 test -d project/.git/svn &&
43 test -e project/foo &&
44 rm -rf project
f69e836f 45 '
41337e22 46
f69e836f 47test_expect_success 'clone to target directory with --stdlayout' '
41337e22 48 test ! -d target &&
f69e836f 49 git svn clone -s "$svnrepo"/project target &&
41337e22
EW
50 test -d target/.git/svn &&
51 test -e target/foo &&
52 rm -rf target
f69e836f 53 '
41337e22 54
f849bb6b
JH
55test_expect_success 'init without -s/-T/-b/-t does not warn' '
56 test ! -d trunk &&
57 git svn init "$svnrepo"/project/trunk trunk 2>warning &&
58 test_must_fail grep -q prefix warning &&
59 rm -rf trunk &&
60 rm -f warning
61 '
62
63test_expect_success 'clone without -s/-T/-b/-t does not warn' '
64 test ! -d trunk &&
65 git svn clone "$svnrepo"/project/trunk 2>warning &&
66 test_must_fail grep -q prefix warning &&
67 rm -rf trunk &&
68 rm -f warning
69 '
70
71test_svn_configured_prefix () {
72 prefix=$1 &&
73 cat >expect <<EOF &&
74project/trunk:refs/remotes/${prefix}trunk
75project/branches/*:refs/remotes/${prefix}*
76project/tags/*:refs/remotes/${prefix}tags/*
77EOF
78 test ! -f actual &&
79 git --git-dir=project/.git config svn-remote.svn.fetch >>actual &&
80 git --git-dir=project/.git config svn-remote.svn.branches >>actual &&
81 git --git-dir=project/.git config svn-remote.svn.tags >>actual &&
82 test_cmp expect actual &&
83 rm -f expect actual
84}
85
86test_expect_success 'init with -s/-T/-b/-t without --prefix warns' '
87 test ! -d project &&
88 git svn init -s "$svnrepo"/project project 2>warning &&
89 grep -q prefix warning &&
90 test_svn_configured_prefix "" &&
91 rm -rf project &&
92 rm -f warning
93 '
94
95test_expect_success 'clone with -s/-T/-b/-t without --prefix warns' '
96 test ! -d project &&
97 git svn clone -s "$svnrepo"/project 2>warning &&
98 grep -q prefix warning &&
99 test_svn_configured_prefix "" &&
100 rm -rf project &&
101 rm -f warning
102 '
103
104test_expect_success 'init with -s/-T/-b/-t and --prefix does not warn' '
105 test ! -d project &&
106 git svn init -s "$svnrepo"/project project --prefix="" 2>warning &&
107 test_must_fail grep -q prefix warning &&
108 test_svn_configured_prefix "" &&
109 rm -rf project &&
110 rm -f warning
111 '
112
113test_expect_success 'clone with -s/-T/-b/-t and --prefix does not warn' '
114 test ! -d project &&
115 git svn clone -s "$svnrepo"/project --prefix="" 2>warning &&
116 test_must_fail grep -q prefix warning &&
117 test_svn_configured_prefix "" &&
118 rm -rf project &&
119 rm -f warning
120 '
121
41337e22 122test_done