changeset 45750:c00595736595 stable

revset: rename diff(pattern) to diffcontains(pattern) Suggested by Augie, and I think it's better name.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 17 Oct 2020 13:00:04 +0900
parents f95b16796688
children 60d0634c43c2
files mercurial/revset.py tests/test-grep.t
diffstat 2 files changed, 21 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/revset.py	Sun Oct 18 22:48:00 2020 -0700
+++ b/mercurial/revset.py	Sat Oct 17 13:00:04 2020 +0900
@@ -994,24 +994,27 @@
     )
 
 
-@predicate(b'diff(pattern)', weight=110)
-def diff(repo, subset, x):
+@predicate(b'diffcontains(pattern)', weight=110)
+def diffcontains(repo, subset, x):
     """Search revision differences for when the pattern was added or removed.
 
     The pattern may be a substring literal or a regular expression. See
     :hg:`help revisions.patterns`.
     """
-    args = getargsdict(x, b'diff', b'pattern')
+    args = getargsdict(x, b'diffcontains', b'pattern')
     if b'pattern' not in args:
-        # i18n: "diff" is a keyword
-        raise error.ParseError(_(b'diff takes at least 1 argument'))
-
-    pattern = getstring(args[b'pattern'], _(b'diff requires a string pattern'))
+        # i18n: "diffcontains" is a keyword
+        raise error.ParseError(_(b'diffcontains takes at least 1 argument'))
+
+    pattern = getstring(
+        args[b'pattern'], _(b'diffcontains requires a string pattern')
+    )
     regexp = stringutil.substringregexp(pattern, re.M)
 
     # TODO: add support for file pattern and --follow. For example,
-    # diff(pattern[, set]) where set may be file(pattern) or follow(pattern),
-    # and we'll eventually add a support for narrowing files by revset?
+    # diffcontains(pattern[, set]) where set may be file(pattern) or
+    # follow(pattern), and we'll eventually add a support for narrowing
+    # files by revset?
     fmatch = matchmod.always()
 
     def makefilematcher(ctx):
@@ -1030,7 +1033,7 @@
                 found = True
         return found
 
-    return subset.filter(testdiff, condrepr=(b'<diff %r>', pattern))
+    return subset.filter(testdiff, condrepr=(b'<diffcontains %r>', pattern))
 
 
 @predicate(b'contentdivergent()', safe=True)
--- a/tests/test-grep.t	Sun Oct 18 22:48:00 2020 -0700
+++ b/tests/test-grep.t	Sat Oct 17 13:00:04 2020 +0900
@@ -23,13 +23,13 @@
 
 invalid revset syntax
 
-  $ hg log -r 'diff()'
-  hg: parse error: diff takes at least 1 argument
+  $ hg log -r 'diffcontains()'
+  hg: parse error: diffcontains takes at least 1 argument
   [255]
-  $ hg log -r 'diff(:)'
-  hg: parse error: diff requires a string pattern
+  $ hg log -r 'diffcontains(:)'
+  hg: parse error: diffcontains requires a string pattern
   [255]
-  $ hg log -r 'diff("re:**test**")'
+  $ hg log -r 'diffcontains("re:**test**")'
   hg: parse error: invalid regular expression: nothing to repeat* (glob)
   [255]
 
@@ -567,13 +567,13 @@
 
 revset predicate for "grep --diff"
 
-  $ hg log -qr 'diff("re:^bl...$")'
+  $ hg log -qr 'diffcontains("re:^bl...$")'
   0:203191eb5e21
-  $ hg log -qr 'diff("orange")'
+  $ hg log -qr 'diffcontains("orange")'
   1:7c585a21e0d1
   2:11bd8bc8d653
   3:e0116d3829f8
-  $ hg log -qr '2:0 & diff("orange")'
+  $ hg log -qr '2:0 & diffcontains("orange")'
   2:11bd8bc8d653
   1:7c585a21e0d1