diff options
author | Jean Boussier <jean.boussier@gmail.com> | 2018-09-26 14:57:54 +0200 |
---|---|---|
committer | Jean Boussier <jean.boussier@gmail.com> | 2018-09-27 15:53:27 +0200 |
commit | 2264db9b12cf7ef74163b711baea95cfd91411e4 (patch) | |
tree | e809ff7a13a03f5ba70fcb1b1ee7c7e00b1333bd | |
parent | 8501b1e3608579acf53a4978b62c0d8891d23005 (diff) | |
download | bundler-2264db9b12cf7ef74163b711baea95cfd91411e4.tar.gz |
Avoid fetching an rebuilding git gems when it's not necessary
-rw-r--r-- | lib/bundler/source/git.rb | 6 | ||||
-rw-r--r-- | spec/install/gemfile/git_spec.rb | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/bundler/source/git.rb b/lib/bundler/source/git.rb index 0b00608bdd..33f0af89ee 100644 --- a/lib/bundler/source/git.rb +++ b/lib/bundler/source/git.rb @@ -260,7 +260,11 @@ module Bundler end def requires_checkout? - allow_git_ops? && !local? + !cached_revision_checked_out? && allow_git_ops? && !local? + end + + def cached_revision_checked_out? + cached_revision && cached_revision == revision && install_path.exist? end def base_name diff --git a/spec/install/gemfile/git_spec.rb b/spec/install/gemfile/git_spec.rb index 7f7a1ae4c9..843a177af4 100644 --- a/spec/install/gemfile/git_spec.rb +++ b/spec/install/gemfile/git_spec.rb @@ -1211,6 +1211,7 @@ In Gemfile: install_gemfile <<-G source "file://#{gem_repo1}" + gem "rack", "0.9.1" gem "foo", :git => "#{lib_path("foo-1.0")}" G @@ -1224,6 +1225,7 @@ In Gemfile: install_gemfile <<-G source "file://#{gem_repo1}" + gem "rack", "1.0.0" gem "foo", :git => "#{lib_path("foo-1.0")}" G |