cvsimport: extend testcase about patchset order to contain branches
[git] / t / t9600-cvsimport.sh
1 #!/bin/sh
2
3 test_description='git cvsimport basic tests'
4 . ./lib-cvs.sh
5
6 CVSROOT=$(pwd)/cvsroot
7 export CVSROOT
8
9 test_expect_success 'setup cvsroot' '$CVS init'
10
11 test_expect_success 'setup a cvs module' '
12
13         mkdir "$CVSROOT/module" &&
14         $CVS co -d module-cvs module &&
15         cd module-cvs &&
16         cat <<EOF >o_fortuna &&
17 O Fortuna
18 velut luna
19 statu variabilis,
20
21 semper crescis
22 aut decrescis;
23 vita detestabilis
24
25 nunc obdurat
26 et tunc curat
27 ludo mentis aciem,
28
29 egestatem,
30 potestatem
31 dissolvit ut glaciem.
32 EOF
33         $CVS add o_fortuna &&
34         cat <<EOF >message &&
35 add "O Fortuna" lyrics
36
37 These public domain lyrics make an excellent sample text.
38 EOF
39         $CVS commit -F message &&
40         cd ..
41 '
42
43 test_expect_success 'import a trivial module' '
44
45         git cvsimport -a -z 0 -C module-git module &&
46         test_cmp module-cvs/o_fortuna module-git/o_fortuna
47
48 '
49
50 test_expect_success 'pack refs' 'cd module-git && git gc && cd ..'
51
52 test_expect_success 'update cvs module' '
53
54         cd module-cvs &&
55         cat <<EOF >o_fortuna &&
56 O Fortune,
57 like the moon
58 you are changeable,
59
60 ever waxing
61 and waning;
62 hateful life
63
64 first oppresses
65 and then soothes
66 as fancy takes it;
67
68 poverty
69 and power
70 it melts them like ice.
71 EOF
72         cat <<EOF >message &&
73 translate to English
74
75 My Latin is terrible.
76 EOF
77         $CVS commit -F message &&
78         cd ..
79 '
80
81 test_expect_success 'update git module' '
82
83         cd module-git &&
84         git cvsimport -a -z 0 module &&
85         git merge origin &&
86         cd .. &&
87         test_cmp module-cvs/o_fortuna module-git/o_fortuna
88
89 '
90
91 test_expect_success 'update cvs module' '
92
93         cd module-cvs &&
94                 echo 1 >tick &&
95                 $CVS add tick &&
96                 $CVS commit -m 1
97         cd ..
98
99 '
100
101 test_expect_success 'cvsimport.module config works' '
102
103         cd module-git &&
104                 git config cvsimport.module module &&
105                 git cvsimport -a -z0 &&
106                 git merge origin &&
107         cd .. &&
108         test_cmp module-cvs/tick module-git/tick
109
110 '
111
112 test_expect_success 'import from a CVS working tree' '
113
114         $CVS co -d import-from-wt module &&
115         cd import-from-wt &&
116                 git cvsimport -a -z0 &&
117                 echo 1 >expect &&
118                 git log -1 --pretty=format:%s%n >actual &&
119                 test_cmp actual expect &&
120         cd ..
121
122 '
123
124 test_expect_success 'test entire HEAD' 'test_cmp_branch_tree master'
125
126 test_done