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

Reply via email to