diff --git a/Library/Homebrew/brew.sh b/Library/Homebrew/brew.sh index 984571de1f..5cf45e4c18 100644 --- a/Library/Homebrew/brew.sh +++ b/Library/Homebrew/brew.sh @@ -102,6 +102,7 @@ then if [[ "$HOMEBREW_MACOS_VERSION_NUMERIC" -lt "100900" ]] then HOMEBREW_SYSTEM_GIT_TOO_OLD="1" + HOMEBREW_FORCE_BREWED_GIT="1" fi if [[ -z "$HOMEBREW_CACHE" ]] @@ -135,6 +136,15 @@ else HOMEBREW_CURL="curl" fi +if [[ -n "$HOMEBREW_FORCE_BREWED_GIT" && + -x "$HOMEBREW_PREFIX/opt/git/bin/git" ]] && + "$HOMEBREW_PREFIX/opt/git/bin/git" --version >/dev/null +then + HOMEBREW_GIT="$HOMEBREW_PREFIX/opt/git/bin/git" +else + HOMEBREW_GIT="git" +fi + HOMEBREW_USER_AGENT="$HOMEBREW_PRODUCT/$HOMEBREW_USER_AGENT_VERSION ($HOMEBREW_SYSTEM; $HOMEBREW_PROCESSOR $HOMEBREW_OS_USER_AGENT_VERSION)" HOMEBREW_CURL_VERSION="$("$HOMEBREW_CURL" --version 2>/dev/null | head -n1 | awk '{print $1"/"$2}')" HOMEBREW_USER_AGENT_CURL="$HOMEBREW_USER_AGENT $HOMEBREW_CURL_VERSION" diff --git a/Library/Homebrew/cmd/update.sh b/Library/Homebrew/cmd/update.sh index d3dae2be31..10668d2596 100644 --- a/Library/Homebrew/cmd/update.sh +++ b/Library/Homebrew/cmd/update.sh @@ -384,7 +384,8 @@ EOS fi if ! git --version &>/dev/null || - [[ -n "$HOMEBREW_SYSTEM_GIT_TOO_OLD" && + [[ ( -n "$HOMEBREW_SYSTEM_GIT_TOO_OLD" || + -n "$HOMEBREW_FORCE_BREWED_GIT" ) && ! -x "$HOMEBREW_PREFIX/opt/git/bin/git" ]] then # we cannot install brewed git if homebrew/core is unavailable. diff --git a/Library/Homebrew/manpages/brew.1.md.erb b/Library/Homebrew/manpages/brew.1.md.erb index 100a69d297..902d6bde5b 100644 --- a/Library/Homebrew/manpages/brew.1.md.erb +++ b/Library/Homebrew/manpages/brew.1.md.erb @@ -184,6 +184,10 @@ Note that environment variables must have a value set to be detected. For exampl Set this to force Homebrew to use a particular git binary. + * `HOMEBREW_FORCE_BREWED_GIT`: + If set, Homebrew will use a Homebrew-installed `git` rather than the + system version. + * `HOMEBREW_GITHUB_API_TOKEN`: A personal access token for the GitHub API, which you can create at . If set, GitHub will allow you a diff --git a/docs/Manpage.md b/docs/Manpage.md index 4666a3999f..9bfc267717 100644 --- a/docs/Manpage.md +++ b/docs/Manpage.md @@ -1167,6 +1167,10 @@ Note that environment variables must have a value set to be detected. For exampl Set this to force Homebrew to use a particular git binary. + * `HOMEBREW_FORCE_BREWED_GIT`: + If set, Homebrew will use a Homebrew-installed `git` rather than the + system version. + * `HOMEBREW_GITHUB_API_TOKEN`: A personal access token for the GitHub API, which you can create at . If set, GitHub will allow you a