You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2013/01/12 21:24:15 UTC

svn commit: r1432504 [1/6] - in /subversion/branches/ev2-export: ./ contrib/client-side/emacs/ notes/http-and-webdav/ subversion/bindings/javahl/native/ subversion/include/ subversion/include/private/ subversion/libsvn_client/ subversion/libsvn_delta/ ...

Author: hwright
Date: Sat Jan 12 20:24:12 2013
New Revision: 1432504

URL: http://svn.apache.org/viewvc?rev=1432504&view=rev
Log:
On the ev2-export branch:
Bring up-to-date with trunk.

Added:
    subversion/branches/ev2-export/subversion/svn/cl-conflicts.c
      - copied unchanged from r1432501, subversion/trunk/subversion/svn/cl-conflicts.c
    subversion/branches/ev2-export/subversion/svn/cl-conflicts.h
      - copied unchanged from r1432501, subversion/trunk/subversion/svn/cl-conflicts.h
    subversion/branches/ev2-export/tools/dev/fsfs-reorg.c
      - copied unchanged from r1432501, subversion/trunk/tools/dev/fsfs-reorg.c
Removed:
    subversion/branches/ev2-export/subversion/svn/tree-conflicts.c
    subversion/branches/ev2-export/subversion/svn/tree-conflicts.h
    subversion/branches/ev2-export/tools/server-side/fsfs-reorg.c
Modified:
    subversion/branches/ev2-export/   (props changed)
    subversion/branches/ev2-export/CHANGES
    subversion/branches/ev2-export/build.conf
    subversion/branches/ev2-export/contrib/client-side/emacs/dsvn.el
    subversion/branches/ev2-export/notes/http-and-webdav/webdav-protocol
    subversion/branches/ev2-export/subversion/bindings/javahl/native/JNIUtil.cpp
    subversion/branches/ev2-export/subversion/bindings/javahl/native/RevpropTable.cpp
    subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.cpp
    subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h
    subversion/branches/ev2-export/subversion/include/svn_client.h
    subversion/branches/ev2-export/subversion/include/svn_dav.h
    subversion/branches/ev2-export/subversion/include/svn_ra.h
    subversion/branches/ev2-export/subversion/include/svn_types.h
    subversion/branches/ev2-export/subversion/libsvn_client/client.h
    subversion/branches/ev2-export/subversion/libsvn_client/copy.c
    subversion/branches/ev2-export/subversion/libsvn_client/externals.c
    subversion/branches/ev2-export/subversion/libsvn_client/iprops.c
    subversion/branches/ev2-export/subversion/libsvn_client/merge.c
    subversion/branches/ev2-export/subversion/libsvn_client/mergeinfo.h
    subversion/branches/ev2-export/subversion/libsvn_client/prop_commands.c
    subversion/branches/ev2-export/subversion/libsvn_client/switch.c
    subversion/branches/ev2-export/subversion/libsvn_client/update.c
    subversion/branches/ev2-export/subversion/libsvn_delta/svndiff.c
    subversion/branches/ev2-export/subversion/libsvn_fs_base/fs.c
    subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/ev2-export/subversion/libsvn_ra/compat.c
    subversion/branches/ev2-export/subversion/libsvn_ra/ra_loader.c
    subversion/branches/ev2-export/subversion/libsvn_ra/ra_loader.h
    subversion/branches/ev2-export/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/commit.c
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/locks.c
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/options.c
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/property.c
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/replay.c
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/update.c
    subversion/branches/ev2-export/subversion/libsvn_ra_serf/util.c
    subversion/branches/ev2-export/subversion/libsvn_ra_svn/client.c
    subversion/branches/ev2-export/subversion/libsvn_repos/authz.c
    subversion/branches/ev2-export/subversion/libsvn_repos/fs-wrap.c
    subversion/branches/ev2-export/subversion/libsvn_repos/repos.c
    subversion/branches/ev2-export/subversion/libsvn_subr/cmdline.c
    subversion/branches/ev2-export/subversion/libsvn_subr/config.c
    subversion/branches/ev2-export/subversion/libsvn_subr/deprecated.c
    subversion/branches/ev2-export/subversion/libsvn_subr/named_atomic.c
    subversion/branches/ev2-export/subversion/libsvn_subr/opt.c
    subversion/branches/ev2-export/subversion/libsvn_subr/stream.c
    subversion/branches/ev2-export/subversion/libsvn_subr/subst.c
    subversion/branches/ev2-export/subversion/libsvn_subr/win32_crashrpt.c
    subversion/branches/ev2-export/subversion/libsvn_wc/adm_crawler.c
    subversion/branches/ev2-export/subversion/libsvn_wc/cleanup.c
    subversion/branches/ev2-export/subversion/libsvn_wc/conflicts.c
    subversion/branches/ev2-export/subversion/libsvn_wc/conflicts.h
    subversion/branches/ev2-export/subversion/libsvn_wc/copy.c
    subversion/branches/ev2-export/subversion/libsvn_wc/entries.c
    subversion/branches/ev2-export/subversion/libsvn_wc/externals.c
    subversion/branches/ev2-export/subversion/libsvn_wc/merge.c
    subversion/branches/ev2-export/subversion/libsvn_wc/props.c
    subversion/branches/ev2-export/subversion/libsvn_wc/status.c
    subversion/branches/ev2-export/subversion/libsvn_wc/update_editor.c
    subversion/branches/ev2-export/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/ev2-export/subversion/libsvn_wc/wc.h
    subversion/branches/ev2-export/subversion/libsvn_wc/wc_db.c
    subversion/branches/ev2-export/subversion/libsvn_wc/wc_db.h
    subversion/branches/ev2-export/subversion/libsvn_wc/wc_db_pristine.c
    subversion/branches/ev2-export/subversion/libsvn_wc/wc_db_private.h
    subversion/branches/ev2-export/subversion/libsvn_wc/wc_db_update_move.c
    subversion/branches/ev2-export/subversion/libsvn_wc/wc_db_util.c
    subversion/branches/ev2-export/subversion/mod_dav_svn/deadprops.c
    subversion/branches/ev2-export/subversion/mod_dav_svn/reports/replay.c
    subversion/branches/ev2-export/subversion/mod_dav_svn/version.c
    subversion/branches/ev2-export/subversion/po/de.po
    subversion/branches/ev2-export/subversion/svn/conflict-callbacks.c
    subversion/branches/ev2-export/subversion/svn/info-cmd.c
    subversion/branches/ev2-export/subversion/svn/merge-cmd.c
    subversion/branches/ev2-export/subversion/svn/status.c
    subversion/branches/ev2-export/subversion/svn/svn.c
    subversion/branches/ev2-export/subversion/svnadmin/svnadmin.c
    subversion/branches/ev2-export/subversion/svnlook/svnlook.c
    subversion/branches/ev2-export/subversion/svnsync/svnsync.c
    subversion/branches/ev2-export/subversion/tests/cmdline/basic_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/copy_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/getopt_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/import_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/merge_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/patch_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/revert_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svndumpfilter_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svnlook_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svntest/actions.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svntest/main.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svntest/tree.py
    subversion/branches/ev2-export/subversion/tests/cmdline/svntest/wc.py
    subversion/branches/ev2-export/subversion/tests/cmdline/update_tests.py
    subversion/branches/ev2-export/subversion/tests/cmdline/wc_tests.py
    subversion/branches/ev2-export/subversion/tests/libsvn_subr/mergeinfo-test.c
    subversion/branches/ev2-export/subversion/tests/libsvn_subr/stream-test.c
    subversion/branches/ev2-export/subversion/tests/libsvn_subr/string-test.c
    subversion/branches/ev2-export/subversion/tests/libsvn_subr/subst_translate-test.c
    subversion/branches/ev2-export/subversion/tests/libsvn_wc/db-test.c
    subversion/branches/ev2-export/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/ev2-export/subversion/tests/libsvn_wc/utils.c
    subversion/branches/ev2-export/subversion/tests/libsvn_wc/utils.h
    subversion/branches/ev2-export/tools/client-side/svn-bench/svn-bench.c
    subversion/branches/ev2-export/tools/dev/   (props changed)
    subversion/branches/ev2-export/tools/dev/fsfs-access-map.c
    subversion/branches/ev2-export/tools/server-side/   (props changed)
    subversion/branches/ev2-export/tools/server-side/fsfs-stats.c

Propchange: subversion/branches/ev2-export/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1430568-1432501

