# HG changeset patch # User Brendan Cully # Date 1174511185 25200 # Node ID bda63383d5291fcfd3560501320318d7970bef3b # Parent 47ba52121433c345b5d1bb978a9cf08ccc222634 Make import opportunistically use merge information diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -1526,18 +1526,26 @@ def import_(ui, repo, patch1, *patches, message = None ui.debug(_('message:\n%s\n') % message) - files = {} + wp = repo.workingctx().parents() if opts.get('exact'): if not nodeid or not p1: raise util.Abort(_('not a mercurial patch')) p1 = repo.lookup(p1) p2 = repo.lookup(p2 or hex(nullid)) - wctx = repo.workingctx() - wp = repo.workingctx().parents() if p1 != wp[0].node(): hg.clean(repo, p1, wlock=wlock) repo.dirstate.setparents(p1, p2) + elif p2: + try: + p1 = repo.lookup(p1) + p2 = repo.lookup(p2) + if p1 == wp[0].node(): + repo.dirstate.setparents(p1, p2) + except RepoError: + pass + + files = {} try: fuzz = patch.patch(tmpname, ui, strip=strip, cwd=repo.root, files=files)