# HG changeset patch # User Martin Bornhold # Date 2016-10-28 11:07:35 # Node ID ebe0247cd154889e46e1b1638efa15728fc577d0 # Parent 6bc055e1504d22a3f622e0ff6bafee61be6dc205 subrepo: Handle subrepo merge errors. diff --git a/rhodecode/lib/vcs/backends/hg/repository.py b/rhodecode/lib/vcs/backends/hg/repository.py --- a/rhodecode/lib/vcs/backends/hg/repository.py +++ b/rhodecode/lib/vcs/backends/hg/repository.py @@ -44,7 +44,7 @@ from rhodecode.lib.vcs.backends.hg.diff from rhodecode.lib.vcs.backends.hg.inmemory import MercurialInMemoryCommit from rhodecode.lib.vcs.exceptions import ( EmptyRepositoryError, RepositoryError, TagAlreadyExistError, - TagDoesNotExistError, CommitDoesNotExistError) + TagDoesNotExistError, CommitDoesNotExistError, SubrepoMergeError) hexlify = binascii.hexlify nullid = "\0" * 20 @@ -712,6 +712,11 @@ class MercurialRepository(BaseRepository # shadow repository. shadow_repo.bookmark('pr-merge', revision=merge_commit_id) merge_ref = Reference('book', 'pr-merge', merge_commit_id) + except SubrepoMergeError: + log.exception( + 'Subrepo merge error during local merge on hg shadow repo.') + merge_possible = False + merge_failure_reason = MergeFailureReason.SUBREPO_MERGE_FAILED except RepositoryError: log.exception('Failure when doing local merge on hg shadow repo') merge_possible = False