Show More
@@ -600,15 +600,20 b' class GitRemote(object):' | |||||
600 | def get_object(self, wire, sha): |
|
600 | def get_object(self, wire, sha): | |
601 | repo = self._factory.repo_libgit2(wire) |
|
601 | repo = self._factory.repo_libgit2(wire) | |
602 |
|
602 | |||
|
603 | missing_commit_err = 'Commit {} does not exist for `{}`'.format(sha, wire['path']) | |||
603 | try: |
|
604 | try: | |
604 | commit = repo.revparse_single(sha) |
|
605 | commit = repo.revparse_single(sha) | |
605 | except (KeyError, ValueError) as e: |
|
606 | except (KeyError, ValueError) as e: | |
606 | msg = 'Commit {} does not exist for `{}`'.format(sha, wire['path']) |
|
607 | raise exceptions.LookupException(e)(missing_commit_err) | |
607 | raise exceptions.LookupException(e)(msg) |
|
|||
608 |
|
608 | |||
609 | if isinstance(commit, pygit2.Tag): |
|
609 | if isinstance(commit, pygit2.Tag): | |
610 | commit = repo.get(commit.target) |
|
610 | commit = repo.get(commit.target) | |
611 |
|
611 | |||
|
612 | # check for dangling commit | |||
|
613 | branches = [x for x in repo.branches.with_commit(commit.hex)] | |||
|
614 | if not branches: | |||
|
615 | raise exceptions.LookupException(None)(missing_commit_err) | |||
|
616 | ||||
612 | commit_id = commit.hex |
|
617 | commit_id = commit.hex | |
613 | type_id = commit.type |
|
618 | type_id = commit.type | |
614 |
|
619 |
General Comments 0
You need to be logged in to leave comments.
Login now