comparison mercurial/error.py @ 48363:6a454e7053a1

errors: return more detailed errors when failing to parse or apply patch This patch adds subclasses of `PatchError` so we can distinguish between failure to parse a patch from failure to apply it. It updates the callers to raise either `InputError` or `StateError` depending on which type of error occurred. Differential Revision: https://phab.mercurial-scm.org/D11824
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 19 Nov 2021 12:57:53 -0800
parents 9de0823705b4
children 6000f5b25c9b
comparison
equal deleted inserted replaced
48362:7e6488aa1261 48363:6a454e7053a1
383 message += _(b"(%s)\n") % self.hint 383 message += _(b"(%s)\n") % self.hint
384 return message 384 return message
385 385
386 386
387 class PatchError(Exception): 387 class PatchError(Exception):
388 __bytes__ = _tobytes
389
390
391 class PatchParseError(PatchError):
392 __bytes__ = _tobytes
393
394
395 class PatchApplicationError(PatchError):
388 __bytes__ = _tobytes 396 __bytes__ = _tobytes
389 397
390 398
391 def getsimilar(symbols, value): 399 def getsimilar(symbols, value):
392 # type: (Iterable[bytes], bytes) -> List[bytes] 400 # type: (Iterable[bytes], bytes) -> List[bytes]