Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit c6ee00d

Browse filesBrowse files
committed
Made sure commits accept unicode or unicode characters
1 parent 7379091 commit c6ee00d
Copy full SHA for c6ee00d

3 files changed

+23-10Lines changed: 23 additions & 10 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎git/refs/log.py‎

Copy file name to clipboardExpand all lines: git/refs/log.py
+14-3Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
altz_to_utctz_str,
1919
)
2020
from git.compat import (
21+
PY3,
2122
xrange,
2223
string_types,
2324
defenc
@@ -37,6 +38,16 @@ class RefLogEntry(tuple):
3738

3839
def __repr__(self):
3940
"""Representation of ourselves in git reflog format"""
41+
res = self.format()
42+
if PY3:
43+
return res
44+
else:
45+
# repr must return a string, which it will auto-encode from unicode using the default encoding.
46+
# This usually fails, so we encode ourselves
47+
return res.encode(defenc)
48+
49+
def format(self):
50+
""":return: a string suitable to be placed in a reflog file"""
4051
act = self.actor
4152
time = self.time
4253
return u"{0} {1} {2} <{3}> {4!s} {5}\t{6}\n".format(self.oldhexsha,
@@ -45,7 +56,7 @@ def __repr__(self):
4556
act.email,
4657
time[0],
4758
altz_to_utctz_str(time[1]),
48-
self.message).encode("utf-8")
59+
self.message)
4960

5061
@property
5162
def oldhexsha(self):
@@ -273,7 +284,7 @@ def append_entry(cls, config_reader, filepath, oldbinsha, newbinsha, message):
273284
lf._obtain_lock_or_raise()
274285
fd = open(filepath, 'ab')
275286
try:
276-
fd.write(repr(entry).encode(defenc))
287+
fd.write(entry.format().encode(defenc))
277288
finally:
278289
fd.close()
279290
lf._release_lock()
@@ -298,7 +309,7 @@ def _serialize(self, stream):
298309

299310
# write all entries
300311
for e in self:
301-
write(repr(e).encode(defenc))
312+
write(e.format().encode(defenc))
302313
# END for each entry
303314

304315
def _deserialize(self, stream):
Collapse file

‎git/test/test_index.py‎

Copy file name to clipboardExpand all lines: git/test/test_index.py
+8-6Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#-*-coding:utf-8-*-
12
# test_index.py
23
# Copyright (C) 2008, 2009 Michael Trier (mtrier@gmail.com) and contributors
34
#
@@ -433,7 +434,7 @@ def mixed_iterator():
433434
# TEST COMMITTING
434435
# commit changed index
435436
cur_commit = cur_head.commit
436-
commit_message = "commit default head"
437+
commit_message = u"commit default head by Frèderic Çaufl€"
437438

438439
new_commit = index.commit(commit_message, head=False)
439440
assert cur_commit != new_commit
@@ -449,18 +450,19 @@ def mixed_iterator():
449450
# commit with other actor
450451
cur_commit = cur_head.commit
451452

452-
my_author = Actor("An author", "author@example.com")
453-
my_committer = Actor("An committer", "committer@example.com")
453+
my_author = Actor(u"Frèderic Çaufl€", "author@example.com")
454+
my_committer = Actor(u"Committing Frèderic Çaufl€", "committer@example.com")
454455
commit_actor = index.commit(commit_message, author=my_author, committer=my_committer)
455456
assert cur_commit != commit_actor
456-
assert commit_actor.author.name == "An author"
457+
assert commit_actor.author.name == u"Frèderic Çaufl€"
457458
assert commit_actor.author.email == "author@example.com"
458-
assert commit_actor.committer.name == "An committer"
459+
assert commit_actor.committer.name == u"Committing Frèderic Çaufl€"
459460
assert commit_actor.committer.email == "committer@example.com"
460461
assert commit_actor.message == commit_message
461462
assert commit_actor.parents[0] == cur_commit
462463
assert len(new_commit.parents) == 1
463-
assert cur_head.commit == cur_commit
464+
assert cur_head.commit == commit_actor
465+
assert cur_head.log()[-1].actor == my_committer
464466

465467
# same index, no parents
466468
commit_message = "index without parents"
Collapse file

‎git/util.py‎

Copy file name to clipboardExpand all lines: git/util.py
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ def __str__(self):
328328
return self.name
329329

330330
def __repr__(self):
331-
return '<git.Actor "%s <%s>">' % (self.name, self.email)
331+
return u'<git.Actor "%s <%s>">' % (self.name, self.email)
332332

333333
@classmethod
334334
def _from_string(cls, string):

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.