diff --git a/Library/Homebrew/cmd/update-report.rb b/Library/Homebrew/cmd/update-report.rb index 91395f4e98..a897e83156 100644 --- a/Library/Homebrew/cmd/update-report.rb +++ b/Library/Homebrew/cmd/update-report.rb @@ -320,10 +320,11 @@ module Homebrew return if (HOMEBREW_PREFIX/".homebrewdocker").exist? tap_output_header_printed = T.let(false, T::Boolean) + default_branches = %w[main master].freeze [CoreTap.instance, CoreCaskTap.instance].each do |tap| next unless tap.installed? - if tap.git_branch == "master" && + if default_branches.include?(tap.git_branch) && (Date.parse(T.must(tap.git_repository.last_commit_date)) <= Date.today.prev_month) ohai "#{tap.name} is old and unneeded, untapping to save space..." tap.uninstall diff --git a/Library/Homebrew/cmd/update.sh b/Library/Homebrew/cmd/update.sh index 81439dbe21..21bea55af7 100644 --- a/Library/Homebrew/cmd/update.sh +++ b/Library/Homebrew/cmd/update.sh @@ -54,9 +54,10 @@ git_init_if_necessary() { fi git config remote.origin.url "${HOMEBREW_BREW_GIT_REMOTE}" git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" + git config fetch.prune true git fetch --force --tags origin git remote set-head origin --auto >/dev/null - git reset --hard origin/master + git reset --hard origin/HEAD SKIP_FETCH_BREW_REPOSITORY=1 set +e trap - EXIT @@ -77,9 +78,10 @@ git_init_if_necessary() { fi git config remote.origin.url "${HOMEBREW_CORE_GIT_REMOTE}" git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" - git fetch --force origin refs/heads/master:refs/remotes/origin/master + git config fetch.prune true + git fetch --force origin git remote set-head origin --auto >/dev/null - git reset --hard origin/master + git reset --hard origin/HEAD SKIP_FETCH_CORE_REPOSITORY=1 set +e trap - EXIT @@ -110,7 +112,7 @@ upstream_branch() { upstream_branch="$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null)" fi upstream_branch="${upstream_branch#refs/remotes/origin/}" - [[ -z "${upstream_branch}" ]] && upstream_branch="master" + [[ -z "${upstream_branch}" ]] && upstream_branch="main" echo "${upstream_branch}" } @@ -242,7 +244,7 @@ merge_or_rebase() { Could not 'git stash' in ${DIR}! Please stash/commit manually if you need to keep your changes or, if not, run: cd ${DIR} - git reset --hard origin/master + git reset --hard origin/HEAD EOS fi git reset --hard "${QUIET_ARGS[@]}" @@ -260,10 +262,12 @@ EOS then git checkout --force "${UPSTREAM_BRANCH}" "${QUIET_ARGS[@]}" else - if [[ -n "${UPSTREAM_TAG}" && "${UPSTREAM_BRANCH}" != "master" ]] && - [[ "${INITIAL_BRANCH}" != "master" ]] + if [[ -n "${UPSTREAM_TAG}" && "${UPSTREAM_BRANCH}" != "master" && "${UPSTREAM_BRANCH}" != "main" ]] && + [[ "${INITIAL_BRANCH}" != "master" && "${INITIAL_BRANCH}" != "main" ]] then - git branch --force "master" "origin/master" "${QUIET_ARGS[@]}" + local detected_upstream_branch + detected_upstream_branch="$(upstream_branch)" + git branch --force "${detected_upstream_branch}" "origin/${detected_upstream_branch}" "${QUIET_ARGS[@]}" fi git checkout --force -B "${UPSTREAM_BRANCH}" "${REMOTE_REF}" "${QUIET_ARGS[@]}" @@ -541,7 +545,8 @@ EOS echo "HOMEBREW_CORE_GIT_REMOTE set: using ${HOMEBREW_CORE_GIT_REMOTE} as the Homebrew/homebrew-core Git remote." git remote set-url origin "${HOMEBREW_CORE_GIT_REMOTE}" git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" - git fetch --force origin refs/heads/master:refs/remotes/origin/master + git config fetch.prune true + git fetch --force origin SKIP_FETCH_CORE_REPOSITORY=1 fi @@ -642,9 +647,9 @@ EOS UPDATING_MESSAGE_SHOWN=1 fi - # The upstream repository's default branch may not be master; + # The upstream repository's default branch may not be main or 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". + # origin branch name is, and use that. If not set, fall back to "main". # the refspec ensures that the default upstream branch gets updated ( UPSTREAM_REPOSITORY_URL="$(git config remote.origin.url)" @@ -732,9 +737,9 @@ EOS then local git_errors git_errors="$(cat "${tmp_failure_file}")" + # Attempt migration from master to main branch. if [[ "${git_errors}" == "fatal: couldn't find remote ref refs/heads/master" ]] then - # Attempt migration from master to main branch. if git fetch --tags --force "${QUIET_ARGS[@]}" origin \ "refs/heads/main:refs/remotes/origin/main" 2>>"${tmp_failure_file}" then