root/other-projects/FileTransfer-WebSocketPair/testGXTWithGreenstone/.git/hooks/update.sample @ 33053

Revision 33053, 3.5 KB (checked in by ak19, 5 months ago)

I still had some stuff of Nathan Kelly's (FileTransfer?-WebSocketPair?) sitting on my USB. Had already commited the Themes folder at the time, 2 years back. Not sure if he wanted this additional folder commited. But I didn't want to delete it and decided it will be better off on SVN. When we use his project, if we find we didn't need this test folder, we can remove it from svn then.

Line 
1#!/bin/sh
2#
3# An example hook script to blocks unannotated tags from entering.
4# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
5#
6# To enable this hook, rename this file to "update".
7#
8# Config
9# ------
10# hooks.allowunannotated
11#   This boolean sets whether unannotated tags will be allowed into the
12#   repository.  By default they won't be.
13# hooks.allowdeletetag
14#   This boolean sets whether deleting tags will be allowed in the
15#   repository.  By default they won't be.
16# hooks.allowmodifytag
17#   This boolean sets whether a tag may be modified after creation. By default
18#   it won't be.
19# hooks.allowdeletebranch
20#   This boolean sets whether deleting branches will be allowed in the
21#   repository.  By default they won't be.
22# hooks.denycreatebranch
23#   This boolean sets whether remotely creating branches will be denied
24#   in the repository.  By default this is allowed.
25#
26
27# --- Command line
28refname="$1"
29oldrev="$2"
30newrev="$3"
31
32# --- Safety check
33if [ -z "$GIT_DIR" ]; then
34    echo "Don't run this script from the command line." >&2
35    echo " (if you want, you could supply GIT_DIR then run" >&2
36    echo "  $0 <ref> <oldrev> <newrev>)" >&2
37    exit 1
38fi
39
40if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
41    echo "usage: $0 <ref> <oldrev> <newrev>" >&2
42    exit 1
43fi
44
45# --- Config
46allowunannotated=$(git config --bool hooks.allowunannotated)
47allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
48denycreatebranch=$(git config --bool hooks.denycreatebranch)
49allowdeletetag=$(git config --bool hooks.allowdeletetag)
50allowmodifytag=$(git config --bool hooks.allowmodifytag)
51
52# check for no description
53projectdesc=$(sed -e '1q' "$GIT_DIR/description")
54case "$projectdesc" in
55"Unnamed repository"* | "")
56    echo "*** Project description file hasn't been set" >&2
57    exit 1
58    ;;
59esac
60
61# --- Check types
62# if $newrev is 0000...0000, it's a commit to delete a ref.
63zero="0000000000000000000000000000000000000000"
64if [ "$newrev" = "$zero" ]; then
65    newrev_type=delete
66else
67    newrev_type=$(git cat-file -t $newrev)
68fi
69
70case "$refname","$newrev_type" in
71    refs/tags/*,commit)
72        # un-annotated tag
73        short_refname=${refname##refs/tags/}
74        if [ "$allowunannotated" != "true" ]; then
75            echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
76            echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
77            exit 1
78        fi
79        ;;
80    refs/tags/*,delete)
81        # delete tag
82        if [ "$allowdeletetag" != "true" ]; then
83            echo "*** Deleting a tag is not allowed in this repository" >&2
84            exit 1
85        fi
86        ;;
87    refs/tags/*,tag)
88        # annotated tag
89        if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
90        then
91            echo "*** Tag '$refname' already exists." >&2
92            echo "*** Modifying a tag is not allowed in this repository." >&2
93            exit 1
94        fi
95        ;;
96    refs/heads/*,commit)
97        # branch
98        if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
99            echo "*** Creating a branch is not allowed in this repository" >&2
100            exit 1
101        fi
102        ;;
103    refs/heads/*,delete)
104        # delete branch
105        if [ "$allowdeletebranch" != "true" ]; then
106            echo "*** Deleting a branch is not allowed in this repository" >&2
107            exit 1
108        fi
109        ;;
110    refs/remotes/*,commit)
111        # tracking branch
112        ;;
113    refs/remotes/*,delete)
114        # delete tracking branch
115        if [ "$allowdeletebranch" != "true" ]; then
116            echo "*** Deleting a tracking branch is not allowed in this repository" >&2
117            exit 1
118        fi
119        ;;
120    *)
121        # Anything else (is there anything else?)
122        echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
123        exit 1
124        ;;
125esac
126
127# --- Finished
128exit 0
Note: See TracBrowser for help on using the browser.