Fixed: MercurialAdapter.client_version depends on LANG environment variable (#5117).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4417 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2010-11-20 14:04:22 +00:00
parent 1f237388bd
commit 6b72c66893
2 changed files with 9 additions and 8 deletions

View File

@ -38,13 +38,13 @@ module Redmine
# release number (eg 0.9.5 or 1.0) or as a revision # release number (eg 0.9.5 or 1.0) or as a revision
# id composed of 12 hexa characters. # id composed of 12 hexa characters.
theversion = hgversion_from_command_line theversion = hgversion_from_command_line
if theversion.match(/^\d+(\.\d+)+/) if m = theversion.match(/\b\d+(\.\d+)+\b/)
theversion.split(".").collect(&:to_i) m[0].split(".").collect(&:to_i)
end end
end end
def hgversion_from_command_line def hgversion_from_command_line
%x{#{HG_BIN} --version}.match(/\(version (.*)\)/)[1] %x{#{HG_BIN} --version}.lines.first.to_s
end end
def template_path def template_path

View File

@ -11,11 +11,12 @@ begin
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository' REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository'
def test_hgversion def test_hgversion
to_test = { "0.9.5" => [0,9,5], to_test = { "Mercurial Distributed SCM (version 0.9.5)\n" => [0,9,5],
"1.0" => [1,0], "Mercurial Distributed SCM (1.0)\n" => [1,0],
"1e4ddc9ac9f7+20080325" => nil, "Mercurial Distributed SCM (1e4ddc9ac9f7+20080325)\n" => nil,
"1.0.1+20080525" => [1,0,1], "Mercurial Distributed SCM (1.0.1+20080525)\n" => [1,0,1],
"1916e629a29d" => nil} "Mercurial Distributed SCM (1916e629a29d)\n" => nil,
"Mercurial SCM Distribuito (versione 0.9.5)\n" => [0,9,5]}
to_test.each do |s, v| to_test.each do |s, v|
test_hgversion_for(s, v) test_hgversion_for(s, v)