diff options
| author | Jack Nagel | 2012-03-02 18:23:49 -0600 | 
|---|---|---|
| committer | Jack Nagel | 2012-03-02 18:37:48 -0600 | 
| commit | 28d6a0f4de981a116bbdf7dc73fad30f93609d9d (patch) | |
| tree | 5553639260a8101b18f0072234c01a9bf6716ad1 /Library | |
| parent | caa3c4f864ce96a84249c322bce0ccd6758e10be (diff) | |
| download | brew-28d6a0f4de981a116bbdf7dc73fad30f93609d9d.tar.bz2 | |
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 <jacknagel@gmail.com>
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/cmd/update.rb | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/Library/Homebrew/cmd/update.rb b/Library/Homebrew/cmd/update.rb index 1073ef1f0..7e4157a03 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"  | 
