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