diff -r f6371cc62d2a -r 9472284df4eb mercurial/commands.py --- a/mercurial/commands.py Sat Aug 23 17:03:08 2014 -0500 +++ b/mercurial/commands.py Wed Aug 27 15:30:09 2014 +0200 @@ -3183,14 +3183,23 @@ ctx = repo[rev] n = ctx.extra().get('source') if n in ids: - r = repo[n].rev() + try: + r = repo[n].rev() + except error.RepoLookupError: + r = None if r in revs: ui.warn(_('skipping revision %s (already grafted to %s)\n') % (r, rev)) revs.remove(r) elif ids[n] in revs: - ui.warn(_('skipping already grafted revision %s ' - '(%s also has origin %d)\n') % (ids[n], rev, r)) + if r is None: + ui.warn(_('skipping already grafted revision %s ' + '(%s also has unknown origin %s)\n') + % (ids[n], rev, n)) + else: + ui.warn(_('skipping already grafted revision %s ' + '(%s also has origin %d)\n') + % (ids[n], rev, r)) revs.remove(ids[n]) elif ctx.hex() in ids: r = ids[ctx.hex()]