From 249e8e29f9add84e44e66bd453f82e8a68e8f6d1 Mon Sep 17 00:00:00 2001 From: shcai97 Date: Tue, 8 Sep 2020 10:41:45 +0800 Subject: [PATCH 1/3] fix latest_tag in homebrew/brew update --- Library/Homebrew/cmd/update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Library/Homebrew/cmd/update.sh b/Library/Homebrew/cmd/update.sh index 71530f6349..cbcc76e2db 100644 --- a/Library/Homebrew/cmd/update.sh +++ b/Library/Homebrew/cmd/update.sh @@ -428,7 +428,7 @@ 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 -q origin | tail -n1 | cut -f2)" + latest_tag="$(git ls-remote --tags --refs --sort=v:refname -q origin | tail -n1 | cut -f2)" git fetch --force origin --shallow-since="$latest_tag" fi From 77f2a24a6b0f881b144396179a8cf6c194b39b10 Mon Sep 17 00:00:00 2001 From: shcai97 Date: Wed, 9 Sep 2020 01:12:58 +0800 Subject: [PATCH 2/3] 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" ]] && From 1789c27b323df5fd48d191780b2c1b67a637638b Mon Sep 17 00:00:00 2001 From: shcai97 <70462468+shcai97@users.noreply.github.com> Date: Wed, 9 Sep 2020 10:21:46 +0800 Subject: [PATCH 3/3] use --key and --numeric-sort Co-authored-by: Maxim Belkin --- Library/Homebrew/cmd/update.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/cmd/update.sh b/Library/Homebrew/cmd/update.sh index 4d5202874e..a30f74ec3e 100644 --- a/Library/Homebrew/cmd/update.sh +++ b/Library/Homebrew/cmd/update.sh @@ -430,8 +430,8 @@ EOS git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" 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)" + sort --numeric-sort --field-separator=. --key=1,1 --key=2,2 --key=3,3 | + tail -n1)" latest_ref="refs/tags/$latest_tag" git fetch --force origin --shallow-since="$latest_ref" fi