summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>2011-02-15 07:04:49 +0000
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>2011-02-15 07:04:49 +0000
commit50bbb97848dd09119f650d62544ccdbf1bdae933 (patch)
treeb8b77c95045b2470a8b4d5a00f685f6ff38c2fb1 /lib
parenta9429df880f588f4df05c736afa18ca668a0c6ec (diff)
downloadredmine-50bbb97848dd09119f650d62544ccdbf1bdae933.tar.gz
redmine-50bbb97848dd09119f650d62544ccdbf1bdae933.zip
scm: bazaar: add methods of getting bazaar version and add unit lib test (#4273).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4831 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'lib')
-rw-r--r--lib/redmine/scm/adapters/bazaar_adapter.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/redmine/scm/adapters/bazaar_adapter.rb b/lib/redmine/scm/adapters/bazaar_adapter.rb
index 1a11f639a..8bfa2bf25 100644
--- a/lib/redmine/scm/adapters/bazaar_adapter.rb
+++ b/lib/redmine/scm/adapters/bazaar_adapter.rb
@@ -33,6 +33,25 @@ module Redmine
def sq_bin
@@sq_bin ||= shell_quote(BZR_BIN)
end
+
+ def client_version
+ @@client_version ||= (scm_command_version || [])
+ end
+
+ def client_available
+ !client_version.empty?
+ end
+
+ def scm_command_version
+ scm_version = scm_version_from_command_line
+ if m = scm_version.match(%r{\A(.*?)((\d+\.)+\d+)})
+ m[2].scan(%r{\d+}).collect(&:to_i)
+ end
+ end
+
+ def scm_version_from_command_line
+ shellout("#{sq_bin} --version") { |io| io.read }.to_s
+ end
end
# Get info about the repository