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 2008/09/17 11:03:16 UTC

Re: [RFC] Introducing svn_client_make_diff_args? (Was: RE: svn commit: r33116 - in branches/ignore-mergeinfo/subversion: include libsvn_client svn)

Bert Huijben wrote:
> > +svn_error_t *
> > +svn_client_diff5(const apr_array_header_t *diff_options,
> > +                 const char *path1,
> > +                 const svn_opt_revision_t *revision1,
> > +                 const char *path2,
> > +                 const svn_opt_revision_t *revision2,
> > +                 const char *relative_to_dir,
> > +                 svn_depth_t depth,
> > +                 svn_boolean_t ignore_ancestry,
> > +                 svn_boolean_t no_diff_deleted,
> > +                 svn_boolean_t ignore_content_type,
> > +                 svn_boolean_t ignore_mergeinfo,
> > +                 const char *header_encoding,
> > +                 apr_file_t *outfile,
> > +                 apr_file_t *errfile,
> > +                 const apr_array_header_t *changelists,
> > +                 svn_client_ctx_t *ctx,
> > +                 apr_pool_t *pool);
> 
> This method has 5 different versions over 7 subversion point releases,
> each adding just on or a few 'optional' parameters.
> 
> Shouldn't we create some kind of context/args object that we can
> extend in future versions for methods that probably have yet another
> version in the next release?

Yes, please!

> [[
> Client.Diff("a", "b", diffStream, true, true, false, false, true);
> ]]
> Completely unreadable without intellisense or documentation open.
> 
> [[
> SvnDiffArgs args = new SvnDiffArgs();
> args.IgnoreContentType = true;
> args.IgnoreMergeInfo = true;
> 
> Client.Diff("a", "b", diffStream, args);
> ]]

> Adding a new property to the args object does not break the ABI and
> does not require a new compatibility wrapper to maintain forever.

+1.

- Julian



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org