D6140: revset: add new contiguous(x) function for "x::x"

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Wed Mar 20 13:24:07 EDT 2019

martinvonz added a comment.

  Josef 'Jeff' Sipek <jeffpc at josefsipek.net> sent this to mercurial-devel. I'm adding it here for reference.
  >   "x::x" is a useful trick for making a range contiguous, but it gets
  >   annoying if "x" is a long expression. Let's provide a simple function
  >   that helps with that. It also makes it the trick more discoverable.
  > + at predicate('contiguous(set)', safe=True, takeorder=True)
  >  +def contiguous(repo, subset, x, order):
  >  +    """Changesets that have both ancestors and descendants in the set. This
  >  +    effectively fills in gaps in the set to make it contiguous, without adding
  >  +    new common ancestors or common descendants.
  >  +
  >  +     "contiguous(x)" is identical to "x::x".
  I read this doc string and the patch intro several times, and every time I
  concluded that this function was useless.  Only after reading some of the
  other replies, did I realize that "x" here can be a set.
  Therefore, technically, the above is correct.  Practically, if you are a
  mere mortal and you aren't used to very advanced revsets, the doc string
  will make you go "huh?".  I don't have a good suggestion how to improve it,
  I just thought I'd point out that it's a bit...opaque to more novice users.
  I agree that the name isn't the best, but I'll stay away from this bike shed

  rHG Mercurial


To: martinvonz, #hg-reviewers
Cc: mharbison72, yuja, av6, spectral, gracinet, marmoute, mercurial-devel

More information about the Mercurial-devel mailing list