summaryrefslogtreecommitdiff
path: root/git/objects/fun.py
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2014-11-15 16:21:47 +0100
committerSebastian Thiel <byronimo@gmail.com>2014-11-15 16:21:47 +0100
commit7aba59a2609ec768d5d495dafd23a4bce8179741 (patch)
tree9d999b14a7817b1ceeb23ddd1cded446ace9255c /git/objects/fun.py
parent9c39afa1f85f3293ad2ccef684ff62bf0a36e73c (diff)
parentff13922f6cfb11128b7651ddfcbbd5cad67e477f (diff)
downloadgitpython-7aba59a2609ec768d5d495dafd23a4bce8179741.tar.gz
Merge branch 'johnsca-sf-master' into 0.3
Merge all fixes from https://github.com/gitpython-developers/GitPython/pull/134
Diffstat (limited to 'git/objects/fun.py')
-rw-r--r--git/objects/fun.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/git/objects/fun.py b/git/objects/fun.py
index f73be542..66b7998e 100644
--- a/git/objects/fun.py
+++ b/git/objects/fun.py
@@ -70,9 +70,13 @@ def tree_entries_from_data(data):
# default encoding for strings in git is utf8
# Only use the respective unicode object if the byte stream was encoded
name = data[ns:i]
- name_enc = name.decode("utf-8")
- if len(name) > len(name_enc):
- name = name_enc
+ try:
+ name_enc = name.decode("utf-8")
+ except UnicodeDecodeError:
+ pass
+ else:
+ if len(name) > len(name_enc):
+ name = name_enc
# END handle encoding
# byte is NULL, get next 20
@@ -84,6 +88,7 @@ def tree_entries_from_data(data):
return out
+
def _find_by_name(tree_data, name, is_dir, start_at):
"""return data entry matching the given name and tree mode
or None.