From f9bd121e387dfa478b924d1a28a439ae2318cafe Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Wed, 21 Sep 2016 14:32:48 +0100 Subject: [PATCH] update.sh: tweak tag handling. - Don't let the `UPSTREAM_TAG` variable bleed into future repository checks. - Even if the tag branch is an ancestor of the tag ensure that it's forced back to the tag anyway. --- Library/Homebrew/cmd/update.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/cmd/update.sh b/Library/Homebrew/cmd/update.sh index eb15e102914f8..a043853d81764 100644 --- a/Library/Homebrew/cmd/update.sh +++ b/Library/Homebrew/cmd/update.sh @@ -218,6 +218,8 @@ merge_or_rebase() { if [[ "$DIR" = "$HOMEBREW_REPOSITORY" && -z "$HOMEBREW_NO_UPDATE_CLEANUP" ]] then UPSTREAM_TAG="$(git tag --list --sort=-version:refname | head -n1)" + else + UPSTREAM_TAG="" fi if [ -n "$UPSTREAM_TAG" ] @@ -253,7 +255,8 @@ EOS fi INITIAL_BRANCH="$(git symbolic-ref --short HEAD 2>/dev/null)" - if [[ "$INITIAL_BRANCH" != "$UPSTREAM_BRANCH" && -n "$INITIAL_BRANCH" ]] + if [[ -n "$UPSTREAM_TAG" ]] || + [[ "$INITIAL_BRANCH" != "$UPSTREAM_BRANCH" && -n "$INITIAL_BRANCH" ]] then if [[ -z "$HOMEBREW_NO_UPDATE_CLEANUP" ]] @@ -265,7 +268,8 @@ EOS # Recreate and check out `#{upstream_branch}` if unable to fast-forward # it to `origin/#{@upstream_branch}`. Otherwise, just check it out. - if git merge-base --is-ancestor "$UPSTREAM_BRANCH" "$REMOTE_REF" &>/dev/null + if [[ -z "$UPSTREAM_TAG" ]] && + git merge-base --is-ancestor "$UPSTREAM_BRANCH" "$REMOTE_REF" &>/dev/null then git checkout --force "$UPSTREAM_BRANCH" "${QUIET_ARGS[@]}" else