1#!/bin/sh
2#
3# Copyright (c) 2009 Eric Wong
4#
5
6test_description='git svn property tests'
7. ./lib-git-svn.sh
8
9test_expect_success 'setup repo with a git repo inside it' '
10 svn co "$svnrepo" s &&
11 (
12 cd s &&
13 git init &&
14 test -f .git/HEAD &&
15 > .git/a &&
16 echo a > a &&
17 svn add .git a &&
18 svn commit -m "create a nested git repo" &&
19 svn up &&
20 echo hi >> .git/a &&
21 svn commit -m "modify .git/a" &&
22 svn up
23 )
24'
25
26test_expect_success 'clone an SVN repo containing a git repo' '
27 git svn clone "$svnrepo" g &&
28 echo a > expect &&
29 test_cmp expect g/a
30'
31
32test_expect_success 'SVN-side change outside of .git' '
33 (
34 cd s &&
35 echo b >> a &&
36 svn commit -m "SVN-side change outside of .git" &&
37 svn up &&
38 svn log -v | fgrep "SVN-side change outside of .git"
39 )
40'
41
42test_expect_success 'update git svn-cloned repo' '
43 (
44 cd g &&
45 git svn rebase &&
46 echo a > expect &&
47 echo b >> expect &&
48 test_cmp a expect &&
49 rm expect
50 )
51'
52
53test_expect_success 'SVN-side change inside of .git' '
54 (
55 cd s &&
56 git add a &&
57 git commit -m "add a inside an SVN repo" &&
58 git log &&
59 svn add --force .git &&
60 svn commit -m "SVN-side change inside of .git" &&
61 svn up &&
62 svn log -v | fgrep "SVN-side change inside of .git"
63 )
64'
65
66test_expect_success 'update git svn-cloned repo' '
67 (
68 cd g &&
69 git svn rebase &&
70 echo a > expect &&
71 echo b >> expect &&
72 test_cmp a expect &&
73 rm expect
74 )
75'
76
77test_expect_success 'SVN-side change in and out of .git' '
78 (
79 cd s &&
80 echo c >> a &&
81 git add a &&
82 git commit -m "add a inside an SVN repo" &&
83 svn commit -m "SVN-side change in and out of .git" &&
84 svn up &&
85 svn log -v | fgrep "SVN-side change in and out of .git"
86 )
87'
88
89test_expect_success 'update git svn-cloned repo again' '
90 (
91 cd g &&
92 git svn rebase &&
93 echo a > expect &&
94 echo b >> expect &&
95 echo c >> expect &&
96 test_cmp a expect &&
97 rm expect
98 )
99'
100
101test_done