t9133-git-svn-nested-git-repo.sh 1.91 KB
Newer Older
1 2 3 4 5 6 7 8 9
#!/bin/sh
#
# Copyright (c) 2009 Eric Wong
#

test_description='git svn property tests'
. ./lib-git-svn.sh

test_expect_success 'setup repo with a git repo inside it' '
10
	svn_cmd co "$svnrepo" s &&
11 12 13 14 15 16
	(
		cd s &&
		git init &&
		test -f .git/HEAD &&
		> .git/a &&
		echo a > a &&
17 18 19
		svn_cmd add .git a &&
		svn_cmd commit -m "create a nested git repo" &&
		svn_cmd up &&
20
		echo hi >> .git/a &&
21 22
		svn_cmd commit -m "modify .git/a" &&
		svn_cmd up
23 24 25 26 27 28 29 30 31 32 33 34 35
	)
'

test_expect_success 'clone an SVN repo containing a git repo' '
	git svn clone "$svnrepo" g &&
	echo a > expect &&
	test_cmp expect g/a
'

test_expect_success 'SVN-side change outside of .git' '
	(
		cd s &&
		echo b >> a &&
36 37 38
		svn_cmd commit -m "SVN-side change outside of .git" &&
		svn_cmd up &&
		svn_cmd log -v | fgrep "SVN-side change outside of .git"
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
	)
'

test_expect_success 'update git svn-cloned repo' '
	(
		cd g &&
		git svn rebase &&
		echo a > expect &&
		echo b >> expect &&
		test_cmp a expect &&
		rm expect
	)
'

test_expect_success 'SVN-side change inside of .git' '
	(
		cd s &&
		git add a &&
		git commit -m "add a inside an SVN repo" &&
		git log &&
59 60 61 62
		svn_cmd add --force .git &&
		svn_cmd commit -m "SVN-side change inside of .git" &&
		svn_cmd up &&
		svn_cmd log -v | fgrep "SVN-side change inside of .git"
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
	)
'

test_expect_success 'update git svn-cloned repo' '
	(
		cd g &&
		git svn rebase &&
		echo a > expect &&
		echo b >> expect &&
		test_cmp a expect &&
		rm expect
	)
'

test_expect_success 'SVN-side change in and out of .git' '
	(
		cd s &&
		echo c >> a &&
		git add a &&
		git commit -m "add a inside an SVN repo" &&
83 84 85
		svn_cmd commit -m "SVN-side change in and out of .git" &&
		svn_cmd up &&
		svn_cmd log -v | fgrep "SVN-side change in and out of .git"
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
	)
'

test_expect_success 'update git svn-cloned repo again' '
	(
		cd g &&
		git svn rebase &&
		echo a > expect &&
		echo b >> expect &&
		echo c >> expect &&
		test_cmp a expect &&
		rm expect
	)
'

test_done