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

Re: Speeding up blame (fwd)

From: Peter N. Lundblad <peter_at_famlundblad.se>
Date: 2004-05-26 09:29:43 CEST

On Wed, 26 May 2004, Greg Hudson wrote:

> On Tue, 2004-05-25 at 16:44, Peter N. Lundblad wrote:
> > Not really. As you can see below, I need svn_txdelta_window_handler_t,
> > which is in svn_delta.h, which include svn_types. Hmmm...
>
> Another option is to use an iterative iterface (a la svn_fs_history)
> rather than a callback interface in libsvn_repos. Then only svn_ra
> needs the callback type. Contrived? Possibly. But an iterative
> interface is often easier to use than a callback interface anyway, so it
> makes some sense to provide one when we can. And there's precedent for
> do_log vs. svn_fs_history.
>
Yes, that would be possible.

Another approach that springs to my mind is not to expose the deltas in
the RA interface, so we would move my previous typedef to svn_repos
(renaming it) and in svn_ra.h add
typedef svn_error_t *(*svn_ra_file_rev_handler_t)
    (void *baton,
     const char *path,
     svn_revnum_t revnum,
     apr_hash_t *rev_props,
     svn_stream_t **contents,
     apr_hash_t *props,
     apr_pool_t *pool);

Then it could be implemented using the repository function for network RA
implementations, but for ra_local, we don't need to calculate the deltas.
I don't know if this is faster, but in any case, the client only cares
about the whole file, so why give it a delta?

Regards,
//Peter

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed May 26 09:22:10 2004

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