diff options
| -rw-r--r-- | Library/Formula/git-multipush.rb | 4 | ||||
| -rw-r--r-- | Library/Formula/reattach-to-user-namespace.rb | 2 | ||||
| -rw-r--r-- | Library/Formula/topgit.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/download_strategy.rb | 43 | 
4 files changed, 31 insertions, 20 deletions
| diff --git a/Library/Formula/git-multipush.rb b/Library/Formula/git-multipush.rb index 7ab88fd74..a6c70b4b7 100644 --- a/Library/Formula/git-multipush.rb +++ b/Library/Formula/git-multipush.rb @@ -5,13 +5,13 @@ class GitMultipush < Formula    url 'http://git-multipush.googlecode.com/files/git-multipush-2.3.tar.bz2'    sha1 'a53f171af5e794afe9b1de6ccd9bd0661db6fd91' -  head 'https://github.com/gavinbeatty/git-multipush.git', :sha => 'HEAD' +  head 'https://github.com/gavinbeatty/git-multipush.git', :revision => 'HEAD'    depends_on 'asciidoc' => :build if ARGV.build_head?    def install      if ARGV.build_head? -      ENV['GIT_DIR'] = cached_location/'.git' +      ENV['GIT_DIR'] = cached_download/'.git'        inreplace 'make/gen-version.mk', '.git', '$(GIT_DIR)'        system "make"      end diff --git a/Library/Formula/reattach-to-user-namespace.rb b/Library/Formula/reattach-to-user-namespace.rb index aed66dadc..7f9357399 100644 --- a/Library/Formula/reattach-to-user-namespace.rb +++ b/Library/Formula/reattach-to-user-namespace.rb @@ -3,7 +3,7 @@ require 'formula'  class ReattachToUserNamespace < Formula    head 'https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard.git'    homepage 'https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard' -  url 'https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard.git', :tag => 'dadea0aa48259c704d0b412b9588de2f5623e323' +  url 'https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard.git', :revision => 'dadea0aa48259c704d0b412b9588de2f5623e323'    version 'dadea0'    def options diff --git a/Library/Formula/topgit.rb b/Library/Formula/topgit.rb index bca8c570a..9d5032642 100644 --- a/Library/Formula/topgit.rb +++ b/Library/Formula/topgit.rb @@ -2,7 +2,7 @@ require 'formula'  class Topgit < Formula    homepage 'http://repo.or.cz/w/topgit.git' -  url 'git://repo.or.cz/topgit.git', :tag => '1744aca50f3d7b6b4863523207e5010e112dfb85' +  url 'git://repo.or.cz/topgit.git', :revision => '1744aca50f3d7b6b4863523207e5010e112dfb85'    version '0.8'    def install diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb index 6b8aff900..6a5dd6ac7 100644 --- a/Library/Homebrew/download_strategy.rb +++ b/Library/Homebrew/download_strategy.rb @@ -324,14 +324,10 @@ class GitDownloadStrategy < AbstractDownloadStrategy    end    def support_depth? -    !commit_history_required? and depth_supported_host? +    @spec != :revision and host_supports_depth?    end -  def commit_history_required? -    @spec == :sha -  end - -  def depth_supported_host? +  def host_supports_depth?      @url =~ %r(git://) or @url =~ %r(https://github.com/)    end @@ -352,16 +348,31 @@ class GitDownloadStrategy < AbstractDownloadStrategy      unless @clone.exist?        # Note: first-time checkouts are always done verbosely -      git_args = %w(git clone) -      git_args << "--depth" << "1" if support_depth? -      git_args << @url << @clone -      safe_system(*git_args) +      clone_args = %w[git clone] +      clone_args << '--single-branch' +      clone_args << '--depth' << '1' if support_depth? + +      case @spec +      when :branch, :tag +        clone_args << '--branch' << @ref +      end + +      clone_args << @url << @clone +      safe_system(*clone_args)      else        puts "Updating #{@clone}"        Dir.chdir(@clone) do -        safe_system 'git', 'remote', 'set-url', 'origin', @url -        quiet_safe_system 'git', 'fetch', 'origin' -        quiet_safe_system 'git', 'fetch', '--tags' if @spec == :tag +        safe_system 'git', 'config', 'remote.origin.url', @url + +        safe_system 'git', 'config', 'remote.origin.fetch', case @spec +          when :branch then "+refs/heads/#{@ref}:refs/remotes/origin/#{@ref}" +          when :tag then "+refs/tags/#{@ref}:refs/tags/#{@ref}" +          else '+refs/heads/master:refs/remotes/origin/master' +          end + +        git_args = %w[git fetch origin] +        git_args << '--depth' << '1' if support_depth? +        quiet_safe_system(*git_args)        end      end    end @@ -373,9 +384,9 @@ class GitDownloadStrategy < AbstractDownloadStrategy          ohai "Checking out #{@spec} #{@ref}"          case @spec          when :branch -          nostdout { quiet_safe_system 'git', 'checkout', "origin/#{@ref}" } -        when :tag, :sha -          nostdout { quiet_safe_system 'git', 'checkout', @ref } +          nostdout { quiet_safe_system 'git', 'checkout', "origin/#{@ref}", '--' } +        when :tag, :revision +          nostdout { quiet_safe_system 'git', 'checkout', @ref, '--' }          end        else          # otherwise the checkout-index won't checkout HEAD | 