Modified: subversion/branches/ev2-export/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/CHANGES?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/CHANGES (original)
+++ subversion/branches/ev2-export/CHANGES Sat Jan 12 20:24:12 2013
@@ -35,6 +35,7 @@ http://svn.apache.org/repos/asf/subversi
     * client version info now reported to commit hooks (issue #4124)
     * 'svn merge' now uses reintegrate mode automatically when needed
     * 'svn' is now non-interactive when not run in a terminal device (r1424037)
+    * 'svn propset' checks spelling of reserved property names.
 
   - Client-side bugfixes:
     *

Modified: subversion/branches/ev2-export/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/build.conf?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/build.conf (original)
+++ subversion/branches/ev2-export/build.conf Sat Jan 12 20:24:12 2013
@@ -1275,7 +1275,7 @@ libs = __JAVAHL__ javahl-tests javahl-co
 
 [fsfs-reorg]
 type = exe
-path = tools/server-side
+path = tools/dev
 sources = fsfs-reorg.c
 install = tools
 libs = libsvn_delta libsvn_subr apr

Modified: subversion/branches/ev2-export/contrib/client-side/emacs/dsvn.el
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/contrib/client-side/emacs/dsvn.el?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/contrib/client-side/emacs/dsvn.el (original)
+++ subversion/branches/ev2-export/contrib/client-side/emacs/dsvn.el Sat Jan 12 20:24:12 2013
@@ -1864,8 +1864,8 @@ argument."
   (interactive)
   (let ((files (svn-action-files
                 (lambda (pos)
-                  (or (= (svn-file-status pos) ?C)
-		      (= (svn-prop-status pos) ?C)
+                  (or (memq (svn-file-status pos) '(?C ?!))
+		      (memq (svn-prop-status pos) '(?C ?!))
 		      (error "%s has no conflicts"
 			     (svn-getprop pos 'file)))))))
     (make-local-variable 'svn-resolved-files)

Modified: subversion/branches/ev2-export/notes/http-and-webdav/webdav-protocol
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/notes/http-and-webdav/webdav-protocol?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/notes/http-and-webdav/webdav-protocol (original)
+++ subversion/branches/ev2-export/notes/http-and-webdav/webdav-protocol Sat Jan 12 20:24:12 2013
@@ -384,7 +384,7 @@ mergeinfo-report
 ----------------
 
 Purpose: Retrieve the merge history for a portion of the repository
-(e.g. a set of paths) at a particular revision.
+         (e.g. a set of paths) at a particular revision.
 
 Target URL: URL of item we're getting merge info for.
 
@@ -415,3 +415,41 @@ Response:
       <S:mergeinfo-info>/A/B/E:1,3-4</S:mergeinfo-info>
     </S:mergeinfo-item>
   </S:mergeinfo-report>
+
+replay-report
+-------------
+
+Purpose: Retrieve a record of the changes made in a given revision,
+         possibly limited to only those changes which affect a
+         specific subtree of the repository.
+
+Target URL: Prior to Subversion 1.8, the target URL was the public
+            resource URL of the aforementioned subtree.  Per issue #4287
+            (http://subversion.tigris.org/issues/show_bug.cgi?id=4287),
+            it was discovered that this was an incorrect approach, so
+            in Subversion 1.8, mod_dav_svn allowed clients to submit
+            this report (with a slightly different Request syntax)
+            against baselined version resources.
+
+Request:
+
+  Original syntax, used against a regular resource URL:
+
+    <S:replay-report xmlns:S=\"svn:\">
+      <S:revision>REVISION</S:revision>
+      <S:low-water-mark>LOW_WATER_MARK_REV</S:low-water-mark>
+      <S:send-deltas>0</S:send-deltas>  (... or non-zero if sending deltas)
+    </S:replay-report>
+
+  New (in Subversion 1.8) syntax, used against a baselined version
+  resource URL:
+
+    <S:replay-report xmlns:S=\"svn:\">
+      <S:include-path>/trunk/subversion/tests</S:include-path>
+      <S:low-water-mark>LOW_WATER_MARK_REV</S:low-water-mark>
+      <S:send-deltas>0</S:send-deltas>  (... or non-zero if sending deltas)
+    </S:replay-report>
+
+Response:
+
+  ### TODO ###
\ No newline at end of file

Modified: subversion/branches/ev2-export/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/branches/ev2-export/subversion/bindings/javahl/native/JNIUtil.cpp Sat Jan 12 20:24:12 2013
@@ -396,7 +396,7 @@ JNIUtil::putErrorsInTrace(svn_error_t *e
 
   char *tmp_path;
   char *path = svn_dirent_dirname(err->file, err->pool);
-  while (tmp_path = strchr(path, '/'))
+  while ((tmp_path = strchr(path, '/')))
     *tmp_path = '.';
 
   jstring jmethodName = makeJString(path);

Modified: subversion/branches/ev2-export/subversion/bindings/javahl/native/RevpropTable.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/javahl/native/RevpropTable.cpp?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/javahl/native/RevpropTable.cpp (original)
+++ subversion/branches/ev2-export/subversion/bindings/javahl/native/RevpropTable.cpp Sat Jan 12 20:24:12 2013
@@ -77,7 +77,7 @@ RevpropTable::RevpropTable(jobject jrevp
 
   if (jrevpropTable != NULL)
     {
-      static jmethodID keySet = 0, toArray = 0, get = 0;
+      static jmethodID keySet = 0, get = 0;
       JNIEnv *env = JNIUtil::getEnv();
 
       jclass mapClazz = env->FindClass("java/util/Map");

Modified: subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.cpp?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/ev2-export/subversion/bindings/javahl/native/SVNClient.cpp Sat Jan 12 20:24:12 2013
@@ -71,7 +71,7 @@
 
 
 SVNClient::SVNClient(jobject jthis_in)
-    : context(jthis_in, pool), m_lastPath("", pool)
+    : m_lastPath("", pool), context(jthis_in, pool)
 {
 }
 

Modified: subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/ev2-export/subversion/include/private/svn_wc_private.h Sat Jan 12 20:24:12 2013
@@ -863,6 +863,11 @@ svn_wc__prop_list_recursive(svn_wc_conte
  * required), up to and including the root of the working copy and
  * any cached inherited properties inherited by the root.
  *
+ * The #svn_prop_inherited_item_t->path_or_url members of the
+ * #svn_prop_inherited_item_t * structures in @a *inherited_props are
+ * paths relative to the repository root URL for cached inherited
+ * properties and absolute working copy paths otherwise.
+ *
  * Allocate @a *inherited_props in @a result_pool.  Use @a scratch_pool
  * for temporary allocations.
  */

Modified: subversion/branches/ev2-export/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_client.h?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_client.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_client.h Sat Jan 12 20:24:12 2013
@@ -365,6 +365,14 @@ typedef struct svn_client_proplist_item_
  * properties inherited by @a path.  Use @a scratch_pool for all temporary
  * allocations.
  *
+ * The #svn_prop_inherited_item_t->path_or_url members of the
+ * #svn_prop_inherited_item_t * structures in @a inherited_props are
+ * URLs if @a path is a URL or if @path is a working copy path but the
+ * property represented by the structure is above the working copy root (i.e.
+ * the inherited property is from the cache).  In all other cases the
+ * #svn_prop_inherited_item_t->path_or_url members are absolute working copy
+ * paths.
+ *
  * @since New in 1.8.
  */
 typedef svn_error_t *(*svn_proplist_receiver2_t)(
@@ -4922,6 +4930,14 @@ svn_client_revprop_set(const char *propn
  * is not @c NULL and no inheritable properties are found, then set
  * @a *inherited_props to an empty array.
  *
+ * The #svn_prop_inherited_item_t->path_or_url members of the
+ * #svn_prop_inherited_item_t * structures in @a *inherited_props are
+ * URLs if @a target is a URL or if @target is a working copy path but the
+ * property represented by the structure is above the working copy root (i.e.
+ * the inherited property is from the cache).  In all other cases the
+ * #svn_prop_inherited_item_t->path_or_url members are absolute working copy
+ * paths.
+ *
  * Allocate @a *props, its keys, and its values in @a pool, use
  * @a scratch_pool for temporary allocations.
  *

Modified: subversion/branches/ev2-export/subversion/include/svn_dav.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_dav.h?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_dav.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_dav.h Sat Jan 12 20:24:12 2013
@@ -323,6 +323,13 @@ extern "C" {
 #define SVN_DAV_NS_DAV_SVN_INLINE_PROPS\
             SVN_DAV_PROP_NS_DAV "svn/inline-props"
 
+/** Presence of this in a DAV header in an OPTIONS response indicates
+ * that the transmitter (in this case, the server) knows how to handle
+ * a replay of a revision resource.  Transmitters must be
+ * HTTP-v2-enabled to support this feature.  */
+#define SVN_DAV_NS_DAV_SVN_REPLAY_REV_RESOURCE\
+            SVN_DAV_PROP_NS_DAV "svn/replay-rev-resource"
+
 
 /** @} */
 

Modified: subversion/branches/ev2-export/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_ra.h?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_ra.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_ra.h Sat Jan 12 20:24:12 2013
@@ -1930,11 +1930,10 @@ svn_ra_get_deleted_rev(svn_ra_session_t 
  * inheritable properties are found, then set @a *inherited_props to
  * an empty array.
  *
- * If @a use_relpath_keys is true, then the
- * #svn_prop_inherited_item_t->path_or_url members of the
+ * The #svn_prop_inherited_item_t->path_or_url members of the
  * #svn_prop_inherited_item_t * structures in @a *inherited_props are
  * paths relative to the repository root URL (of the repository which
- * @a ra_session is associated).  Otherwise these members are URLs.
+ * @a ra_session is associated).
  *
  * Allocated @a *inherited_props in @a result_pool, use @a scratch_pool
  * for temporary allocations.
@@ -1946,7 +1945,6 @@ svn_ra_get_inherited_props(svn_ra_sessio
                            apr_array_header_t **inherited_props,
                            const char *path,
                            svn_revnum_t revision,
-                           svn_boolean_t use_relpath_keys,
                            apr_pool_t *result_pool,
                            apr_pool_t *scratch_pool);
 

Modified: subversion/branches/ev2-export/subversion/include/svn_types.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/include/svn_types.h?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/include/svn_types.h (original)
+++ subversion/branches/ev2-export/subversion/include/svn_types.h Sat Jan 12 20:24:12 2013
@@ -550,8 +550,7 @@ svn_depth_from_word(const char *word);
  * non-recursive (which in turn usually translates to #svn_depth_files).
  */
 #define SVN_DEPTH_IS_RECURSIVE(depth)                              \
-  (((depth) == svn_depth_infinity || (depth) == svn_depth_unknown) \
-   ? TRUE : FALSE)
+  ((depth) == svn_depth_infinity || (depth) == svn_depth_unknown)
 
 
 
@@ -1212,7 +1211,7 @@ svn_merge_range_contains_rev(const svn_m
  *  @{ */
 
 /**
- * A representation of a segment of a object's version history with an
+ * A representation of a segment of an object's version history with an
  * emphasis on the object's location in the repository as of various
  * revisions.
  *
@@ -1221,7 +1220,7 @@ svn_merge_range_contains_rev(const svn_m
 typedef struct svn_location_segment_t
 {
   /** The beginning (oldest) and ending (youngest) revisions for this
-      segment. */
+      segment, both inclusive. */
   svn_revnum_t range_start;
   svn_revnum_t range_end;
 

Modified: subversion/branches/ev2-export/subversion/libsvn_client/client.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/client.h?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/client.h (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/client.h Sat Jan 12 20:24:12 2013
@@ -650,14 +650,25 @@ svn_client__list_internal(const char *pa
 
 /*** Inheritable Properties ***/
 
+/* Convert any svn_prop_inherited_item_t elements in INHERITED_PROPS which
+   have repository root relative path PATH_OR_URL structure members to URLs
+   using REPOS_ROOT_URL.  Changes to the contents of INHERITED_PROPS are
+   allocated in RESULT_POOL.  SCRATCH_POOL is used for temporary
+   allocations. */
+svn_error_t *
+svn_client__iprop_relpaths_to_urls(apr_array_header_t *inherited_props,
+                                   const char *repos_root_url,
+                                   apr_pool_t *result_pool,
+                                   apr_pool_t *scratch_pool);
+
 /* Fetch the inherited properties for the base of LOCAL_ABSPATH as well
    as any WC roots under LOCAL_ABSPATH (as limited by DEPTH) using
    RA_SESSION.  Store the results in *WCROOT_IPROPS, a hash mapping
    const char * absolute working copy paths to depth-first ordered arrays
-   of svn_prop_inherited_item_t * structures.  If WANT_RELPATH_KEYS is true,
-   then any svn_prop_inherited_item_t->path_or_url members returned in
-   *WCROOT_IPROPS are repository relative paths, otherwise these members are
-   URLs.
+   of svn_prop_inherited_item_t * structures.
+
+   Any svn_prop_inherited_item_t->path_or_url members returned in
+   *WCROOT_IPROPS are repository relative paths.
 
    If LOCAL_ABSPATH has no base then do nothing.
 
@@ -672,7 +683,6 @@ svn_client__get_inheritable_props(apr_ha
                                   const char *local_abspath,
                                   svn_revnum_t revision,
                                   svn_depth_t depth,
-                                  svn_boolean_t use_relpath_keys,
                                   svn_ra_session_t *ra_session,
                                   svn_client_ctx_t *ctx,
                                   apr_pool_t *result_pool,

Modified: subversion/branches/ev2-export/subversion/libsvn_client/copy.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/copy.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/copy.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/copy.c Sat Jan 12 20:24:12 2013
@@ -2075,8 +2075,7 @@ try_copy(const apr_array_header_t *sourc
       else
         {
           /* We ignore these values, so assert the default value */
-          SVN_ERR_ASSERT(allow_mixed_revisions == TRUE
-                         && metadata_only == FALSE);
+          SVN_ERR_ASSERT(allow_mixed_revisions && !metadata_only);
           return svn_error_trace(do_wc_to_wc_copies(copy_pairs, ctx, pool));
         }
     }

Modified: subversion/branches/ev2-export/subversion/libsvn_client/externals.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/externals.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/externals.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/externals.c Sat Jan 12 20:24:12 2013
@@ -484,8 +484,7 @@ switch_file_external(const char *local_a
                                               ctx, subpool));
     /* Get the external file's iprops. */
     SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props, "",
-                                       switch_loc->rev, TRUE,
-                                       subpool, subpool));
+                                       switch_loc->rev, subpool, subpool));
 
     SVN_ERR(svn_ra_reparent(ra_session, svn_uri_dirname(url, subpool),
                             subpool));

Modified: subversion/branches/ev2-export/subversion/libsvn_client/iprops.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/iprops.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/iprops.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/iprops.c Sat Jan 12 20:24:12 2013
@@ -31,6 +31,8 @@
 #include "svn_pools.h"
 #include "svn_wc.h"
 #include "svn_ra.h"
+#include "svn_props.h"
+#include "svn_path.h"
 
 #include "client.h"
 #include "svn_private_config.h"
@@ -97,11 +99,35 @@ need_to_cache_iprops(svn_boolean_t *need
 }
 
 svn_error_t *
+svn_client__iprop_relpaths_to_urls(apr_array_header_t *inherited_props,
+                                   const char *repos_root_url,
+                                   apr_pool_t *result_pool,
+                                   apr_pool_t *scratch_pool)
+{
+  int i;
+
+  for (i = 0; i < inherited_props->nelts; i++)
+    {
+      svn_prop_inherited_item_t *elt =
+        APR_ARRAY_IDX(inherited_props, i, svn_prop_inherited_item_t *);
+
+      /* Convert repos root relpaths to full URLs. */
+      if (! (svn_path_is_url(elt->path_or_url)
+             || svn_dirent_is_absolute(elt->path_or_url)))
+        {
+          elt->path_or_url = svn_path_url_add_component2(repos_root_url,
+                                                         elt->path_or_url,
+                                                         result_pool);      
+        }
+    }
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_client__get_inheritable_props(apr_hash_t **wcroot_iprops,
                                   const char *local_abspath,
                                   svn_revnum_t revision,
                                   svn_depth_t depth,
-                                  svn_boolean_t use_relpath_keys,
                                   svn_ra_session_t *ra_session,
                                   svn_client_ctx_t *ctx,
                                   apr_pool_t *result_pool,
@@ -184,7 +210,7 @@ svn_client__get_inheritable_props(apr_ha
             }
 
           SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props,
-                                             "", revision, use_relpath_keys,
+                                             "", revision,
                                              result_pool, iterpool));
           apr_hash_set(*wcroot_iprops,
                        apr_pstrdup(result_pool, child_abspath),

Modified: subversion/branches/ev2-export/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/merge.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/merge.c Sat Jan 12 20:24:12 2013
@@ -9602,7 +9602,7 @@ ensure_wc_is_suitable_merge_target(const
       if (min_rev != max_rev)
         return svn_error_createf(SVN_ERR_CLIENT_MERGE_UPDATE_REQUIRED, NULL,
                                  _("Cannot merge into mixed-revision working "
-                                   "copy [%lu:%lu]; try updating first"),
+                                   "copy [%ld:%ld]; try updating first"),
                                    min_rev, max_rev);
     }
 

Modified: subversion/branches/ev2-export/subversion/libsvn_client/mergeinfo.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/mergeinfo.h?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/mergeinfo.h (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/mergeinfo.h Sat Jan 12 20:24:12 2013
@@ -292,9 +292,10 @@ svn_client__get_wc_or_repos_mergeinfo_ca
 /* Set *MERGEINFO_P to a mergeinfo constructed solely from the
    natural history of PATHREV.
 
-   If RANGE_YOUNGEST and RANGE_OLDEST are valid, use them to bound the
-   revision ranges of returned mergeinfo.  They are governed by the same
-   rules as the PEG_REVISION, START_REV, and END_REV parameters of
+   If RANGE_YOUNGEST and RANGE_OLDEST are valid, use them as inclusive
+   bounds on the revision ranges of returned mergeinfo.  PATHREV->rev,
+   RANGE_YOUNGEST and RANGE_OLDEST are governed by the same rules as the
+   PEG_REVISION, START_REV, and END_REV parameters (respectively) of
    svn_ra_get_location_segments().
 
    If HAS_REV_ZERO_HISTORY is not NULL, then set *HAS_REV_ZERO_HISTORY to

Modified: subversion/branches/ev2-export/subversion/libsvn_client/prop_commands.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/prop_commands.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/prop_commands.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/prop_commands.c Sat Jan 12 20:24:12 2013
@@ -617,11 +617,19 @@ remote_propget(apr_hash_t *props,
 
   if (inherited_props)
     {
+      const char *repos_root_url;
+
       /* We will filter out all but PROPNAME later, making a final copy
-         in RESULT_POOL, so pass SCRATCH_POOL for both pools. */
+         in RESULT_POOL, so pass SCRATCH_POOL for all pools. */
       SVN_ERR(svn_ra_get_inherited_props(ra_session, inherited_props,
-                                         target_relative, revnum, FALSE,
+                                         target_relative, revnum,
                                          scratch_pool, scratch_pool));
+      SVN_ERR(svn_ra_get_repos_root2(ra_session, &repos_root_url,
+                                     scratch_pool));
+      SVN_ERR(svn_client__iprop_relpaths_to_urls(*inherited_props,
+                                                 repos_root_url,
+                                                 scratch_pool,
+                                                 scratch_pool));
     }
 
   /* Make a copy of any inherited PROPNAME properties in RESULT_POOL. */
@@ -871,9 +879,20 @@ svn_client_propget5(apr_hash_t **props,
         return svn_error_trace(err);
 
       if (inherited_props && local_iprops)
-        SVN_ERR(svn_wc__get_iprops(inherited_props, ctx->wc_ctx,
-                                   target, propname,
-                                   result_pool, scratch_pool));
+        {
+          const char *repos_root_url;
+
+          SVN_ERR(svn_wc__get_iprops(inherited_props, ctx->wc_ctx,
+                                     target, propname,
+                                     result_pool, scratch_pool));
+          SVN_ERR(svn_client_get_repos_root(&repos_root_url, NULL,
+                                            target, ctx, scratch_pool,
+                                            scratch_pool));
+          SVN_ERR(svn_client__iprop_relpaths_to_urls(*inherited_props,
+                                                     repos_root_url,
+                                                     result_pool,
+                                                     scratch_pool));
+        }
 
       SVN_ERR(get_prop_from_wc(props, propname, target,
                                pristine, kind,
@@ -1105,11 +1124,23 @@ remote_proplist(const char *target_prefi
     }
 
   if (get_target_inherited_props)
-    SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props,
-                                       target_relative, revnum, FALSE,
-                                       result_pool, scratch_pool));
+    {
+      const char *repos_root_url;
+
+      SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props,
+                                         target_relative, revnum,
+                                         result_pool, scratch_pool));
+      SVN_ERR(svn_ra_get_repos_root2(ra_session, &repos_root_url,
+                                     scratch_pool));
+      SVN_ERR(svn_client__iprop_relpaths_to_urls(inherited_props,
+                                                 repos_root_url,
+                                                 result_pool,
+                                                 scratch_pool));
+    }
   else
-    inherited_props = NULL;
+    {
+      inherited_props = NULL;
+    }
 
   if (get_explicit_props)
     {
@@ -1389,9 +1420,15 @@ get_local_props(const char *path_or_url,
   if (get_target_inherited_props)
     {
       apr_array_header_t *iprops;
+      const char *repos_root_url;
 
       SVN_ERR(svn_wc__get_iprops(&iprops, ctx->wc_ctx, local_abspath,
                                  NULL, scratch_pool, scratch_pool));
+      SVN_ERR(svn_client_get_repos_root(&repos_root_url, NULL, local_abspath,
+                                        ctx, scratch_pool, scratch_pool));
+      SVN_ERR(svn_client__iprop_relpaths_to_urls(iprops, repos_root_url,
+                                                 scratch_pool,
+                                                 scratch_pool));
       SVN_ERR(call_receiver(path_or_url, NULL, iprops, receiver,
                             receiver_baton, scratch_pool));
     }

Modified: subversion/branches/ev2-export/subversion/libsvn_client/switch.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/switch.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/switch.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/switch.c Sat Jan 12 20:24:12 2013
@@ -267,7 +267,7 @@ switch_internal(svn_revnum_t *result_rev
       if (needs_iprop_cache)
         {
           SVN_ERR(svn_ra_get_inherited_props(ra_session, &inherited_props,
-                                             "", switch_loc->rev, TRUE, pool,
+                                             "", switch_loc->rev, pool,
                                              pool));
           apr_hash_set(wcroot_iprops, local_abspath, APR_HASH_KEY_STRING,
                        inherited_props);

Modified: subversion/branches/ev2-export/subversion/libsvn_client/update.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_client/update.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_client/update.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_client/update.c Sat Jan 12 20:24:12 2013
@@ -377,7 +377,7 @@ update_internal(svn_revnum_t *result_rev
   dfb.anchor_url = anchor_loc->url;
 
   err = svn_client__get_inheritable_props(&wcroot_iprops, local_abspath,
-                                          revnum, depth, TRUE, ra_session,
+                                          revnum, depth, ra_session,
                                           ctx, pool, pool);
 
   /* We might be trying to update to a non-existant path-rev. */

Modified: subversion/branches/ev2-export/subversion/libsvn_delta/svndiff.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_delta/svndiff.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_delta/svndiff.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_delta/svndiff.c Sat Jan 12 20:24:12 2013
@@ -203,7 +203,7 @@ send_simple_insertion_window(svn_txdelta
   assert(window->ops[0].offset == 0);
 
   /* write stream header if necessary */
-  if (eb->header_done == FALSE)
+  if (!eb->header_done)
     {
       eb->header_done = TRUE;
       headers[0] = 'S';
@@ -269,7 +269,7 @@ window_handler(svn_txdelta_window_t *win
     return svn_error_trace(send_simple_insertion_window(window, eb));
 
   /* Make sure we write the header.  */
-  if (eb->header_done == FALSE)
+  if (!eb->header_done)
     {
       char svnver[4] = {'S','V','N','\0'};
       len = 4;

Modified: subversion/branches/ev2-export/subversion/libsvn_fs_base/fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_fs_base/fs.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_fs_base/fs.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_fs_base/fs.c Sat Jan 12 20:24:12 2013
@@ -1016,7 +1016,7 @@ svn_fs_base__clean_logs(const char *live
                                                  sub_pool));
 
           /* If log files do not match, go to the next log file. */
-          if (files_match == FALSE)
+          if (!files_match)
             continue;
         }
 

Modified: subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs_fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs_fs.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_fs_fs/fs_fs.c Sat Jan 12 20:24:12 2013
@@ -2527,7 +2527,7 @@ representation_string(representation_t *
     return "-1";
 
 #define DISPLAY_MAYBE_NULL_CHECKSUM(checksum)          \
-  ((may_be_corrupt == FALSE || (checksum) != NULL)     \
+  ((!may_be_corrupt || (checksum) != NULL)     \
    ? svn_checksum_to_cstring_display((checksum), pool) \
    : "(null)")
 
@@ -4431,7 +4431,7 @@ create_rep_state_body(struct rep_state *
   *rep_state = rs;
   *rep_args = ra;
 
-  if (ra->is_delta == FALSE)
+  if (!ra->is_delta)
     /* This is a plaintext, so just return the current rep_state. */
     return SVN_NO_ERROR;
 
@@ -4784,7 +4784,7 @@ build_rep_list(apr_array_header_t **list
           return SVN_NO_ERROR;
         }
 
-      if (rep_args->is_delta == FALSE)
+      if (!rep_args->is_delta)
         {
           /* This is a plaintext, so just return the current rep_state. */
           *src_state = rs;

Modified: subversion/branches/ev2-export/subversion/libsvn_ra/compat.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_ra/compat.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_ra/compat.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_ra/compat.c Sat Jan 12 20:24:12 2013
@@ -935,7 +935,9 @@ svn_ra__get_inherited_props_walk(svn_ra_
         {
           svn_prop_inherited_item_t *new_iprop =
             apr_palloc(result_pool, sizeof(*new_iprop));
-          new_iprop->path_or_url = apr_pstrdup(result_pool, parent_url);
+          new_iprop->path_or_url = svn_uri_skip_ancestor(repos_root_url,
+                                                         parent_url,
+                                                         result_pool);
           new_iprop->prop_hash = final_hash;
           svn_sort__array_insert(&new_iprop, *inherited_props, 0);
         }

Modified: subversion/branches/ev2-export/subversion/libsvn_ra/ra_loader.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_ra/ra_loader.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_ra/ra_loader.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_ra/ra_loader.c Sat Jan 12 20:24:12 2013
@@ -1299,7 +1299,6 @@ svn_ra_get_inherited_props(svn_ra_sessio
                            apr_array_header_t **iprops,
                            const char *path,
                            svn_revnum_t revision,
-                           svn_boolean_t use_relpath_keys,
                            apr_pool_t *result_pool,
                            apr_pool_t *scratch_pool)
 {
@@ -1325,23 +1324,6 @@ svn_ra_get_inherited_props(svn_ra_sessio
                                                result_pool, scratch_pool));
     }
 
-  if (use_relpath_keys && (*iprops)->nelts)
-    {
-      const char *repos_root_url;
-      int i;
-
-      SVN_ERR(svn_ra_get_repos_root2(session, &repos_root_url, scratch_pool));
-      for (i = 0; i < (*iprops)->nelts; i++)
-        {
-          svn_prop_inherited_item_t *elt =
-            APR_ARRAY_IDX(*iprops, i, svn_prop_inherited_item_t *);
-          elt->path_or_url =
-            svn_dirent_skip_ancestor(repos_root_url, elt->path_or_url);
-          elt->path_or_url = svn_path_uri_decode(elt->path_or_url,
-                                                 result_pool);
-        }
-    }
-
   return SVN_NO_ERROR;
 }
 

Modified: subversion/branches/ev2-export/subversion/libsvn_ra/ra_loader.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_ra/ra_loader.h?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_ra/ra_loader.h (original)
+++ subversion/branches/ev2-export/subversion/libsvn_ra/ra_loader.h Sat Jan 12 20:24:12 2013
@@ -496,11 +496,11 @@ svn_ra__get_deleted_rev_from_log(svn_ra_
 
 
 /**
- * Fallback logic for svn_ra_get_fileX and svn_ra_get_dirX when those APIs
+ * Fallback logic for svn_ra_get_inherited_props() when that API
  * need to find PATH's inherited properties on a legacy server that
  * doesn't have the SVN_RA_CAPABILITY_INHERITED_PROPS capability.
  *
- * All arguments are as per the two aforementioned APIs.
+ * All arguments are as per svn_ra_get_inherited_props().
  */
 svn_error_t *
 svn_ra__get_inherited_props_walk(svn_ra_session_t *session,

Modified: subversion/branches/ev2-export/subversion/libsvn_ra_local/ra_plugin.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_ra_local/ra_plugin.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_ra_local/ra_plugin.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_ra_local/ra_plugin.c Sat Jan 12 20:24:12 2013
@@ -1058,22 +1058,12 @@ get_node_props(apr_hash_t **props,
       SVN_ERR(svn_fs_node_proplist(props, root, path, result_pool));
     }
 
-  /* Turn FS-path keys into URLs. */
+  /* Get inherited properties if requested. */
   if (inherited_props)
     {
-      int i;
-
       SVN_ERR(svn_repos_fs_get_inherited_props(inherited_props, root, path,
                                                NULL, NULL, NULL,
                                                result_pool, scratch_pool));
-
-      for (i = 0; i < (*inherited_props)->nelts; i++)
-        {
-          svn_prop_inherited_item_t *i_props =
-            APR_ARRAY_IDX(*inherited_props, i, svn_prop_inherited_item_t *);
-          i_props->path_or_url = svn_path_url_add_component2(
-            sess->repos_url, i_props->path_or_url, result_pool);
-        }
     }
 
   /* Now add some non-tweakable metadata to the hash as well... */

Modified: subversion/branches/ev2-export/subversion/libsvn_ra_serf/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_ra_serf/commit.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_ra_serf/commit.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_ra_serf/commit.c Sat Jan 12 20:24:12 2013
@@ -1294,9 +1294,9 @@ open_root(void *edit_baton,
     {
       post_response_ctx_t *prc;
       const char *rel_path;
-      svn_boolean_t post_with_revprops =
-        apr_hash_get(ctx->session->supported_posts, "create-txn-with-props",
-                     APR_HASH_KEY_STRING) ? TRUE : FALSE;
+      svn_boolean_t post_with_revprops
+        = (apr_hash_get(ctx->session->supported_posts, "create-txn-with-props",
+                        APR_HASH_KEY_STRING) != NULL);
 
       /* Create our activity URL now on the server. */
       handler = apr_pcalloc(ctx->pool, sizeof(*handler));

Modified: subversion/branches/ev2-export/subversion/libsvn_ra_serf/locks.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_ra_serf/locks.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_ra_serf/locks.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_ra_serf/locks.c Sat Jan 12 20:24:12 2013
@@ -261,7 +261,7 @@ handle_lock(serf_request_t *request,
                                request, response, ctx->handler, pool));
     }
 
-  if (ctx->read_headers == FALSE)
+  if (!ctx->read_headers)
     {
       serf_bucket_t *headers;
       const char *val;

Modified: subversion/branches/ev2-export/subversion/libsvn_ra_serf/options.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_ra_serf/options.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_ra_serf/options.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_ra_serf/options.c Sat Jan 12 20:24:12 2013
@@ -211,11 +211,14 @@ capabilities_headers_iterator_callback(v
                        SVN_RA_CAPABILITY_EPHEMERAL_TXNPROPS, APR_HASH_KEY_STRING,
                        capability_yes);
         }
-
       if (svn_cstring_match_list(SVN_DAV_NS_DAV_SVN_INLINE_PROPS, vals))
         {
           session->supports_inline_props = TRUE;
         }
+      if (svn_cstring_match_list(SVN_DAV_NS_DAV_SVN_REPLAY_REV_RESOURCE, vals))
+        {
+          session->supports_rev_rsrc_replay = TRUE;
+        }
     }
 
   /* SVN-specific headers -- if present, server supports HTTP protocol v2 */

Modified: subversion/branches/ev2-export/subversion/libsvn_ra_serf/property.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_ra_serf/property.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_ra_serf/property.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_ra_serf/property.c Sat Jan 12 20:24:12 2013
@@ -526,7 +526,7 @@ create_propfind_body(serf_bucket_t **bkt
     }
 
   /* If we're not doing an allprop, add <prop> tags. */
-  if (requested_allprop == FALSE)
+  if (!requested_allprop)
     {
       tmp = SERF_BUCKET_SIMPLE_STRING_LEN("<prop>",
                                           sizeof("<prop>")-1,
@@ -540,7 +540,7 @@ create_propfind_body(serf_bucket_t **bkt
 
   serf_bucket_aggregate_prepend(body_bkt, tmp);
 
-  if (requested_allprop == FALSE)
+  if (!requested_allprop)
     {
       tmp = SERF_BUCKET_SIMPLE_STRING_LEN("</prop>",
                                           sizeof("</prop>")-1,

Modified: subversion/branches/ev2-export/subversion/libsvn_ra_serf/ra_serf.h
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_ra_serf/ra_serf.h?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_ra_serf/ra_serf.h (original)
+++ subversion/branches/ev2-export/subversion/libsvn_ra_serf/ra_serf.h Sat Jan 12 20:24:12 2013
@@ -243,6 +243,10 @@ struct svn_ra_serf__session_t {
   /* Indicates if the server supports sending inlined props in update editor
    * in skelta mode (send-all == 'false'). */
   svn_boolean_t supports_inline_props;
+
+  /* Indicates whether the server supports issuing replay REPORTs
+     against rev resources (children of `rev_stub', elsestruct). */
+  svn_boolean_t supports_rev_rsrc_replay;
 };
 
 #define SVN_RA_SERF__HAVE_HTTPV2_SUPPORT(sess) ((sess)->me_resource != NULL)

Modified: subversion/branches/ev2-export/subversion/libsvn_ra_serf/replay.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_ra_serf/replay.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_ra_serf/replay.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_ra_serf/replay.c Sat Jan 12 20:24:12 2013
@@ -107,16 +107,17 @@ typedef struct replay_context_t {
   const svn_delta_editor_t *editor;
   void *editor_baton;
 
-  /* current revision */
+  /* Path and revision used to filter replayed changes.  If
+     INCLUDE_PATH is non-NULL, REVISION is unnecessary and will not be
+     included in the replay REPORT.  (Because the REPORT is being
+     aimed an HTTP v2 revision resource.)  */
+  const char *include_path;
   svn_revnum_t revision;
 
   /* Information needed to create the replay report body */
   svn_revnum_t low_water_mark;
   svn_boolean_t send_deltas;
 
-  /* Cached report target url */
-  const char *report_target;
-
   /* Target and revision to fetch revision properties on */
   const char *revprop_target;
   svn_revnum_t revprop_rev;
@@ -128,8 +129,9 @@ typedef struct replay_context_t {
   /* Keep a reference to the XML parser ctx to report any errors. */
   svn_ra_serf__xml_parser_t *parser_ctx;
 
-  /* The propfind for the revision properties of the current revision */
+  /* Handlers for the PROPFIND and REPORT for the current revision. */
   svn_ra_serf__handler_t *propfind_handler;
+  svn_ra_serf__handler_t *report_handler;
 
 } replay_context_t;
 
@@ -602,10 +604,22 @@ create_replay_body(serf_bucket_t **bkt,
                                     "xmlns:S", SVN_XML_NAMESPACE,
                                     NULL);
 
-  svn_ra_serf__add_tag_buckets(body_bkt,
-                               "S:revision",
-                               apr_ltoa(ctx->src_rev_pool, ctx->revision),
-                               alloc);
+  /* If we have a non-NULL include path, we add it to the body and
+     omit the revision; otherwise, the reverse. */
+  if (ctx->include_path)
+    {
+      svn_ra_serf__add_tag_buckets(body_bkt,
+                                   "S:include-path",
+                                   ctx->include_path,
+                                   alloc);
+    }
+  else
+    {
+      svn_ra_serf__add_tag_buckets(body_bkt,
+                                   "S:revision",
+                                   apr_ltoa(ctx->src_rev_pool, ctx->revision),
+                                   alloc);
+    }
   svn_ra_serf__add_tag_buckets(body_bkt,
                                "S:low-water-mark",
                                apr_ltoa(ctx->src_rev_pool, ctx->low_water_mark),
@@ -648,7 +662,6 @@ svn_ra_serf__replay(svn_ra_session_t *ra
   replay_ctx->revision = revision;
   replay_ctx->low_water_mark = low_water_mark;
   replay_ctx->send_deltas = send_deltas;
-  replay_ctx->report_target = report_target;
   replay_ctx->revs_props = apr_hash_make(replay_ctx->src_rev_pool);
 
   handler = apr_pcalloc(pool, sizeof(*handler));
@@ -676,12 +689,17 @@ svn_ra_serf__replay(svn_ra_session_t *ra
 
   /* This is only needed to handle errors during XML parsing. */
   replay_ctx->parser_ctx = parser_ctx;
+  replay_ctx->report_handler = handler; /* unused */
 
   svn_ra_serf__request_create(handler);
 
   err = svn_ra_serf__context_run_wait(&replay_ctx->done, session, pool);
 
-  SVN_ERR(err);
+  SVN_ERR(svn_error_compose_create(
+              svn_ra_serf__error_on_status(handler->sline.code,
+                                           handler->path,
+                                           handler->location),
+              err));
 
   return SVN_NO_ERROR;
 }
@@ -732,9 +750,39 @@ svn_ra_serf__replay_range(svn_ra_session
   svn_revnum_t rev = start_revision;
   const char *report_target;
   int active_reports = 0;
+  const char *include_path;
 
   SVN_ERR(svn_ra_serf__report_resource(&report_target, session, NULL, pool));
 
+  /* Prior to 1.8, mod_dav_svn expect to get replay REPORT requests
+     aimed at the session URL.  But that's incorrect -- these reports
+     aren't about specific resources -- they are above revisions.  The
+     path-based filtering offered by this API is just that: a filter
+     applied to the full set of changes made in the revision.  As
+     such, the correct target for these REPORT requests is the "me
+     resource" (or, pre-http-v2, the default VCC).
+
+     Our server should have told us if it supported this protocol
+     correction.  If so, we aimed our report at the correct resource
+     and include the filtering path as metadata within the report
+     body.  Otherwise, we fall back to the pre-1.8 behavior and just
+     wish for the best.
+
+     See issue #4287:
+     http://subversion.tigris.org/issues/show_bug.cgi?id=4287
+  */
+  if (session->supports_rev_rsrc_replay)
+    {
+      SVN_ERR(svn_ra_serf__get_relative_path(&include_path,
+                                             session->session_url.path,
+                                             session, session->conns[0],
+                                             pool));
+    }
+  else
+    {
+      include_path = NULL;
+    }
+
   while (active_reports || rev <= end_revision)
     {
       svn_ra_serf__list_t *done_list;
@@ -751,6 +799,7 @@ svn_ra_serf__replay_range(svn_ra_session
           svn_ra_serf__handler_t *handler;
           svn_ra_serf__xml_parser_t *parser_ctx;
           apr_pool_t *ctx_pool = svn_pool_create(pool);
+          const char *replay_target;
 
           replay_ctx = apr_pcalloc(ctx_pool, sizeof(*replay_ctx));
           replay_ctx->src_rev_pool = ctx_pool;
@@ -758,19 +807,20 @@ svn_ra_serf__replay_range(svn_ra_session
           replay_ctx->revfinish_func = revfinish_func;
           replay_ctx->replay_baton = replay_baton;
           replay_ctx->done = FALSE;
+          replay_ctx->include_path = include_path;
           replay_ctx->revision = rev;
           replay_ctx->low_water_mark = low_water_mark;
           replay_ctx->send_deltas = send_deltas;
           replay_ctx->done_item.data = replay_ctx;
+
           /* Request all properties of a certain revision. */
-          replay_ctx->report_target = report_target;
           replay_ctx->revs_props = apr_hash_make(replay_ctx->src_rev_pool);
 
           if (SVN_RA_SERF__HAVE_HTTPV2_SUPPORT(session))
-           {
-             replay_ctx->revprop_target = apr_psprintf(pool, "%s/%ld",
-                                                       session->rev_stub, rev);
-             replay_ctx->revprop_rev = SVN_INVALID_REVNUM;
+            {
+              replay_ctx->revprop_target = apr_psprintf(pool, "%s/%ld",
+                                                        session->rev_stub, rev);
+              replay_ctx->revprop_rev = SVN_INVALID_REVNUM;
             }
           else
             {
@@ -790,12 +840,22 @@ svn_ra_serf__replay_range(svn_ra_session
           /* Spin up the serf request for the PROPFIND.  */
           svn_ra_serf__request_create(replay_ctx->propfind_handler);
 
-          /* Send the replay report request. */
+          /* Send the replay REPORT request. */
+          if (session->supports_rev_rsrc_replay)
+            {
+              replay_target = apr_psprintf(pool, "%s/%ld",
+                                           session->rev_stub, rev);
+            }
+          else
+            {
+              replay_target = session->session_url.path;
+            }
+
           handler = apr_pcalloc(replay_ctx->src_rev_pool, sizeof(*handler));
 
           handler->handler_pool = replay_ctx->src_rev_pool;
           handler->method = "REPORT";
-          handler->path = session->session_url.path;
+          handler->path = replay_target;
           handler->body_delegate = create_replay_body;
           handler->body_delegate_baton = replay_ctx;
           handler->conn = session->conns[0];
@@ -821,6 +881,7 @@ svn_ra_serf__replay_range(svn_ra_session
           parser_ctx->done_item = &replay_ctx->done_item;
           handler->response_handler = svn_ra_serf__handle_xml_parser;
           handler->response_baton = parser_ctx;
+          replay_ctx->report_handler = handler;
 
           /* This is only needed to handle errors during XML parsing. */
           replay_ctx->parser_ctx = parser_ctx;
@@ -841,8 +902,12 @@ svn_ra_serf__replay_range(svn_ra_session
       while (done_list)
         {
           replay_context_t *ctx = (replay_context_t *)done_list->data;
+          svn_ra_serf__handler_t *done_handler = ctx->report_handler;
 
           done_list = done_list->next;
+          SVN_ERR(svn_ra_serf__error_on_status(done_handler->sline.code,
+                                               done_handler->path,
+                                               done_handler->location));
           svn_pool_destroy(ctx->src_rev_pool);
           active_reports--;
         }

Modified: subversion/branches/ev2-export/subversion/libsvn_ra_serf/update.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_ra_serf/update.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_ra_serf/update.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_ra_serf/update.c Sat Jan 12 20:24:12 2013
@@ -935,7 +935,7 @@ cancel_fetch(serf_request_t *request,
        */
       if (fetch_ctx->read_headers)
         {
-          if (fetch_ctx->aborted_read == FALSE && fetch_ctx->read_size)
+          if (!fetch_ctx->aborted_read && fetch_ctx->read_size)
             {
               fetch_ctx->aborted_read = TRUE;
               fetch_ctx->aborted_read_size = fetch_ctx->read_size;
@@ -1089,7 +1089,7 @@ handle_fetch(serf_request_t *request,
   /* ### new field. make sure we didn't miss some initialization.  */
   SVN_ERR_ASSERT(fetch_ctx->handler != NULL);
 
-  if (fetch_ctx->read_headers == FALSE)
+  if (!fetch_ctx->read_headers)
     {
       serf_bucket_t *hdrs;
       const char *val;
@@ -2252,7 +2252,7 @@ end_report(svn_ra_serf__xml_parser_t *pa
       info->lock_token = apr_hash_get(ctx->lock_path_tokens, info->name,
                                       APR_HASH_KEY_STRING);
 
-      if (info->lock_token && info->fetch_props == FALSE)
+      if (info->lock_token && !info->fetch_props)
         info->fetch_props = TRUE;
 
       /* If possible, we'd like to fetch only a delta against a
@@ -3066,7 +3066,7 @@ finish_report(void *report_baton,
     {
       /* Ensure that we opened and closed our root dir and that we closed
        * all of our children. */
-      if (report->closed_root == FALSE && report->root_dir != NULL)
+      if (!report->closed_root && report->root_dir != NULL)
         {
           SVN_ERR(close_all_dirs(report->root_dir));
         }
@@ -3197,8 +3197,19 @@ make_update_reporter(svn_ra_session_t *r
     }
   else
     {
-      /* Pre-1.8 server didn't send the bulk_updates header. Do
-         whatever is the default or what the user defined in the config. */
+      /* Pre-1.8 server didn't send the bulk_updates header. Check if server
+         supports inlining properties in update editor report. */
+      if (sess->supports_inline_props)
+        {
+          /* Inline props supported: do not use bulk updates. */
+          sess->bulk_updates = FALSE;
+        }
+      else
+        {
+          /* Inline props are noot supported: use bulk updates to avoid
+           * PROPFINDs for every added node. */
+          sess->bulk_updates = TRUE;
+        }
     }
 
   if (sess->bulk_updates)

Modified: subversion/branches/ev2-export/subversion/libsvn_ra_serf/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_ra_serf/util.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_ra_serf/util.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_ra_serf/util.c Sat Jan 12 20:24:12 2013
@@ -1559,7 +1559,7 @@ svn_ra_serf__handle_xml_parser(serf_requ
     }
 
   /* Woo-hoo.  Nothing here to see.  */
-  if (sl.code == 404 && ctx->ignore_errors == FALSE)
+  if (sl.code == 404 && !ctx->ignore_errors)
     {
       err = handle_server_error(request, response, pool);
 

Modified: subversion/branches/ev2-export/subversion/libsvn_ra_svn/client.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_ra_svn/client.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_ra_svn/client.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_ra_svn/client.c Sat Jan 12 20:24:12 2013
@@ -1304,7 +1304,7 @@ static svn_error_t *ra_svn_get_dir(svn_r
 static svn_tristate_t
 optbool_to_tristate(apr_uint64_t v)
 {
-  if (v == TRUE)
+  if (v == TRUE)  /* not just non-zero but exactly equal to 'TRUE' */
     return svn_tristate_true;
   if (v == FALSE)
     return svn_tristate_false;

Modified: subversion/branches/ev2-export/subversion/libsvn_repos/authz.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_repos/authz.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_repos/authz.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_repos/authz.c Sat Jan 12 20:24:12 2013
@@ -304,10 +304,8 @@ authz_parse_section(const char *section_
   svn_boolean_t conclusive;
 
   /* Does the section apply to us? */
-  if (is_applicable_section(b->qualified_repos_path,
-                            section_name) == FALSE
-      && is_applicable_section(b->repos_path,
-                               section_name) == FALSE)
+  if (!is_applicable_section(b->qualified_repos_path, section_name)
+      && !is_applicable_section(b->repos_path, section_name))
     return TRUE;
 
   /* Work out what this section grants. */

Modified: subversion/branches/ev2-export/subversion/libsvn_repos/fs-wrap.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_repos/fs-wrap.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_repos/fs-wrap.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_repos/fs-wrap.c Sat Jan 12 20:24:12 2013
@@ -178,7 +178,7 @@ svn_repos__validate_prop(const char *nam
        * LF line endings. */
       if (svn_prop_needs_translation(name))
         {
-          if (svn_utf__is_valid(value->data, value->len) == FALSE)
+          if (!svn_utf__is_valid(value->data, value->len))
             {
               return svn_error_createf
                 (SVN_ERR_BAD_PROPERTY_VALUE, NULL,

Modified: subversion/branches/ev2-export/subversion/libsvn_repos/repos.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_repos/repos.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_repos/repos.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_repos/repos.c Sat Jan 12 20:24:12 2013
@@ -1539,6 +1539,23 @@ get_repos(svn_repos_t **repos_p,
   if (open_fs)
     SVN_ERR(svn_fs_open(&repos->fs, repos->db_path, fs_config, pool));
 
+#ifdef SVN_DEBUG_CRASH_AT_REPOS_OPEN
+  /* If $PATH/config/debug-abort exists, crash the server here.
+     This debugging feature can be used to test client recovery
+     when the server crashes.
+
+     See: Issue #4274 */
+  {
+    svn_node_kind_t kind;
+    svn_error_t *err = svn_io_check_path(
+        svn_dirent_join(repos->conf_path, "debug-abort", pool),
+        &kind, pool);
+    svn_error_clear(err);
+    if (!err && kind == svn_node_file)
+      SVN_ERR_MALFUNCTION_NO_RETURN();
+  }
+#endif /* SVN_DEBUG_CRASH_AT_REPOS_OPEN */
+
   *repos_p = repos;
   return SVN_NO_ERROR;
 }

Modified: subversion/branches/ev2-export/subversion/libsvn_subr/cmdline.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_subr/cmdline.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_subr/cmdline.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_subr/cmdline.c Sat Jan 12 20:24:12 2013
@@ -485,7 +485,7 @@ svn_cmdline_create_auth_baton(svn_auth_b
       pb->config_dir = config_dir;
     }
 
-  if (non_interactive == FALSE)
+  if (!non_interactive)
     {
       /* This provider doesn't prompt the user in order to get creds;
          it prompts the user regarding the caching of creds. */
@@ -516,7 +516,7 @@ svn_cmdline_create_auth_baton(svn_auth_b
   svn_auth_get_ssl_client_cert_file_provider(&provider, pool);
   APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
 
-  if (non_interactive == FALSE)
+  if (!non_interactive)
     {
       /* This provider doesn't prompt the user in order to get creds;
          it prompts the user regarding the caching of creds. */
@@ -531,7 +531,7 @@ svn_cmdline_create_auth_baton(svn_auth_b
     }
   APR_ARRAY_PUSH(providers, svn_auth_provider_object_t *) = provider;
 
-  if (non_interactive == FALSE)
+  if (!non_interactive)
     {
       svn_boolean_t ssl_client_cert_file_prompt;
 

Modified: subversion/branches/ev2-export/subversion/libsvn_subr/config.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_subr/config.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_subr/config.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_subr/config.c Sat Jan 12 20:24:12 2013
@@ -224,7 +224,7 @@ read_all(svn_config_t **cfgp,
     }
 
   if (! red_config)
-    *cfgp = NULL;
+    SVN_ERR(svn_config_create(cfgp, FALSE, pool));
 
   return SVN_NO_ERROR;
 }

Modified: subversion/branches/ev2-export/subversion/libsvn_subr/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_subr/deprecated.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_subr/deprecated.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_subr/deprecated.c Sat Jan 12 20:24:12 2013
@@ -364,7 +364,7 @@ print_command_info(const svn_opt_subcomm
         {
           if (cmd->valid_options[i])
             {
-              if (have_options == FALSE)
+              if (!have_options)
                 {
                   SVN_ERR(svn_cmdline_fputs(_("\nValid options:\n"),
                                             stream, pool));

Modified: subversion/branches/ev2-export/subversion/libsvn_subr/named_atomic.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_subr/named_atomic.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_subr/named_atomic.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_subr/named_atomic.c Sat Jan 12 20:24:12 2013
@@ -372,7 +372,7 @@ svn_named_atomic__is_supported(void)
         result = svn_tristate_false;
     }
 
-  return result == svn_tristate_true ? TRUE : FALSE;
+  return result == svn_tristate_true;
 #else
   return TRUE;
 #endif

Modified: subversion/branches/ev2-export/subversion/libsvn_subr/opt.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_subr/opt.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_subr/opt.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_subr/opt.c Sat Jan 12 20:24:12 2013
@@ -296,7 +296,7 @@ print_command_info2(const svn_opt_subcom
         {
           if (cmd->valid_options[i])
             {
-              if (have_options == FALSE)
+              if (!have_options)
                 {
                   SVN_ERR(svn_cmdline_fputs(_("\nValid options:\n"),
                                             stream, pool));

Modified: subversion/branches/ev2-export/subversion/libsvn_subr/stream.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_subr/stream.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_subr/stream.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_subr/stream.c Sat Jan 12 20:24:12 2013
@@ -173,7 +173,7 @@ svn_stream_reset(svn_stream_t *stream)
 svn_boolean_t
 svn_stream_supports_mark(svn_stream_t *stream)
 {
-  return stream->mark_fn == NULL ? FALSE : TRUE;
+  return stream->mark_fn != NULL;
 }
 
 svn_error_t *

Modified: subversion/branches/ev2-export/subversion/libsvn_subr/subst.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_subr/subst.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_subr/subst.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_subr/subst.c Sat Jan 12 20:24:12 2013
@@ -987,14 +987,14 @@ translate_chunk(svn_stream_t *dst,
               b->keyword_buf[b->keyword_off++] = *p++;
               keyword_matches = match_keyword(b->keyword_buf, b->keyword_off,
                                               keyword_name, b->keywords);
-              if (keyword_matches == FALSE)
+              if (!keyword_matches)
                 {
                   /* reuse the ending '$' */
                   p--;
                   b->keyword_off--;
                 }
 
-              if (keyword_matches == FALSE ||
+              if (!keyword_matches ||
                   translate_keyword(b->keyword_buf, &b->keyword_off,
                                     keyword_name, b->expand, b->keywords) ||
                   b->keyword_off >= SVN_KEYWORD_MAX_LEN)

Modified: subversion/branches/ev2-export/subversion/libsvn_subr/win32_crashrpt.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_subr/win32_crashrpt.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_subr/win32_crashrpt.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_subr/win32_crashrpt.c Sat Jan 12 20:24:12 2013
@@ -428,7 +428,7 @@ write_var_values(PSYMBOL_INFO sym_info, 
                    (void *)var_data);
       fprintf(log_file, "%s=%s", sym_info->Name, value_str);
     }
-  if (log_params == FALSE && sym_info->Flags & SYMFLAG_LOCAL)
+  if (!log_params && sym_info->Flags & SYMFLAG_LOCAL)
     {
       format_value(value_str, sym_info->ModBase, sym_info->TypeIndex,
                    (void *)var_data);
@@ -738,13 +738,13 @@ svn__unhandled_exception_filter(PEXCEPTI
     return EXCEPTION_CONTINUE_SEARCH;
 
   /* ... or if we can't create the log files ... */
-  if (get_temp_filename(dmp_filename, LOGFILE_PREFIX, "dmp") == FALSE ||
-      get_temp_filename(log_filename, LOGFILE_PREFIX, "log") == FALSE)
+  if (!get_temp_filename(dmp_filename, LOGFILE_PREFIX, "dmp") ||
+      !get_temp_filename(log_filename, LOGFILE_PREFIX, "log"))
     return EXCEPTION_CONTINUE_SEARCH;
 
   /* If we can't load a recent version of the dbghelp.dll, pass on this
      exception */
-  if (load_dbghelp_dll() == FALSE)
+  if (!load_dbghelp_dll())
     return EXCEPTION_CONTINUE_SEARCH;
 
   /* open log file */

Modified: subversion/branches/ev2-export/subversion/libsvn_wc/adm_crawler.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_wc/adm_crawler.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_wc/adm_crawler.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_wc/adm_crawler.c Sat Jan 12 20:24:12 2013
@@ -104,6 +104,7 @@ svn_wc_restore(svn_wc_context_t *wc_ctx,
   svn_wc__db_status_t status;
   svn_kind_t kind;
   svn_node_kind_t disk_kind;
+  const svn_checksum_t *checksum;
 
   SVN_ERR(svn_io_check_path(local_abspath, &disk_kind, scratch_pool));
 
@@ -113,27 +114,19 @@ svn_wc_restore(svn_wc_context_t *wc_ctx,
                              svn_dirent_local_style(local_abspath,
                                                     scratch_pool));
 
-
-
   SVN_ERR(svn_wc__db_read_info(&status, &kind, NULL, NULL, NULL, NULL, NULL,
-                               NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+                               NULL, NULL, NULL, &checksum, NULL, NULL, NULL, NULL,
                                NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                                NULL, NULL, NULL, NULL,
                                wc_ctx->db, local_abspath,
                                scratch_pool, scratch_pool));
 
-  if (status == svn_wc__db_status_added)
-    SVN_ERR(svn_wc__db_scan_addition(&status, NULL, NULL, NULL, NULL, NULL,
-                                     NULL, NULL, NULL, NULL, NULL,
-                                     wc_ctx->db, local_abspath,
-                                     scratch_pool, scratch_pool));
-
   if (status != svn_wc__db_status_normal
-      && status != svn_wc__db_status_copied
-      && status != svn_wc__db_status_moved_here
-      && !(kind == svn_kind_dir
-           && (status == svn_wc__db_status_added
-               || status == svn_wc__db_status_incomplete)))
+      && !((status == svn_wc__db_status_added 
+            || status == svn_wc__db_status_incomplete)
+           && (kind == svn_kind_dir
+               || (kind == svn_kind_file && checksum != NULL)
+               /* || (kind == svn_kind_symlink && target)*/)))
     {
       return svn_error_createf(SVN_ERR_WC_PATH_UNEXPECTED_STATUS, NULL,
                                _("The node '%s' can not be restored."),
@@ -278,7 +271,11 @@ report_revisions_and_depths(svn_wc__db_t
                   || SVN__APR_STATUS_IS_ENOTDIR(err->apr_err)))
         {
           svn_error_clear(err);
-          dirents = apr_hash_make(scratch_pool);
+          /* There is no directory, and if we could create the directory
+             we would have already created it when walking the parent
+             directory */
+          restore_files = FALSE;
+          dirents = NULL;
         }
       else
         SVN_ERR(err);

Modified: subversion/branches/ev2-export/subversion/libsvn_wc/cleanup.c
URL: http://svn.apache.org/viewvc/subversion/branches/ev2-export/subversion/libsvn_wc/cleanup.c?rev=1432504&r1=1432503&r2=1432504&view=diff
==============================================================================
--- subversion/branches/ev2-export/subversion/libsvn_wc/cleanup.c (original)
+++ subversion/branches/ev2-export/subversion/libsvn_wc/cleanup.c Sat Jan 12 20:24:12 2013
@@ -143,12 +143,17 @@ cleanup_internal(svn_wc__db_t *db,
 {
   int wc_format;
   svn_boolean_t is_wcroot;
+  const char *lock_abspath;
 
   /* Can we even work with this directory?  */
   SVN_ERR(can_be_cleaned(&wc_format, db, dir_abspath, scratch_pool));
 
-  /* ### This fails if ADM_ABSPATH is locked indirectly via a
-     ### recursive lock on an ancestor. */
+  /* We cannot obtain a lock on a directory that's within a locked
+     subtree, so always run cleanup from the lock owner. */
+  SVN_ERR(svn_wc__db_wclock_find_root(&lock_abspath, db, dir_abspath,
+                                      scratch_pool, scratch_pool));
+  if (lock_abspath)
+    dir_abspath = lock_abspath;
   SVN_ERR(svn_wc__db_wclock_obtain(db, dir_abspath, -1, TRUE, scratch_pool));
 
   /* Run our changes before the subdirectories. We may not have to recurse