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

Re: Work in progress: WC "add node" including the props

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Thu, 20 Dec 2012 23:42:50 +0000 (GMT)

I (Julian Foad) wrote:
> "Teach some WC and client 'add' functions to take the properties as
> a parameter so that the whole addition including any properties can
> be done all at once.  ..."

I finished this and committed it in <http://svn.apache.org/r1424739>.

I did this because of the update-move work: that needs more "regular" APIs to both read and write nodes in the DB.  As in we should be able to read "a node" including (a reference to) its text and its props in one call.  And similarly write "a node" in one call.

Afterwards, I ran a test to see whether this makes a noticeable speed difference to "svn add", just as a curiosity -- I don't really care about that and that wasn't any part of my goal.  Speed freaks may be interested in the outcome.  In an unrealistic manual test, I put an unversioned export of the svn trunk inside an otherwise empty WC, and ran "svn add" with 25 auto-props defined on every file.

$ time svn add wc/tree/ --config-option='config:miscellany:enable-auto-props=1' --config-option='config:auto-props:*=a=a;b=b;c=c;d=d;e=e;f=f;g=g;h=h;i=i;j=j;k=k;l=l;m=m;n=n;o=o;p=p;q=q;r=r;s=s;t=t;u=u;v=v;w=w;x=x;y=y'

        pre-patch   post-patch
real    0m7.00s     0m1.13s
user    0m5.65s     0m0.72s
sys     0m0.97s     0m0.32s

This is expected because the patch eliminates the add-one-property-at-a-time-to-the-db loop.

Without any auto-props:

$ time svn add -q wc/tree/
        pre-patch   post-patch
real    0m1.16s     0m0.92s
user    0m0.78s     0m0.62s
sys     0m0.35s     0m0.29s

This was on my Ubuntu 10.10 system, ext3 FS on a spinning disk.  Timings approx +/- 15%, averaged by eye from 3 runs.

- Julian
Received on 2012-12-21 00:43:26 CET

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

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