Thread (1 message) 1 message, 1 author, 2016-06-15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help