> -----Original Message-----
> From: Paul Burba [mailto:ptburba_at_gmail.com]
> Sent: maandag 22 april 2013 19:23
> To: Bert Huijben
> Cc: Michael Pilato; Subversion Development
> Subject: Re: svn commit: r1469982 - in /subversion/trunk/subversion:
> include/private/svn_client_private.h libsvn_client/log.c libsvn_client/ra.c
> tests/cmdline/log_tests.py
>
> On Sat, Apr 20, 2013 at 5:00 AM, Bert Huijben <bert_at_qqmail.nl> wrote:
> >
> >> -----Original Message-----
> >> From: pburba_at_apache.org [mailto:pburba_at_apache.org]
> >> Sent: vrijdag 19 april 2013 20:22
> >> To: commits_at_subversion.apache.org
> >> Subject: svn commit: r1469982 - in /subversion/trunk/subversion:
> >> include/private/svn_client_private.h libsvn_client/log.c libsvn_client/ra.c
> >> tests/cmdline/log_tests.py
> >>
> >> Author: pburba
> >> Date: Fri Apr 19 18:21:36 2013
> >> New Revision: 1469982
> >>
> >> URL: http://svn.apache.org/r1469982
> >> Log:
> >> 2nd attempt to fix issue #4355 'svn_client_log5 broken with multiple
> >> revisions which span a rename'.
> >
> > Hi,
> >
> > This patch and the few before extend svn_client_log to call more and more
> history operations on the same path.
>
> Hi Bert,
>
> The "few before"? There is only one (rr1469515) that I see. Are you
> referring to work older than what I've done in the prior week? If so
> could you point out the specific revs? I want to be sure I know what
> you are referring to.
I remember some other recent changes to the log function (Related to its strange set of arguments), but I can't find the references here.
>
> > (The path resolving via svn_client__repos_locations() is on the file system
> layer essentially the same thing as walking the history on the filesystem
> layer.)
> >
> > Instead of patching more and more corner cases with individual extra ra
> calls I think svn_client_log should call svn_client__repos_locations() once to
> obtain the history of the path to look at over the entire range of versions.
> (=over MAX(rev):MIN(rev)) and then use that information directly as the
> paths for the rest of the log calls.
>
> How exactly would svn_client__repos_locations be useful? Do you mean
> svn_ra_get_location_segments?
svn_client__repos_locations() is a libsvn_client wrapper of svn_ra_get_locations(), which is similar to svn_ra_get_location_segments(), but returns result in a harder to use format. The reason I used that function in my e-mail is because that is the function that implements the real work inside resolve_rev_and_url()
Bert
>
> > libsvn_client's log operation is already a very slow operation over high
> latency links with mod_dav and this patching with extra ra requests is making
> it worse and worse.
>
> I reverted r1469515 and r1469982 (excepting the new log tests of
> course, I left those in), so we are back at square one.
>
> > Performing this operation once should improve the log performance
> considerable, making the multi range version much better for script and api
> users.
> >
> > Bert
> >
Received on 2013-04-22 20:15:38 CEST