OSDN Git Service

fix graph problem if authorname or message isnot utf8 encoding
authorSaito <saitowu@gmail.com>
Wed, 30 May 2012 03:47:26 +0000 (11:47 +0800)
committerSaito <saitowu@gmail.com>
Wed, 30 May 2012 03:47:26 +0000 (11:47 +0800)
config/initializers/gitlabhq/20_grit_ext.rb
lib/graph_commit.rb

index f17cf44..314553f 100644 (file)
@@ -14,8 +14,23 @@ Grit::Blob.class_eval do
 end
 
 Grit::Commit.class_eval do
-  def message
-    Gitlab::Encode.utf8 @message
+  def to_hash
+    {
+      'id'       => id,
+      'parents'  => parents.map { |p| { 'id' => p.id } },
+      'tree'     => tree.id,
+      'message'  => Gitlab::Encode.utf8(message),
+      'author'   => {
+        'name'  => Gitlab::Encode.utf8(author.name),
+        'email' => author.email
+      },
+      'committer' => {
+        'name'  => Gitlab::Encode.utf8(committer.name),
+        'email' => committer.email
+      },
+      'authored_date'  => authored_date.xmlschema,
+      'committed_date' => committed_date.xmlschema,
+    }
   end
 end
 
index 0080e85..54550d9 100644 (file)
@@ -96,13 +96,13 @@ class GraphCommit
     h[:parents] = self.parents.collect do |p|
       [p.id,0,0]
     end
-    h[:author]  = author.name.force_encoding("UTF-8")
+    h[:author]  = author.name
     h[:time]    = time
     h[:space]   = space
     h[:refs]    = refs.collect{|r|r.name}.join(" ") unless refs.nil?
     h[:id]      = sha
     h[:date]    = date
-    h[:message] = message.force_encoding("UTF-8")
+    h[:message] = message
     h[:login]   = author.email
     h
   end