diff -r 6b098ac4542e -r 3af9a9628ecf mercurial/cmdutil.py --- a/mercurial/cmdutil.py Fri Mar 03 14:08:20 2017 +0100 +++ b/mercurial/cmdutil.py Mon Mar 06 14:11:21 2017 +0100 @@ -3247,15 +3247,18 @@ diffopts = patch.difffeatureopts(repo.ui, whitespace=True) diffopts.nodates = True diffopts.git = True - reversehunks = repo.ui.configbool('experimental', - 'revertalternateinteractivemode', - True) + operation = 'discard' + reversehunks = True + if node != parent: + operation = 'revert' + reversehunks = repo.ui.configbool('experimental', + 'revertalternateinteractivemode', + True) if reversehunks: diff = patch.diff(repo, ctx.node(), None, m, opts=diffopts) else: diff = patch.diff(repo, None, ctx.node(), m, opts=diffopts) originalchunks = patch.parsepatch(diff) - operation = 'discard' if node == parent else 'revert' try: