1#!/bin/sh
2
3test_description='post upload-hook'
4
5. ./test-lib.sh
6
7LOGFILE=".git/post-upload-pack-log"
8
9test_expect_success setup '
10 test_commit A &&
11 test_commit B &&
12 git reset --hard A &&
13 test_commit C &&
14 git branch prev B &&
15 mkdir -p .git/hooks &&
16 {
17 echo "#!$SHELL_PATH" &&
18 echo "cat >post-upload-pack-log"
19 } >".git/hooks/post-upload-pack" &&
20 chmod +x .git/hooks/post-upload-pack
21'
22
23test_expect_success initial '
24 rm -fr sub &&
25 git init sub &&
26 (
27 cd sub &&
28 git fetch --no-tags .. prev
29 ) &&
30 want=$(sed -n "s/^want //p" "$LOGFILE") &&
31 test "$want" = "$(git rev-parse --verify B)" &&
32 ! grep "^have " "$LOGFILE"
33'
34
35test_expect_success second '
36 rm -fr sub &&
37 git init sub &&
38 (
39 cd sub &&
40 git fetch --no-tags .. prev:refs/remotes/prev &&
41 git fetch --no-tags .. master
42 ) &&
43 want=$(sed -n "s/^want //p" "$LOGFILE") &&
44 test "$want" = "$(git rev-parse --verify C)" &&
45 have=$(sed -n "s/^have //p" "$LOGFILE") &&
46 test "$have" = "$(git rev-parse --verify B)"
47'
48
49test_done