Use the new install_update_hook function.
[git-central.git] / server / update-stable
index 6e1264b..c816750 100644 (file)
@@ -60,11 +60,39 @@ case "$refname" in
                ;;
 esac
 
+if [ "$change_type" == "delete" ] ; then
+       exit 0
+fi
+
+if [ "$change_type" == "create" -a "$short_refname" != "stable" ] ; then
+       not_on_stable=$(git rev-list stable..$newrev)
+       if [ "$not_on_stable" == "" ] ; then
+               echo "----------------------------------------------------"
+               echo
+               echo "Creating a branch must include new commits"
+               echo
+               echo "----------------------------------------------------"
+               exit 1
+       fi
+fi
+
 # create/delete is okay
 if [ "$change_type" != "update" ] ; then
        exit 0
 fi
 
+# The tip must always be new
+already=$(git branch --contains "$newrev")
+if [ "$already" != "" ] ; then
+       already=${already##  }
+       echo "----------------------------------------------------"
+       echo
+       echo "$short_refname is already referred to by $already"
+       echo
+       echo "----------------------------------------------------"
+       exit 1
+fi
+
 if [ "$short_refname" == "stable" ] ; then
        # Stable enforcement