Daniel Becroft wrote on Wed, 28 Jun 2017 07:40 +0000:
> I expected that if I combined these (for example, `svn log --search "Foo"
> --limit 10`), that I would get the last 10 log messages that contained the
> search criteria, however it only showed those log messages in the last 10
> that contained "Foo". If the latest log message that contained "Foo" was
> number 11, nothing would be displayed.
The --limit filter is implemented at a different layer to the --search
filter.
The --search filtering is implemented directly in the command-line
client; the --limit filter is implemented in the library. They are
implemented orthogonally, so the --search operates only on the results of
--limit, as you observed.
The change you propose certainly makes sense from the perspective of
somebody who uses --search and wants to limit its output. However, from
the opposite perspective, of somebody who uses --limit=500 and then
wants to filter _that_ output to log messages that contain "needle", the
existing behaviour is the desired one. That is: both 'foo | head |
grep bar' and 'foo | grep bar | head' are reasonable use-cases.
A further complication is that applying --limit to the results of
--search would require either downloading the whole log to the client,
or pushing the "search pattern" logic to the server.
tl;dr: I agree that your use-case is valid, but I'm not sure how to
support it.
Cheers,
Daniel
Received on 2017-06-28 10:02:05 CEST