I raised some issues about this proposed change in
http://svn.haxx.se/dev/archive-2010-08/0431.shtml. Could you please
address them?
Thanks,
-Hyrum
On Tue, Aug 17, 2010 at 5:25 PM, <rhuijben_at_apache.org> wrote:
> Author: rhuijben
> Date: Tue Aug 17 22:25:09 2010
> New Revision: 986510
>
> URL: http://svn.apache.org/viewvc?rev=986510&view=rev
> Log:
> Following up on r957917, make it possible to switch of the ambient depth
> filter when using svn_client_status5, like it is possible with
> svn_client_update3().
>
> Currently we don't expose this information to the svn client, as using
> --set-depth on svn status would be illogical.
>
> * subversion/bindings/javahl/native/SVNClient.cpp
> (SVNClient::status): Update caller.
>
> * subversion/include/svn_client.h
> (svn_client_status5): Add flag.
> (svn_client_status4): Update documentation.
>
> * subversion/libsvn_client/delete.c
> (svn_client__can_delete): Update caller.
>
> * subversion/libsvn_client/deprecated.c
> (svn_client_status4): Update caller.
>
> * subversion/libsvn_client/externals.c
> (svn_client__do_external_status): Update caller.
>
> * subversion/libsvn_client/status.c
> (svn_client_status5): Allow using the explicit depth for the ra call.
>
> * subversion/svn/status-cmd.c
> (svn_cl__status): Update caller.
>
> Modified:
> subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp
> subversion/trunk/subversion/include/svn_client.h
> subversion/trunk/subversion/libsvn_client/delete.c
> subversion/trunk/subversion/libsvn_client/deprecated.c
> subversion/trunk/subversion/libsvn_client/externals.c
> subversion/trunk/subversion/libsvn_client/status.c
> subversion/trunk/subversion/svn/status-cmd.c
>
> Modified: subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp?rev=986510&r1=986509&r2=986510&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp (original)
> +++ subversion/trunk/subversion/bindings/javahl/native/SVNClient.cpp Tue Aug 17 22:25:09 2010
> @@ -183,7 +183,7 @@ SVNClient::status(const char *path, svn_
> SVN_JNI_ERR(svn_client_status5(&youngest, ctx, checkedPath.c_str(),
> &rev,
> depth,
> - getAll, onServer, noIgnore,
> + getAll, onServer, noIgnore, FALSE,
> ignoreExternals,
> changelists.array(requestPool),
> StatusCallback::callback, callback,
>
> Modified: subversion/trunk/subversion/include/svn_client.h
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_client.h?rev=986510&r1=986509&r2=986510&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/include/svn_client.h (original)
> +++ subversion/trunk/subversion/include/svn_client.h Tue Aug 17 22:25:09 2010
> @@ -2142,6 +2142,10 @@ typedef svn_error_t *(*svn_client_status
> * definition, and with #svn_wc_notify_status_completed
> * after each.
> *
> + * If @a depth_as_sticky is set and @a depth is not
> + * #svn_depth_unknown, then the status is calculated as if depth_is_sticky
> + * was passed to an equivalent update command.
> + *
> * @a changelists is an array of <tt>const char *</tt> changelist
> * names, used as a restrictive filter on items whose statuses are
> * reported; that is, don't report status about any item unless
> @@ -2162,6 +2166,7 @@ svn_client_status5(svn_revnum_t *result_
> svn_boolean_t update,
> svn_boolean_t no_ignore,
> svn_boolean_t ignore_externals,
> + svn_boolean_t depth_as_sticky,
> const apr_array_header_t *changelists,
> svn_client_status_func_t status_func,
> void *status_baton,
> @@ -2169,7 +2174,8 @@ svn_client_status5(svn_revnum_t *result_
>
> /**
> * Same as svn_client_status5(), but using #svn_wc_status_func3_t
> - * instead of #svn_wc_status_func4_t.
> + * instead of #svn_wc_status_func4_t and depth_as_sticky set to FALSE.
> + * (
> *
> * @since New in 1.6.
> * @deprecated Provided for backward compatibility with the 1.6 API.
>
> Modified: subversion/trunk/subversion/libsvn_client/delete.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/delete.c?rev=986510&r1=986509&r2=986510&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_client/delete.c (original)
> +++ subversion/trunk/subversion/libsvn_client/delete.c Tue Aug 17 22:25:09 2010
> @@ -115,7 +115,7 @@ svn_client__can_delete(const char *path,
> be deleted. */
> return svn_error_return(svn_client_status5(NULL, ctx, path, &revision,
> svn_depth_infinity, FALSE,
> - FALSE, FALSE, FALSE,
> + FALSE, FALSE, FALSE, FALSE,
> NULL,
> find_undeletables, NULL,
> scratch_pool));
>
> Modified: subversion/trunk/subversion/libsvn_client/deprecated.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/deprecated.c?rev=986510&r1=986509&r2=986510&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_client/deprecated.c (original)
> +++ subversion/trunk/subversion/libsvn_client/deprecated.c Tue Aug 17 22:25:09 2010
> @@ -1698,8 +1698,8 @@ svn_client_status4(svn_revnum_t *result_
> status_baton };
>
> return svn_client_status5(result_rev, ctx, path, revision, depth, get_all,
> - update, no_ignore, ignore_externals, changelists,
> - status4_wrapper_func, &swb, pool);
> + update, no_ignore, ignore_externals, FALSE,
> + changelists, status4_wrapper_func, &swb, pool);
> }
>
> struct status3_wrapper_baton
>
> Modified: subversion/trunk/subversion/libsvn_client/externals.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/externals.c?rev=986510&r1=986509&r2=986510&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_client/externals.c (original)
> +++ subversion/trunk/subversion/libsvn_client/externals.c Tue Aug 17 22:25:09 2010
> @@ -1380,7 +1380,7 @@ svn_client__do_external_status(svn_clien
> SVN_ERR(svn_client_status5(NULL, ctx, fullpath,
> &(external->revision),
> depth, get_all, update,
> - no_ignore, FALSE, NULL,
> + no_ignore, FALSE, FALSE, NULL,
> status_func, status_baton,
> iterpool));
> }
>
> Modified: subversion/trunk/subversion/libsvn_client/status.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/status.c?rev=986510&r1=986509&r2=986510&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/libsvn_client/status.c (original)
> +++ subversion/trunk/subversion/libsvn_client/status.c Tue Aug 17 22:25:09 2010
> @@ -253,6 +253,7 @@ svn_client_status5(svn_revnum_t *result_
> svn_boolean_t update,
> svn_boolean_t no_ignore,
> svn_boolean_t ignore_externals,
> + svn_boolean_t depth_as_sticky,
> const apr_array_header_t *changelists,
> svn_client_status_func_t status_func,
> void *status_baton,
> @@ -439,6 +440,7 @@ svn_client_status5(svn_revnum_t *result_
> {
> svn_revnum_t revnum;
> report_baton_t rb;
> + svn_depth_t status_depth;
>
> if (revision->kind == svn_opt_revision_head)
> {
> @@ -456,10 +458,15 @@ svn_client_status5(svn_revnum_t *result_
> pool));
> }
>
> + if (depth_as_sticky)
> + status_depth = depth;
> + else
> + status_depth = svn_depth_unknown; /* Use depth from WC */
> +
> /* Do the deed. Let the RA layer drive the status editor. */
> SVN_ERR(svn_ra_do_status2(ra_session, &rb.wrapped_reporter,
> &rb.wrapped_report_baton,
> - target_basename, revnum, svn_depth_unknown,
> + target_basename, revnum, status_depth,
> editor, edit_baton, pool));
>
> /* Init the report baton. */
>
> Modified: subversion/trunk/subversion/svn/status-cmd.c
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/svn/status-cmd.c?rev=986510&r1=986509&r2=986510&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/svn/status-cmd.c (original)
> +++ subversion/trunk/subversion/svn/status-cmd.c Tue Aug 17 22:25:09 2010
> @@ -316,6 +316,7 @@ svn_cl__status(apr_getopt_t *os,
> opt_state->update,
> opt_state->no_ignore,
> opt_state->ignore_externals,
> + FALSE /* depth_as_sticky */,
> opt_state->changelists,
> print_status, &sb,
> iterpool),
>
>
>
Received on 2010-08-18 00:36:28 CEST