Merge pull request #20099 from Homebrew/more_update_main_changes
cmd/update*: more fixes to allow migration from `master` to `main`.
This commit is contained in:
		
						commit
						6fb115d342
					
				@ -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
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user