summaryrefslogtreecommitdiff
path: root/lib/git
diff options
context:
space:
mode:
Diffstat (limited to 'lib/git')
-rw-r--r--lib/git/diff.py21
m---------lib/git/ext/gitdb0
-rw-r--r--lib/git/index/base.py2
-rw-r--r--lib/git/objects/base.py1
-rw-r--r--lib/git/objects/commit.py2
-rw-r--r--lib/git/objects/fun.py1
-rw-r--r--lib/git/remote.py2
7 files changed, 16 insertions, 13 deletions
diff --git a/lib/git/diff.py b/lib/git/diff.py
index b8585a4c..79a0c3c1 100644
--- a/lib/git/diff.py
+++ b/lib/git/diff.py
@@ -196,23 +196,24 @@ class Diff(object):
def __init__(self, repo, a_path, b_path, a_blob_id, b_blob_id, a_mode,
b_mode, new_file, deleted_file, rename_from,
rename_to, diff):
+
+ self.a_mode = a_mode
+ self.b_mode = b_mode
+
+ if self.a_mode:
+ self.a_mode = mode_str_to_int(self.a_mode)
+ if self.b_mode:
+ self.b_mode = mode_str_to_int(self.b_mode)
+
if a_blob_id is None:
self.a_blob = None
else:
- self.a_blob = Blob(repo, hex_to_bin(a_blob_id), mode=a_mode, path=a_path)
+ self.a_blob = Blob(repo, hex_to_bin(a_blob_id), mode=self.a_mode, path=a_path)
if b_blob_id is None:
self.b_blob = None
else:
- self.b_blob = Blob(repo, hex_to_bin(b_blob_id), mode=b_mode, path=b_path)
-
- self.a_mode = a_mode
- self.b_mode = b_mode
+ self.b_blob = Blob(repo, hex_to_bin(b_blob_id), mode=self.b_mode, path=b_path)
- if self.a_mode:
- self.a_mode = mode_str_to_int( self.a_mode )
- if self.b_mode:
- self.b_mode = mode_str_to_int( self.b_mode )
-
self.new_file = new_file
self.deleted_file = deleted_file
diff --git a/lib/git/ext/gitdb b/lib/git/ext/gitdb
-Subproject 39b00429999eefc62b70230fb8e0261948a2f31
+Subproject c265c97f9130d2225b923b427736796c0a0d957
diff --git a/lib/git/index/base.py b/lib/git/index/base.py
index b51d6251..03da52b7 100644
--- a/lib/git/index/base.py
+++ b/lib/git/index/base.py
@@ -482,7 +482,7 @@ class IndexFile(LazyMixin, diff.Diffable, Serializable):
# delete all possible stages
for stage in (1, 2, 3):
try:
- del( self.entries[(blob.path, stage)] )
+ del( self.entries[(blob.path, stage)])
except KeyError:
pass
# END ignore key errors
diff --git a/lib/git/objects/base.py b/lib/git/objects/base.py
index 118bc3ca..97b7898c 100644
--- a/lib/git/objects/base.py
+++ b/lib/git/objects/base.py
@@ -36,6 +36,7 @@ class Object(LazyMixin):
super(Object,self).__init__()
self.repo = repo
self.binsha = binsha
+ assert len(binsha) == 20, "Require 20 byte binary sha, got %r, len = %i" % (binsha, len(binsha))
@classmethod
def new(cls, repo, id):
diff --git a/lib/git/objects/commit.py b/lib/git/objects/commit.py
index f365c994..f88bb0e8 100644
--- a/lib/git/objects/commit.py
+++ b/lib/git/objects/commit.py
@@ -105,6 +105,8 @@ class Commit(base.Object, Iterable, Diffable, Traversable, Serializable):
as what time.altzone returns. The sign is inverted compared to git's
UTC timezone."""
super(Commit,self).__init__(repo, binsha)
+ if tree is not None:
+ assert isinstance(tree, Tree), "Tree needs to be a Tree instance, was %s" % type(tree)
self._set_self_from_args_(locals())
@classmethod
diff --git a/lib/git/objects/fun.py b/lib/git/objects/fun.py
index 2d0fd634..e56ef8fe 100644
--- a/lib/git/objects/fun.py
+++ b/lib/git/objects/fun.py
@@ -65,7 +65,6 @@ def tree_entries_from_data(data):
i += 1
sha = data[i:i+20]
i = i + 20
-
out.append((sha, mode, name))
# END for each byte in data stream
return out
diff --git a/lib/git/remote.py b/lib/git/remote.py
index 94bd285b..9c46a027 100644
--- a/lib/git/remote.py
+++ b/lib/git/remote.py
@@ -384,7 +384,7 @@ class FetchInfo(object):
split_token = '...'
if control_character == ' ':
split_token = split_token[:-1]
- old_commit = Commit(repo, operation.split(split_token)[0])
+ old_commit = Commit.new(repo, operation.split(split_token)[0])
# END handle refspec
# END reference flag handling