@matheusbsbs / matheus-bagliano / commits / 6b3fa7e7d1
Fork 0

t5401: Use a bare repository for the remote peer

We want to avoid the warnings (or later, test failures) about updating the current branch. It was never my intention to have this test deal with a repository with a working directory, and it is a very old bug that the test even used a non-bare repository for the remote side of the push operations. This fixes the interleaved output error we were seeing as a test failure by avoiding the giant warning message we were getting back about updating the current branch being risky. Its not a real fix, but is something we should do no matter what, because the behavior will change in the future to reject, and the test would break at that time. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Shawn O. Pearce committed Feb 9, 2010 at 18:01 UTC 6b3fa7e7d13a3c8fddba43ad6e8acb314d1985ac
1 file changed +29 -29
t/t5401-update-hooks.sh
+29 -29
@@ -17,22 +17,22 @@ test_expect_success setup '
17 commit1=$(echo modify | git commit-tree $tree1 -p $commit0) &&
18 git update-ref refs/heads/master $commit0 &&
19 git update-ref refs/heads/tofail $commit1 &&
20 - git clone ./. victim &&
21 - GIT_DIR=victim/.git git update-ref refs/heads/tofail $commit1 &&
20 + git clone --bare ./. victim.git &&
21 + GIT_DIR=victim.git git update-ref refs/heads/tofail $commit1 &&
22 git update-ref refs/heads/master $commit1 &&
23 git update-ref refs/heads/tofail $commit0
24 '
25
26 -cat >victim/.git/hooks/pre-receive <<'EOF'
26 +cat >victim.git/hooks/pre-receive <<'EOF'
27 #!/bin/sh
28 printf %s "$@" >>$GIT_DIR/pre-receive.args
29 cat - >$GIT_DIR/pre-receive.stdin
30 echo STDOUT pre-receive
31 echo STDERR pre-receive >&2
32 EOF
33 -chmod u+x victim/.git/hooks/pre-receive
33 +chmod u+x victim.git/hooks/pre-receive
34
35 -cat >victim/.git/hooks/update <<'EOF'
35 +cat >victim.git/hooks/update <<'EOF'
36 #!/bin/sh
37 echo "$@" >>$GIT_DIR/update.args
38 read x; printf %s "$x" >$GIT_DIR/update.stdin
@@ -40,77 +40,77 @@ echo STDOUT update $1
40 echo STDERR update $1 >&2
41 test "$1" = refs/heads/master || exit
42 EOF
43 -chmod u+x victim/.git/hooks/update
43 +chmod u+x victim.git/hooks/update
44
45 -cat >victim/.git/hooks/post-receive <<'EOF'
45 +cat >victim.git/hooks/post-receive <<'EOF'
46 #!/bin/sh
47 printf %s "$@" >>$GIT_DIR/post-receive.args
48 cat - >$GIT_DIR/post-receive.stdin
49 echo STDOUT post-receive
50 echo STDERR post-receive >&2
51 EOF
52 -chmod u+x victim/.git/hooks/post-receive
52 +chmod u+x victim.git/hooks/post-receive
53
54 -cat >victim/.git/hooks/post-update <<'EOF'
54 +cat >victim.git/hooks/post-update <<'EOF'
55 #!/bin/sh
56 echo "$@" >>$GIT_DIR/post-update.args
57 read x; printf %s "$x" >$GIT_DIR/post-update.stdin
58 echo STDOUT post-update
59 echo STDERR post-update >&2
60 EOF
61 -chmod u+x victim/.git/hooks/post-update
61 +chmod u+x victim.git/hooks/post-update
62
63 test_expect_success push '
64 - test_must_fail git send-pack --force ./victim/.git \
64 + test_must_fail git send-pack --force ./victim.git \
65 master tofail >send.out 2>send.err
66 '
67
68 test_expect_success 'updated as expected' '
69 - test $(GIT_DIR=victim/.git git rev-parse master) = $commit1 &&
70 - test $(GIT_DIR=victim/.git git rev-parse tofail) = $commit1
69 + test $(GIT_DIR=victim.git git rev-parse master) = $commit1 &&
70 + test $(GIT_DIR=victim.git git rev-parse tofail) = $commit1
71 '
72
73 test_expect_success 'hooks ran' '
74 - test -f victim/.git/pre-receive.args &&
75 - test -f victim/.git/pre-receive.stdin &&
76 - test -f victim/.git/update.args &&
77 - test -f victim/.git/update.stdin &&
78 - test -f victim/.git/post-receive.args &&
79 - test -f victim/.git/post-receive.stdin &&
80 - test -f victim/.git/post-update.args &&
81 - test -f victim/.git/post-update.stdin
74 + test -f victim.git/pre-receive.args &&
75 + test -f victim.git/pre-receive.stdin &&
76 + test -f victim.git/update.args &&
77 + test -f victim.git/update.stdin &&
78 + test -f victim.git/post-receive.args &&
79 + test -f victim.git/post-receive.stdin &&
80 + test -f victim.git/post-update.args &&
81 + test -f victim.git/post-update.stdin
82 '
83
84 test_expect_success 'pre-receive hook input' '
85 (echo $commit0 $commit1 refs/heads/master;
86 echo $commit1 $commit0 refs/heads/tofail
87 - ) | test_cmp - victim/.git/pre-receive.stdin
87 + ) | test_cmp - victim.git/pre-receive.stdin
88 '
89
90 test_expect_success 'update hook arguments' '
91 (echo refs/heads/master $commit0 $commit1;
92 echo refs/heads/tofail $commit1 $commit0
93 - ) | test_cmp - victim/.git/update.args
93 + ) | test_cmp - victim.git/update.args
94 '
95
96 test_expect_success 'post-receive hook input' '
97 echo $commit0 $commit1 refs/heads/master |
98 - test_cmp - victim/.git/post-receive.stdin
98 + test_cmp - victim.git/post-receive.stdin
99 '
100
101 test_expect_success 'post-update hook arguments' '
102 echo refs/heads/master |
103 - test_cmp - victim/.git/post-update.args
103 + test_cmp - victim.git/post-update.args
104 '
105
106 test_expect_success 'all hook stdin is /dev/null' '
107 - ! test -s victim/.git/update.stdin &&
108 - ! test -s victim/.git/post-update.stdin
107 + ! test -s victim.git/update.stdin &&
108 + ! test -s victim.git/post-update.stdin
109 '
110
111 test_expect_success 'all *-receive hook args are empty' '
112 - ! test -s victim/.git/pre-receive.args &&
113 - ! test -s victim/.git/post-receive.args
112 + ! test -s victim.git/pre-receive.args &&
113 + ! test -s victim.git/post-receive.args
114 '
115
116 test_expect_success 'send-pack produced no output' '