From 77f2a24a6b0f881b144396179a8cf6c194b39b10 Mon Sep 17 00:00:00 2001 From: shcai97 Date: Wed, 9 Sep 2020 01:12:58 +0800 Subject: [PATCH] use sort to fix latest_tag --- 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 cbcc76e2db..4d5202874e 100644 --- a/Library/Homebrew/cmd/update.sh +++ b/Library/Homebrew/cmd/update.sh @@ -428,8 +428,12 @@ EOS echo "HOMEBREW_BREW_GIT_REMOTE set: using $HOMEBREW_BREW_GIT_REMOTE for Homebrew/brew Git remote." git remote set-url origin "$HOMEBREW_BREW_GIT_REMOTE" git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" - latest_tag="$(git ls-remote --tags --refs --sort=v:refname -q origin | tail -n1 | cut -f2)" - git fetch --force origin --shallow-since="$latest_tag" + latest_tag="$(git ls-remote --tags --refs -q origin | + cut -d/ -f3 | + sort --field-separator=. --key=1,1nr -k 2,2nr -k 3,3nr| + head -n1)" + latest_ref="refs/tags/$latest_tag" + git fetch --force origin --shallow-since="$latest_ref" fi if [[ "$HOMEBREW_CORE_DEFAULT_GIT_REMOTE" != "$HOMEBREW_CORE_GIT_REMOTE" ]] &&