Merge branch 'ss/user-manual' into maint
[git] / t / t9122-git-svn-author.sh
1 #!/bin/sh
2
3 test_description='git svn authorship'
4 . ./lib-git-svn.sh
5
6 test_expect_success 'setup svn repository' '
7         svn_cmd checkout "$svnrepo" work.svn &&
8         (
9                 cd work.svn &&
10                 echo >file
11                 svn_cmd add file
12                 svn_cmd commit -m "first commit" file
13         )
14 '
15
16 test_expect_success 'interact with it via git svn' '
17         mkdir work.git &&
18         (
19                 cd work.git &&
20                 git svn init "$svnrepo"
21                 git svn fetch &&
22
23                 echo modification >file &&
24                 test_tick &&
25                 git commit -a -m second &&
26
27                 test_tick &&
28                 git svn dcommit &&
29
30                 echo "further modification" >file &&
31                 test_tick &&
32                 git commit -a -m third &&
33
34                 test_tick &&
35                 git svn --add-author-from dcommit &&
36
37                 echo "yet further modification" >file &&
38                 test_tick &&
39                 git commit -a -m fourth &&
40
41                 test_tick &&
42                 git svn --add-author-from --use-log-author dcommit &&
43
44                 git log &&
45
46                 git show -s HEAD^^ >../actual.2 &&
47                 git show -s HEAD^  >../actual.3 &&
48                 git show -s HEAD   >../actual.4
49
50         ) &&
51
52         # Make sure that --add-author-from without --use-log-author
53         # did not affect the authorship information
54         myself=$(grep "^Author: " actual.2) &&
55         unaffected=$(grep "^Author: " actual.3) &&
56         test "z$myself" = "z$unaffected" &&
57
58         # Make sure lack of --add-author-from did not add cruft
59         ! grep "^    From: A U Thor " actual.2 &&
60
61         # Make sure --add-author-from added cruft
62         grep "^    From: A U Thor " actual.3 &&
63         grep "^    From: A U Thor " actual.4 &&
64
65         # Make sure --add-author-from with --use-log-author affected
66         # the authorship information
67         grep "^Author: A U Thor " actual.4 &&
68
69         # Make sure there are no commit messages with excess blank lines
70         test $(grep "^ " actual.2 | wc -l) = 3 &&
71         test $(grep "^ " actual.3 | wc -l) = 5 &&
72         test $(grep "^ " actual.4 | wc -l) = 5 &&
73
74         # Make sure there are no svn commit messages with excess blank lines
75         (
76                 cd work.svn &&
77                 svn_cmd up &&
78                 
79                 test $(svn_cmd log -r2:2 | wc -l) = 5 &&
80                 test $(svn_cmd log -r4:4 | wc -l) = 7
81         )
82 '
83
84 test_done