diff --git a/lib/redmine/scm/adapters/mercurial_adapter.rb b/lib/redmine/scm/adapters/mercurial_adapter.rb --- a/lib/redmine/scm/adapters/mercurial_adapter.rb +++ b/lib/redmine/scm/adapters/mercurial_adapter.rb @@ -29,6 +29,14 @@ TEMPLATE_EXTENSION = "tmpl" class << self + + def shellout(cmd, &block) + orig_lang = ENV['LANG'] + ENV['LANG'] = 'C' + super(cmd, &block) + ENV['LANG'] = orig_lang + end + def client_version @@client_version ||= (hgversion || []) end @@ -44,7 +52,18 @@ end def hgversion_from_command_line - %x{#{HG_BIN} --version}.match(/\(version (.*)\)/)[1] + # %x{#{HG_BIN} --version}.match(/\(version (.*)\)/)[1] + ver = "" + cmd = "#{HG_BIN} --version" + shellout(cmd) do |io| + str = io.gets.chomp + if ( str =~ /version/ ) + ver = str.match(/\(version (.*)\)/)[1] + break + end + end + return "" if $? && $?.exitstatus != 0 + ver end def template_path