Re: [PATCH 0/2] [RFD] Using gitrevisions :/search style with other operators
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Dec 9, 2010, 11:38 UTC
- Message-ID
- <201012091238.15685.jnareb@gmail.com>
- In-Reply-To
- <7vsjy7h3db.fsf@alter.siamese.dyndns.org>
On Thu, 9 Dec 2010, Junio C Hamano wrote:
Show 18 quoted lines
> Jonathan Nieder <jrnieder@gmail.com> writes:
>> Jakub Narebski wrote:
>>
>>> You would need HEAD{^{/foo}^@}x3, or use special rule that HEAD^{/foo}x2
>>> means really HEAD^{/foo}^@^{/foo}, with ^@ used to join them.
>>
>> That said, does ^2x500 really do something meaningful that a person
>> would ever need? I like the
>>
>> ^{:nth(3)/foo}
>>
>> syntax because perl6 supports m:nth(3)/foo/, suggesting a menu of
>> already-defined modifiers to implement when they prove useful,...
>
> Can you explain what the colon in "$commit^{:nth(3)/foo}" is doing?
>
> Are we declaring anything that begins with ':' is a magic inside ^{...}
> construct?The idea is to follow Perl 6 rule of combining modifiers "Every modifier must start with its own colon." http://perlcabal.org/syn/S05.html#Modifiers
This allow for easy combining modifiers without introducing special rules,
for example ^{:g:i/foo} would return all matches (:g == :global) instead
of only the first, ignoring case (:i == :ignorecase).
Show 5 quoted lines
> I do not think nth($n) without specifying where to start (iow, what the > current ":/foo" implementation does but with "three levels deep") makes > any sense, but because the main point of your argument is that we can have > modifies other than nth($n) that may make sense in such a context, I would > want to make sure anything we come up with is extensible to that syntax.
Hmmm... I haven't thought about it. I guess that ^{:nth(N)/foo} should return Nth element in the list that ^{:g/foo} / --grep=foo would return.
This way one could use
$ git log pu@{1}..pu --merges --grep="Merge branch 'nd/"to find all new Nguyen contributions in 'pu', and
$ git log pu..pu^{:2nd/Merge branch 'nd/}^2to view 2nd (2nd == nth(2)) such branch on the list.
Show 5 quoted lines
>
> On the "starting from any ref" front, I think "!" (as in ":/!some magic")
> was the introducer we reserved for such a magic some time ago, so perhaps
> on the "starting from this commit" side, "^{!magic/foo}" may be more
> appropriate?I'd like to deprecate ":/foo" in favor of "--all ^{/foo}", or even special case it to "^{/foo}" (if not attached to ref, ^{(:<modifier>)*/<regexp>} acts on positive revs replacing them).
But ^{/foo} might be overengineered...-- Jakub Narebski Poland