You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Julian Foad <ju...@btopenworld.com> on 2012/12/18 00:43:13 UTC

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

Just for information, here's the patch showing what I am working on.  The log message is at the top of the patch and begins:


"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.  ..."

- Julian


--
Certified & Supported Apache Subversion Downloads: http://www.wandisco.com/subversion/download

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

Posted by Markus Schaber <m....@codesys.com>.
Hi, Julian,

Nice work. I think that CODESYS SVN could profit from this, as we use properties on nearly every file to store our metadata.

Now I only need to hack (or convice Bert :-) to expose those APIs in SharpSVN. :-)

Best regards

Markus Schaber

CODESYS® a trademark of 3S-Smart Software Solutions GmbH

Inspiring Automation Solutions

3S-Smart Software Solutions GmbH
Dipl.-Inf. Markus Schaber | Product Development Core Technology
Memminger Str. 151 | 87439 Kempten | Germany
Tel. +49-831-54031-979 | Fax +49-831-54031-50

E-Mail: m.schaber@codesys.com | Web: http://www.codesys.com
CODESYS internet forum: http://forum.codesys.com

Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner | Trade register: Kempten HRB 6186 | Tax ID No.: DE 167014915

> -----Ursprüngliche Nachricht-----
> Von: Julian Foad [mailto:julianfoad@btopenworld.com]
> Gesendet: Freitag, 21. Dezember 2012 00:43
> An: Subversion Development
> Betreff: Re: Work in progress: WC "add node" including the props
> 
> 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


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

Posted by Julian Foad <ju...@btopenworld.com>.
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