summaryrefslogtreecommitdiff
path: root/lib/git/objects/commit.py
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2010-10-15 12:40:54 +0200
committerSebastian Thiel <byronimo@gmail.com>2010-10-15 12:40:54 +0200
commit13647590f96fb5a22cb60f12c5a70e00065a7f3a (patch)
tree75c5fcd85fe9e655e035bd3cbec10e49071562f1 /lib/git/objects/commit.py
parent741dfaadf732d4a2a897250c006d5ef3d3cd9f3a (diff)
parent0019d7dc8c72839d238065473a62b137c3c350f5 (diff)
downloadgitpython-13647590f96fb5a22cb60f12c5a70e00065a7f3a.tar.gz
Merge branch 'unicode'
Diffstat (limited to 'lib/git/objects/commit.py')
-rw-r--r--lib/git/objects/commit.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/git/objects/commit.py b/lib/git/objects/commit.py
index f3a6e216..c7da01e8 100644
--- a/lib/git/objects/commit.py
+++ b/lib/git/objects/commit.py
@@ -368,9 +368,14 @@ class Commit(base.Object, Iterable, Diffable, Traversable, Serializable):
write("parent %s\n" % p)
a = self.author
+ aname = a.name
+ if isinstance(aname, unicode):
+ aname = aname.encode(self.encoding)
+ # END handle unicode in name
+
c = self.committer
fmt = "%s %s <%s> %s %s\n"
- write(fmt % ("author", a.name, a.email,
+ write(fmt % ("author", aname, a.email,
self.authored_date,
altz_to_utctz_str(self.author_tz_offset)))
@@ -425,12 +430,19 @@ class Commit(base.Object, Iterable, Diffable, Traversable, Serializable):
readline()
# END handle encoding
+ # decode the authors name
+ try:
+ self.author.name = self.author.name.decode(self.encoding)
+ except UnicodeDecodeError:
+ print >> sys.stderr, "Failed to decode author name: %s" % self.author.name
+ # END handle author's encoding
+
# a stream from our data simply gives us the plain message
# The end of our message stream is marked with a newline that we strip
self.message = stream.read()
try:
self.message = self.message.decode(self.encoding)
- except Exception:
+ except UnicodeDecodeError:
print >> sys.stderr, "Failed to decode message: %s" % self.message
# END exception handling
return self