You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2013/05/13 20:18:17 UTC

svn commit: r1482014 [1/3] - in /subversion/branches/1.8.x-r1477876: ./ subversion/include/ subversion/libsvn_client/ subversion/libsvn_fs_fs/ subversion/libsvn_ra_serf/ subversion/libsvn_repos/ subversion/libsvn_subr/ subversion/po/ subversion/svn/ su...

Author: julianfoad
Date: Mon May 13 18:18:16 2013
New Revision: 1482014

URL: http://svn.apache.org/r1482014
Log:
On the 1.8.x-r1477876 branch: catch up to 1.8.x@1482006.

Modified:
    subversion/branches/1.8.x-r1477876/   (props changed)
    subversion/branches/1.8.x-r1477876/CHANGES
    subversion/branches/1.8.x-r1477876/STATUS
    subversion/branches/1.8.x-r1477876/get-deps.sh   (contents, props changed)
    subversion/branches/1.8.x-r1477876/subversion/include/svn_config.h
    subversion/branches/1.8.x-r1477876/subversion/include/svn_error_codes.h
    subversion/branches/1.8.x-r1477876/subversion/libsvn_client/add.c
    subversion/branches/1.8.x-r1477876/subversion/libsvn_client/merge.c
    subversion/branches/1.8.x-r1477876/subversion/libsvn_client/ra.c
    subversion/branches/1.8.x-r1477876/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/1.8.x-r1477876/subversion/libsvn_ra_serf/serf.c
    subversion/branches/1.8.x-r1477876/subversion/libsvn_repos/authz.c
    subversion/branches/1.8.x-r1477876/subversion/libsvn_repos/hooks.c
    subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/cache-membuffer.c
    subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/config.c
    subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/config_impl.h
    subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/deprecated.c
    subversion/branches/1.8.x-r1477876/subversion/po/sv.po
    subversion/branches/1.8.x-r1477876/subversion/svn/cl.h
    subversion/branches/1.8.x-r1477876/subversion/svn/conflict-callbacks.c
    subversion/branches/1.8.x-r1477876/subversion/svn/notify.c
    subversion/branches/1.8.x-r1477876/subversion/svn/resolve-cmd.c
    subversion/branches/1.8.x-r1477876/subversion/svn/svn.c
    subversion/branches/1.8.x-r1477876/subversion/svnmucc/svnmucc.c
    subversion/branches/1.8.x-r1477876/subversion/svnserve/serve.c
    subversion/branches/1.8.x-r1477876/subversion/svnserve/svnserve.c
    subversion/branches/1.8.x-r1477876/subversion/tests/libsvn_subr/cache-test.c
    subversion/branches/1.8.x-r1477876/subversion/tests/libsvn_subr/config-test.c
    subversion/branches/1.8.x-r1477876/subversion/tests/libsvn_subr/config-test.cfg
    subversion/branches/1.8.x-r1477876/tools/server-side/mod_dontdothat/mod_dontdothat.c

Propchange: subversion/branches/1.8.x-r1477876/
------------------------------------------------------------------------------
  Merged /subversion/branches/1.8.x:r1477981-1482006
  Merged /subversion/trunk:r1471443,1471490,1475772,1476092,1477729-1477730,1478897,1478951,1480054,1480082

Modified: subversion/branches/1.8.x-r1477876/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/CHANGES?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/CHANGES (original)
+++ subversion/branches/1.8.x-r1477876/CHANGES Mon May 13 18:18:16 2013
@@ -55,6 +55,7 @@ http://svn.apache.org/repos/asf/subversi
 
   - Server-side bugfixes:
     * SVNParentPath / repository listing now authz-filtered (r1408184)
