<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -7,4 +7,5 @@ pkg
 .loadpath
 *~
 *.html
-*.gem
\ No newline at end of file
+*.gem
+*.yml</diff>
      <filename>.gitignore</filename>
    </modified>
    <modified>
      <diff>@@ -9,6 +9,7 @@ require 'reporter'
 require 'date'
 require 'html_report'
 require 'html_summary'
+require 'yaml'
 
 # Command line arguments
 workdir = ARGV[0]
@@ -17,12 +18,17 @@ max_commits = ARGV[2].to_i
 if (max_commits &lt;= 0)
   max_commits = 50
 end
+if (ARGV[3])
+  translations = YAML::load(File.open(ARGV[3]))
+else
+  translations = {}
+end
 
 # Action!
 if (workdir and days &gt; 0)
   puts &quot;Git stats for repositories under #{workdir}&quot;
 
-  reporter = Reporter.new(workdir)
+  reporter = Reporter.new(workdir, translations)
   reporter.extract_all_stats(Date.new - days) do |name|
     puts &quot;Checking #{name}...&quot;
   end</diff>
      <filename>bin/git-report.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,12 +6,13 @@ class Reporter
   attr_reader :repositories
   attr_accessor :repository_stats, :commiter_stats, :repository_summaries
 
-  def initialize(work_dir)
+  def initialize(work_dir, translations)
     @work_dir = work_dir
     @repositories = Hash.new
     @repository_stats = Hash.new
     @commiter_stats = Hash.new
     @repository_summaries = Hash.new
+    @translations = translations
     discover_repositories
     initialize_repositories
   end
@@ -51,7 +52,7 @@ class Reporter
 
   def initialize_repositories
     for repository_name in @repositories_names
-      repository = Repository.new(repository_name, @work_dir + &quot;/#{repository_name}&quot;)
+      repository = Repository.new(repository_name, @work_dir + &quot;/#{repository_name}&quot;, @translations)
       @repositories[repository_name] = repository
     end
   end</diff>
      <filename>lib/reporter.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,10 +5,11 @@ class Repository
   attr_accessor :name, :dir, :url
   attr_reader :commiters, :summary
 
-  def initialize(name, dir)
+  def initialize(name, dir, translations)
     @name = name
     @dir = dir
     @delimiter = &quot;#{200.chr}@@@&quot;
+    @translations = translations
   end
 
   def clone
@@ -41,6 +42,9 @@ class Repository
       for info in commit.split(&quot;\n&quot;)
         temp.push info unless info == &quot;&quot;
       end
+      if (@translations[temp[0]])
+        temp[0] = @translations[temp[0]]
+      end
       @summary[temp[1]] = {:commiter =&gt; temp[0], :time =&gt; Time.at(temp[1].to_i), :message =&gt; temp[2]} if temp[1]
     end
   end
@@ -54,6 +58,9 @@ class Repository
     @commiters = Hash.new
     while !match.nil?
       email = match[1].gsub(&quot;\n&quot;, &quot;&quot;)
+      if (@translations[email])
+        email = @translations[email]
+      end
 
       if @commiters[email].nil?
         @commiters[email] = 0</diff>
      <filename>lib/repository.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
 
-describe &quot;CaelumGitReports&quot; do
+describe &quot;Reporter&quot; do
 
 end</diff>
      <filename>spec/reporter_spec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,20 +13,24 @@ User1
 
 User1
 
-1 1 File1
 2 2 File3
 
+User 1
+
+1 1 File1
+
 User2
 
 7 0 File1
 0 3 File2
 &quot;
 
-    repository = Repository.new(&quot;SampleRepository&quot;,&quot;ArbitraryDirectory&quot;)
+    repository = Repository.new(&quot;SampleRepository&quot;,&quot;ArbitraryDirectory&quot;, {&quot;User 1&quot;=&gt; &quot;User1&quot;})
     repository.stub(:extract_log).and_return(log)
     repository.calculate_stats
     repository.commiters['User1'].should be(18)
     repository.commiters['User2'].should be(10)
+    repository.commiters['User 1'].should be(nil)
   end
 
   it &quot;should generate a summary&quot; do
@@ -34,17 +38,17 @@ User2
     log = &quot;User 1
 12345
 Message number 1#{delimiter}
-User 2
+User2
 12344
 Message number 2#{delimiter}
 &quot;
-    repository = Repository.new(&quot;SampleRepository&quot;,&quot;ArbitraryDirectory&quot;)
+    repository = Repository.new(&quot;SampleRepository&quot;,&quot;ArbitraryDirectory&quot;, {&quot;User 1&quot;=&gt; &quot;User1&quot;})
     repository.stub(:extract_log_with_messages).and_return(log)
     repository.generate_summary
-    repository.summary['12345'][:commiter].should eql(&quot;User 1&quot;)
+    repository.summary['12345'][:commiter].should eql(&quot;User1&quot;)
     repository.summary['12345'][:time].should eql(Time.at(12345))
     repository.summary['12345'][:message].should eql(&quot;Message number 1&quot;)
-    repository.summary['12344'][:commiter].should eql(&quot;User 2&quot;)
+    repository.summary['12344'][:commiter].should eql(&quot;User2&quot;)
     repository.summary['12344'][:time].should eql(Time.at(12344))
     repository.summary['12344'][:message].should eql(&quot;Message number 2&quot;)
   end</diff>
      <filename>spec/repository_spec.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>1dfdda20d20438c8b68919d51db55c2227f2c6a6</id>
    </parent>
  </parents>
  <author>
    <name>Pedro Matiello</name>
    <email>pmatiello@gmail.com</email>
  </author>
  <url>http://github.com/caelum/git-reports/commit/3de6b2fa2cb4ded9fef2d0fcc05af190b03e5f5e</url>
  <id>3de6b2fa2cb4ded9fef2d0fcc05af190b03e5f5e</id>
  <committed-date>2009-07-01T09:43:13-07:00</committed-date>
  <authored-date>2009-07-01T09:43:13-07:00</authored-date>
  <message>Adding commiter name translation support.</message>
  <tree>578b27b198040b206db36720ab20aabff9241074</tree>
  <committer>
    <name>Pedro Matiello</name>
    <email>pmatiello@gmail.com</email>
  </committer>
</commit>
