vcs: Use more specific merge error reason (either target or source ref missing)
This commit is contained in:
parent
6ea00dcc6d
commit
66a336156c
3 changed files with 13 additions and 8 deletions
|
|
@ -867,7 +867,7 @@ class GitRepository(BaseRepository):
|
|||
except RepositoryError:
|
||||
log.exception('Failure when doing local fetch on git shadow repo')
|
||||
return MergeResponse(
|
||||
False, False, None, MergeFailureReason.MISSING_COMMIT)
|
||||
False, False, None, MergeFailureReason.MISSING_SOURCE_REF)
|
||||
|
||||
merge_ref = None
|
||||
merge_failure_reason = MergeFailureReason.NONE
|
||||
|
|
|
|||
|
|
@ -673,11 +673,16 @@ class MercurialRepository(BaseRepository):
|
|||
return MergeResponse(
|
||||
False, False, None, MergeFailureReason.TARGET_IS_NOT_HEAD)
|
||||
|
||||
if (target_ref.type == 'branch' and
|
||||
len(self._heads(target_ref.name)) != 1):
|
||||
try:
|
||||
if (target_ref.type == 'branch' and
|
||||
len(self._heads(target_ref.name)) != 1):
|
||||
return MergeResponse(
|
||||
False, False, None,
|
||||
MergeFailureReason.HG_TARGET_HAS_MULTIPLE_HEADS)
|
||||
except CommitDoesNotExistError as e:
|
||||
log.exception('Failure when looking up branch heads on hg target')
|
||||
return MergeResponse(
|
||||
False, False, None,
|
||||
MergeFailureReason.HG_TARGET_HAS_MULTIPLE_HEADS)
|
||||
False, False, None, MergeFailureReason.MISSING_TARGET_REF)
|
||||
|
||||
shadow_repo = self._get_shadow_instance(shadow_repository_path)
|
||||
|
||||
|
|
@ -691,7 +696,7 @@ class MercurialRepository(BaseRepository):
|
|||
except CommitDoesNotExistError:
|
||||
log.exception('Failure when doing local pull on hg shadow repo')
|
||||
return MergeResponse(
|
||||
False, False, None, MergeFailureReason.MISSING_COMMIT)
|
||||
False, False, None, MergeFailureReason.MISSING_SOURCE_REF)
|
||||
|
||||
merge_ref = None
|
||||
merge_failure_reason = MergeFailureReason.NONE
|
||||
|
|
|
|||
|
|
@ -401,10 +401,10 @@ class TestRepositoryMerge:
|
|||
|
||||
assert merge_response == expected_merge_response
|
||||
|
||||
def test_merge_missing_commit(self, vcsbackend):
|
||||
def test_merge_missing_source_reference(self, vcsbackend):
|
||||
self.prepare_for_success(vcsbackend)
|
||||
expected_merge_response = MergeResponse(
|
||||
False, False, None, MergeFailureReason.MISSING_COMMIT)
|
||||
False, False, None, MergeFailureReason.MISSING_SOURCE_REF)
|
||||
|
||||
source_ref = Reference(
|
||||
self.source_ref.type, 'not_existing', self.source_ref.commit_id)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue