Missed one place we used "superrepo".
[invirt/scripts/git-hooks.git] / sub / update
index 11adb92..fbdde3d 100755 (executable)
@@ -18,11 +18,32 @@ if [ -z "$ref" -o -z "$oldrev" -o -z "$newrev" ]; then
         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
-    refs/tags/*)
-        echo "*** Pushing tags to this repository is not allowed" >&2
+    refs/heads/*)
+       ;;
+    *)
+        echo "*** Pushing non-branches to this repository is not allowed" >&2
         exit 1
         ;;
 esac