On Fri, 6 Jan 2017 21:29:43 -0500, Matt Harbison wrote: > > On Jan 6, 2017, at 11:19 AM, Pierre-Yves David > > <pierre-yves.da...@ens-lyon.org> wrote: > >> On 01/04/2017 07:04 PM, Matt Harbison wrote: > >> # HG changeset patch > >> # User Matt Harbison <matt_harbi...@yahoo.com> > >> # Date 1483550016 18000 > >> # Wed Jan 04 12:13:36 2017 -0500 > >> # Node ID 76d95ab94b9e206363629059fb7824002e19a9e5 > >> # Parent 0064a1eb28e246ded9b726c696d048143d1b23f1 > >> revset: introduce the summary predicate > >> > >> This is similar to the 'desc()' predicate, however the search is limited > >> to the > >> first line, which I couldn't figure out how to do with the existing > >> functionality. Unlike 'desc()', this supports regular expressions. The > >> 'matching()' revset already treats the summary line distinctly from the > >> full > >> description, but that finds similar revisions instead of searching with a > >> string. > > > > Looks like a great usecase to handle, I want that. However, are there > > reasons why: > > > > 1) We could not add full pattern support to desc() > > 2) We could not make this an extra keyworkd parameters of desc() > > > > Multiplying the revset predicate hurts discoverability, having less but > > more powerful predicate seems useful. > > I share your concern about discoverability. > > I started out editing desc(), but it's explicitly documented as case > insensitive. It seems confusing if matching for literals is case > insensitive, but regex is case sensitive for the same predicate. (I vaguely > recall that you can make regex case insensitive, but I think that would also > surprise the user.) I meant to mention that maybe we could add pattern > support to desc() in addition to this, but forgot. The other stuff I looked > at that supports patterns, like tag(), is case sensitive for both literals > and regex. That makes sense, since those search for identifiers.
Perhaps stringmatcher can have 3 types, icase literal, literal, and re, and the default of desc() is icase literal for backward compatibility. You can build a case-insensitive regexp object from a literal pattern. https://docs.python.org/2/library/re.html#re.I _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel