> -----Original Message----- > From: Paul Burba [mailto:ptbu...@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 <b...@qqmail.nl> wrote: > > > >> -----Original Message----- > >> From: pbu...@apache.org [mailto:pbu...@apache.org] > >> Sent: vrijdag 19 april 2013 20:22 > >> To: comm...@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 > >