#!/bin/sh # # Tags should only be allowed to point to commits that are within a branch. # . $(dirname $0)/functions refname="$1" oldrev="$2" newrev="$3" # Only interested in tags case "$refname" in refs/tags/*) short_refname=${refname##refs/tags/} ;; *) exit 0 ;; esac # Except if they're getting deleted if [ "$newrev" == "0000000000000000000000000000000000000000" ] ; then exit 0 fi contains=$(git branch --contains "$newrev" | wc -l) if [ $contains -eq 0 ] ; then display_error_message "The tag $short_refname is not included in any branch." exit 1 fi