Mercurial > public > mercurial-scm > hg-stable
diff mercurial/patch.py @ 30078:173bdb502503
import: abort instead of crashing when copy source does not exist (issue5375)
Previously, when a patch contained a move or copy from a source that did not
exist, `hg import` would crash. This patch changes import to raise a PatchError
with an explanantion of what is wrong with the patch to avoid the stack trace
and bad user experience.
author | Ryan McElroy <rmcelroy@fb.com> |
---|---|
date | Sat, 08 Oct 2016 05:26:58 -0700 |
parents | e40343ce9c4c |
children | 564b33acc21f |
line wrap: on
line diff
--- a/mercurial/patch.py Sat Oct 08 08:54:05 2016 -0700 +++ b/mercurial/patch.py Sat Oct 08 05:26:58 2016 -0700 @@ -1952,8 +1952,10 @@ data, mode = None, None if gp.op in ('RENAME', 'COPY'): data, mode = store.getfile(gp.oldpath)[:2] - # FIXME: failing getfile has never been handled here - assert data is not None + if data is None: + # This means that the old path does not exist + raise PatchError(_("source file '%s' does not exist") + % gp.oldpath) if gp.mode: mode = gp.mode if gp.op == 'ADD':