From 5e0b3182565da67214a4e120f66dd74799aba9cb Mon Sep 17 00:00:00 2001
From: Toshi MARUYAMA <marutosijp2@yahoo.co.jp>
Date: Wed, 23 Feb 2011 07:04:32 +0000
Subject: [PATCH] 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
---
 lib/redmine/scm/adapters/mercurial_adapter.rb | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

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)
-- 
GitLab