On Fri, 2010-12-10, Noorul Islam K M wrote:
> Julian Foad <julian.f...@wandisco.com> writes:
> > After you have asserted that all the targets are of the same type, there
> > is no need for a loop that checks all of them in turn, just to find out
> > whether they are paths or URLs, is there?
> 
> You are absolutely right. Thanks for this pointer. Please find updated
> patch attached. All tests pass.

Thanks, Noorul.

Committed revision 1044448.

I hope you don't mind, I took the liberty of tweaking it a bit further:
I changed it from 

  svn_boolean_t working_copy_present = FALSE;
  ...
  if (! XXX)
    working_copy_present = TRUE;

to

  svn_boolean_t working_copy_present;
  ...
  working_copy_present = ! XXX;

just so that the initialization happens in a single place.

Thanks.

- Julian


> Index: subversion/svn/diff-cmd.c
> ===================================================================
> --- subversion/svn/diff-cmd.c (revision 1044373)
> +++ subversion/svn/diff-cmd.c (working copy)
> @@ -260,7 +260,7 @@
>      }
>    else
>      {
> -      svn_boolean_t working_copy_present = FALSE, url_present = FALSE;
> +      svn_boolean_t working_copy_present = FALSE;
>  
>        /* The 'svn diff [-r N[:M]] [targ...@rev]...]' case matches. */
>  
> @@ -272,21 +272,10 @@
>        old_target = "";
>        new_target = "";
>  
> -      /* Check to see if at least one of our paths is a working copy
> -         path. */
> -      for (i = 0; i < targets->nelts; ++i)
> -        {
> -          const char *path = APR_ARRAY_IDX(targets, i, const char *);
> -          if (! svn_path_is_url(path))
> -            working_copy_present = TRUE;
> -          else
> -            url_present = TRUE;
> -        }
> +      SVN_ERR(svn_cl__assert_homogeneous_target_type(targets));
>  
> -      if (url_present && working_copy_present)
> -        return svn_error_createf(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
> -                                  _("Cannot mix repository and working copy "
> -                                    "targets"));
> +      if (! svn_path_is_url(APR_ARRAY_IDX(targets, 0, const char *)))
> +        working_copy_present = TRUE;
>  
>        if (opt_state->start_revision.kind == svn_opt_revision_unspecified
>            && working_copy_present)


Reply via email to