Disallow pushing to submodule branches that are tracking branches for
authorEvan Broder <broder@mit.edu>
Fri, 13 Nov 2009 03:46:57 +0000 (22:46 -0500)
committerEvan Broder <broder@mit.edu>
Fri, 13 Nov 2009 03:46:57 +0000 (22:46 -0500)
pockets.

svn path=/trunk/scripts/git-hooks/; revision=2539

sub/update

index 96347fe..fbdde3d 100755 (executable)
@@ -18,6 +18,25 @@ if [ -z "$ref" -o -z "$oldrev" -o -z "$newrev" ]; then
         exit 1
 fi
 
         exit 1
 fi
 
+# --- Disallow pushing to the branches for pockets
+
+pocket_to_git() {
+    local pocket git
+    pocket="$1"
+    git="$(invirt-getconf "git.pockets.$pocket.git" 2>/dev/null)"
+    if [ $? != 0 ]; then
+       git="$pocket"
+    fi
+    echo "$git"
+}
+
+for pocket in $(invirt-getconf -l git.pockets); do
+    if [ "$ref" = "refs/heads/$(pocket_to_git "$pocket")" ]; then
+       echo "*** Pushing to a pocket branch in this repository is not allowed" >&2
+       exit 1
+    fi
+done
+
 # --- Disallow pushing tags
 
 case "$ref" in
 # --- Disallow pushing tags
 
 case "$ref" in