summaryrefslogtreecommitdiff
path: root/git/refs/log.py
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2011-06-08 01:27:28 +0200
committerSebastian Thiel <byronimo@gmail.com>2011-06-08 01:35:16 +0200
commit90e780a3e16d0c3e4d7288728f6ba36e9c18d736 (patch)
treede5988fc3bb6a39b91cc652e9f6cc51f7015087f /git/refs/log.py
parent58a930a632c867b65b9a3802e2f4190cf32e33ee (diff)
downloadgitpython-90e780a3e16d0c3e4d7288728f6ba36e9c18d736.tar.gz
log: non-existing logs no longer throw an exception, but are ignored. Fixed critical bug which caused packed-ref files to be written with native line endings, which made git fail to parse it. I wonder why I never noticed this before, or ignored it. Unbelievable \!
Diffstat (limited to 'git/refs/log.py')
-rw-r--r--git/refs/log.py8
1 files changed, 7 insertions, 1 deletions
diff --git a/git/refs/log.py b/git/refs/log.py
index 3b9d8514..562c6caa 100644
--- a/git/refs/log.py
+++ b/git/refs/log.py
@@ -126,7 +126,13 @@ class RefLog(list, Serializable):
# END handle filepath
def _read_from_file(self):
- fmap = file_contents_ro_filepath(self._path, stream=False, allow_mmap=True)
+ try:
+ fmap = file_contents_ro_filepath(self._path, stream=False, allow_mmap=True)
+ except OSError:
+ # it is possible and allowed that the file doesn't exist !
+ return
+ #END handle invalid log
+
try:
self._deserialize(fmap)
finally: