diff options
-rw-r--r-- | scripts/libmakepkg/source/git.sh.in | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/scripts/libmakepkg/source/git.sh.in b/scripts/libmakepkg/source/git.sh.in index 6d7e0a67..252cd4da 100644 --- a/scripts/libmakepkg/source/git.sh.in +++ b/scripts/libmakepkg/source/git.sh.in @@ -65,7 +65,7 @@ download_git() { } extract_git() { - local netfile=$1 + local netfile=$1 tagname local fragment=$(get_uri_fragment "$netfile") local repo=$(get_filename "$netfile") @@ -110,6 +110,15 @@ extract_git() { esac fi + if [[ ${fragment%%=*} = tag ]]; then + tagname="$(git tag -l --format='%(tag)' "$ref")" + if [[ -n $tagname && $tagname != $ref ]]; then + error "$(gettext "Failure while checking out version %s, the git tag has been forged")" "$ref" + plain "$(gettext "Aborting...")" + exit 1 + fi + fi + if [[ $ref != "origin/HEAD" ]] || (( updating )) ; then if ! git checkout --force --no-track -B makepkg $ref; then error "$(gettext "Failure while creating working copy of %s %s repo")" "${repo}" "git" |