diff options
| author | Jack Nagel | 2013-12-17 20:43:45 -0600 |
|---|---|---|
| committer | Jack Nagel | 2013-12-17 20:43:45 -0600 |
| commit | 4e11656e01f4f182bf7357b2bedc2fb4f1be1fa2 (patch) | |
| tree | c2bb2043fdb33eded605f4e4f2a09cac2b5402f3 /Library/Homebrew/cmd | |
| parent | 268e32e37ce59ce6a90b4a5c15754b7ce37fee2a (diff) | |
| download | brew-4e11656e01f4f182bf7357b2bedc2fb4f1be1fa2.tar.bz2 | |
versions: improve performance of rev_list
Diffstat (limited to 'Library/Homebrew/cmd')
| -rw-r--r-- | Library/Homebrew/cmd/versions.rb | 8 |
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 |