+    * user and group names in the authz config file are case-sensitive (r1475772)
 
   - Other tool improvements and bugfixes:
     * 'svnmucc' promoted to first-class supported utility (issue #3308)

Modified: subversion/branches/1.8.x-r1477876/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/STATUS?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/STATUS (original)
+++ subversion/branches/1.8.x-r1477876/STATUS Mon May 13 18:18:16 2013
@@ -16,57 +16,113 @@ Status of 1.8.0:
 Candidate changes:
 ==================
 
- * r1469519, r1469520
-   Silence compiler warnings.
+ * r1477294, r1480616, r1480641, r1480642, r1480664, r1480669
+   Further improvements for interactive resolution of property conflicts.
+   Allow conflicted properties to be edited and resolved to the edited value.
    Justification:
-     Clean builds make it more likely to notice real compiler warnings.
+     This is a usability enhancement we could make in 1.8.0.
+     It also fixes a bug in libsvn_wc where it doesn't use results provided
+     by the conflict callback (see r1480641), which might help API consumers.
+   Notes:
+     This group depends on r1470246.
+     r1477294 and r1480616 are merged to avoid text conflicts from refactoring.
+     r1480641 and r1480642 are the main changes.
+     The other revisions are small follow-up fixes.
    Votes:
-     +1: blair
-     -0: philip (see dev thread: it's a false alarm, wrong value)
-     -0.5: brane (silencing warnings is not a valid reason for a backport,
-                  even for branch stabilization.)
+     +1: stsp (for 1.8.0, but not any 1.8.x since it changes the UI)
+     +1: steveking
+     -0: rhuijben (requires backport branch. I get a merge conflict using 1.7
+                   <stsp> This is because this group requires r1470246 to
+                          be merged first, as noted under Notes:)
+
+ * r1469363, r1469645, r1469674, r1470037, r1470537, r1478220, r1478221,
+   r1478465, r1478998, r1480723
+   Fix issue #4355 'svn_client_log5 broken with multiple revisions which
+   span a rename'.
+   Justification:
+     svn_client_log5 doesn't deliver what it promises, see
+     http://subversion.tigris.org/issues/show_bug.cgi?id=4355#desc1 for
+     a brief example of the problem.
+   Notes:
+     r1469363, r1469645, r1469674, r1470037, and r1470537 are the creation
+     and subsequent tweaks of a single new log test for this issue.  r1478220
+     is the fix.  r1478221, r1478465, r1478998, and r1480723 are (mostly)
+     minor follow-ups to that fix.
+   Votes:
+     +1: pburba
 
- * r1470246
-   Improve the interactive resolution of property conflicts.  Instead of
-   showing the contents of the '.prej' file once for each prop conflict, show
-   initially a single line such as
-     "local delete, incoming edit upon merge"
-   (similar to resolving a text conflict) and allow the user to display a 3-way
-   diff by adding a 'dc - display conflict' option.
+ * r1479320, r1479321, r1479323, r1479326, r1479329
+   Silence 'make -s clean distclean'.
    Justification:
-     Showing the whole .prej file each time was confusing and ugly when more
-     than one property was in conflict.
+     'make -s all install distclean' would spam stdout and issue irrelevant
+     warnings on stderr.  (This is user-facing behaviour.)
    Votes:
-     +1: julianfoad
+     +1 (for 1.8.1): danielsh
+     +1: rhuijben
 
- * r1471443, r1471490
-   Fix a bug in the Summary of Conflicts when using interactive conflict
-     resolution.  Marking a text conflict as resolved but leaving a prop
-     conflict unresolved on the same file, or vice versa, would decrement
-     both the text and prop conflict summary stats.
+ * r1479896
+   Sort directory entries in output of 'svnlook tree'.
    Justification:
-     Regression since 1.7.
-   Notes:
-     r1471443 is just a removal of unused code, and is included here in
-     order to avoid conflicts.  r1471490 is the main change.
+     Unstable APR hash order causes unstable output.
    Votes:
-     +1: julianfoad, brane
+     +1: stsp, rhuijben
 
- * r1475772, r1476092
-   Fix a bug in authz file processing where group and user names were
-   not treated case-sensitively, which could lead to unpredictable
-   results depending on the ordering of the authz config entries.
-   See http://subversion.tigris.org/issues/show_bug.cgi?id=4361
+ * r1480077
+   Check separately for -flto and -Wno-clobbered with --enable-optimize.
    Justification:
-     See above about unpredictable results. A related fix for
-     repository paths handling was made in 1.7.0.
-   Notes:
-     r1476092 is the CHANGES update.
+     The -flto flag was not used by older compilers that do not
+     suport -Wno-clobbered, even when they do support -flto.
+   Votes:
+     +1: brane (for 1.8.1)
+     +1: rhuijben
+
+ * r1480080, r1481772
+   Instruct clang to not warn about unknown warning flags.
+   Justification:
+     Newer versions of clang accept warning flags that they do not
+     support, but emit warnings about them instead -- making the
+     compile output a mess with a warning emitted for every
+     single C and C++ file in an optimized build (because
+     of the -Wno-clobbered, see above).
+   Votes:
+     +1: brane (for 1.8.1)
+     +0: rhuijben (looks ok, but I can't test or verify via code inspection)
+
+ * r1481594
+   Speed up reporting and authz checks on copy-from info in 'svn log'.
+   Justification:
+     The way we implemented merges makes replacements and add-with-history
+     a much more common occurance than they would otherwise be.  With this
+     simple change, I've witnessed a ~25% speedup for e.g. the FreeBSD repo.
+   Votes:
+     +1: stefan2 (for 1.8.1)
+     +1: rhuijben
+
+ * r1481596
+   For 'svn log -g', eliminate read requests on directories and mergeinfo
+   in revisions that are guaranteed to not change any mergeinfo.
+   Justification:
+     This simple change combined with r1481594 resulted in a 4x speedup for
+     'svn log -g' in the FreeBSD repo with cold and 15x with hot caches.
+   Votes:
+     +1: stefan2 (for 1.8.1)
+     +1: rhuijben
+
+ * r1481981
+   Don't destroy localised strings in .prej files by converting them to ASCII.
+   Justification:
+     The .prej files are unreadable.
    Votes:
-     +1: brane
-     +1: philip (for 1.8.0 only, not later 1.8.x)
+     +1: mattiase (non-binding)
 
- * r1477876, r1477891, r1478001
+ * r1480149
+   Fix a build problem on OS X 10.5.
+   Justification:
+     Necessary for building on PPC Macs.
+   Votes:
+     +1: mattiase (non-binding)
+
+ * r1477876, r1477891, r1478001, r1479605
    Fix a bug whereby a property conflict description always reported
      'unknown' for the node kind. Add a test which catches that bug.
    Justification:
@@ -76,12 +132,71 @@ Candidate changes:
      The fix is in r1477876, and the branch was needed to resolve conflicts
      (rather than porting prior changes on which it depended). The test is
      in r1478001, and it depends on the test file changes made in r1477891.
+     r1479605 fixes an interactive conflict resolution bug triggered by this
+     change.
    Votes:
      +1: julianfoad
 
 Veto-blocked changes:
 =====================
 
+ * r1469519, r1469520
+   Silence compiler warnings.
+   Justification:
+     Clean builds make it more likely to notice real compiler warnings.
+   Votes:
+     +1: blair
+     -0: philip (see dev thread: it's a false alarm, wrong value)
+     -1: brane (superseded by r1481848 and 1481870, respectively,
+                which silence the warnings while also avoiding
+                the negative effects noted by philip)
 
 Approved changes:
 =================
+
+# 1.8.0-rc1 is being voted on currently and as such 1.8.0 is in the soak phase.
+# Changes that are not intended for 1.8.0 should not be placed here and changes
+# that would restart the soak should not be added unless they are resolving
+# blocking issues.  If in doubt see this link for details:
+# http://subversion.apache.org/docs/community-guide/releasing.html#release-stabilization
+
+ * r1470246
+   Improve the interactive resolution of property conflicts.  Instead of
+   showing the contents of the '.prej' file once for each prop conflict, show
+   initially a single line such as
+     "local delete, incoming edit upon merge"
+   (similar to resolving a text conflict) and allow the user to display a 3-way
+   diff by adding a 'dc - display conflict' option.
+   Justification:
+     Showing the whole .prej file each time was confusing and ugly when more
+     than one property was in conflict.
+   Votes:
+     +1: julianfoad, rhuijben
+     +1: stsp (for 1.8.0, but not any 1.8.x since it changes the UI)
+
+ * r1481010
+   Fix issue 4365, multi-threaded svnserve pool memory use after clear.
+   Justification:
+     SEGV, particularly on Windows.
+   Votes:
+     +1: philip, danielsh, ivan
+
+ * r1481800, r1481813
+   Use result_pool for items copied to output array.
+   Justification:
+     Allocate output in correct pool to avoid possible memory use after clear.
+   Votes:
+     +1: philip, brane, stsp
+     +1: rhuijben (r1481800 only)
+
+ * r1481625, r1481627, r1481628, r1481631, r1481632
+   Properly escape control characters in an error message in libsvn_fs_fs.
+   Remove duplicated code.
+   Branch: 1.8.x-r1481625
+   Justification:
+     r1481625 and r1481627 together fix possible problems in error
+     message output. The other changes are nice-to-have.
+   Votes:
+     +1: danielsh, stsp (for 1.8.0, not any 1.8.x, since it adds a public API).
+     +1: stefan2
+

Modified: subversion/branches/1.8.x-r1477876/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/get-deps.sh?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/get-deps.sh (original)
+++ subversion/branches/1.8.x-r1477876/get-deps.sh Mon May 13 18:18:16 2013
@@ -23,10 +23,18 @@
 # get-deps.sh -- download the dependencies useful for building Subversion
 #
 
+# If changing this file please take care to try to make your changes as
+# portable as possible.  That means at a minimum only use POSIX supported
+# features and functions.  However, it may be desirable to use an even
+# more narrow set of features than POSIX, e.g. Solaris /bin/sh only has
+# a subset of the POSIX shell features.  If in doubt, limit yourself to
+# features already used in the file.  Reviewing the history of changes
+# may be useful as well.
+
 APR=apr-1.4.6
 APR_UTIL=apr-util-1.5.1
 SERF=serf-1.2.0
-ZLIB=zlib-1.2.7
+ZLIB=zlib-1.2.8
 SQLITE_VERSION=3.7.15.1
 SQLITE_VERSION_LIST=`echo $SQLITE_VERSION | sed -e 's/\./ /g'`
 SQLITE=sqlite-amalgamation-`printf %d%02d%02d%02d $SQLITE_VERSION_LIST`
@@ -86,10 +94,10 @@ get_zlib() {
     test -d $BASEDIR/zlib && return
 
     cd $TEMPDIR
-    $HTTP_FETCH http://www.zlib.net/$ZLIB.tar.bz2
+    $HTTP_FETCH http://www.zlib.net/$ZLIB.tar.gz
     cd $BASEDIR
 
-    bzip2 -dc $TEMPDIR/$ZLIB.tar.bz2 | tar -xf -
+    gzip -dc $TEMPDIR/$ZLIB.tar.gz | tar -xf -
 
     mv $ZLIB zlib
 }

Propchange: subversion/branches/1.8.x-r1477876/get-deps.sh
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: subversion/branches/1.8.x-r1477876/subversion/include/svn_config.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/subversion/include/svn_config.h?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/subversion/include/svn_config.h (original)
+++ subversion/branches/1.8.x-r1477876/subversion/include/svn_config.h Mon May 13 18:18:16 2013
@@ -211,15 +211,30 @@ svn_config_get_config(apr_hash_t **cfg_h
                       const char *config_dir,
                       apr_pool_t *pool);
 
-
 /** Set @a *cfgp to an empty @c svn_config_t structure,
  * allocated in @a result_pool.
  *
  * Pass TRUE to @a section_names_case_sensitive if
  * section names are to be populated case sensitively.
  *
+ * Pass TRUE to @a option_names_case_sensitive if
+ * option names are to be populated case sensitively.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_config_create2(svn_config_t **cfgp,
+                   svn_boolean_t section_names_case_sensitive,
+                   svn_boolean_t option_names_case_sensitive,
+                   apr_pool_t *result_pool);
+
+/** Similar to svn_config_create2, but always passes @c FALSE to
+ * @a option_names_case_sensitive.
+ *
  * @since New in 1.7.
+ * @deprecated Provided for backward compatibility with 1.7 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_config_create(svn_config_t **cfgp,
                   svn_boolean_t section_names_case_sensitive,
@@ -234,18 +249,35 @@ svn_config_create(svn_config_t **cfgp,
  * If @a section_names_case_sensitive is @c TRUE, populate section name hashes
  * case sensitively, except for the default #SVN_CONFIG__DEFAULT_SECTION.
  *
- * @since New in 1.7.
+ * If @a option_names_case_sensitive is @c TRUE, populate option name hashes
+ * case sensitively.
+ *
+ * @since New in 1.8.
  */
+svn_error_t *
+svn_config_read3(svn_config_t **cfgp,
+                 const char *file,
+                 svn_boolean_t must_exist,
+                 svn_boolean_t section_names_case_sensitive,
+                 svn_boolean_t option_names_case_sensitive,
+                 apr_pool_t *result_pool);
 
+/** Similar to svn_config_read3, but always passes @c FALSE to
+ * @a option_names_case_sensitive.
+ *
+ * @since New in 1.7.
+ * @deprecated Provided for backward compatibility with 1.7 API.
+ */
+SVN_DEPRECATED
 svn_error_t *
 svn_config_read2(svn_config_t **cfgp,
                  const char *file,
                  svn_boolean_t must_exist,
                  svn_boolean_t section_names_case_sensitive,
-                 apr_pool_t *pool);
+                 apr_pool_t *result_pool);
 
 /** Similar to svn_config_read2, but always passes @c FALSE to
- * section_names_case_sensitive.
+ * @a section_names_case_sensitive.
  *
  * @deprecated Provided for backward compatibility with 1.6 API.
  */
@@ -254,7 +286,7 @@ svn_error_t *
 svn_config_read(svn_config_t **cfgp,
                 const char *file,
                 svn_boolean_t must_exist,
-                apr_pool_t *pool);
+                apr_pool_t *result_pool);
 
 /** Read configuration data from @a stream into @a *cfgp, allocated in
  * @a result_pool.
@@ -262,6 +294,9 @@ svn_config_read(svn_config_t **cfgp,
  * If @a section_names_case_sensitive is @c TRUE, populate section name hashes
  * case sensitively, except for the default #SVN_CONFIG__DEFAULT_SECTION.
  *
+ * If @a option_names_case_sensitive is @c TRUE, populate option name hashes
+ * case sensitively.
+ *
  * @since New in 1.8.
  */
 
@@ -269,6 +304,7 @@ svn_error_t *
 svn_config_parse(svn_config_t **cfgp,
                  svn_stream_t *stream,
                  svn_boolean_t section_names_case_sensitive,
+                 svn_boolean_t option_names_case_sensitive,
                  apr_pool_t *result_pool);
 
 /** Like svn_config_read(), but merges the configuration data from @a file

Modified: subversion/branches/1.8.x-r1477876/subversion/include/svn_error_codes.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/subversion/include/svn_error_codes.h?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/subversion/include/svn_error_codes.h (original)
+++ subversion/branches/1.8.x-r1477876/subversion/include/svn_error_codes.h Mon May 13 18:18:16 2013
@@ -1275,7 +1275,7 @@ SVN_ERROR_START
   /** @since New in 1.6. */
   SVN_ERRDEF(SVN_ERR_NO_APR_MEMCACHE,
              SVN_ERR_MISC_CATEGORY_START + 28,
-             "apr memcache library not available")
+             "APR memcache library not available")
 
   /** @since New in 1.6. */
   SVN_ERRDEF(SVN_ERR_ATOMIC_INIT_FAILURE,

Modified: subversion/branches/1.8.x-r1477876/subversion/libsvn_client/add.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/subversion/libsvn_client/add.c?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/subversion/libsvn_client/add.c (original)
+++ subversion/branches/1.8.x-r1477876/subversion/libsvn_client/add.c Mon May 13 18:18:16 2013
@@ -1131,7 +1131,7 @@ mkdir_urls(const apr_array_header_t *url
 
       if (*bname == '\0')
         return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
-                                 _("There is no valid uri above '%s'"),
+                                 _("There is no valid URI above '%s'"),
                                  common);
     }
   else
@@ -1158,7 +1158,7 @@ mkdir_urls(const apr_array_header_t *url
 
           if (*bname == '\0')
              return svn_error_createf(SVN_ERR_ILLEGAL_TARGET, NULL,
-                                      _("There is no valid uri above '%s'"),
+                                      _("There is no valid URI above '%s'"),
                                       common);
 
           for (i = 0; i < targets->nelts; i++)

Modified: subversion/branches/1.8.x-r1477876/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/subversion/libsvn_client/merge.c?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/1.8.x-r1477876/subversion/libsvn_client/merge.c Mon May 13 18:18:16 2013
@@ -436,7 +436,7 @@ check_repos_match(const merge_target_t *
   if (!svn_uri__is_ancestor(target->loc.repos_root_url, url))
     return svn_error_createf(
         SVN_ERR_UNSUPPORTED_FEATURE, NULL,
-         _("Url '%s' of '%s' is not in repository '%s'"),
+         _("URL '%s' of '%s' is not in repository '%s'"),
          url, svn_dirent_local_style(local_abspath, scratch_pool),
          target->loc.repos_root_url);
 
@@ -6229,7 +6229,7 @@ get_wc_explicit_mergeinfo_catalog(apr_ha
               err = svn_error_createf(
                 SVN_ERR_CLIENT_INVALID_MERGEINFO_NO_MERGETRACKING, err,
                 _("Invalid mergeinfo detected on '%s', "
-                  "mergetracking not possible"),
+                  "merge tracking not possible"),
                 svn_dirent_local_style(wc_path, scratch_pool));
             }
           return svn_error_trace(err);
@@ -7378,7 +7378,7 @@ do_file_merge(svn_mergeinfo_catalog_t re
               err = svn_error_createf(
                 SVN_ERR_CLIENT_INVALID_MERGEINFO_NO_MERGETRACKING, err,
                 _("Invalid mergeinfo detected on merge target '%s', "
-                  "mergetracking not possible"),
+                  "merge tracking not possible"),
                 svn_dirent_local_style(target_abspath, scratch_pool));
             }
           return svn_error_trace(err);

Modified: subversion/branches/1.8.x-r1477876/subversion/libsvn_client/ra.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/subversion/libsvn_client/ra.c?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/subversion/libsvn_client/ra.c (original)
+++ subversion/branches/1.8.x-r1477876/subversion/libsvn_client/ra.c Mon May 13 18:18:16 2013
@@ -158,7 +158,7 @@ push_wc_prop(void *baton,
   if (! cb->commit_items)
     return svn_error_createf
       (SVN_ERR_UNSUPPORTED_FEATURE, NULL,
-       _("Attempt to set wc property '%s' on '%s' in a non-commit operation"),
+       _("Attempt to set wcprop '%s' on '%s' in a non-commit operation"),
        name, svn_dirent_local_style(relpath, pool));
 
   for (i = 0; i < cb->commit_items->nelts; i++)

Modified: subversion/branches/1.8.x-r1477876/subversion/libsvn_fs_fs/fs_fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/subversion/libsvn_fs_fs/fs_fs.c?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/branches/1.8.x-r1477876/subversion/libsvn_fs_fs/fs_fs.c Mon May 13 18:18:16 2013
@@ -1157,9 +1157,9 @@ read_config(fs_fs_data_t *ffd,
             const char *fs_path,
             apr_pool_t *pool)
 {
-  SVN_ERR(svn_config_read2(&ffd->config,
+  SVN_ERR(svn_config_read3(&ffd->config,
                            svn_dirent_join(fs_path, PATH_CONFIG, pool),
-                           FALSE, FALSE, pool));
+                           FALSE, FALSE, FALSE, pool));
 
   /* Initialize ffd->rep_sharing_allowed. */
   if (ffd->format >= SVN_FS_FS__MIN_REP_SHARING_FORMAT)

Modified: subversion/branches/1.8.x-r1477876/subversion/libsvn_ra_serf/serf.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/subversion/libsvn_ra_serf/serf.c?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/subversion/libsvn_ra_serf/serf.c (original)
+++ subversion/branches/1.8.x-r1477876/subversion/libsvn_ra_serf/serf.c Mon May 13 18:18:16 2013
@@ -119,8 +119,9 @@ load_http_auth_types(apr_pool_t *pool, s
             *authn_types |= SERF_AUTHN_NEGOTIATE;
           else
             return svn_error_createf(SVN_ERR_BAD_CONFIG_VALUE, NULL,
-                                     _("Invalid config: unknown http auth"
-                                       "type '%s'"), token);
+                                     _("Invalid config: unknown %s "
+                                       "'%s'"),
+                                     SVN_CONFIG_OPTION_HTTP_AUTH_TYPES, token);
       }
     }
   else

Modified: subversion/branches/1.8.x-r1477876/subversion/libsvn_repos/authz.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/subversion/libsvn_repos/authz.c?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/subversion/libsvn_repos/authz.c (original)
+++ subversion/branches/1.8.x-r1477876/subversion/libsvn_repos/authz.c Mon May 13 18:18:16 2013
@@ -824,7 +824,7 @@ authz_retrieve_config_repo(svn_config_t 
     {
       if (!must_exist)
         {
-          SVN_ERR(svn_config_create(cfg_p, TRUE, result_pool));
+          SVN_ERR(svn_config_create2(cfg_p, TRUE, TRUE, result_pool));
           return SVN_NO_ERROR;
         }
       else
@@ -842,7 +842,7 @@ authz_retrieve_config_repo(svn_config_t 
     }
 
   SVN_ERR(svn_fs_file_contents(&contents, root, fs_path, scratch_pool));
-  err = svn_config_parse(cfg_p, contents, TRUE, result_pool);
+  err = svn_config_parse(cfg_p, contents, TRUE, TRUE, result_pool);
 
   /* Add the URL to the error stack since the parser doesn't have it. */
   if (err != SVN_NO_ERROR)
@@ -891,7 +891,7 @@ authz_retrieve_config(svn_config_t **cfg
   else
     {
       /* Outside of repo file or Windows registry*/
-      SVN_ERR(svn_config_read2(cfg_p, path, must_exist, TRUE, pool));
+      SVN_ERR(svn_config_read3(cfg_p, path, must_exist, TRUE, TRUE, pool));
     }
 
   return SVN_NO_ERROR;
@@ -944,7 +944,7 @@ svn_repos__authz_read(svn_authz_t **auth
   if (accept_urls)
     SVN_ERR(authz_retrieve_config(&authz->cfg, path, must_exist, pool));
   else
-    SVN_ERR(svn_config_read2(&authz->cfg, path, must_exist, TRUE, pool));
+    SVN_ERR(svn_config_read3(&authz->cfg, path, must_exist, TRUE, TRUE, pool));
 
   if (groups_path)
     {
@@ -956,8 +956,8 @@ svn_repos__authz_read(svn_authz_t **auth
         SVN_ERR(authz_retrieve_config(&groups_cfg, groups_path, must_exist,
                                       pool));
       else
-        SVN_ERR(svn_config_read2(&groups_cfg, groups_path, must_exist,
-                                 TRUE, pool));
+        SVN_ERR(svn_config_read3(&groups_cfg, groups_path, must_exist,
+                                 TRUE, TRUE, pool));
 
       /* Copy the groups from groups_cfg into authz. */
       err = authz_copy_groups(authz, groups_cfg, pool);
@@ -998,14 +998,14 @@ svn_repos_authz_parse(svn_authz_t **auth
   svn_authz_t *authz = apr_palloc(pool, sizeof(*authz));
 
   /* Parse the authz stream */
-  SVN_ERR(svn_config_parse(&authz->cfg, stream, TRUE, pool));
+  SVN_ERR(svn_config_parse(&authz->cfg, stream, TRUE, TRUE, pool));
 
   if (groups_stream)
     {
       svn_config_t *groups_cfg;
 
       /* Parse the groups stream */
-      SVN_ERR(svn_config_parse(&groups_cfg, groups_stream, TRUE, pool));
+      SVN_ERR(svn_config_parse(&groups_cfg, groups_stream, TRUE, TRUE, pool));
 
       SVN_ERR(authz_copy_groups(authz, groups_cfg, pool));
     }

Modified: subversion/branches/1.8.x-r1477876/subversion/libsvn_repos/hooks.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/subversion/libsvn_repos/hooks.c?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/subversion/libsvn_repos/hooks.c (original)
+++ subversion/branches/1.8.x-r1477876/subversion/libsvn_repos/hooks.c Mon May 13 18:18:16 2013
@@ -421,7 +421,8 @@ svn_repos__parse_hooks_env(apr_hash_t **
 
   if (local_abspath)
     {
-      SVN_ERR(svn_config_read2(&cfg, local_abspath, FALSE, TRUE, scratch_pool));
+      SVN_ERR(svn_config_read3(&cfg, local_abspath, FALSE,
+                               TRUE, TRUE, scratch_pool));
       b.cfg = cfg;
       b.hooks_env = apr_hash_make(result_pool);
       (void)svn_config_enumerate_sections2(cfg, parse_hooks_env_section, &b,

Modified: subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/cache-membuffer.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/cache-membuffer.c?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/cache-membuffer.c (original)
+++ subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/cache-membuffer.c Mon May 13 18:18:16 2013
@@ -1282,7 +1282,7 @@ svn_cache__membuffer_cache_create(svn_me
         {
           /* We are OOM. There is no need to proceed with "half a cache".
            */
-          return svn_error_wrap_apr(APR_ENOMEM, _("OOM"));
+          return svn_error_wrap_apr(APR_ENOMEM, "OOM");
         }
 
 #if APR_HAS_THREADS

Modified: subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/config.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/config.c?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/config.c (original)
+++ subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/config.c Mon May 13 18:18:16 2013
@@ -77,9 +77,10 @@ struct cfg_option_t
 
 
 svn_error_t *
-svn_config_create(svn_config_t **cfgp,
-                  svn_boolean_t section_names_case_sensitive,
-                  apr_pool_t *result_pool)
+svn_config_create2(svn_config_t **cfgp,
+                   svn_boolean_t section_names_case_sensitive,
+                   svn_boolean_t option_names_case_sensitive,
+                   apr_pool_t *result_pool)
 {
   svn_config_t *cfg = apr_palloc(result_pool, sizeof(*cfg));
 
@@ -90,21 +91,26 @@ svn_config_create(svn_config_t **cfgp,
   cfg->tmp_key = svn_stringbuf_create_empty(result_pool);
   cfg->tmp_value = svn_stringbuf_create_empty(result_pool);
   cfg->section_names_case_sensitive = section_names_case_sensitive;
+  cfg->option_names_case_sensitive = option_names_case_sensitive;
 
   *cfgp = cfg;
   return SVN_NO_ERROR;
 }
 
 svn_error_t *
-svn_config_read2(svn_config_t **cfgp, const char *file,
+svn_config_read3(svn_config_t **cfgp, const char *file,
                  svn_boolean_t must_exist,
                  svn_boolean_t section_names_case_sensitive,
-                 apr_pool_t *pool)
+                 svn_boolean_t option_names_case_sensitive,
+                 apr_pool_t *result_pool)
 {
   svn_config_t *cfg;
   svn_error_t *err;
 
-  SVN_ERR(svn_config_create(&cfg, section_names_case_sensitive, pool));
+  SVN_ERR(svn_config_create2(&cfg,
+                             section_names_case_sensitive,
+                             option_names_case_sensitive,
+                             result_pool));
 
   /* Yes, this is platform-specific code in Subversion, but there's no
      practical way to migrate it into APR, as it's simultaneously
@@ -114,10 +120,10 @@ svn_config_read2(svn_config_t **cfgp, co
 #ifdef WIN32
   if (0 == strncmp(file, SVN_REGISTRY_PREFIX, SVN_REGISTRY_PREFIX_LEN))
     err = svn_config__parse_registry(cfg, file + SVN_REGISTRY_PREFIX_LEN,
-                                     must_exist, pool);
+                                     must_exist, result_pool);
   else
 #endif /* WIN32 */
-    err = svn_config__parse_file(cfg, file, must_exist, pool);
+    err = svn_config__parse_file(cfg, file, must_exist, result_pool);
 
   if (err != SVN_NO_ERROR)
     return err;
@@ -130,13 +136,17 @@ svn_config_read2(svn_config_t **cfgp, co
 svn_error_t *
 svn_config_parse(svn_config_t **cfgp, svn_stream_t *stream,
                  svn_boolean_t section_names_case_sensitive,
+                 svn_boolean_t option_names_case_sensitive,
                  apr_pool_t *result_pool)
 {
   svn_config_t *cfg;
   svn_error_t *err;
   apr_pool_t *scratch_pool = svn_pool_create(result_pool);
 
-  err = svn_config_create(&cfg, section_names_case_sensitive, result_pool);
+  err = svn_config_create2(&cfg,
+                           section_names_case_sensitive,
+                           option_names_case_sensitive,
+                           result_pool);
 
   if (err == SVN_NO_ERROR)
     err = svn_config__parse_stream(cfg, stream, result_pool, scratch_pool);
@@ -189,7 +199,8 @@ read_all(svn_config_t **cfgp,
         SVN_ERR(svn_config_merge(*cfgp, sys_file_path, FALSE));
       else
         {
-          SVN_ERR(svn_config_read2(cfgp, sys_file_path, FALSE, FALSE, pool));
+          SVN_ERR(svn_config_read3(cfgp, sys_file_path,
+                                   FALSE, FALSE, FALSE, pool));
           red_config = TRUE;
         }
     }
@@ -216,13 +227,14 @@ read_all(svn_config_t **cfgp,
         SVN_ERR(svn_config_merge(*cfgp, usr_file_path, FALSE));
       else
         {
-          SVN_ERR(svn_config_read2(cfgp, usr_file_path, FALSE, FALSE, pool));
+          SVN_ERR(svn_config_read3(cfgp, usr_file_path,
+                                   FALSE, FALSE, FALSE, pool));
           red_config = TRUE;
         }
     }
 
   if (! red_config)
-    SVN_ERR(svn_config_create(cfgp, FALSE, pool));
+    SVN_ERR(svn_config_create2(cfgp, FALSE, FALSE, pool));
 
   return SVN_NO_ERROR;
 }
@@ -352,7 +364,10 @@ svn_config_merge(svn_config_t *cfg, cons
      ### We could use a tmp subpool for this, since merge_cfg is going
      to be tossed afterwards.  Premature optimization, though? */
   svn_config_t *merge_cfg;
-  SVN_ERR(svn_config_read2(&merge_cfg, file, must_exist, FALSE, cfg->pool));
+  SVN_ERR(svn_config_read3(&merge_cfg, file, must_exist,
+                           cfg->section_names_case_sensitive,
+                           cfg->option_names_case_sensitive,
+                           cfg->pool));
 
   /* Now copy the new options into the original table. */
   for_each_option(merge_cfg, cfg, merge_cfg->pool, merge_callback);
@@ -427,7 +442,8 @@ find_option(svn_config_t *cfg, const cha
 
       /* Canonicalize the option key */
       svn_stringbuf_set(cfg->tmp_key, option);
-      make_hash_key(cfg->tmp_key->data);
+      if (! cfg->option_names_case_sensitive)
+        make_hash_key(cfg->tmp_key->data);
 
       opt = apr_hash_get(sec->options, cfg->tmp_key->data,
                          cfg->tmp_key->len);
@@ -606,13 +622,17 @@ static void
 svn_config_create_option(cfg_option_t **opt,
                          const char *option,
                          const char *value,
+                         svn_boolean_t option_names_case_sensitive,
                          apr_pool_t *pool)
 {
   cfg_option_t *o;
 
   o = apr_palloc(pool, sizeof(cfg_option_t));
   o->name = apr_pstrdup(pool, option);
-  o->hash_key = make_hash_key(apr_pstrdup(pool, option));
+  if(option_names_case_sensitive)
+    o->hash_key = o->name;
+  else
+    o->hash_key = make_hash_key(apr_pstrdup(pool, option));
 
   o->value = apr_pstrdup(pool, value);
   o->x_value = NULL;
@@ -677,7 +697,9 @@ svn_config_set(svn_config_t *cfg,
     }
 
   /* Create a new option */
-  svn_config_create_option(&opt, option, value, cfg->pool);
+  svn_config_create_option(&opt, option, value,
+                           cfg->option_names_case_sensitive,
+                           cfg->pool);
 
   if (sec == NULL)
     {
@@ -1043,10 +1065,11 @@ svn_config_dup(svn_config_t **cfgp,
   apr_hash_index_t *optidx;
 
   *cfgp = 0;
-  SVN_ERR(svn_config_create(cfgp, FALSE, pool));
+  SVN_ERR(svn_config_create2(cfgp, FALSE, FALSE, pool));
 
   (*cfgp)->x_values = src->x_values;
   (*cfgp)->section_names_case_sensitive = src->section_names_case_sensitive;
+  (*cfgp)->option_names_case_sensitive = src->option_names_case_sensitive;
 
   for (sectidx = apr_hash_first(pool, src->sections);
        sectidx != NULL;
@@ -1076,7 +1099,9 @@ svn_config_dup(svn_config_t **cfgp,
       apr_hash_this(optidx, &optkey, &optkeyLength, &optval);
       srcopt = optval;
 
-      svn_config_create_option(&destopt, srcopt->name, srcopt->value, pool);
+      svn_config_create_option(&destopt, srcopt->name, srcopt->value,
+                               (*cfgp)->option_names_case_sensitive,
+                               pool);
 
       destopt->value = apr_pstrdup(pool, srcopt->value);
       destopt->x_value = apr_pstrdup(pool, srcopt->x_value);

Modified: subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/config_impl.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/config_impl.h?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/config_impl.h (original)
+++ subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/config_impl.h Mon May 13 18:18:16 2013
@@ -67,6 +67,9 @@ struct svn_config_t
 
   /* Specifies whether section names are populated case sensitively. */
   svn_boolean_t section_names_case_sensitive;
+
+  /* Specifies whether option names are populated case sensitively. */
+  svn_boolean_t option_names_case_sensitive;
 };
 
 

Modified: subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/deprecated.c?rev=1482014&r1=1482013&r2=1482014&view=diff
==============================================================================
--- subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/deprecated.c (original)
+++ subversion/branches/1.8.x-r1477876/subversion/libsvn_subr/deprecated.c Mon May 13 18:18:16 2013
@@ -1176,16 +1176,39 @@ svn_mergeinfo_intersect(svn_mergeinfo_t 
 }
 
 /*** From config.c ***/
+svn_error_t *
+svn_config_create(svn_config_t **cfgp,
+                  svn_boolean_t section_names_case_sensitive,
+                  apr_pool_t *result_pool)
+{
+  return svn_error_trace(svn_config_create2(cfgp,
+                                            section_names_case_sensitive,
+                                            FALSE,
+                                            result_pool));
+}
+
+svn_error_t *
+svn_config_read2(svn_config_t **cfgp, const char *file,
+                 svn_boolean_t must_exist,
+                 svn_boolean_t section_names_case_sensitive,
+                 apr_pool_t *result_pool)
+{
+  return svn_error_trace(svn_config_read3(cfgp, file,
+                                          must_exist,
+                                          section_names_case_sensitive,
+                                          FALSE,
+                                          result_pool));
+}
 
 svn_error_t *
 svn_config_read(svn_config_t **cfgp, const char *file,
                 svn_boolean_t must_exist,
-                apr_pool_t *pool)
+                apr_pool_t *result_pool)
 {
-  return svn_error_trace(svn_config_read2(cfgp, file,
+  return svn_error_trace(svn_config_read3(cfgp, file,
                                           must_exist,
-                                          FALSE,
-                                          pool));
+                                          FALSE, FALSE,
+                                          result_pool));
 }
 
 #ifdef SVN_DISABLE_FULL_VERSION_MATCH