Julian Foad <julian.f...@wandisco.com> writes:

> Noorul Islam K M wrote:
>
>> Attached is the patch for svn/diff-cmd.c. All tests pass.
>
> Hi Noorul.  Thanks for mentioning that all tests pass - that's good to
> know.
>
>> +      svn_cl__assert_homogeneous_target_type(targets);
>> +      
>>        /* Check to see if at least one of our paths is a working copy
>>           path. */
>>        for (i = 0; i < targets->nelts; ++i)
>
> 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?
>

If you see the code below, it is using the variable
working_copy_present.

Also I attached the wrong patch. I am not sure how that
happened. Somehow my first version of the patch got attached. Here is
the correct one.

Thanks and Regards
Noorul

Index: subversion/svn/diff-cmd.c
===================================================================
--- subversion/svn/diff-cmd.c   (revision 1044208)
+++ 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,22 +272,20 @@
       old_target = "";
       new_target = "";
 
+      SVN_ERR(svn_cl__assert_homogeneous_target_type(targets));
+      
       /* 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;
+            {
+              working_copy_present = TRUE;
+              break;
+            }
         }
 
-      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 (opt_state->start_revision.kind == svn_opt_revision_unspecified
           && working_copy_present)
           opt_state->start_revision.kind = svn_opt_revision_base;

Reply via email to