diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -524,9 +524,11 @@ def revpair(repo, revs): l = revrange(repo, revs) if len(l) == 0: + if revs: + raise util.Abort(_('empty revision range')) return repo.dirstate.p1(), None - if len(l) == 1: + if len(l) == 1 and len(revs) == 1 and _revrangesep not in revs[0]: return repo.lookup(l[0]), None return repo.lookup(l[0]), repo.lookup(l[-1]) diff --git a/tests/test-diff-change.t b/tests/test-diff-change.t --- a/tests/test-diff-change.t +++ b/tests/test-diff-change.t @@ -29,6 +29,12 @@ Testing diff --change -first +second +Test dumb revspecs (issue3474) + + $ hg diff -r 2:2 + $ hg diff -r "2 and 1" + abort: empty revision range + [255] Testing diff --change when merge: