[PATCH 1 of 2] revset: add "subrepo" revset symbol
Angel Ezquerra
angel.ezquerra at gmail.com
Tue Mar 27 17:21:29 CDT 2012
On Tue, Mar 27, 2012 at 9:49 PM, Matt Mackall <mpm at selenic.com> wrote:
> On Thu, 2012-03-22 at 23:17 +0100, Angel Ezquerra wrote:
>> # HG changeset patch
>> # User Angel Ezquerra <angel.ezquerra at gmail.com>
>> # Date 1332447135 -3600
>> # Node ID 698737a841b9d4f28eb6849a836ab90d70fff174
>> # Parent 54df21ce2c2cc39481697a42f06b5f873f1cc075
>> revset: add "subrepo" revset symbol
>>
>> This new revset symbol finds those revisions in which any subrepo whose path
>> matches a given glob pattern were modified (e.g. "subrepo(my*repo)").
>>
>> If no argument is passed, find those revisions in which any subrepo was
>> modified.
>
> Seems ok.
>
>> +def subrepo(repo, subset, x):
>> + """``subrepo([path])``
>> + Find revisions where the selected subrepo has been modified.
>> + With no argument, find revisions where any subrepo has been modified.
>> + """
>> + # i18n: "subrepo" is a keyword
>> + if x:
>> + pat = encoding.lower(
>> + getstring(x, _("subrepo requires a string or no arguments")))
>
> Case mangling = bad.
Matt, thanks for the review. I'll fix that on the next version.
>> + def matchpat(pat, subs):
>> + for sub in subs:
>> + if fnmatch.fnmatch(sub, pat):
>> + return True
>> + return False
>
> That's definitely not the pattern for filename matching in Mercurial. We
> use our own much more powerful match module:
>
> http://www.selenic.com/hg/file/9952ac7e0968/mercurial/revset.py#l298
Thank you for the example. I'll use it and send a new patch.
I actually realized that my patch does not do what the commit message
says. Rather than showing any revision where a given subrepo was
modified it shows any revision that has a subrepo matching a given
pattern.
I wonder if this may come handy, and if so we could keep this (after
fixing it with your suggestions above), perhaps with a different
keyword name?
Also I wonder if hassubrepo would not be a better name than 'subrepo',
since there is already a ' hasfile' which returns any revision
affecting a given file.
> Mathematics is the supreme nostalgia of our time.
I'm curious. Who is that quote from?
Cheers,
Angel
More information about the Mercurial-devel
mailing list