diff options
Diffstat (limited to 'lib/git')
-rw-r--r-- | lib/git/diff.py | 21 | ||||
m--------- | lib/git/ext/gitdb | 0 | ||||
-rw-r--r-- | lib/git/index/base.py | 2 | ||||
-rw-r--r-- | lib/git/objects/base.py | 1 | ||||
-rw-r--r-- | lib/git/objects/commit.py | 2 | ||||
-rw-r--r-- | lib/git/objects/fun.py | 1 | ||||
-rw-r--r-- | lib/git/remote.py | 2 |
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 |