--- a/mercurial/match.py Wed May 16 13:45:46 2012 -0700
+++ b/mercurial/match.py Wed May 30 14:21:58 2012 -0500
@@ -62,7 +62,10 @@
pats = _normalize(exclude, 'glob', root, cwd, auditor)
self.excludepat, em = _buildmatch(ctx, pats, '(?:/|$)')
if exact:
- self._files = patterns
+ if isinstance(patterns, list):
+ self._files = patterns
+ else:
+ self._files = list(patterns)
pm = self.exact
elif patterns:
pats = _normalize(patterns, default, root, cwd, auditor)
--- a/mercurial/scmutil.py Wed May 16 13:45:46 2012 -0700
+++ b/mercurial/scmutil.py Wed May 30 14:21:58 2012 -0500
@@ -525,9 +525,11 @@
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])
--- a/tests/test-diff-change.t Wed May 16 13:45:46 2012 -0700
+++ b/tests/test-diff-change.t Wed May 30 14:21:58 2012 -0500
@@ -29,6 +29,12 @@
-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: