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

Re: Quick analysis of svn log --limit

From: Greg Hudson <ghudson_at_MIT.EDU>
Date: 2005-05-08 18:29:47 CEST

On Sun, 2005-05-08 at 09:57 -0600, D.J. Heap wrote:
> subversion/libsvn_repos/log.c:svn_repos_get_logs3 -
> 1. When passing one path such as /trunk (or / which mod_dav_svn always
> seems to do even if no deeper path was specified) it performs the
> svn_repos_history2 call and spends a lot of time there gathering all revs
> for the path (which is nearly all the revs in the repo for /trunk and *is*
> all revs in the repo for /). So, svn_repos_history needs to be revved to
> take a limit parameter?

That would probably be the simplest change, although it's not as
efficient as it could be. (If I provide fifty paths and one of them
is /trunk, and the limit is 10, there's no reason to chase down ten
revisions of /trunk/this/file/hasnt/been/changed/in/ages.)

A potentially better change would be to rewrite svn_repos_get_logs3 to
not use svn_repos_history at all. The new design would use the
svn_fs_history interface directly. It would create a history object for
each provided path, and would step through them in parallel to produce a
sequence of revisions, stopping when it hits the limit. I think that
would require the least amount of I/O work.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sun May 8 18:31:25 2005

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