aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/versions.rb
diff options
context:
space:
mode:
authorJack Nagel2013-12-17 20:43:45 -0600
committerJack Nagel2013-12-17 20:43:45 -0600
commit4e11656e01f4f182bf7357b2bedc2fb4f1be1fa2 (patch)
treec2bb2043fdb33eded605f4e4f2a09cac2b5402f3 /Library/Homebrew/cmd/versions.rb
parent268e32e37ce59ce6a90b4a5c15754b7ce37fee2a (diff)
downloadbrew-4e11656e01f4f182bf7357b2bedc2fb4f1be1fa2.tar.bz2
versions: improve performance of rev_list
Diffstat (limited to 'Library/Homebrew/cmd/versions.rb')
-rw-r--r--Library/Homebrew/cmd/versions.rb8
1 files changed, 5 insertions, 3 deletions
diff --git a/Library/Homebrew/cmd/versions.rb b/Library/Homebrew/cmd/versions.rb
index d92627270..f76c7b8bb 100644
--- a/Library/Homebrew/cmd/versions.rb
+++ b/Library/Homebrew/cmd/versions.rb
@@ -31,7 +31,7 @@ end
class Formula
def versions
versions = []
- rev_list.each do |sha|
+ rev_list do |sha|
version = version_for_sha sha
unless versions.include? version or version.nil?
yield version, sha if block_given?
@@ -43,7 +43,7 @@ class Formula
def bottle_version_map branch='HEAD'
map = Hash.new { |h, k| h[k] = [] }
- rev_list(branch).each do |rev|
+ rev_list(branch) do |rev|
formula_for_sha(rev) do |f|
bottle = f.class.send(:bottle)
unless bottle.checksums.empty?
@@ -81,7 +81,9 @@ class Formula
def rev_list branch='HEAD'
repository.cd do
- `git rev-list --abbrev-commit --remove-empty #{branch} -- #{entry_name}`.split
+ IO.popen("git rev-list --abbrev-commit --remove-empty #{branch} -- #{entry_name}") do |io|
+ yield io.readline.chomp until io.eof?
+ end
end
end