Show More
@@ -241,25 +241,33 b' class GitRepository(BaseRepository):' | |||||
241 |
|
241 | |||
242 | is_bstr = isinstance(commit_id_or_idx, (str, unicode)) |
|
242 | is_bstr = isinstance(commit_id_or_idx, (str, unicode)) | |
243 | is_branch = reference_obj and reference_obj.branch |
|
243 | is_branch = reference_obj and reference_obj.branch | |
244 | is_numeric_idx = \ |
|
|||
245 | (is_bstr and commit_id_or_idx.isdigit() and len(commit_id_or_idx) < 12) \ |
|
|||
246 | or isinstance(commit_id_or_idx, int) |
|
|||
247 |
|
244 | |||
248 | if not is_branch and (is_numeric_idx or is_null(commit_id_or_idx)): |
|
245 | lookup_ok = False | |
249 |
|
|
246 | if is_bstr: | |
250 | commit_id_or_idx = self.commit_ids[int(commit_id_or_idx)] |
|
|||
251 | except Exception: |
|
|||
252 | raise CommitDoesNotExistError(commit_missing_err) |
|
|||
253 |
|
||||
254 | elif is_bstr: |
|
|||
255 | # Need to call remote to translate id for tagging scenarios, |
|
247 | # Need to call remote to translate id for tagging scenarios, | |
256 | # or branch that are numeric |
|
248 | # or branch that are numeric | |
257 | try: |
|
249 | try: | |
258 | remote_data = self._remote.get_object(commit_id_or_idx, |
|
250 | remote_data = self._remote.get_object(commit_id_or_idx, | |
259 | maybe_unreachable=maybe_unreachable) |
|
251 | maybe_unreachable=maybe_unreachable) | |
260 | commit_id_or_idx = remote_data["commit_id"] |
|
252 | commit_id_or_idx = remote_data["commit_id"] | |
|
253 | lookup_ok = True | |||
261 | except (CommitDoesNotExistError,): |
|
254 | except (CommitDoesNotExistError,): | |
262 | raise CommitDoesNotExistError(commit_missing_err) |
|
255 | lookup_ok = False | |
|
256 | ||||
|
257 | if lookup_ok is False: | |||
|
258 | is_numeric_idx = \ | |||
|
259 | (is_bstr and commit_id_or_idx.isdigit() and len(commit_id_or_idx) < 12) \ | |||
|
260 | or isinstance(commit_id_or_idx, int) | |||
|
261 | if not is_branch and (is_numeric_idx or is_null(commit_id_or_idx)): | |||
|
262 | try: | |||
|
263 | commit_id_or_idx = self.commit_ids[int(commit_id_or_idx)] | |||
|
264 | lookup_ok = True | |||
|
265 | except Exception: | |||
|
266 | raise CommitDoesNotExistError(commit_missing_err) | |||
|
267 | ||||
|
268 | # we failed regular lookup, and by integer number lookup | |||
|
269 | if lookup_ok is False: | |||
|
270 | raise CommitDoesNotExistError(commit_missing_err) | |||
263 |
|
271 | |||
264 | # Ensure we return full id |
|
272 | # Ensure we return full id | |
265 | if not SHA_PATTERN.match(str(commit_id_or_idx)): |
|
273 | if not SHA_PATTERN.match(str(commit_id_or_idx)): |
General Comments 0
You need to be logged in to leave comments.
Login now