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_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-09-17 13:03:34 CEST