]> source.dussan.org Git - redmine.git/commitdiff
scm: mercurial: annotate path encoding support in adapter (#2664).
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Wed, 23 Feb 2011 07:04:32 +0000 (07:04 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Wed, 23 Feb 2011 07:04:32 +0000 (07:04 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4931 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/scm/adapters/mercurial_adapter.rb

index 683a5731f1d2796a77f4004816ca60ecccfd39ea..9b12dd38380b2a474d1749bbfb3ef2928f64bcd2 100644 (file)
@@ -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)