#!/bin/sh
#
# Copyright (c) 2007 Eric Wong
#

test_description='git svn init/clone tests'

. ./lib-git-svn.sh

# setup, run inside tmp so we don't have any conflicts with $svnrepo
set -e
rm -r .git
mkdir tmp
cd tmp

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 &&
	test_must_fail 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 &&
	test_must_fail 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 without --prefix warns' '
	test ! -d project &&
	git svn init -s "$svnrepo"/project project 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 without --prefix warns' '
	test ! -d project &&
	git svn clone -s "$svnrepo"/project 2>warning &&
	grep -q prefix warning &&
	test_svn_configured_prefix "" &&
	rm -rf project &&
	rm -f warning
	'

test_expect_success 'init with -s/-T/-b/-t and --prefix does not warn' '
	test ! -d project &&
	git svn init -s "$svnrepo"/project project --prefix="" 2>warning &&
	test_must_fail 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 does not warn' '
	test ! -d project &&
	git svn clone -s "$svnrepo"/project --prefix="" 2>warning &&
	test_must_fail grep -q prefix warning &&
	test_svn_configured_prefix "" &&
	rm -rf project &&
	rm -f warning
	'

test_done
