. $(dirname $0)/functions
set_change_type
-if [[ "$refname" =~ refs/heads/(.*) ]] ; then
- short_refname=${refname##refs/heads/}
-else
+case "$refname" in
+ refs/heads/*)
+ short_refname=${refname##refs/heads/}
+ ;;
+ *)
+ exit 0
+ ;;
+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
fi
# For now candidates can mix amongst each other so early exit
- if [[ "$refname" =~ refs/heads/candidate(.*) ]] ; then
- exit 0
- fi
+ case "$refname" in
+ refs/heads/candidate*)
+ exit 0
+ ;;
+ *)
+ ;;
+ esac
# Check if topic is already in candidates
- candidate=$(git branch --contains "$oldrev" | grep -oP candidate.* --max-count=1)
+ candidate=$(git branch --contains "$oldrev" | grep -oP "candidate.*" --max-count=1)
if [ $? -eq 0 ] ; then
echo "----------------------------------------------------"
echo