Peter Harris <pharris_at_opentext.com> writes:
> https://subversion.apache.org/reporting-issues.html directed me to
> report issues to this mailing list.
>
> With svn 1.8.x (tested 1.8.3 and 1.8.5), "svn log" is very slow against
> older svnserve (tested 1.4.6) when specifying any path other than the
> root of the repository.
>
> eg.
>
> $ time svn log -l1 svn://host/repo > /dev/null
>
> real 0m0.039s
> user 0m0.008s
> sys 0m0.011s
>
> $ time svn log -l1 svn://host/repo/trunk > /dev/null
>
> real 5m55.153s
> user 0m0.670s
> sys 0m0.197s
>
>
> This is a repository with about 35k revisions. From a glance at
> wireshark, it appears as though the svn client is downloading the
> complete log history before printing out any log messages.
>
> Older svn clients do not have this issue (tested 1.6.17 and 1.7)
I can reproduce this.
The svn_client_log6 function is using svn_ra_get_location_segments
before calling svn_ra_get_log3 when asked for log on paths other than
the repository root. There is no server side support for
get-location-segments on older serves and svn_ra_get_location_segments
falls back to deriving it from the whole repository log. This means
that the client log implementation gets the whole repository log before
making a second log request for the partial log that is required.
--
Philip Martin | Subversion Committer
WANdisco // *Non-Stop Data*
Received on 2013-12-17 17:56:48 CET