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

Reply via email to