From 6b72c6689305c13a728a311257b58b8465ee4353 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 20 Nov 2010 14:04:22 +0000 Subject: [PATCH] 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 --- lib/redmine/scm/adapters/mercurial_adapter.rb | 6 +++--- .../redmine/scm/adapters/mercurial_adapter_test.rb | 11 ++++++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/redmine/scm/adapters/mercurial_adapter.rb b/lib/redmine/scm/adapters/mercurial_adapter.rb index 9d5e9aa11..c1be57529 100644 --- a/lib/redmine/scm/adapters/mercurial_adapter.rb +++ b/lib/redmine/scm/adapters/mercurial_adapter.rb @@ -38,13 +38,13 @@ module Redmine # release number (eg 0.9.5 or 1.0) or as a revision # id composed of 12 hexa characters. theversion = hgversion_from_command_line - if theversion.match(/^\d+(\.\d+)+/) - theversion.split(".").collect(&:to_i) + if m = theversion.match(/\b\d+(\.\d+)+\b/) + m[0].split(".").collect(&:to_i) end end def hgversion_from_command_line - %x{#{HG_BIN} --version}.match(/\(version (.*)\)/)[1] + %x{#{HG_BIN} --version}.lines.first.to_s end def template_path diff --git a/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb b/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb index 7396a3957..cefc9c74e 100644 --- a/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb +++ b/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb @@ -11,11 +11,12 @@ begin REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/mercurial_repository' def test_hgversion - to_test = { "0.9.5" => [0,9,5], - "1.0" => [1,0], - "1e4ddc9ac9f7+20080325" => nil, - "1.0.1+20080525" => [1,0,1], - "1916e629a29d" => nil} + to_test = { "Mercurial Distributed SCM (version 0.9.5)\n" => [0,9,5], + "Mercurial Distributed SCM (1.0)\n" => [1,0], + "Mercurial Distributed SCM (1e4ddc9ac9f7+20080325)\n" => nil, + "Mercurial Distributed SCM (1.0.1+20080525)\n" => [1,0,1], + "Mercurial Distributed SCM (1916e629a29d)\n" => nil, + "Mercurial SCM Distribuito (versione 0.9.5)\n" => [0,9,5]} to_test.each do |s, v| test_hgversion_for(s, v)