You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by da...@apache.org on 2012/05/05 18:23:03 UTC

svn commit: r1334443 - in /subversion/branches/1.7.x: ./ STATUS subversion/libsvn_wc/externals.c subversion/tests/cmdline/externals_tests.py subversion/tests/cmdline/prop_tests.py subversion/tests/cmdline/svntest/actions.py

Author: danielsh
Date: Sat May  5 16:23:02 2012
New Revision: 1334443

URL: http://svn.apache.org/viewvc?rev=1334443&view=rev
Log:
Merge the r1210913 group from trunk, resolving conflicts as directed:

 * r1210913, r1211048
   Fix issue 4073, assert on svn:externals path with drive letter on Windows.
   Justification:
     Avoid client asserting.
   Notes:
     Merge with '--accept mc' to resolve r1210913 conflict.
   Votes:
     +1: philip, rhuijben
     +1: stsp (cannot test this, but the trunk windows buildsbots are
               happy and the diff makes sense)

Modified:
    subversion/branches/1.7.x/   (props changed)
    subversion/branches/1.7.x/STATUS
    subversion/branches/1.7.x/subversion/libsvn_wc/externals.c
    subversion/branches/1.7.x/subversion/tests/cmdline/externals_tests.py
    subversion/branches/1.7.x/subversion/tests/cmdline/prop_tests.py
    subversion/branches/1.7.x/subversion/tests/cmdline/svntest/actions.py

Propchange: subversion/branches/1.7.x/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1210913,1211048

Modified: subversion/branches/1.7.x/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/STATUS?rev=1334443&r1=1334442&r2=1334443&view=diff
==============================================================================
--- subversion/branches/1.7.x/STATUS (original)
+++ subversion/branches/1.7.x/STATUS Sat May  5 16:23:02 2012
@@ -109,14 +109,3 @@ Veto-blocked changes:
 
 Approved changes:
 =================
-
- * r1210913, r1211048
-   Fix issue 4073, assert on svn:externals path with drive letter on Windows.
-   Justification:
-     Avoid client asserting.
-   Notes:
-     Merge with '--accept mc' to resolve r1210913 conflict.
-   Votes:
-     +1: philip, rhuijben
-     +1: stsp (cannot test this, but the trunk windows buildsbots are
-               happy and the diff makes sense)

