OSDN Git Service

Fixed encoding issue for diff. Reordered merge request commits
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Tue, 14 Feb 2012 22:41:36 +0000 (00:41 +0200)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Tue, 14 Feb 2012 22:41:51 +0000 (00:41 +0200)
app/controllers/merge_requests_controller.rb
app/helpers/commits_helper.rb
app/views/commits/_diffs.html.haml

index b029344..8b39521 100644 (file)
@@ -49,7 +49,11 @@ class MergeRequestsController < ApplicationController
   end
 
   def commits
-    @commits = @project.repo.commits_between(@merge_request.target_branch, @merge_request.source_branch).map {|c| Commit.new(c)}
+    @commits = @project.repo.
+      commits_between(@merge_request.target_branch, @merge_request.source_branch).
+      map {|c| Commit.new(c)}.
+      sort_by(&:created_at).
+      reverse
   end
 
   def diffs
index a750e49..3ed8e8c 100644 (file)
@@ -58,7 +58,7 @@ module CommitsHelper
       next if line.match(/^\-\-\- a/)
       next if line.match(/^\+\+\+ b/)
 
-      full_line = html_escape(line.gsub(/\n/, ''))
+      full_line = html_escape(line.gsub(/\n/, '')).force_encoding("UTF-8")
 
       if line.match(/^@@ -/)
         next if line_old == 1 && line_new == 1
index e3aa45d..29eae1c 100644 (file)
@@ -1,6 +1,6 @@
 .file_stats
   = render "commits/diff_head", :diffs => diffs
-
 - diffs.each_with_index do |diff, i|
   - next if diff.diff.empty?
   - file = (@commit.tree / diff.b_path)
@@ -16,7 +16,7 @@
       %br/
     .diff_file_content
       - if file.text?
-        = render :partial => "commits/text_file", :locals => { :diff => diff, :index => i }
+        = render "commits/text_file", :diff => diff, :index => i
       - elsif file.image?
         .diff_file_content_image
           %img{:src => "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"}