Patchwork [1,of,5] remotenames: inline _parseargs() into _revsetutil()

login
register
mail settings
Submitter Yuya Nishihara
Date Oct. 5, 2018, 1:29 p.m.
Message ID <25533575d04ebad69036.1538746196@mimosa>
Download mbox | patch
Permalink /patch/35484/
State Accepted
Headers show

Comments

Yuya Nishihara - Oct. 5, 2018, 1:29 p.m.
# HG changeset patch
# User Yuya Nishihara <yuya@tcha.org>
# Date 1538742561 -32400
#      Fri Oct 05 21:29:21 2018 +0900
# Node ID 25533575d04ebad69036892808c0e149fbefbf85
# Parent  5c3585a588458a70338fb112708c9b0cd2af2526
remotenames: inline _parseargs() into _revsetutil()

The _parseargs() function gets quite simple, and the 0/1 loop can be rewritten
as "if".
Pulkit Goyal - Oct. 5, 2018, 1:57 p.m.
On Fri, Oct 5, 2018 at 4:31 PM Yuya Nishihara <yuya@tcha.org> wrote:

> # HG changeset patch
> # User Yuya Nishihara <yuya@tcha.org>
> # Date 1538742561 -32400
> #      Fri Oct 05 21:29:21 2018 +0900
> # Node ID 25533575d04ebad69036892808c0e149fbefbf85
> # Parent  5c3585a588458a70338fb112708c9b0cd2af2526
> remotenames: inline _parseargs() into _revsetutil()
>
> The _parseargs() function gets quite simple, and the 0/1 loop can be
> rewritten
> as "if".
>

Queued this series. Many thanks!

Patch

diff --git a/hgext/remotenames.py b/hgext/remotenames.py
--- a/hgext/remotenames.py
+++ b/hgext/remotenames.py
@@ -347,8 +347,14 @@  def remotebrancheskw(context, mapping):
     return templateutil.compatlist(context, mapping, 'remotebranch',
                                    remotebranches, plural='remotebranches')
 
-def _revsetutil(repo, subset, x, rtypes, matcher):
+def _revsetutil(repo, subset, x, rtypes):
     """utility function to return a set of revs based on the rtypes"""
+    args = revsetlang.getargs(x, 0, 1, _('only one argument accepted'))
+    if args:
+        kind, pattern, matcher = stringutil.stringmatcher(
+            revsetlang.getstring(args[0], _('argument must be a string')))
+    else:
+        matcher = lambda a: True
 
     revs = set()
     cl = repo.changelog
@@ -363,18 +369,6 @@  def _revsetutil(repo, subset, x, rtypes,
     results = (cl.rev(n) for n in revs if cl.hasnode(n))
     return subset & smartset.baseset(sorted(results))
 
-def _parseargs(x):
-    """parses the argument passed in revsets
-
-    Returns a matcher for the passed pattern.
-    """
-    args = revsetlang.getargs(x, 0, 1, _('only one argument accepted'))
-    for arg in args:
-        kind, pattern, matcher = stringutil.stringmatcher(
-            revsetlang.getstring(arg, _('argument must be a string')))
-        return matcher
-    return lambda a: True
-
 @revsetpredicate('remotenames([name])')
 def remotenamesrevset(repo, subset, x):
     """All changesets which have a remotename on them. If `name` is
@@ -382,8 +376,7 @@  def remotenamesrevset(repo, subset, x):
 
     Pattern matching is supported for `name`. See :hg:`help revisions.patterns`.
     """
-    return _revsetutil(repo, subset, x, ('remotebookmarks', 'remotebranches'),
-                       _parseargs(x))
+    return _revsetutil(repo, subset, x, ('remotebookmarks', 'remotebranches'))
 
 @revsetpredicate('remotebranches([name])')
 def remotebranchesrevset(repo, subset, x):
@@ -392,9 +385,7 @@  def remotebranchesrevset(repo, subset, x
 
     Pattern matching is supported for `name`. See :hg:`help revisions.patterns`.
     """
-
-    args = _parseargs(x)
-    return _revsetutil(repo, subset, x, ('remotebranches',), args)
+    return _revsetutil(repo, subset, x, ('remotebranches',))
 
 @revsetpredicate('remotebookmarks([name])')
 def remotebmarksrevset(repo, subset, x):
@@ -403,6 +394,4 @@  def remotebmarksrevset(repo, subset, x):
 
     Pattern matching is supported for `name`. See :hg:`help revisions.patterns`.
     """
-
-    args = _parseargs(x)
-    return _revsetutil(repo, subset, x, ('remotebookmarks',), args)
+    return _revsetutil(repo, subset, x, ('remotebookmarks',))