Modified: subversion/branches/1.7.x/subversion/libsvn_wc/externals.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/subversion/libsvn_wc/externals.c?rev=1334443&r1=1334442&r2=1334443&view=diff
==============================================================================
--- subversion/branches/1.7.x/subversion/libsvn_wc/externals.c (original)
+++ subversion/branches/1.7.x/subversion/libsvn_wc/externals.c Sat May  5 16:23:02 2012
@@ -300,8 +300,13 @@ svn_wc_parse_externals_description3(apr_
 
       item->target_dir = svn_dirent_internal_style(item->target_dir, pool);
 
-      if (item->target_dir[0] == '\0' || item->target_dir[0] == '/'
-          || svn_path_is_backpath_present(item->target_dir))
+      if (item->target_dir[0] == '\0'
+          || svn_dirent_is_absolute(item->target_dir)
+          || svn_path_is_backpath_present(item->target_dir)
+          || !svn_dirent_skip_ancestor("dummy",
+                                       svn_dirent_join("dummy",
+                                                       item->target_dir,
+                                                       pool)))
         return svn_error_createf
           (SVN_ERR_CLIENT_INVALID_EXTERNALS_DESCRIPTION, NULL,
            _("Invalid %s property on '%s': "

Modified: subversion/branches/1.7.x/subversion/tests/cmdline/externals_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/subversion/tests/cmdline/externals_tests.py?rev=1334443&r1=1334442&r2=1334443&view=diff
==============================================================================
--- subversion/branches/1.7.x/subversion/tests/cmdline/externals_tests.py (original)
+++ subversion/branches/1.7.x/subversion/tests/cmdline/externals_tests.py Sat May  5 16:23:02 2012
@@ -713,6 +713,13 @@ def disallow_dot_or_dotdot_directory_ref
   if not external_urls: external_urls = list(external_url_for.values())
   externals_value_8 = external_urls.pop() + " /foo \n"
   if not external_urls: external_urls = list(external_url_for.values())
+  if svntest.main.is_os_windows():
+    externals_value_9 = external_urls.pop() + " D:/foo\n"
+    if not external_urls: external_urls = list(external_url_for.values())
+    externals_value_10 = external_urls.pop() + " D:\\foo\n"
+    if not external_urls: external_urls = list(external_url_for.values())
+    externals_value_11 = external_urls.pop() + " D:foo\n"
+    if not external_urls: external_urls = list(external_url_for.values())
 
   set_externals_for_path_expect_error(B_path, externals_value_1)
   set_externals_for_path_expect_error(G_path, externals_value_2)
@@ -722,6 +729,10 @@ def disallow_dot_or_dotdot_directory_ref
   set_externals_for_path_expect_error(B_path, externals_value_6)
   set_externals_for_path_expect_error(G_path, externals_value_7)
   set_externals_for_path_expect_error(H_path, externals_value_8)
+  if svntest.main.is_os_windows():
+    set_externals_for_path_expect_error(B_path, externals_value_9)
+    set_externals_for_path_expect_error(B_path, externals_value_10)
+    set_externals_for_path_expect_error(B_path, externals_value_11)
 
 
 #----------------------------------------------------------------------

Modified: subversion/branches/1.7.x/subversion/tests/cmdline/prop_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/subversion/tests/cmdline/prop_tests.py?rev=1334443&r1=1334442&r2=1334443&view=diff
==============================================================================
--- subversion/branches/1.7.x/subversion/tests/cmdline/prop_tests.py (original)
+++ subversion/branches/1.7.x/subversion/tests/cmdline/prop_tests.py Sat May  5 16:23:02 2012
@@ -893,8 +893,7 @@ def prop_value_conversions(sbox):
   svntest.actions.set_prop('svn:executable', '*', lambda_path)
   for pval in ('      ', '', 'no', 'off', 'false'):
     svntest.actions.set_prop('svn:executable', pval, mu_path,
-                             ["svn: warning: To turn off the svn:executable property, use 'svn propdel';\n",
-                              "setting the property to '" + pval + "' will not turn it off.\n"])
+                             "svn: warning: W125005.*use 'svn propdel'")
 
   # Anything else should be untouched
   svntest.actions.set_prop('svn:some-prop', 'bar', lambda_path)

Modified: subversion/branches/1.7.x/subversion/tests/cmdline/svntest/actions.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x/subversion/tests/cmdline/svntest/actions.py?rev=1334443&r1=1334442&r2=1334443&view=diff
==============================================================================
--- subversion/branches/1.7.x/subversion/tests/cmdline/svntest/actions.py (original)
+++ subversion/branches/1.7.x/subversion/tests/cmdline/svntest/actions.py Sat May  5 16:23:02 2012
@@ -1878,7 +1878,7 @@ def create_failing_post_commit_hook(repo
 # set_prop can be used for properties with NULL characters which are not
 # handled correctly when passed to subprocess.Popen() and values like "*"
 # which are not handled correctly on Windows.
-def set_prop(name, value, path, expected_err=None):
+def set_prop(name, value, path, expected_re_string=None):
   """Set a property with specified value"""
   if value and (value[0] == '-' or '\x00' in value or sys.platform == 'win32'):
     from tempfile import mkstemp
@@ -1887,11 +1887,18 @@ def set_prop(name, value, path, expected
     value_file.write(value)
     value_file.flush()
     value_file.close()
-    main.run_svn(expected_err, 'propset', '-F', value_file_path, name, path)
+    exit_code, out, err = main.run_svn(expected_re_string, 'propset',
+                                       '-F', value_file_path, name, path)
     os.close(fd)
     os.remove(value_file_path)
   else:
-    main.run_svn(expected_err, 'propset', name, value, path)
+    exit_code, out, err = main.run_svn(expected_re_string, 'propset',
+                                       name, value, path)
+  if expected_re_string:
+    if not expected_re_string.startswith(".*"):
+      expected_re_string = ".*(" + expected_re_string + ")"
+    expected_err = verify.RegexOutput(expected_re_string, match_all=False)
+    verify.verify_outputs(None, None, err, None, expected_err)
 
 def check_prop(name, path, exp_out, revprop=None):
   """Verify that property NAME on PATH has a value of EXP_OUT.