[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: "svn log --limit" very slow with 1.8 client and 1.4 server

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Tue, 17 Dec 2013 16:53:05 +0000

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

This is an archived mail posted to the Subversion Dev mailing list.