diff --git a/utils/git-svn/convert.py b/utils/git-svn/convert.py
new file mode 100755
index 0000000..f72f435
--- /dev/null
+++ b/utils/git-svn/convert.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+
+"""
+Convert the raw message sources from git patch emails to git-am friendly files.
+
+Usage:
+
+1. Mail.app -> Save As -> api.eml (Raw Message Source)
+2. .../convert.py api.eml
+3. git am --signoff < api.eml
+4. git commit -a
+"""
+
+import os, re, sys
+import StringIO
+
+def usage(problem_file=None):
+    if problem_file:
+        print "%s is not a file" % problem_file
+    print "Usage: convert.py raw-message-source [raw-message-source2 ...]"
+    sys.exit(0)
+
+def do_convert(file):
+    """Skip all preceding mail message headers until 'From: ' is encountered.
+    Then for each line ('From: ' header included), replace the dos style CRLF
+    end-of-line with unix style LF end-of-line.
+    """
+    print "converting %s ..." % file
+
+    with open(file, 'r') as f_in:
+        content = f_in.read()
+
+    # The new content to be written back to the same file.
+    new_content = StringIO.StringIO()
+
+    # Boolean flag controls whether to start printing lines.
+    from_header_seen = False
+
+    # By default, splitlines() don't include line breaks.  CRLF should be gone.
+    for line in content.splitlines():
+        # Wait till we scan the 'From: ' header before start printing the lines.
+        if not from_header_seen:
+            if not line.startswith('From: '):
+                continue
+            else:
+                from_header_seen = True
+
+        print >> new_content, line
+
+    with open(file, 'w') as f_out:
+        f_out.write(new_content.getvalue())
+
+    print "done"
+
+def main():
+    if len(sys.argv) == 1:
+        usage()
+    # Convert the raw message source one by one.
+    for file in sys.argv[1:]:
+        if not os.path.isfile(file):
+            usage(file)
+        do_convert(file)
+
+if __name__ == '__main__':
+    main()
