From: Toshi MARUYAMA Date: Wed, 23 Feb 2011 07:04:32 +0000 (+0000) Subject: scm: mercurial: annotate path encoding support in adapter (#2664). X-Git-Tag: 1.2.0~892 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=f8da0127f7d798046c4d40adc1fb8895a00594c6;p=redmine.git scm: mercurial: annotate path encoding support in adapter (#2664). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4931 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/lib/redmine/scm/adapters/mercurial_adapter.rb b/lib/redmine/scm/adapters/mercurial_adapter.rb index 683a5731f..9b12dd383 100644 --- a/lib/redmine/scm/adapters/mercurial_adapter.rb +++ b/lib/redmine/scm/adapters/mercurial_adapter.rb @@ -238,9 +238,11 @@ module Redmine end def annotate(path, identifier=nil) + p = CGI.escape(scm_iconv(@path_encoding, 'UTF-8', path)) blame = Annotate.new - hg 'annotate', '-ncu', '-r', hgrev(identifier), hgtarget(path) do |io| + hg 'rhannotate', '-ncu', '-r', hgrev(identifier), hgtarget(p) do |io| io.each_line do |line| + line.force_encoding('ASCII-8BIT') if line.respond_to?(:force_encoding) next unless line =~ %r{^([^:]+)\s(\d+)\s([0-9a-f]+):\s(.*)$} r = Revision.new(:author => $1.strip, :revision => $2, :scmid => $3, :identifier => $3)