diff options
Diffstat (limited to 'lib/redmine/scm/adapters/mercurial_adapter.rb')
-rw-r--r-- | lib/redmine/scm/adapters/mercurial_adapter.rb | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/redmine/scm/adapters/mercurial_adapter.rb b/lib/redmine/scm/adapters/mercurial_adapter.rb index 28a1922ca..562dd59d5 100644 --- a/lib/redmine/scm/adapters/mercurial_adapter.rb +++ b/lib/redmine/scm/adapters/mercurial_adapter.rb @@ -50,7 +50,10 @@ module Redmine end def client_available - client_version_above?([5, 1]) + client_version_above?([5, 1]) && + # Redmine >= 6.1 has dropped support for Python 2.7, and + # Mercurial has never supported Python 3.0 to 3.4 + (python_version <=> [3, 5]) >= 0 end def hgversion @@ -67,6 +70,23 @@ module Redmine shellout("#{sq_bin} --version") {|io| io.read}.to_s end + def python_version + @@python_version ||= begin + debuginstall = hgdebuginstall_from_command_line + if (m = debuginstall.match(/checking Python version \(([\d.]+)\)/)) + m[1].scan(%r{\d+}) + .collect(&:to_i) + .presence + else + nil + end + end + end + + def hgdebuginstall_from_command_line + shellout("#{sq_bin} debuginstall") {|io| io.read}.to_s + end + def template_path @@template_path ||= template_path_for(client_version) end |