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

RE: "svn pget svn:externals -r <rev> . -R" dramatically slow

From: Bert Huijben <bert_at_qqmail.nl>
Date: Thu, 18 May 2017 12:09:07 +0200

> -----Original Message-----
> From: Johan Corveleyn [mailto:jcorvel_at_gmail.com]
> Sent: woensdag 17 mei 2017 19:57
> To: Andry <andry_at_inbox.ru>
> Cc: users_at_subversion.apache.org
> Subject: Re: "svn pget svn:externals -r <rev> . -R" dramatically slow
>
> On Tue, May 16, 2017 at 11:42 PM, Andry <andry_at_inbox.ru> wrote:
> > Hello Users,
> >
> > Original issue: https://issues.apache.org/jira/browse/SVN-4681
> >
> > Just discovered a really strange case where exactly titled command bring
> really slow response.
> >
> > The repository contains more than 1000 revisions. The WC is in the middle,
> say at rev 1193 (the current), the show log shows 1191 at the last revision,
> the HEAD revision say 1300.
> > Trying to cd into WC directory and run the command. Needs about 1
> minute to wait it's response. The Process Hacker shows traffic with the
> server up to about 2MB.
> >
> > If try to run command w/o -R flag - command returns immediately.
> >
> > The content of the externals property without the -R flag is:
> > https://domain.ab/svn/proj2/trunk - ^/../proj3/trunk/cmake cmake_proj3
> > ^/solutions/project1/sdk proj2-sdk
> >
> > The content of the externals property with the -R flag is:
> > https://domain.ab/svn/proj2/trunk - ^/../proj3/trunk/cmake cmake_proj3
> > ^/solutions/project1/sdk proj2-sdk
> > https://domain.ab/svn/proj2/trunk/proj2-gui -
> > https://domain.ab/svn/proj2/trunk/proj2-gui/lib/Resource/Files -
> >
> > I think the 2 last records draws the svn mad and it begin to crawl the server
> for something for about 1 minute.
> >
> > I tries variations of the command. For example all these having the same
> result as above:
> > svn pget svn:externals -r "1193" "https://domain.ab/svn/proj2/trunk" -R --
> non-interactive
> > svn pget svn:externals -r "1193"
> "https://domain.ab/svn/proj2/trunk@1193" -R --non-interactive
> > svn pget svn:externals "https://domain.ab/svn/proj2/trunk@1193" -R --
> non-interactive
> >
> > Dig a bit further and found this:
> > svn info https://domain.ab/svn/proj2/trunk/proj2-gui
> > svn: warning: W170000: URL 'https://domain.ab/svn/proj2/trunk/proj2-gui'
> non-existent in revision 1300
> > svn: E200009: Could not display info for all targets because some targets
> don't exist
> >
> > Seems the 2 last records reference URL's what does not exist anymore in
> the HEAD.
> >
> > These 2 records are left after an upgrade from a previous version of
> database, but why is the svn runs so slow about it? Anyway, i can't just
> cleanup the externals because they are from 3dparty repository in which i
> have no access.
>
> Thanks for bringing the issue here to the list.

There is no optimized code path for retrieving properties recursively directly from the server.

The implementation of this specific command is like running 'svn ls' on every directory + fetching the properties on every file and every directory. (It is slightly more optimized than that, but not much)

        Bert
Received on 2017-05-18 12:09:28 CEST

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.