Re: [PATCH/RFC] blame: accept multiple -L ranges
From: Thomas Rast <hidden>
Date: 2016-06-15 22:58:14
Junio C Hamano [off-list ref] writes:
Thomas Rast [off-list ref] writes:quoted
Eric Sunshine [off-list ref] writes:quoted
The proposal currently is only for "-L /RE/,whatever" to behave in a relative fashion, beginning the search at the end of the last range specified via -L (or line 1 if there is no previous -L). Would it also make sense to support "-L +N,whatever" as relative to the end of the last range specified via -L (or 1 if none).Sounds reasonable. I'm still not sure I am super-happy with /RE/ always being relative, though I see Junio's problem space as something worth solving. How does it interact with -L:RE? Do you now have to know in what order the functions appear in the source to correctly specify -L:foo -L:bar or similarly, -L/foo/,/^}/ -L/bar/,/^}/? What if we supported +/RE/ as the relative version?Two gripes I have are: (1) That sounds like making common things more cumbersome to ask. (2) In "-L /RE1/,/RE2/", you do not have to say +/RE2/ (and you shouldn't have to). /RE3/ without any magic that starts searching after the last match in "-L /RE1/,/RE2/ -L /RE3/,+4" feels a lot more consistent than requiring a prefix plus. I am OK if you made /RE/, which starts searching immediately after the last match, wrap around and continue the search at the beginning upon finding nothing through the end of the file (and make sure you stop if you passed the last match again). That would solve your "I have two functions, and I can give them in any order", while keeping the consistency with "In /RE1/,/RE2/, the latter is already relative to the former".
Dunno. It still doesn't really solve the order-of-L problem if there
are multiple matches.
I can't really say how they fare against each other. I have a bad
feeling about the consistency of what results, but as you say, doing it
the way I suggested isn't very consistent either. Perhaps in retrospect
even -L/foo/,/bar/ should have required the + in +/bar/ to make it
relative.
I'll just leave it at that and let you decide what to do (presumably go
ahead as you already outlined). I've never actually ever used multiple
-L in the same log/blame invocation, anyway. I just think that when it
comes to it, I'll have to read the manpage before I try...
--
Thomas Rast
trast@{inf,student}.ethz.ch