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

RE: svn commit: r1544182 - in /subversion/trunk/subversion: include/svn_client.h libsvn_client/cat.c libsvn_client/deprecated.c

From: Bert Huijben <bert_at_qqmail.nl>
Date: Wed, 26 Mar 2014 13:12:50 +0100

> -----Original Message-----
> From: Julian Foad [mailto:julianfoad_at_btopenworld.com]
> Sent: woensdag 26 maart 2014 12:57
> To: Bert Huijben
> Cc: dev_at_subversion.apache.org
> Subject: Re: svn commit: r1544182 - in /subversion/trunk/subversion:
> include/svn_client.h libsvn_client/cat.c libsvn_client/deprecated.c
>
> Hi Bert...
>
> > URL: http://svn.apache.org/r1544182
>
> > Log:
> > Make the 'svn_client_cat()' API a bit more generic usable for api users,
> > by allowing the suppression of keyword expansion and by optionally
> returning
> > the properties of the node.
>
> Shouldn't we have an EOL-style translation option as well? Usually the two
go
> together.

Not sure.

svn_client_cat2() already implemented keyword expansion, but I don't think
it changes EOL?

I just added an option to allow disabling a magic feature of
svn_client_cat2() that api developers could only work around by directly
going to either the wc or ra apis.

Translating the EOL style can be done by wrapping the passed output stream
by a translation... So I don't see that as an as-interesting case.

> > * subversion/include/svn_client.h
> >   (svn_client_cat3): New function.
> >   (svn_client_cat2): Deprecate function.
> >
> > * subversion/libsvn_client/cat.c
> >   (svn_client_cat2): Rename to ...
> >   (svn_client_cat3): ... this. Add support for not expanding keywords
and
> >     for returning the properties.
> >
> > * subversion/libsvn_client/deprecated.c
> >   (svn_client_cat2): New function.
>
> > Modified: subversion/trunk/subversion/include/svn_client.h
> >
> ==========================================================
> ====================
> > /**
> >   * Output the content of a file.
> >   *
> > - * @param[in] out           The stream to which the content will be
written.
> > - * @param[in] path_or_url   The path or URL of the file.
> > - * @param[in] peg_revision  The peg revision.
> > - * @param[in] revision  The operative revision.
> > + * @param[out] props           Optional output argument to obtain
> properties.
> > + * @param[in] out              The stream to which the content will be
written.
> > + * @param[in] path_or_url      The path or URL of the file.
> > + * @param[in] peg_revision     The peg revision.
> > + * @param[in] revision         The operative revision.
> > + * @param[in] expand_keywords  When true, keywords (when set) are
> expanded.
>
> And what if @a expand_keywords is false -- are keywords contracted to
their
> repository-normal form, or left unchanged? The implementation looks like
it
> leaves them unchanged.

We should never have expanded keywords in the repository normal form...

And we certainly never retract them when translating from that form...

>
> >   * @param[in] ctx   The standard client context, used for possible
> >   *                  authentication.
> >   * @param[in] pool  Used for any temporary allocation.
>
> There's no longer a 'pool', there's a result_pool and a scratch_pool.
>
> > *
> > * @todo Add an expansion/translation flag?
>
> That comment seems to be redundant now.

I removed the documentation for pool and the todo in r1581796.
>
> >   *
> > - * @since New in 1.2.
> > - *
>
> You should leave that "@since 1.2" in the deprecated function's doc
string.

Fixed in r1581796.

> >   * @see #svn_client_ctx_t <br> @ref clnt_revisions for
> >   *      a discussion of operative and peg revisions.
> > + *
> > + * @since New in 1.9.
> >   */
> > svn_error_t *
> > +svn_client_cat3(apr_hash_t **props,
> > +                svn_stream_t *out,
> > +                const char *path_or_url,
> > +                const svn_opt_revision_t *peg_revision,
> > +                const svn_opt_revision_t *revision,
> > +                svn_boolean_t expand_keywords,
> > +                svn_client_ctx_t *ctx,
> > +                apr_pool_t *result_pool,
> > +                apr_pool_t *scratch_pool);
> > +
> > +/**
> > + * Similar to svn_client_cat3() except without the option of directly
> > + * reading the properties, and with @a expand_keywords always TRUE.
>
> ... and only one pool.

I don't think we document those pool changes in other similar cases.
(svn_client_cat2() didn't have output arguments, so I don't think there is
anything special to document here)

        Bert
Received on 2014-03-26 13:13:41 CET

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