From 985c672bac4dc20d369b451c484eb6553762dbcf Mon Sep 17 00:00:00 2001 From: Mike McQuaid Date: Thu, 11 Aug 2016 10:57:08 +0100 Subject: [PATCH] update.sh: check upstream SHA prefetch not local. Otherwise this can prevent taps from being updated as expected. --- Library/Homebrew/cmd/update.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/cmd/update.sh b/Library/Homebrew/cmd/update.sh index d622352a22..b32302cc0d 100644 --- a/Library/Homebrew/cmd/update.sh +++ b/Library/Homebrew/cmd/update.sh @@ -383,8 +383,15 @@ EOS [[ -d "$DIR/.git" ]] || continue cd "$DIR" || continue + if [[ -n "$HOMEBREW_VERBOSE" ]] + then + echo "Checking if we need to fetch $DIR..." + fi + TAP_VAR="$(repo_var "$DIR")" - declare PREFETCH_REVISION"$TAP_VAR"="$(read_current_revision)" + UPSTREAM_BRANCH="$(upstream_branch)" + declare UPSTREAM_BRANCH"$TAP_VAR"="$UPSTREAM_BRANCH" + declare PREFETCH_REVISION"$TAP_VAR"="$(git rev-parse -q --verify refs/remotes/origin/"$UPSTREAM_BRANCH")" [[ -n "$SKIP_FETCH_BREW_REPOSITORY" && "$DIR" = "$HOMEBREW_REPOSITORY" ]] && continue [[ -n "$SKIP_FETCH_CORE_REPOSITORY" && "$DIR" = "$HOMEBREW_LIBRARY/Taps/homebrew/homebrew-core" ]] && continue @@ -392,9 +399,6 @@ EOS # The upstream repository's default branch may not be master; # check refs/remotes/origin/HEAD to see what the default # origin branch name is, and use that. If not set, fall back to "master". - UPSTREAM_BRANCH="$(upstream_branch)" - declare UPSTREAM_BRANCH"$TAP_VAR"="$UPSTREAM_BRANCH" - # the refspec ensures that the default upstream branch gets updated ( if [[ -n "$HOMEBREW_UPDATE_PREINSTALL" ]] @@ -485,9 +489,8 @@ EOS export HOMEBREW_UPDATE_AFTER"$TAP_VAR"="$CURRENT_REVISION" else merge_or_rebase "$DIR" "$TAP_VAR" "$UPSTREAM_BRANCH" + [[ -n "$HOMEBREW_VERBOSE" ]] && echo fi - - [[ -n "$HOMEBREW_VERBOSE" ]] && echo done safe_cd "$HOMEBREW_REPOSITORY"