diff options
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/cmd/log.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/update-reset.sh | 2 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/update.sh | 4 | ||||
| -rw-r--r-- | Library/Homebrew/download_strategy.rb | 24 | ||||
| -rw-r--r-- | Library/Homebrew/gitconfig/.gitconfig | 14 | ||||
| -rw-r--r-- | Library/Homebrew/tap.rb | 4 | ||||
| -rw-r--r-- | Library/Homebrew/utils/git.rb | 6 | 
7 files changed, 45 insertions, 11 deletions
| diff --git a/Library/Homebrew/cmd/log.rb b/Library/Homebrew/cmd/log.rb index 898e921ba..64e8a2e64 100644 --- a/Library/Homebrew/cmd/log.rb +++ b/Library/Homebrew/cmd/log.rb @@ -39,6 +39,6 @@ module Homebrew      end      args = ARGV.options_only      args += ["--follow", "--", path] unless path.nil? -    exec "git", "log", *args +    Utils.with_homebrew_gitconfig { exec "git", "log", *args }    end  end diff --git a/Library/Homebrew/cmd/update-reset.sh b/Library/Homebrew/cmd/update-reset.sh index 5ba8ec9d8..3b166b8ed 100644 --- a/Library/Homebrew/cmd/update-reset.sh +++ b/Library/Homebrew/cmd/update-reset.sh @@ -28,6 +28,8 @@ EOS      set -x    fi +  export HOME="$HOMEBREW_LIBRARY/Homebrew/gitconfig" +    for DIR in "$HOMEBREW_REPOSITORY" "$HOMEBREW_LIBRARY"/Taps/*/*    do      [[ -d "$DIR/.git" ]] || continue diff --git a/Library/Homebrew/cmd/update.sh b/Library/Homebrew/cmd/update.sh index 747784527..c28a79d02 100644 --- a/Library/Homebrew/cmd/update.sh +++ b/Library/Homebrew/cmd/update.sh @@ -19,7 +19,11 @@ git() {    then      GIT_EXECUTABLE="$("$HOMEBREW_LIBRARY/Homebrew/shims/scm/git" --homebrew=print-path)"    fi +  OLDHOME="$HOME" +  export HOME="$HOMEBREW_LIBRARY/Homebrew/gitconfig"    "$GIT_EXECUTABLE" "$@" +  export HOME="$OLDHOME" +  unset OLDHOME  }  git_init_if_necessary() { diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb index feb518057..4df9596a6 100644 --- a/Library/Homebrew/download_strategy.rb +++ b/Library/Homebrew/download_strategy.rb @@ -793,15 +793,19 @@ class GitDownloadStrategy < VCSDownloadStrategy    def update_repo      return unless @ref_type == :branch || !ref? -    if !shallow_clone? && shallow_dir? -      quiet_safe_system "git", "fetch", "origin", "--unshallow" -    else -      quiet_safe_system "git", "fetch", "origin" +    Utils.with_homebrew_gitconfig do +      if !shallow_clone? && shallow_dir? +        quiet_safe_system "git", "fetch", "origin", "--unshallow" +      else +        quiet_safe_system "git", "fetch", "origin" +      end      end    end    def clone_repo -    safe_system "git", *clone_args +    Utils.with_homebrew_gitconfig do +      safe_system "git", *clone_args +    end      cached_location.cd do        safe_system "git", "config", "homebrew.cacheversion", cache_version        checkout @@ -811,7 +815,9 @@ class GitDownloadStrategy < VCSDownloadStrategy    def checkout      ohai "Checking out #{@ref_type} #{@ref}" if @ref_type && @ref -    quiet_safe_system "git", "checkout", "-f", @ref, "--" +    Utils.with_homebrew_gitconfig do +      quiet_safe_system "git", "checkout", "-f", @ref, "--" +    end    end    def reset_args @@ -830,8 +836,10 @@ class GitDownloadStrategy < VCSDownloadStrategy    end    def update_submodules -    quiet_safe_system "git", "submodule", "foreach", "--recursive", "git submodule sync" -    quiet_safe_system "git", "submodule", "update", "--init", "--recursive" +    Utils.with_homebrew_gitconfig do +      quiet_safe_system "git", "submodule", "foreach", "--recursive", "git submodule sync" +      quiet_safe_system "git", "submodule", "update", "--init", "--recursive" +    end      fix_absolute_submodule_gitdir_references!    end diff --git a/Library/Homebrew/gitconfig/.gitconfig b/Library/Homebrew/gitconfig/.gitconfig new file mode 100644 index 000000000..2f68bde0d --- /dev/null +++ b/Library/Homebrew/gitconfig/.gitconfig @@ -0,0 +1,14 @@ +[user] +	# Name used in commit messages. +	name = Homebrew +	# Email used in commit messages. +	email = git@brew.sh +[fetch] +	# Always prune when fetching (and pulling). +	prune = 1 +[core] +	# Don't prompt for commit messages for merge commits. +	mergeoptions = --no-edit +[credential] +	# Use macOS Keychain to store HTTP passwords. +	helper = osxkeychain diff --git a/Library/Homebrew/tap.rb b/Library/Homebrew/tap.rb index ed93e1266..291bbe077 100644 --- a/Library/Homebrew/tap.rb +++ b/Library/Homebrew/tap.rb @@ -230,7 +230,7 @@ class Tap        ohai "Unshallowing #{name}" unless quiet        args = %w[fetch --unshallow]        args << "-q" if quiet -      path.cd { safe_system "git", *args } +      Utils.with_homebrew_gitconfig { path.cd { safe_system "git", *args } }        return      end @@ -242,7 +242,7 @@ class Tap      args << "-q" if quiet      begin -      safe_system "git", *args +      Utils.with_homebrew_gitconfig { safe_system "git", *args }        unless Readall.valid_tap?(self, aliases: true)          unless ARGV.homebrew_developer?            raise "Cannot tap #{name}: invalid syntax in tap!" diff --git a/Library/Homebrew/utils/git.rb b/Library/Homebrew/utils/git.rb index f1113af66..c50979b1e 100644 --- a/Library/Homebrew/utils/git.rb +++ b/Library/Homebrew/utils/git.rb @@ -60,6 +60,12 @@ module Utils      raise "Git is unavailable" unless git_available?    end +  def self.with_homebrew_gitconfig +    with_env(HOME: HOMEBREW_LIBRARY/"Homebrew/gitconfig") do +      yield if block_given? +    end +  end +    def self.clear_git_available_cache      @git = nil      @git_path = nil | 
