Index: subversion/libsvn_client/add.c
===================================================================
--- subversion/libsvn_client/add.c	(revision 36931)
+++ subversion/libsvn_client/add.c	(working copy)
@@ -25,6 +25,7 @@
 #include <string.h>
 #include <apr_lib.h>
 #include <apr_fnmatch.h>
+#include <apr_uri.h>
 #include "svn_wc.h"
 #include "svn_client.h"
 #include "svn_string.h"
@@ -659,6 +660,29 @@
   const char *common;
   int i;
 
+  /* Early exit when there is a mix of URLs and local paths. */
+  for (i = 0; i < urls->nelts; i++)
+    {
+      char *test_url;
+      apr_uri_t uri;
+      apr_status_t apr_err;
+      const char *url = APR_ARRAY_IDX(urls, i, const char *);
+      apr_pool_t *iterpool = svn_pool_create(pool);
+
+      /* Since apr_uri_parse modifies TEST_URL we do a copy. */
+      test_url = apr_palloc(iterpool, strlen(url)+1);
+      strcpy(test_url, url);
+
+      apr_err = apr_uri_parse(iterpool, test_url, &uri);
+      if (apr_err != APR_SUCCESS || uri.hostname == NULL)
+        return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
+                                 _("Illegal repository URL '%s'"),
+                                 url);
+      else
+        continue;
+      svn_pool_clear(iterpool);
+    }
+
   /* Find any non-existent parent directories */
   if (make_parents)
     {


