|
|
@@ -129,8 +129,9 @@ module Redmine |
|
|
|
private :summary |
|
|
|
|
|
|
|
def entries(path=nil, identifier=nil) |
|
|
|
p1 = scm_iconv(@path_encoding, 'UTF-8', path) |
|
|
|
manifest = hg('rhmanifest', '-r', hgrev(identifier), |
|
|
|
CGI.escape(without_leading_slash(path.to_s))) do |io| |
|
|
|
CGI.escape(without_leading_slash(p1.to_s))) do |io| |
|
|
|
begin |
|
|
|
ActiveSupport::XmlMini.parse(io.read)['rhmanifest']['repository']['manifest'] |
|
|
|
rescue |
|
|
@@ -140,13 +141,13 @@ module Redmine |
|
|
|
|
|
|
|
entries = Entries.new |
|
|
|
as_ary(manifest['dir']).each do |e| |
|
|
|
n = CGI.unescape(e['name']) |
|
|
|
n = scm_iconv('UTF-8', @path_encoding, CGI.unescape(e['name'])) |
|
|
|
p = "#{path_prefix}#{n}" |
|
|
|
entries << Entry.new(:name => n, :path => p, :kind => 'dir') |
|
|
|
end |
|
|
|
|
|
|
|
as_ary(manifest['file']).each do |e| |
|
|
|
n = CGI.unescape(e['name']) |
|
|
|
n = scm_iconv('UTF-8', @path_encoding, CGI.unescape(e['name'])) |
|
|
|
p = "#{path_prefix}#{n}" |
|
|
|
lr = Revision.new(:revision => e['revision'], :scmid => e['node'], |
|
|
|
:identifier => e['node'], |
|
|
@@ -188,7 +189,7 @@ module Redmine |
|
|
|
cpmap = Hash[*cpalist.flatten] |
|
|
|
|
|
|
|
paths = as_ary(le['paths']['path']).map do |e| |
|
|
|
p = CGI.unescape(e['__content__']) |
|
|
|
p = scm_iconv('UTF-8', @path_encoding, CGI.unescape(e['__content__']) ) |
|
|
|
{:action => e['action'], :path => with_leading_slash(p), |
|
|
|
:from_path => (cpmap.member?(p) ? with_leading_slash(cpmap[p]) : nil), |
|
|
|
:from_revision => (cpmap.member?(p) ? le['revision'] : nil)} |
|
|
@@ -211,7 +212,10 @@ module Redmine |
|
|
|
else |
|
|
|
hg_args << '-c' << hgrev(identifier_from) |
|
|
|
end |
|
|
|
hg_args << CGI.escape(hgtarget(path)) unless path.blank? |
|
|
|
unless path.blank? |
|
|
|
p = scm_iconv(@path_encoding, 'UTF-8', path) |
|
|
|
hg_args << CGI.escape(hgtarget(p)) |
|
|
|
end |
|
|
|
diff = [] |
|
|
|
hg *hg_args do |io| |
|
|
|
io.each_line do |line| |