From 28d6a0f4de981a116bbdf7dc73fad30f93609d9d Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Fri, 2 Mar 2012 18:23:49 -0600 Subject: [PATCH] update: disable git line ending conversion If a user has set core.autocrlf = true (which shouldn't ever be used on OS X, but alas...), a subsequent `brew update` will check out files with CRLF line endings. Setting core.autocrlf = false in Homebrew's repo config will override this global setting, and let us check out files with their in-repository line endings. Signed-off-by: Jack Nagel --- Library/Homebrew/cmd/update.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Library/Homebrew/cmd/update.rb b/Library/Homebrew/cmd/update.rb index 1073ef1f0a..7e4157a03c 100644 --- a/Library/Homebrew/cmd/update.rb +++ b/Library/Homebrew/cmd/update.rb @@ -29,6 +29,9 @@ class RefreshBrew # Performs an update of the homebrew source. Returns +true+ if a newer # version was available, +false+ if already up-to-date. def update_from_masterbrew! + # ensure GIT_CONFIG is unset as we need to operate on .git/config + ENV.delete('GIT_CONFIG') + HOMEBREW_REPOSITORY.cd do if git_repo? safe_system "git checkout -q master" @@ -41,6 +44,7 @@ class RefreshBrew else begin safe_system "git init" + safe_system "git config core.autocrlf false" safe_system "git remote add origin #{REPOSITORY_URL}" safe_system "git fetch origin" safe_system "git reset --hard origin/master" @@ -50,6 +54,8 @@ class RefreshBrew end end + # ensure we don't munge line endings on checkout + safe_system "git config core.autocrlf false" # specify a refspec so that 'origin/master' gets updated refspec = "refs/heads/master:refs/remotes/origin/master" rebase = "--rebase" if ARGV.include? "--rebase"