@matheusbsbs / matheus-bagliano / commits / d727f676ad
Fork 0

git-svn: add --authors-file test

I'm not sure how often this functionality is used, but in case it's not, having an extra test here will help catch breakage sooner. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Eric Wong committed Jan 11, 2009 at 15:44 UTC d727f676ad9f03c2b2a11ea68a2c6242ca02fa10
1 file changed +94
t/t9130-git-svn-authors-file.sh new
+94
@@ -0,0 +1,94 @@
1 +#!/bin/sh
2 +#
3 +# Copyright (c) 2008 Eric Wong
4 +#
5 +
6 +test_description='git svn authors file tests'
7 +
8 +. ./lib-git-svn.sh
9 +
10 +cat > svn-authors <<EOF
11 +aa = AAAAAAA AAAAAAA <aa@example.com>
12 +bb = BBBBBBB BBBBBBB <bb@example.com>
13 +EOF
14 +
15 +test_expect_success 'setup svnrepo' '
16 + for i in aa bb cc dd
17 + do
18 + svn mkdir -m $i --username $i "$svnrepo"/$i
19 + done
20 + '
21 +
22 +test_expect_success 'start import with incomplete authors file' '
23 + ! git svn clone --authors-file=svn-authors "$svnrepo" x
24 + '
25 +
26 +test_expect_success 'imported 2 revisions successfully' '
27 + (
28 + cd x
29 + test "`git rev-list refs/remotes/git-svn | wc -l`" -eq 2 &&
30 + git rev-list -1 --pretty=raw refs/remotes/git-svn | \
31 + grep "^author BBBBBBB BBBBBBB <bb@example\.com> " &&
32 + git rev-list -1 --pretty=raw refs/remotes/git-svn~1 | \
33 + grep "^author AAAAAAA AAAAAAA <aa@example\.com> "
34 + )
35 + '
36 +
37 +cat >> svn-authors <<EOF
38 +cc = CCCCCCC CCCCCCC <cc@example.com>
39 +dd = DDDDDDD DDDDDDD <dd@example.com>
40 +EOF
41 +
42 +test_expect_success 'continues to import once authors have been added' '
43 + (
44 + cd x
45 + git svn fetch --authors-file=../svn-authors &&
46 + test "`git rev-list refs/remotes/git-svn | wc -l`" -eq 4 &&
47 + git rev-list -1 --pretty=raw refs/remotes/git-svn | \
48 + grep "^author DDDDDDD DDDDDDD <dd@example\.com> " &&
49 + git rev-list -1 --pretty=raw refs/remotes/git-svn~1 | \
50 + grep "^author CCCCCCC CCCCCCC <cc@example\.com> "
51 + )
52 + '
53 +
54 +test_expect_success 'authors-file against globs' '
55 + svn mkdir -m globs --username aa \
56 + "$svnrepo"/aa/trunk "$svnrepo"/aa/branches "$svnrepo"/aa/tags &&
57 + git svn clone --authors-file=svn-authors -s "$svnrepo"/aa aa-work &&
58 + for i in bb ee cc
59 + do
60 + branch="aa/branches/$i"
61 + svn mkdir -m "$branch" --username $i "$svnrepo/$branch"
62 + done
63 + '
64 +
65 +test_expect_success 'fetch fails on ee' '
66 + ( cd aa-work && ! git svn fetch --authors-file=../svn-authors )
67 + '
68 +
69 +tmp_config_get () {
70 + GIT_CONFIG=.git/svn/.metadata git config --get "$1"
71 +}
72 +
73 +test_expect_success 'failure happened without negative side effects' '
74 + (
75 + cd aa-work &&
76 + test 6 -eq "`tmp_config_get svn-remote.svn.branches-maxRev`" &&
77 + test 6 -eq "`tmp_config_get svn-remote.svn.tags-maxRev`"
78 + )
79 + '
80 +
81 +cat >> svn-authors <<EOF
82 +ee = EEEEEEE EEEEEEE <ee@example.com>
83 +EOF
84 +
85 +test_expect_success 'fetch continues after authors-file is fixed' '
86 + (
87 + cd aa-work &&
88 + git svn fetch --authors-file=../svn-authors &&
89 + test 8 -eq "`tmp_config_get svn-remote.svn.branches-maxRev`" &&
90 + test 8 -eq "`tmp_config_get svn-remote.svn.tags-maxRev`"
91 + )
92 + '
93 +
94 +test_done