D5495: revset: add "branch" positional arguments to the merge revset

yuja (Yuya Nishihara) phabricator at mercurial-scm.org
Mon Jan 7 09:17:29 EST 2019


yuja added a comment.


  > + at predicate('merge(*withbranch)', safe=True)
  > 
  >   def merge(repo, subset, x):
  > 
  > - """Changeset is a merge changeset. +    """Changeset is a merge changeset + +    All merge revisions are returned by default. If one or more "withbranch" +    names are provided only merges with those branches (i.e. whose +    second parent belongs to one of those branches) will be returned.
  
  I understand this will be useful in a certain branch strategy, but the
  proposed syntax is hardly extensible. Maybe it can be a non-wildcard argument
  of `stringmatcher` type so we can at least add another option later.
  
  Any thoughts? Do anyone love this feature?
  
  If we had a syntax to filter revisions by sub expression, this and the
  samebranch option could be expressed as follows:
  
    merge() & filter($a, p2($a) & branch("..."))
    merge() & filter($a, samebranch(parents($a)))
    
    where filter(argname, boolean-expr)
  
  This is much more expressive (or verbose) and can support other types of
  branches, but is hard to implement.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D5495

To: angel.ezquerra, #hg-reviewers
Cc: yuja, mercurial-devel


More information about the Mercurial-devel mailing list