summaryrefslogtreecommitdiffstats
path: root/lib/redmine
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2010-02-20 13:35:22 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2010-02-20 13:35:22 +0000
commit4878d749f4997a6c8ec6852e63aa9af5fca62a0b (patch)
tree793784077e85710ca23d58f66eb37be8035128d1 /lib/redmine
parent46aa855572a26a1b0fab211e4ec79453ac8790fc (diff)
downloadredmine-4878d749f4997a6c8ec6852e63aa9af5fca62a0b.tar.gz
redmine-4878d749f4997a6c8ec6852e63aa9af5fca62a0b.zip
Do not query git for tags and branches multiple times per request.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3467 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'lib/redmine')
-rw-r--r--lib/redmine/scm/adapters/git_adapter.rb11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/redmine/scm/adapters/git_adapter.rb b/lib/redmine/scm/adapters/git_adapter.rb
index 604407f5b..d4678b12d 100644
--- a/lib/redmine/scm/adapters/git_adapter.rb
+++ b/lib/redmine/scm/adapters/git_adapter.rb
@@ -33,21 +33,22 @@ module Redmine
end
def branches
- branches = []
+ return @branches if @branches
+ @branches = []
cmd = "#{GIT_BIN} --git-dir #{target('')} branch"
shellout(cmd) do |io|
io.each_line do |line|
- branches << line.match('\s*\*?\s*(.*)$')[1]
+ @branches << line.match('\s*\*?\s*(.*)$')[1]
end
end
- branches.sort!
+ @branches.sort!
end
def tags
- tags = []
+ return @tags if @tags
cmd = "#{GIT_BIN} --git-dir #{target('')} tag"
shellout(cmd) do |io|
- io.readlines.sort!.map{|t| t.strip}
+ @tags = io.readlines.sort!.map{|t| t.strip}
end
end