On Wed, 2010-12-08, Noorul Islam K M wrote:
> Attached is the patch which has the new functions to replace the
> existing blocks. All tests pass when tested with 'make check'. No need
> for test cases as they are already available.

Noorul, thank you.  This is great.

> Also I have not modified
> libsvn_client/copy.c and svn/diff-cmd.c because they are not straight
> forward. I will go through them again and will come up with follow-up
> patch. 

OK, that's fine.

The log message is good.  I'll just rearrange the introductory sentence
and start with the words "Factor out ...", as I think that provides a
quick introduction to the change.

> [[[
> Two new functions one each for command line and client API which checks
> whether the target types are homogeneous. 
> 
> * subversion/svn/cl.h,
>   subversion/svn/util.c
>   (svn_cl__assert_homogeneous_target_type): New function
> 
> * subversion/libsvn_client/client.h
>   subversion/libsvn_client/util.c
>   (svn_client__assert_homogeneous_target_type): New function
> 
> * subversion/svn/mkdir-cmd.c,
>   subversion/svn/delete-cmd.c,
>   subversion/svn/lock-cmd.c,
>   subversion/svn/unlock-cmd.c
>   (svn_cl__mkdir, svn_cl__delete, svn_cl__lock, svn_cl__unlock):
>     Replace existing logic with call to new function
>     svn_cl__assert_homogeneous_target_type
> 
> * subversion/libsvn_client/delete.c,
>   subversion/libsvn_client/locking_commands.c,
>   subversion/libsvn_client/add.c
>   (svn_client_delete4, organize_lock_targets, svn_client_mkdir4):
>     Replace existing logic with call to new function
>     svn_client__assert_homogeneous_target_type
> 
> Patch by: Noorul Islam K M <noorul{_AT_}collab.net>
> ]]]

The patch is good.  The only things I want to change are very minor
details.  There is no need for you to resubmit the patch; I will just
change them before I commit it.  

> Index: subversion/svn/cl.h
> ===================================================================
> +/* This function checks to see if targets contain mixture of URLs 
> + * and paths, returning an error if it finds a mixture of both. */
> +svn_error_t *
> +svn_cl__assert_homogeneous_target_type(apr_array_header_t *targets);

> Index: subversion/libsvn_client/client.h
> ===================================================================
> +/* This function checks to see if targets contain mixture of URLs 
> + * and paths, returning an error if it finds mixture of both. */
> +svn_error_t *
> +svn_client__assert_homogeneous_target_type(const apr_array_header_t 
> *targets);

I re-wrote the doc string as:

/* Return an error if TARGETS contains a mixture of URLs and paths;
 * otherwise return SVN_NO_ERROR. */

and I added "const" to the parameter of the svn_cl__ function, because
that's logical and consistent with the other function.


> Index: subversion/svn/util.c
> ===================================================================
> +svn_error_t *
> +svn_cl__assert_homogeneous_target_type(apr_array_header_t *targets)
> +{
> +  svn_boolean_t wc_present = FALSE, url_present = FALSE;
> +  int i;
> +
> +  for (i = 0; i < targets->nelts; ++i)
> +    {
> +      const char *target = APR_ARRAY_IDX(targets, i, const char *);
> +      if (! svn_path_is_url(target))
> +        wc_present = TRUE;
> +      else
> +        url_present = TRUE;
> +    }
> +
> +  if (url_present && wc_present)
> +    return svn_error_createf(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
> +                        _("Cannot mix repository and working copy "
> +                          "targets"));

I adjusted the indentation of these two lines so "_(" is below "SVN_".

> +
> +  return SVN_NO_ERROR;
> +}

Committed revision 1044028.

Thanks again.
- Julian


Reply via email to