You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by pb...@apache.org on 2012/10/06 20:31:33 UTC

svn commit: r1395146 [1/7] - in /subversion/branches/auto-props-sdc: ./ build/ build/ac-macros/ subversion/bindings/swig/ subversion/bindings/swig/include/ subversion/bindings/swig/perl/libsvn_swig_perl/ subversion/bindings/swig/perl/native/ subversion...

Author: pburba
Date: Sat Oct  6 18:31:28 2012
New Revision: 1395146

URL: http://svn.apache.org/viewvc?rev=1395146&view=rev
Log:
On the auto-props-sdc branch: Sync with
^/subversion/branches/inheritable-props through r1395088.


Added:
    subversion/branches/auto-props-sdc/subversion/include/private/svn_pseudo_md5.h
      - copied unchanged from r1395088, subversion/branches/inheritable-props/subversion/include/private/svn_pseudo_md5.h
    subversion/branches/auto-props-sdc/subversion/libsvn_subr/pseudo_md5.c
      - copied unchanged from r1395088, subversion/branches/inheritable-props/subversion/libsvn_subr/pseudo_md5.c
    subversion/branches/auto-props-sdc/tools/client-side/svn-bench/   (props changed)
      - copied from r1395088, subversion/branches/inheritable-props/tools/client-side/svn-bench/
    subversion/branches/auto-props-sdc/tools/server-side/svnpubsub/irkerbridge.py
      - copied unchanged from r1395088, subversion/branches/inheritable-props/tools/server-side/svnpubsub/irkerbridge.py
Modified:
    subversion/branches/auto-props-sdc/   (props changed)
    subversion/branches/auto-props-sdc/CHANGES
    subversion/branches/auto-props-sdc/COMMITTERS
    subversion/branches/auto-props-sdc/NOTICE
    subversion/branches/auto-props-sdc/build.conf
    subversion/branches/auto-props-sdc/build/ac-macros/berkeley-db.m4
    subversion/branches/auto-props-sdc/build/ac-macros/serf.m4
    subversion/branches/auto-props-sdc/build/run_tests.py
    subversion/branches/auto-props-sdc/subversion/bindings/swig/core.i
    subversion/branches/auto-props-sdc/subversion/bindings/swig/include/svn_containers.swg
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/   (props changed)
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Client.pm
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Core.pm
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Fs.pm
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Makefile.PL.in
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Repos.pm
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Wc.pm
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/0use.t
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/1repos.t
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/2fs.t
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/3client.t
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/4pool.t
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/5delta-compat.t
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/5delta.t
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/6ra.t
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/7editor.t
    subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/8lock.t
    subversion/branches/auto-props-sdc/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
    subversion/branches/auto-props-sdc/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h
    subversion/branches/auto-props-sdc/subversion/bindings/swig/python/tests/core.py
    subversion/branches/auto-props-sdc/subversion/bindings/swig/python/tests/pool.py
    subversion/branches/auto-props-sdc/subversion/bindings/swig/svn_wc.i
    subversion/branches/auto-props-sdc/subversion/include/private/svn_cache.h
    subversion/branches/auto-props-sdc/subversion/include/private/svn_client_private.h
    subversion/branches/auto-props-sdc/subversion/include/private/svn_dep_compat.h
    subversion/branches/auto-props-sdc/subversion/include/private/svn_fs_util.h
    subversion/branches/auto-props-sdc/subversion/include/private/svn_string_private.h
    subversion/branches/auto-props-sdc/subversion/include/private/svn_wc_private.h
    subversion/branches/auto-props-sdc/subversion/include/svn_client.h
    subversion/branches/auto-props-sdc/subversion/include/svn_dav.h
    subversion/branches/auto-props-sdc/subversion/include/svn_delta.h
    subversion/branches/auto-props-sdc/subversion/include/svn_error_codes.h
    subversion/branches/auto-props-sdc/subversion/include/svn_fs.h
    subversion/branches/auto-props-sdc/subversion/include/svn_props.h
    subversion/branches/auto-props-sdc/subversion/include/svn_ra.h
    subversion/branches/auto-props-sdc/subversion/include/svn_ra_svn.h
    subversion/branches/auto-props-sdc/subversion/include/svn_repos.h
    subversion/branches/auto-props-sdc/subversion/include/svn_wc.h
    subversion/branches/auto-props-sdc/subversion/libsvn_client/add.c
    subversion/branches/auto-props-sdc/subversion/libsvn_client/client.h
    subversion/branches/auto-props-sdc/subversion/libsvn_client/commit.c
    subversion/branches/auto-props-sdc/subversion/libsvn_client/copy.c
    subversion/branches/auto-props-sdc/subversion/libsvn_client/deprecated.c
    subversion/branches/auto-props-sdc/subversion/libsvn_client/merge.c
    subversion/branches/auto-props-sdc/subversion/libsvn_client/repos_diff.c
    subversion/branches/auto-props-sdc/subversion/libsvn_delta/svndiff.c
    subversion/branches/auto-props-sdc/subversion/libsvn_delta/text_delta.c
    subversion/branches/auto-props-sdc/subversion/libsvn_fs/fs-loader.c
    subversion/branches/auto-props-sdc/subversion/libsvn_fs/fs-loader.h
    subversion/branches/auto-props-sdc/subversion/libsvn_fs_base/tree.c
    subversion/branches/auto-props-sdc/subversion/libsvn_fs_fs/caching.c
    subversion/branches/auto-props-sdc/subversion/libsvn_fs_fs/dag.c
    subversion/branches/auto-props-sdc/subversion/libsvn_fs_fs/dag.h
    subversion/branches/auto-props-sdc/subversion/libsvn_fs_fs/fs.h
    subversion/branches/auto-props-sdc/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/auto-props-sdc/subversion/libsvn_fs_fs/fs_fs.h
    subversion/branches/auto-props-sdc/subversion/libsvn_fs_fs/tree.c
    subversion/branches/auto-props-sdc/subversion/libsvn_fs_fs/tree.h
    subversion/branches/auto-props-sdc/subversion/libsvn_fs_util/fs-util.c
    subversion/branches/auto-props-sdc/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/auto-props-sdc/subversion/libsvn_ra_serf/commit.c
    subversion/branches/auto-props-sdc/subversion/libsvn_ra_serf/options.c
    subversion/branches/auto-props-sdc/subversion/libsvn_ra_serf/update.c
    subversion/branches/auto-props-sdc/subversion/libsvn_ra_svn/client.c
    subversion/branches/auto-props-sdc/subversion/libsvn_ra_svn/editorp.c
    subversion/branches/auto-props-sdc/subversion/libsvn_ra_svn/marshal.c
    subversion/branches/auto-props-sdc/subversion/libsvn_ra_svn/ra_svn.h
    subversion/branches/auto-props-sdc/subversion/libsvn_repos/authz.c
    subversion/branches/auto-props-sdc/subversion/libsvn_repos/delta.c
    subversion/branches/auto-props-sdc/subversion/libsvn_repos/deprecated.c
    subversion/branches/auto-props-sdc/subversion/libsvn_repos/fs-wrap.c
    subversion/branches/auto-props-sdc/subversion/libsvn_repos/reporter.c
    subversion/branches/auto-props-sdc/subversion/libsvn_subr/cache-membuffer.c
    subversion/branches/auto-props-sdc/subversion/libsvn_subr/cache-memcache.c
    subversion/branches/auto-props-sdc/subversion/libsvn_subr/cache_config.c
    subversion/branches/auto-props-sdc/subversion/libsvn_subr/ssl_client_cert_pw_providers.c
    subversion/branches/auto-props-sdc/subversion/libsvn_subr/string.c
    subversion/branches/auto-props-sdc/subversion/libsvn_wc/conflicts.c
    subversion/branches/auto-props-sdc/subversion/libsvn_wc/copy.c
    subversion/branches/auto-props-sdc/subversion/libsvn_wc/deprecated.c
    subversion/branches/auto-props-sdc/subversion/libsvn_wc/lock.c
    subversion/branches/auto-props-sdc/subversion/libsvn_wc/update_editor.c
    subversion/branches/auto-props-sdc/subversion/libsvn_wc/wc_db.c
    subversion/branches/auto-props-sdc/subversion/libsvn_wc/wc_db_wcroot.c
    subversion/branches/auto-props-sdc/subversion/mod_dav_svn/dav_svn.h
    subversion/branches/auto-props-sdc/subversion/mod_dav_svn/mod_dav_svn.c
    subversion/branches/auto-props-sdc/subversion/mod_dav_svn/reports/update.c
    subversion/branches/auto-props-sdc/subversion/mod_dav_svn/repos.c
    subversion/branches/auto-props-sdc/subversion/mod_dav_svn/version.c
    subversion/branches/auto-props-sdc/subversion/svn/cl.h
    subversion/branches/auto-props-sdc/subversion/svn/conflict-callbacks.c
    subversion/branches/auto-props-sdc/subversion/svn/main.c
    subversion/branches/auto-props-sdc/subversion/svn/merge-cmd.c
    subversion/branches/auto-props-sdc/subversion/svn/mergeinfo-cmd.c
    subversion/branches/auto-props-sdc/subversion/svn/move-cmd.c
    subversion/branches/auto-props-sdc/subversion/svn/notify.c
    subversion/branches/auto-props-sdc/subversion/svn/resolve-cmd.c
    subversion/branches/auto-props-sdc/subversion/svn/switch-cmd.c
    subversion/branches/auto-props-sdc/subversion/svn/update-cmd.c
    subversion/branches/auto-props-sdc/subversion/svndumpfilter/main.c
    subversion/branches/auto-props-sdc/subversion/svnserve/main.c
    subversion/branches/auto-props-sdc/subversion/svnserve/serve.c
    subversion/branches/auto-props-sdc/subversion/svnserve/server.h
    subversion/branches/auto-props-sdc/subversion/tests/cmdline/merge_tree_conflict_tests.py
    subversion/branches/auto-props-sdc/subversion/tests/cmdline/mergeinfo_tests.py
    subversion/branches/auto-props-sdc/subversion/tests/cmdline/patch_tests.py
    subversion/branches/auto-props-sdc/subversion/tests/cmdline/resolve_tests.py
    subversion/branches/auto-props-sdc/subversion/tests/cmdline/schedule_tests.py
    subversion/branches/auto-props-sdc/subversion/tests/cmdline/stat_tests.py
    subversion/branches/auto-props-sdc/subversion/tests/cmdline/svndumpfilter_tests.py
    subversion/branches/auto-props-sdc/subversion/tests/cmdline/svnlook_tests.py
    subversion/branches/auto-props-sdc/subversion/tests/cmdline/svntest/actions.py
    subversion/branches/auto-props-sdc/subversion/tests/cmdline/tree_conflict_tests.py
    subversion/branches/auto-props-sdc/subversion/tests/libsvn_fs/fs-test.c
    subversion/branches/auto-props-sdc/subversion/tests/libsvn_repos/repos-test.c
    subversion/branches/auto-props-sdc/subversion/tests/libsvn_subr/cache-test.c
    subversion/branches/auto-props-sdc/subversion/tests/libsvn_subr/checksum-test.c
    subversion/branches/auto-props-sdc/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/auto-props-sdc/subversion/tests/libsvn_wc/wc-queries-test.c
    subversion/branches/auto-props-sdc/tools/buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd
    subversion/branches/auto-props-sdc/tools/buildbot/slaves/win32-SharpSvn/svntest-build-bindings.cmd
    subversion/branches/auto-props-sdc/tools/buildbot/slaves/win32-SharpSvn/svntest-build.cmd
    subversion/branches/auto-props-sdc/tools/dist/backport.pl
    subversion/branches/auto-props-sdc/tools/dist/make-deps-tarball.sh   (props changed)
    subversion/branches/auto-props-sdc/tools/dist/nightly.sh
    subversion/branches/auto-props-sdc/tools/server-side/fsfs-reorg.c
    subversion/branches/auto-props-sdc/tools/server-side/svnpubsub/commit-hook.py
    subversion/branches/auto-props-sdc/tools/server-side/svnpubsub/svnpubsub/client.py
    subversion/branches/auto-props-sdc/tools/server-side/svnpubsub/svnpubsub/server.py

Propchange: subversion/branches/auto-props-sdc/
------------------------------------------------------------------------------
  Merged /subversion/branches/inheritable-props:r1389502-1395088
  Merged /subversion/trunk:r1389357-1395084
  Merged /subversion/branches/10Gb:r1388102,1388163-1388190,1388195,1388202,1388205,1388211,1388276,1388362,1388375,1388394,1388636,1388639-1388640,1388643-1388644,1388654,1388720,1388789,1388795,1388801,1388805,1388807,1388810,1388816,1389044,1389276,1389289,1389662,1389867,1390017,1390209,1390216,1390407,1390409,1390414,1390419,1390955

Modified: subversion/branches/auto-props-sdc/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/CHANGES?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/CHANGES (original)
+++ subversion/branches/auto-props-sdc/CHANGES Sat Oct  6 18:31:28 2012
@@ -25,11 +25,14 @@ http://svn.apache.org/repos/asf/subversi
     * 'svn diff' can compare arbitrary files and directories (r1310291, et al)
     * ra_serf avoids re-downloading content present in pristine store (r1333936)
     * 'svn mergeinfo' now honors the --revision (-r) option (issue #4199)
+    * 'svn mergeinfo' now shows a summary graph by default (issue #4239)
     * new --search and --search-and options for 'svn log' (r1354666, -83518)
     * new built-in interactive text conflict merge tool (r1357864, et al)
     * new 'svn --version --verbose' option shows runtime environment info
     * new 'svnadmin freeze' subcommand (r1376228)
     * 'svndumpfilter' now supports --delta dumpfiles (r1351009, -3745)
+    * client version info now reported to commit hooks (issue #4124)
+    * 'svn merge' now uses reintegrate mode automatically when needed
 
   - Client-side bugfixes:
     *
@@ -51,6 +54,45 @@ http://svn.apache.org/repos/asf/subversi
     * star-imports in swig-py only import 'svn_*' symbols (r1303375)
 
 
+Version 1.7.7
+(09 Oct 2012, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.7
+ User-visible changes
+  - Client- and server-side bugfixes:
+    * fix memory read bug (r137614)
+    * update Chinese translation
+
+  - Client-side bugfixes:
+    * fix issues with applying Git patch files (r1374800, et al)
+    * fix status does not descend into dir externals after upgrade (issue #4016)
+    * fix file externals don't update with old mod_dav_svn (issue #4224)
+    * fix external diff tool duplicates Index: lines with 'svn diff' (r1380697)
+    * fix GNOME keyring library fails with very old glib (r1378847)
+    * fix unknown password stores in config file cause error (r1375052)
+    * fix assertions in ra_serf running against server root (r1365519, et al)
+    * fix ra_serf checkout/export aborts early on Windows (issue #4174)
+ 
+  - Server-side bugfixes:
+    * fix an assert with SVNAutoVersioning in mod_dav_svn (issue #4231)
+    * fix unbounded memory use with SVNPathAuthz short_circuit (r1387943)
+    * fix svndumpfilter exclude --targets requires leading slash (issue #4234)
+    * fix connection ttl for memcache should be 50 seconds (r1391641)
+    * stabilize order of paths in dumpfiles with APR 1.4.6 (r1344864, et al)
+
+ Developer-visible changes:
+  - General:
+    * print "All tests successful" at the end of 'make check' (r1375089)
+    * fix sandbox violation in a test (r1371282)
+    * fix tests fail when running within a format 30 WC (r1391188, et al)
+    * fix return value of svn_client_update4() incorrect (r1380295)
+    * fix make check summary missing test failures (r1390965)
+    * fix build does not fail when apache httpd is not available (r1374198)
+
+  - Bindings:
+    * fix swig-pl build fails with swig 2.0.7 and newer. (r1389658)
+    * fix swig-py runtime problems with swig 2.0.5 and newer (r1351117)
+
+
 Version 1.7.6
 (15 Aug 2012, from /branches/1.7.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.7.6

Modified: subversion/branches/auto-props-sdc/COMMITTERS
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/COMMITTERS?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/COMMITTERS [UTF-8] (original)
+++ subversion/branches/auto-props-sdc/COMMITTERS [UTF-8] Sat Oct  6 18:31:28 2012
@@ -55,7 +55,7 @@ Blanket commit access:
      jwhitlock   Jeremy Whitlock <jc...@gmail.com>
        sbutler   Stephen Butler <sb...@elego.de>
         dannas   Daniel Näslund <da...@dannas.name>
-       stefan2   Stefan Fuhrmann <st...@alice-dsl.de>
+       stefan2   Stefan Fuhrmann <st...@wandisco.com>
        jcorvel   Johan Corveleyn <jc...@gmail.com>
          trent   Trent Nelson <tr...@snakebite.org>
 
@@ -82,6 +82,7 @@ Partial committers who have asked to be 
            kon   Kalle Olavi Niemitalo <ko...@iki.fi>          (psvn.el)
       rassilon   Bill Tutt <bi...@tutts.org> (Win32, COM, issue-1003-dev br.)
            pll   Paul lussier <p....@comcast.net>        (releases)
+        rdonch   Роман Донченко <dp...@corrigendum.ru>         (Swig-Python b.)
 
 
 Commit access for specific areas:
@@ -94,7 +95,6 @@ Commit access for specific areas:
     joeswatosh   Joe Swatosh <jo...@gmail.com>         (Swig-Ruby b.)
     jrvernooij   Jelmer Vernooij <je...@samba.org>          (Python bindings)
           sage   Sage LaTorra <sa...@gmail.com>             (Ctypes-Python b.)
-        rdonch   Роман Донченко <dp...@corrigendum.ru>         (Swig-Python b.)
           vmpn   Vladimir Berezniker <vm...@hitechman.com>    (JavaHL bindings)
 
   Packages:

Modified: subversion/branches/auto-props-sdc/NOTICE
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/NOTICE?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/NOTICE (original)
+++ subversion/branches/auto-props-sdc/NOTICE Sat Oct  6 18:31:28 2012
@@ -16,3 +16,8 @@ see: build/install-sh
 This product includes software developed by Markus Kuhn under a permissive
 license, see LICENSE.
 
+This software contains code derived from the RSA Data Security
+Inc. MD5 Message-Digest Algorithm, including various
+modifications by Spyglass Inc., Carnegie Mellon University, and
+Bell Communications Research, Inc (Bellcore).
+

Modified: subversion/branches/auto-props-sdc/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/build.conf?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/build.conf (original)
+++ subversion/branches/auto-props-sdc/build.conf Sat Oct  6 18:31:28 2012
@@ -1180,7 +1180,7 @@ libs = __ALL__
        ra-local-test
        svndiff-test vdelta-test
        entries-dump atomic-ra-revprop-change wc-lock-tester wc-incomplete-tester
-       diff diff3 diff4 fsfs-reorg
+       diff diff3 diff4 fsfs-reorg svn-bench
        client-test
        conflict-data-test db-test pristine-store-test entries-compat-test
        op-depth-test dirent_uri-test wc-queries-test
@@ -1257,6 +1257,13 @@ sources = diff4.c
 install = tools
 libs = libsvn_diff libsvn_subr apriconv apr
 
+[svn-bench]
+type = exe
+path = tools/client-side/svn-bench
+install = tools
+libs = libsvn_client libsvn_wc libsvn_ra libsvn_subr libsvn_delta
+       apriconv apr
+
 [svnauthz-validate]
 description = Authz config file validator
 type = exe

Modified: subversion/branches/auto-props-sdc/build/ac-macros/berkeley-db.m4
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/build/ac-macros/berkeley-db.m4?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/build/ac-macros/berkeley-db.m4 (original)
+++ subversion/branches/auto-props-sdc/build/ac-macros/berkeley-db.m4 Sat Oct  6 18:31:28 2012
@@ -175,13 +175,24 @@ AC_DEFUN(SVN_LIB_BERKELEY_DB_TRY,
     svn_check_berkeley_db_minor=$2
     svn_check_berkeley_db_patch=$3
 
-    # Extract only the -ldb.* flag from the libs supplied by apu-config
-    # Otherwise we get bit by the fact that expat might not be built yet
-    # Or that it resides in a non-standard location which we would have
-    # to compensate with using something like -R`$apu_config --prefix`/lib.
-    #
-    if test -z "$SVN_DB_LIBS"; then
-      SVN_DB_LIBS=["`$apu_config --libs | $SED -e 's/.*\(-ldb[^[:space:]]*\).*/\1/' | $EGREP -- '-ldb[^[:space:]]*'`"]
+   if test -z "$SVN_DB_LIBS"; then
+      # We pass --dbm-libs here since Debian has modified apu-config not
+      # to return -ldb unless --dbm-libs is passed.  This may also produce
+      # extra output beyond -ldb but since we're only filtering for -ldb
+      # it won't matter to us.  However, --dbm-libs was added to apu-config
+      # in 1.3.8 so it's possible the version we have doesn't support it
+      # so fallback without it if we get an error.
+      svn_db_libs_prefiltered=["`$apu_config --libs --dbm-libs`"]
+      if test $? -ne 0; then
+        svn_db_libs_prefiltered=["`$apu_config --libs`"]
+      fi
+
+      # Extract only the -ldb.* flag from the libs supplied by apu-config
+      # Otherwise we get bit by the fact that expat might not be built yet
+      # Or that it resides in a non-standard location which we would have
+      # to compensate with using something like -R`$apu_config --prefix`/lib.
+      #
+      SVN_DB_LIBS=["`echo \"$svn_db_libs_prefiltered\" | $SED -e 's/.*\(-ldb[^[:space:]]*\).*/\1/' | $EGREP -- '-ldb[^[:space:]]*'`"]
     fi
 
     CPPFLAGS="$SVN_DB_INCLUDES $SVN_APRUTIL_INCLUDES $CPPFLAGS" 

Modified: subversion/branches/auto-props-sdc/build/ac-macros/serf.m4
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/build/ac-macros/serf.m4?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/build/ac-macros/serf.m4 (original)
+++ subversion/branches/auto-props-sdc/build/ac-macros/serf.m4 Sat Oct  6 18:31:28 2012
@@ -19,50 +19,101 @@ dnl ====================================
 dnl
 dnl  SVN_LIB_SERF(min_major_num, min_minor_num, min_micro_num)
 dnl
-dnl  Check configure options and assign variables related to
-dnl  the serf library.
+dnl  Search for a suitable version of serf. min_major_num,
+dnl  min_minor_num, and min_micro_num are used to determine
+dnl  if the serf library is at least that version.
+dnl
+dnl  If a --with-serf option (no argument) or --with-serf=yes
+dnl  option is passed, then a search for serf on the system will be
+dnl  performed with pkg-config.  If --with-serf=yes was actually passed
+dnl  then we error if we can't actually find serf.
+dnl
+dnl  If a --with-serf=PREFIX option is passed search for a suitable
+dnl  serf installed on the system under that PREFIX.  We will
+dnl  error if we can't find serf.
+dnl
+dnl  If a --with-serf=no option is passed then no search will be
+dnl  conducted.
+dnl
+dnl  If the search for serf fails, set svn_lib_serf to no, otherwise set
+dnl  it to yes.
 dnl
 
 AC_DEFUN(SVN_LIB_SERF,
 [
   serf_found=no
+  serf_required=no
+  serf_skip=no
 
   serf_check_major="$1"
   serf_check_minor="$2"
   serf_check_patch="$3"
+  serf_check_version="$1.$2.$3"
 
   AC_ARG_WITH(serf,AS_HELP_STRING([--with-serf=PREFIX],
-                                  [Serf HTTP client library]),
+                                  [Serf HTTP client library (enabled by default if found)]),
   [
     if test "$withval" = "yes" ; then
-      AC_MSG_ERROR([--with-serf requires an argument.])
-    elif test "$withval" != "no" ; then
-      AC_MSG_NOTICE([serf library configuration])
-      serf_prefix=$withval
-      for serf_major in serf-2 serf-1; do
-        if ! test -d $serf_prefix/include/$serf_major; then continue; fi
-        save_cppflags="$CPPFLAGS"
-        CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES $SVN_APRUTIL_INCLUDES -I$serf_prefix/include/$serf_major"
-        AC_CHECK_HEADERS(serf.h,[
-          save_ldflags="$LDFLAGS"
-          LDFLAGS="$LDFLAGS -L$serf_prefix/lib"
-          AC_CHECK_LIB($serf_major, serf_context_create,[
-            AC_TRY_COMPILE([
+      serf_required=yes 
+    elif test "$withval" = "no" ; then
+      serf_skip=yes 
+    else
+      SVN_SERF_PREFIX_CONFIG()
+    fi
+  ])
+
+  if test "$serf_skip" = "no" ; then
+    if test "$serf_found" = "no" ; then
+      SVN_SERF_PKG_CONFIG()
+    fi
+  
+    AC_MSG_CHECKING([was serf enabled])
+    if test "$serf_found" = "yes"; then
+      AC_MSG_RESULT([yes])
+    else 
+      AC_MSG_RESULT([no]) 
+      SVN_DOWNLOAD_SERF() 
+      if test "$serf_required" = "yes"; then
+        AC_MSG_ERROR([Serf was explicitly enabled but an appropriate version was not found.])
+      fi
+    fi
+  fi
+
+  svn_lib_serf=$serf_found
+
+  AC_SUBST(SVN_SERF_INCLUDES)
+  AC_SUBST(SVN_SERF_LIBS)
+])
+
+dnl SVN_SERF_PREFIX_CONFIG()
+dnl Use user provided prefix to try and detect and configure serf
+AC_DEFUN(SVN_SERF_PREFIX_CONFIG,
+[
+  AC_MSG_NOTICE([serf library configuration via prefix])
+  serf_required=yes
+  serf_prefix=$withval
+  for serf_major in serf-2 serf-1; do
+    if ! test -d $serf_prefix/include/$serf_major; then continue; fi
+    save_cppflags="$CPPFLAGS"
+    CPPFLAGS="$CPPFLAGS $SVN_APR_INCLUDES $SVN_APRUTIL_INCLUDES -I$serf_prefix/include/$serf_major"
+    AC_CHECK_HEADERS(serf.h,[
+      save_ldflags="$LDFLAGS"
+      LDFLAGS="$LDFLAGS -L$serf_prefix/lib"
+      AC_CHECK_LIB($serf_major, serf_context_create,[
+        AC_TRY_COMPILE([
 #include <stdlib.h>
 #include "serf.h"
 ],[
 #if ! SERF_VERSION_AT_LEAST($serf_check_major, $serf_check_minor, $serf_check_patch)
-#error Serf version too old: need $serf_check_major.$serf_check_minor.$serf_check_patch
+#error Serf version too old: need $serf_check_version
 #endif
-], [serf_found=yes], [AC_MSG_WARN([Serf version too old: need $serf_check_major.$serf_check_minor.$serf_check_patch])
-          serf_found=no])], ,
-            $SVN_APRUTIL_LIBS $SVN_APR_LIBS -lz)
-          LDFLAGS="$save_ldflags"])
-        CPPFLAGS="$save_cppflags"
-        test $serf_found = yes && break
-      done
-    fi
-  ])
+], [serf_found=yes], [AC_MSG_WARN([Serf version too old: need $serf_check_version])
+      serf_found=no])], ,
+    $SVN_APRUTIL_LIBS $SVN_APR_LIBS -lz)
+    LDFLAGS="$save_ldflags"])
+    CPPFLAGS="$save_cppflags"
+    test $serf_found = yes && break
+  done
 
   if test $serf_found = "yes"; then
     SVN_SERF_INCLUDES="-I$serf_prefix/include/$serf_major"
@@ -73,9 +124,45 @@ AC_DEFUN(SVN_LIB_SERF,
       LDFLAGS="$LDFLAGS -L$serf_prefix/lib"
     fi
   fi
+])
 
-  svn_lib_serf=$serf_found
+dnl SVN_SERF_PKG_CONFIG()
+dnl Use pkg-config to try and detect and configure serf
+AC_DEFUN(SVN_SERF_PKG_CONFIG,
+[
+  AC_MSG_NOTICE([serf library configuration via pkg-config])
+  if test -n "$PKG_CONFIG"; then
+    for serf_major in serf-2 serf-1; do
+      AC_MSG_CHECKING([for $serf_major library])
+      if $PKG_CONFIG $serf_major --exists; then
+        AC_MSG_RESULT([yes])
+        AC_MSG_CHECKING([serf library version])
+        SERF_VERSION=`$PKG_CONFIG $serf_major --modversion`
+        AC_MSG_RESULT([$SERF_VERSION])
+        AC_MSG_CHECKING([serf version is suitable])
+        if $PKG_CONFIG $serf_major --atleast-version=$serf_check_version; then
+          AC_MSG_RESULT([yes])
+          serf_found=yes
+          SVN_SERF_INCLUDES=[`$PKG_CONFIG $serf_major --cflags | $SED -e 's/-D[^ ]*//g'`]
+          SVN_SERF_LIBS=`$PKG_CONFIG $serf_major --libs` 
+        else
+          AC_MSG_RESULT([no])
+          AC_MSG_WARN([Serf version too old: need $serf_check_version])
+        fi        
+      else
+        AC_MSG_RESULT([no])
+      fi
+    done 
+  fi
+])
 
-  AC_SUBST(SVN_SERF_INCLUDES)
-  AC_SUBST(SVN_SERF_LIBS)
+dnl SVN_DOWNLOAD_SERF()
+dnl no serf found, print out a message telling the user what to do
+AC_DEFUN(SVN_DOWNLOAD_SERF,
+[
+  echo ""
+  echo "An appropriate version of serf could not be found, so libsvn_ra_serf"
+  echo "will not be built.  If you want to build libsvn_ra_serf, please"
+  echo "install serf $serf_check_version or newer."
+  echo ""
 ])

Modified: subversion/branches/auto-props-sdc/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/build/run_tests.py?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/build/run_tests.py (original)
+++ subversion/branches/auto-props-sdc/build/run_tests.py Sat Oct  6 18:31:28 2012
@@ -318,7 +318,7 @@ class TestHarness:
             % self.faillogfile)
 
     # Summary.
-    if xpassed or failed_list:
+    if failed or xpassed or failed_list:
       print("SUMMARY: Some tests failed.\n")
     else:
       print("SUMMARY: All tests successful.\n")

Modified: subversion/branches/auto-props-sdc/subversion/bindings/swig/core.i
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/subversion/bindings/swig/core.i?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/subversion/bindings/swig/core.i (original)
+++ subversion/branches/auto-props-sdc/subversion/bindings/swig/core.i Sat Oct  6 18:31:28 2012
@@ -658,14 +658,14 @@ svn_swig_pl_set_current_pool (apr_pool_t
                   )
 #endif
 
-#ifdef SWIGRUBY
+#ifndef SWIGPERL
 %callback_typemap(svn_config_enumerator2_t callback, void *baton,
-                  ,
+                  svn_swig_py_config_enumerator2,
                   ,
                   svn_swig_rb_config_enumerator)
 
 %callback_typemap(svn_config_section_enumerator2_t callback, void *baton,
-                  ,
+                  svn_swig_py_config_section_enumerator2,
                   ,
                   svn_swig_rb_config_section_enumerator)
 #endif

Modified: subversion/branches/auto-props-sdc/subversion/bindings/swig/include/svn_containers.swg
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/subversion/bindings/swig/include/svn_containers.swg?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/subversion/bindings/swig/include/svn_containers.swg (original)
+++ subversion/branches/auto-props-sdc/subversion/bindings/swig/include/svn_containers.swg Sat Oct  6 18:31:28 2012
@@ -507,7 +507,11 @@
   }
 }
 #endif
-
+#ifdef SWIGPERL
+%typemap(argout) apr_array_header_t **result_revs {
+  %append_output(svn_swig_pl_revnums_to_list(*$1));
+}
+#endif
 #ifdef SWIGRUBY
 %typemap(argout) apr_array_header_t **result_revs {
   %append_output(svn_swig_rb_apr_array_to_array_svn_rev(*$1));

Modified: subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (original)
+++ subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c Sat Oct  6 18:31:28 2012
@@ -229,6 +229,12 @@ static SV *convert_int(int value, void *
   return sv_2mortal(newSViv(value));
 }
 
+static SV *convert_svn_revnum_t(svn_revnum_t revnum, void *dummy)
+{
+  return sv_2mortal(newSViv((long int)revnum));
+
+}
+
 /* c -> perl hash convertors */
 static SV *convert_hash(apr_hash_t *hash, element_converter_t converter_func,
                         void *ctx)
@@ -301,6 +307,12 @@ SV *svn_swig_pl_convert_array(const apr_
                        tinfo);
 }
 
+SV *svn_swig_pl_revnums_to_list(const apr_array_header_t *array)
+{
+    return convert_array(array, (element_converter_t)convert_svn_revnum_t,
+                         NULL);
+} 
+
 /* put the va_arg in stack and invoke caller_func with func.
    fmt:
    * O: perl object
@@ -1288,6 +1300,54 @@ void svn_swig_pl_status_func(void *baton
 
 }
 
+/* Thunked version of svn_wc_status_func2_t callback type. */
+void svn_swig_pl_status_func2(void *baton,
+                              const char *path,
+                              svn_wc_status2_t *status)
+{
+  swig_type_info *statusinfo = _SWIG_TYPE("svn_wc_status2 _t *");
+
+  if (!SvOK((SV *)baton)) {
+    return;
+  }
+
+  svn_swig_pl_callback_thunk(CALL_SV, baton, NULL, "sS",
+                             path, status, statusinfo);
+
+}
+
+/* Thunked version of svn_wc_status_func3_t callback type. */
+svn_error_t *svn_swig_pl_status_func3(void *baton,
+                                      const char *path,
+                                      svn_wc_status2_t *status,
+                                      apr_pool_t *pool)
+{
+  SV *result;
+  svn_error_t *ret_val = SVN_NO_ERROR;
+
+  swig_type_info *statusinfo = _SWIG_TYPE("svn_wc_status2 _t *");
+
+  if (!SvOK((SV *)baton)) {
+    return ret_val;
+  }
+
+  svn_swig_pl_callback_thunk(CALL_SV, baton, &result, "sSS",
+                             path, status, statusinfo,
+                             pool, POOLINFO);
+
+  if (sv_derived_from(result, "_p_svn_error_t")) {
+    swig_type_info *errorinfo = _SWIG_TYPE("svn_error_t *");
+    if (SWIG_ConvertPtr(result, (void *)&ret_val, errorinfo, 0) < 0) {
+        SvREFCNT_dec(result);
+        croak("Unable to convert from SWIG Type");
+    }
+  }
+
+  SvREFCNT_dec(result);
+  return ret_val;
+}
+
+
 /* Thunked version of svn_client_blame_receiver_t callback type. */
 svn_error_t *svn_swig_pl_blame_func(void *baton,
                                     apr_int64_t line_no,

Modified: subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h (original)
+++ subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h Sat Oct  6 18:31:28 2012
@@ -104,6 +104,8 @@ SV *svn_swig_pl_ints_to_list(const apr_a
 SV *svn_swig_pl_convert_array(const apr_array_header_t *array,
                               swig_type_info *tinfo);
 
+SV *svn_swig_pl_revnums_to_list(const apr_array_header_t *array);
+
 /* thunked log receiver function.  */
 svn_error_t * svn_swig_pl_thunk_log_receiver(void *py_receiver,
                                              apr_hash_t *changed_paths,
@@ -229,6 +231,18 @@ svn_error_t *svn_swig_pl_cancel_func(voi
 void svn_swig_pl_status_func(void *baton,
                              const char *path,
                              svn_wc_status_t *status);
+
+/* Thunked version of svn_wc_status_func2_t callback type. */
+void svn_swig_pl_status_func2(void *baton,
+                              const char *path,
+                              svn_wc_status2_t *status);
+
+/* Thunked version of svn_wc_status_func2_t callback type. */
+svn_error_t *svn_swig_pl_status_func3(void *baton,
+                                      const char *path,
+                                      svn_wc_status2_t *status,
+                                      apr_pool_t *pool);
+
 /* Thunked version of svn_client_blame_receiver_t callback type. */
 svn_error_t *svn_swig_pl_blame_func(void *baton,
                                     apr_int64_t line_no,

Propchange: subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Sat Oct  6 18:31:28 2012
@@ -1,31 +1,32 @@
-ra_plugin.hi
-svn_fs.c
-_Client.bs
-ra_reporter.hi
-Makefile.wc
+MYMETA.yml
+Makefile
+Makefile.PL
 Makefile.client
+Makefile.delta
+Makefile.fs
+Makefile.old
+Makefile.ra
+Makefile.repos
+Makefile.wc
+_Client.bs
 _Core.bs
-_Repos.bs
-svn_repos.c
-svn_delta.c
-_Ra.bs
-modules
-core.c
+_Delta.bs
 _Fs.bs
+_Ra.bs
+_Repos.bs
 _Wc.bs
-Makefile
-Makefile.ra
-svn_wc.c
-Makefile.fs
-svn_client.c
-_Delta.bs
-delta_editor.hi
-Makefile.repos
-Makefile.delta
-pm_to_blib
 blib
-svn_ra.c
-Makefile.old
 blibdirs
-Makefile.PL
+core.c
+delta_editor.hi
+modules
+pm_to_blib
+ra_plugin.hi
+ra_reporter.hi
+svn_client.c
+svn_delta.c
 svn_diff.c
+svn_fs.c
+svn_ra.c
+svn_repos.c
+svn_wc.c

Modified: subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Client.pm
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Client.pm?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Client.pm (original)
+++ subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Client.pm Sat Oct  6 18:31:28 2012
@@ -9,10 +9,10 @@ my @_all_fns;
 BEGIN {
     @_all_fns =
         qw( version diff_summarize_dup create_context checkout3
-            checkout2 checkout update3 update2 update switch2 switch
+            checkout2 checkout update4 update3 update2 update switch2 switch
             add4 add3 add2 add mkdir3 mkdir2 mkdir delete3 delete2
             delete import3 import2 import commit4 commit3 commit2
-            commit status3 status2 status log4 log3 log2 log blame4
+            commit status4 status3 status2 status log4 log3 log2 log blame4
             blame3 blame2 blame diff4 diff3 diff2 diff diff_peg4
             diff_peg3 diff_peg2 diff_peg diff_summarize2
             diff_summarize diff_summarize_peg2 diff_summarize_peg
@@ -254,14 +254,50 @@ sub new
 
 =item $ctx-E<gt>add($path, $recursive, $pool);
 
+Similar to $ctx-E<gt>add2(), but with $force always set to FALSE.
+
+=item $ctx-E<gt>add2($path, $recursive, $force, $ctx, $pool);
+
+Similar to $ctx-E<gt>add3(), but with $no_ignore always set to FALSE.
+
+=item $ctx-E<gt>add3($path, $recursive, $force, $no_ignore, $pool);
+
+Similar to $ctx-E<gt>add4(), but with $add_parents always set to FALSE and
+$depth set according to $recursive; if TRUE, then depth is
+$SVN::Depth::infinity, if FALSE, then $SVN::Depth::empty.
+
+=item $ctx-E<gt>add4($path, $depth, $force, $no_ignore, $add_parents, $pool);
+
 Schedule a working copy $path for addition to the repository.
 
-$path's parent must be under revision control already, but $path is not.
-If $recursive is set, then assuming $path is a directory, all of its
-contents will be scheduled for addition as well.
+If $depth is $SVN::Depth::empty, add just $path and nothing below it.  If
+$SVN::Depth::files, add $path and any file children of $path.  If 
+$SVN::Depth::immediates, add $path, any file children, and any immediate
+subdirectories (but nothing underneath those subdirectories).  If 
+$SVN::Depth::infinity, add $path and everything under it fully recursively.
+
+$path's parent must be under revision control already (unless $add_parents is
+TRUE), but $path is not.
+
+Unless $force is TRUE and $path is already under version control, returns an
+$SVN::Error::ENTRY_EXISTS object.  If $force is set, do not error on
+already-versioned items.  When used with $depth set to $SVN::Depth::infinity
+it will enter versioned directories; scheduling unversioned children. 
 
 Calls the notify callback for each added item.
 
+If $no_ignore is FALSE, don't add any file or directory (or recurse into any
+directory) that is unversioned and found by recursion (as opposed to being the
+explicit target $path) and whose name matches the svn:ignore property on its
+parent directory or the global-ignores list in $ctx->config.  If $no_ignore is
+TRUE, do include such files and directories.  (Note that an svn:ignore property
+can influence this behaviour only when recursing into an already versioned
+directory with $force).
+
+If $add_parents is TRUE, recurse up $path's directory and look for a versioned
+directory.  If found, add all intermediate paths between it and $path.  If not
+found return $SVN::Error::NO_VERSIONED_PARENT.
+
 Important: this is a B<scheduling> operation.  No changes will happen
 to the repository until a commit occurs.  This scheduling can be
 removed with $ctx-E<gt>revert().
@@ -299,12 +335,39 @@ because the desired revision can not be 
 
 =item $ctx-E<gt>checkout($url, $path, $revision, $recursive, $pool);
 
+Similar to $ctx-E<gt>checkout2(), but with $peg_revision always set to undef (unspecified) and $ignore_externals always set to FALSE.
+
+=item $ctx-E<gt>checkout2($url, $path, $peg_revision, $revision, $recursive, $ignore_externals, $pool);
+
+Similar to $ctx-E<gt>checkout3(), but with $allow_unver_obstructions always set
+to FALSE, and $depth set according to $recurse: if $recurse is TRUE, $depth is
+$SVN::Depth::infinity, if $recurse is FALSE, set $depth to $SVN::Depth::files.
+
+=item $ctx-E<gt>checkout3($url, $path, $preg_revision, $revision, $depth, $ignore_externals, $allow_unver_obstructions, $pool);
+
 Checkout a working copy of $url at $revision using $path as the root directory
 of the newly checked out working copy.
 
+The $peg_revision sets the revision at which the path in the $url is treated as representing.
+
 $revision must be a number, 'HEAD', or a date.  If $revision does not
 meet these requirements the $SVN::Error::CLIENT_BAD_REVISION is raised.
 
+$depth is one of the constants in SVN::Depth and specifies the depth of the
+operation.  If set to $SVN::Depth::unknown, then behave as if for
+$SVN::Depth::infinity, except in the case of resuming a previous checkout of
+$path (i.e. updating) in which case use the depth of the existing working copy.
+
+$ignore_exteranls if set to TRUE the operation will ignore external definitions.
+
+$allow_unver_obstructions if set to TRUE the operation will tolerate existing
+unversioned items that obstruct incoming paths.  Only obstructions of the same
+type (file or dir) as the added item are tolerated.  The text of obstructing
+files is left as-is, effectively treating it as a user modification after the
+checkout.  Working properties of obstructing items are set equal to the base
+properties.  If set to FALSE, then abort if there are any unversioned
+obstructing items.
+
 Returns the value of the revision actually checked out of the repository.
 
 =item $ctx-E<gt>cleanup($dir, $pool);
@@ -732,8 +795,20 @@ in the repository, this feature will fai
 
 =item $ctx-E<gt>status($path, $revision, \&status_func, $recursive, $get_all, $update, $no_ignore, $pool);
 
+Similar to $ctx-E<gt>status2(), but with ignore_externals always set to FALSE, and with the status_func receiving a svn_wc_status2_t instead of a svn_wc_status_t object.
+
+=item $ctx-E<gt>status2($path, $revision, \&status_func, $recursive, $get_all, $update, $no_ignore, $ignore_externals, $pool);
+
+Similar to $ctx-E<gt>status3(), but with the changelists passed as undef, and with recursive instead of depth.
+
+=item $ctx-E<gt>status3($path, $revision, \&status_func, $depth, $get_all, $update, $no_ignore, $ignore_externals, $changelists, $pool);
+
+Similar to $ctx-E<gt>status4(), without the pool parameter to the callback and the return of the callback is ignored. 
+
+=item $ctx-E<gt>status4($path, $revision, \&status_func, $depth, $get_all, $update, $no_ignore, $ignore_externals, $changelists, $pool);
+
 Given $path to a working copy directory (or single file), call status_func()
-with a set of svn_wc_status_t objects which describe the status of $path and
+with a set of svn_wc_status2_t objects which describe the status of $path and
 its children.
 
 If $recursive is true, recurse fully, else do only immediate children.
@@ -746,19 +821,23 @@ information about out-of-dateness (with 
 return the value of the actual revision against with the working copy was
 compared.  (The return will be undef if $update is not set).
 
-The function recurses into externals definitions ('svn:externals') after
-handling the main target, if any exist.  The function calls the notify callback
-with $SVN::Wc::Notify::Action::status_external action before handling each
-externals definition, and with $SVN::Wc::Notify::Action::status_completed
-after each.
+Unless ignore_externals is set, the function recurses into externals definitions
+('svn:externals') after handling the main target, if any exist.  The function
+calls the notify callback with $SVN::Wc::Notify::Action::status_external action
+before handling each externals definition, and with 
+$SVN::Wc::Notify::Action::status_completed after each.
+
+$changelists is a reference to an array of changelist names, used as a restrictive filter on items whose statuses are reported; that is don't report status about any item unless it's a member of those changelists.  If changelists is empty (or altogether undef), no changelist filtering occurs.
 
 The status_func subroutine takes the following parameters:
-$path, $status
+$path, $status, $pool
 
 $path is the pathname of the file or directory which status is being
-reported.  $status is a svn_wc_status_t object.
+reported.  $status is a svn_wc_status2_t object.  $pool is an apr_pool_t
+object which is cleaned beteween invocations to the callback.
 
-The return of the status_func subroutine is ignored.
+The return of the status_func subroutine can be a svn_error_t object created by
+SVN::Error::create in order to propogate an error up.
 
 =item $ctx-E<gt>info($path_or_url, $peg_revision, $revision, \&receiver, $recurse);
 
@@ -813,15 +892,73 @@ switched.
 
 =item $ctx-E<gt>update($path, $revision, $recursive, $pool)
 
-Update a working copy $path to $revision.
+Similar to $ctx-E<gt>update2() except that it accepts only a single target in
+$path, returns a single revision, and $ignore_externals is always set to FALSE.
+
+=item $ctx-E<gt>update2($paths, $revision, $recursive, $ignore_externals, $pool)
+
+Similar to $ctx-E<gt>update3() but with $allow_unver_obstructions always set to
+FALSE, $depth_is_sticky to FALSE, and $depth set according to $recursive: if
+$recursive is TRUE, set $depth to $SVN::Depth::infinity, if $recursive is
+FALSE, set $depth to $SVN::Depth::files.
+
+=item $ctx-E<gt>update3($paths, $revision, $depth, $depth_is_sticky, $ignore_externals, $allow_unver_obstructions, $pool)
+
+Similar to $ctx-E<gt>update4() but with $make_parents always set to FALSE and
+$adds_as_modification set to TRUE.
+
+=item $ctx-E<gt>update4($paths, $revision, $depth, $depth_is_sticky, $ignore_externals, $allow_unver_obstructions, $adds_as_modification, $make_parents)
+
+Update working trees $paths to $revision.
+
+$paths is a array reference of paths to be updated.  Unversioned paths that are
+the direct children of a versioned path will cause an update that attempts to
+add that path; other unversioned paths are skipped.
 
 $revision must be a revision number, 'HEAD', or a date or this method will
 raise the $SVN::Error::CLIENT_BAD_REVISION error.
 
+The paths in $paths can be from multiple working copies from multiple
+repositories, but even if they all come from the same repository there is no
+guarantee that revision represented by 'HEAD' will remain the same as each path
+is updated.
+
+If $ignore_externals is set, don't process externals definitions as part of
+this operation.
+
+If $depth is $SVN::Depth::infinity, update fully recursivelly.  Else if it is
+$SVN::Depth::immediates or $SVN::Depth::files, update each target and its file
+entries, but not its subdirectories.  Else if $SVN::Depth::empty, update
+exactly each target, nonrecursively (essentially, update the target's
+properties).
+
+If $depth is $SVN::Depth::unknown, take the working depth from $paths and then
+describe as behaved above.
+
+If $depth_is_sticky is set and $depth is not $SVN::Depth::unknown, then in
+addition to update paths, also set their sticky ambient depth value to $depth.
+
+If $allow_unver_obstructions is TRUE then the update tolerates existing 
+unversioned items that obstruct added paths.  Only obstructions of the same
+type (file or dir) as the added item are tolerated.  The text of obstructing
+files is left as-is, effectively treating it as a user modification after the
+update.  Working properties of obstructing items are set equal to the base
+properties.  If $allow_unver_obstructions is FALSE then the update will abort
+if there are any unversioned obstructing items.
+
+If $adds_as_modification is TRUE, a local addition at the same path as an 
+incoming addition of the same node kind results in a normal node with a
+possible local modification, instead of a tree conflict.
+
+If $make_parents is TRUE, create any non-existent parent directories also by
+checking them out at depth=empty.
+
 Calls the notify callback for each item handled by the update, and
 also for files restored from the text-base.
 
-Returns the revision to which the working copy was actually updated.
+Returns an array reference to an array of revision numbers with each element
+set to the revision to which $revision was resolved for the corresponding
+element of $paths.
 
 
 =item $ctx-E<gt>url_from_path($target, $pool); or SVN::Client::url_from_path($target, $pool);
@@ -1265,41 +1402,41 @@ use SVN::Base qw(Client svn_info_t_);
 
 =over 8
 
-=item $info->URL()
+=item $info-E<gt>URL()
 
 Where the item lives in the repository.
 
-=item $info->rev()
+=item $info-E<gt>rev()
 
 The revision of the object.  If path_or_url is a working-copy
 path, then this is its current working revnum.  If path_or_url
 is a URL, then this is the repos revision that path_or_url lives in.
 
-=item $info->kind()
+=item $info-E<gt>kind()
 
 The node's kind.
 
-=item $info->repos_root_URL()
+=item $info-E<gt>repos_root_URL()
 
 The root URL of the repository.
 
-=item $info->repos_UUID()
+=item $info-E<gt>repos_UUID()
 
 The repository's UUID.
 
-=item $info->last_changed_rev()
+=item $info-E<gt>last_changed_rev()
 
 The last revision in which this object changed.
 
-=item $info->last_changed_date()
+=item $info-E<gt>last_changed_date()
 
 The date of the last_changed_rev.
 
-=item $info->last_changed_author()
+=item $info-E<gt>last_changed_author()
 
 The author of the last_changed_rev.
 
-=item $info->lock()
+=item $info-E<gt>lock()
 
 An exclusive lock, if present.  Could be either local or remote.
 
@@ -1311,27 +1448,27 @@ also only useful when working with a WC.
 
 =over 8
 
-=item $info->has_wc_info()
+=item $info-E<gt>has_wc_info()
 
-=item $info->schedule()
+=item $info-E<gt>schedule()
 
-=item $info->copyfrom_url()
+=item $info-E<gt>copyfrom_url()
 
-=item $info->copyfrom_rev()
+=item $info-E<gt>copyfrom_rev()
 
-=item $info->text_time()
+=item $info-E<gt>text_time()
 
-=item $info->prop_time()
+=item $info-E<gt>prop_time()
 
-=item $info->checksum()
+=item $info-E<gt>checksum()
 
-=item $info->conflict_old()
+=item $info-E<gt>conflict_old()
 
-=item $info->conflict_new()
+=item $info-E<gt>conflict_new()
 
-=item $info->conflict_wrk()
+=item $info-E<gt>conflict_wrk()
 
-=item $info->prejfile()
+=item $info-E<gt>prejfile()
 
 =back
 
@@ -1378,12 +1515,12 @@ $SVN::Client::COMMIT_ITEM_TEXT_MODS
 $SVN::Client::COMMIT_ITEM_PROP_MODS
 $SVN::Client::COMMIT_ITEM_IS_COPY
 
-=item $citem>incoming_prop_changes()
+=item $citem-E<gt>incoming_prop_changes()
 
 A reference to an array of svn_prop_t objects representing changes to
 WC properties.
 
-=item $citem>outgoing_prop_changes()
+=item $citem-E<gt>outgoing_prop_changes()
 
 A reference to an array of svn_prop_t objects representing extra
 changes to properties in the repository (which are not necessarily

Modified: subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Core.pm
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Core.pm?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Core.pm (original)
+++ subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Core.pm Sat Oct  6 18:31:28 2012
@@ -710,6 +710,63 @@ $SVN::Node::dir, $SVN::Node::unknown.
 
 =cut
 
+package SVN::Depth;
+use SVN::Base qw(Core svn_depth_);
+
+=head2 svn_depth_t - SVN::Depth
+
+An enum of the following constants:
+
+=over 4
+
+=item $SVN::Depth::unknown
+
+Depth undetermined or ignored.  In some contexts, this means the client should
+choose an appropriate default depth.  The server will generally treat it as
+$SVN::Depth::infinity.
+
+=item $SVN::Depth::exclude
+
+Exclude (i.e., don't descend into) directory D.
+
+Note: In Subversion 1.5, $SVN::Depth::exclude is B<not> supported anyhwere in
+the client-side (Wc/Client/etc) code; it is only supported as an argument to
+set_path functions in the Ra and Repos reporters.  (This will enable future
+versions of Subversion to run updates, etc, against 1.5 servers with proper
+$SVN::Depth::exclude behavior, once we get a chance to implement client side
+support for $SVN::Depth::exclude).
+
+=item $SVN::Depth::empty
+
+Just the named directory D, no entries.
+
+Updates will not pull in any files or subdirectories not already present.
+
+=item $SVN::Depth::files
+
+D + its files children, but not subdirs.
+
+Updates will pull in any files not already present, but not subdirectories.
+
+=item $SVN::Depth::immediates
+
+D + immediate children (D and its entries).
+
+Updates will pull in any files or subdirectories not already present; those
+subdirectories' this_dir entries will have depth-empty.
+
+=item $SVN::Depth::infinity
+
+D + all descendants (full recursion from D).
+
+Updates will pull in any files or subdirectories not already present; those
+subdirectories' this_dir entries will have depth-infinity.  Equivalent to the
+pre 1.5 default update behavior.
+
+=back
+
+=cut
+
 package _p_svn_opt_revision_t;
 use SVN::Base qw(Core svn_opt_revision_t_);
 

Modified: subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Fs.pm
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Fs.pm?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Fs.pm (original)
+++ subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Fs.pm Sat Oct  6 18:31:28 2012
@@ -100,7 +100,7 @@ base revision will be $rev, which should
 Generate a unique lock-token using C<$fs>.
 
 TODO - translate this to apply to Perl:
-This can be used in to populate lock->token before calling
+This can be used in to populate lock-E<gt>token before calling
 svn_fs_attach_lock().
 
 =item $fs-E<gt>get_access()

Modified: subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Makefile.PL.in
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Makefile.PL.in?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Makefile.PL.in (original)
+++ subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Makefile.PL.in Sat Oct  6 18:31:28 2012
@@ -49,6 +49,11 @@ my $cppflags = '@CPPFLAGS@';
 my $cflags = '@CFLAGS@';
 my $includes = '@SVN_APR_INCLUDES@ @SVN_APRUTIL_INCLUDES@';
 
+# Avoid this bug in SWIG:
+# https://sourceforge.net/tracker/?func=detail&aid=3571361&group_id=1645&atid=101645
+# SWIG is using C++ style comments in an extern "C" code.
+$cflags =~ s/-ansi\s+//g;
+
 # According to the log of r7937, the flags guarded by the conditional break
 # the build on FreeBSD if not conditionalized.
 my $apr_ldflags = '@SVN_APR_LIBS@'
@@ -122,6 +127,9 @@ $module_make_commands\t\$(NOECHO) \$(TOU
 
 FULLPERLRUN=$fullperlrun \$(FULLPERL)
 
+update_test_counts ::
+\tfor test_file in \$(TEST_FILES); do \$(PERL) -MTest::Count::FileMutator::ByFileType::App -e 'run()' \$\$test_file; done
+
 EOPOST
 
 }

Modified: subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Repos.pm
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Repos.pm?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Repos.pm (original)
+++ subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Repos.pm Sat Oct  6 18:31:28 2012
@@ -87,9 +87,9 @@ Example:
 
     close $fh;
 
-=item $repos->load_fs($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $cancel_func, $cancel_baton);
+=item $repos-E<gt>load_fs($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $cancel_func, $cancel_baton);
 
-=item $repos->load_fs2($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $use_pre_commit_hook, $use_post_commit_hook, $cancel_func, $cancel_baton);
+=item $repos-E<gt>load_fs2($dumpfile_fh, $feedback_fh, $uuid_action, $parent_dir, $use_pre_commit_hook, $use_post_commit_hook, $cancel_func, $cancel_baton);
 
 Loads a dumpfile specified by the C<$dumpfile_fh> filehandle into the repository.
 If the dumpstream contains copy history that is unavailable in the repository,

Modified: subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Wc.pm
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Wc.pm?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Wc.pm (original)
+++ subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/Wc.pm Sat Oct  6 18:31:28 2012
@@ -21,7 +21,7 @@ swig_init_asp_dot_net_hack($SVN::Core::g
 
 package _p_svn_wc_t;
 
-=head2 svn_wc_status_t
+=head2 svn_wc_status2_t
 
 =over 4
 
@@ -67,10 +67,55 @@ be one of the $SVN::Wc::Status::* consta
 An integer representing the status of the item's properties in the repository.
 Can be one of the $SVN::Wc::Status::* constants.
 
+=item $wcstat-E<gt>repos_lock()
+
+A svn_lock_t object representing the entry's lock in the repository, if any.
+
+=item $wcstat-E<gt>url()
+
+The url (actual or expected) of the item.
+
+=item $wcstat-E<gt>ood_last_cmt_rev()
+
+An integer representing the youngest committed revision or $SVN::Core::INVALID_REVNUM is not out of date.
+
+=item $wcstat-E<gt>ood_last_cmt_date()
+
+The date of the most recent commit as microseconds since 00:00:00 January 1, 1970 UTC or 0 if not out of date.
+
+=item $wcstat-E<gt>ood_kind()
+
+An integer representing the kind of the youngest commit.  Can be any of the $SVN::Node::* constants.  Will be $SVN::Node::none if not out of date.
+
+=item $wcstat-E<gt>tree_conflict()
+
+A svn_wc_conflict_description_t object if the entry is the victim of a tree conflict or undef.
+
+=item $wcstat-E<gt>file_external()
+
+A boolean telling if the item is a file that was added to the working copy as an svn:externals.  If file_external is TRUE, then switched is always FALSE.
+
+=item $wcstat-E<gt>pristine_text_status()
+
+An integer representing the status of the item's text as compared to the pristine base of the file.  Can be one of the $SVN::Wc::Status::* constants.
+
+=item $wcstat-E<gt>pristine_prop_status()
+
+An integer representing the status of the item's properties as compared to the pristine base of the node.  Can be one of the $SVN::Wc::Status::* constants.
+
 =back
 
 =cut
 
+package _p_svn_wc_status2_t;
+use SVN::Base qw(Wc svn_wc_status2_t_);
+
+=head2 svn_wc_status_t
+
+Same as svn_wc_status2_t, but without the repos_lock, url, ood_last_cmt_rev, ood_last_cmt_date, ood_kind, ood_last_cmt_author, tree_conflict, file_external, pristine_text_status, pristine_prop_status fields.
+
+=cut
+
 package _p_svn_wc_status_t;
 use SVN::Base qw(Wc svn_wc_status_t_);
 
@@ -430,6 +475,11 @@ A directory doesn't contain a complete e
 
 =back
 
+=cut
+
+package SVN::Wc::Status;
+use SVN::Base qw(Wc svn_wc_status_);
+
 =head1 COPYRIGHT
 
     Licensed to the Apache Software Foundation (ASF) under one
@@ -451,7 +501,4 @@ A directory doesn't contain a complete e
 
 =cut
 
-package SVN::Wc::Status;
-use SVN::Base qw(Wc svn_wc_status_);
-
 1;

Modified: subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/0use.t
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/0use.t?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/0use.t (original)
+++ subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/0use.t Sat Oct  6 18:31:28 2012
@@ -22,10 +22,17 @@
 
 use Test::More tests => 7;
 use strict;
+# TEST
 use_ok 'SVN::Core';
+# TEST
 use_ok 'SVN::Repos';
+# TEST
 use_ok 'SVN::Fs';
+# TEST
 use_ok 'SVN::Delta';
+# TEST
 use_ok 'SVN::Ra';
+# TEST
 use_ok 'SVN::Wc';
+# TEST
 use_ok 'SVN::Client';

Modified: subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/1repos.t
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/1repos.t?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/1repos.t (original)
+++ subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/1repos.t Sat Oct  6 18:31:28 2012
@@ -35,6 +35,7 @@ my $repospath = tempdir('svn-perl-test-X
 
 my $repos;
 
+# TEST
 ok($repos = SVN::Repos::create("$repospath", undef, undef, undef, undef),
    "create repository at $repospath");
 
@@ -60,6 +61,7 @@ SVN::TxDelta::send_string("FILEA CONTENT
 
 $editor->close_edit();
 
+# TEST
 cmp_ok($fs->youngest_rev, '==', 1);
 {
 $editor = SVN::Delta::Editor->
@@ -73,6 +75,7 @@ my $subdirbaton = $editor->add_directory
 
 $editor->close_edit();
 }
+# TEST
 cmp_ok($fs->youngest_rev, '==', 2);
 
 my @history;
@@ -80,6 +83,7 @@ my @history;
 SVN::Repos::history($fs, 'tags/foo/filea',
                     sub {push @history, [@_[0,1]]}, 0, 2, 1);
 
+# TEST
 is_deeply(\@history, [['/tags/foo/filea',2],['/trunk/filea',1]],
           'repos_history');
 
@@ -97,8 +101,10 @@ $editor->delete_entry('tags', 2, $rootba
 
 $editor->close_edit();
 }
+# TEST
 ok($main::something_destroyed, 'callback properly destroyed');
 
+# TEST
 cmp_ok($fs->youngest_rev, '==', 3);
 
 END {

Modified: subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/2fs.t
URL: http://svn.apache.org/viewvc/subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/2fs.t?rev=1395146&r1=1395145&r2=1395146&view=diff
==============================================================================
--- subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/2fs.t (original)
+++ subversion/branches/auto-props-sdc/subversion/bindings/swig/perl/native/t/2fs.t Sat Oct  6 18:31:28 2012
@@ -36,24 +36,32 @@ my $repospath = tempdir('svn-perl-test-X
 
 my $repos;
 
+# TEST
 ok($repos = SVN::Repos::create("$repospath", undef, undef, undef, undef),
    "create repository at $repospath");
 
 my $fs = $repos->fs;
 
+# TEST
 cmp_ok($fs->youngest_rev, '==', 0,
        "new repository start with rev 0");
 
+# TEST
 is($fs->path, "$repospath/db", '$fs->path()');
+# TEST
 is(SVN::Fs::type($fs->path), 'fsfs', 'SVN::Fs::type()');
 
 my $txn = $fs->begin_txn($fs->youngest_rev);
 
 my $txns = $fs->list_transactions;
+# TEST
 ok(eq_array($fs->list_transactions, [$txn->name]), 'list transaction');
 
+# TEST
 isa_ok($txn->root, '_p_svn_fs_root_t', '$txn->root()');
+# TEST
 is($txn->root->txn_name, $txn->name, '$txn->root->txn_name()');
+# TEST
 is($fs->revision_root($fs->youngest_rev)->txn_name, undef);
 
 $txn->root->make_dir('trunk');
@@ -63,32 +71,43 @@ my $text = "this is just a test\n";
 $txn->root->make_file($path);
 {
     my $stream = $txn->root->apply_text($path, undef);
+    # TEST
     isa_ok($stream, 'SVN::Stream', '$txn->root->apply_text');
     print $stream $text;
     close $stream;
 }
 $txn->commit;
 
+# TEST
 cmp_ok($fs->youngest_rev, '==', 1, 'revision increased');
 
 my $root = $fs->revision_root($fs->youngest_rev);
 
+# TEST
 cmp_ok($root->check_path($path), '==', $SVN::Node::file, 'check_path');
+# TEST
 ok(!$root->is_dir($path), 'is_dir');
+# TEST
 ok($root->is_file($path), 'is_file');
 {
     my $stream = $root->file_contents($path);
     local $/;
+    # TEST
     is(<$stream>, $text, 'content verified');
+    # TEST
     is($root->file_md5_checksum($path), 'dd2314129f81675e95b940ff94ddc935',
        'md5 verified');
 }
 
+# TEST
 cmp_ok($root->file_length($path), '==', length($text), 'file_length');
 
 # Revision properties
+# TEST
 isa_ok($fs->revision_proplist(1), 'HASH', 'revision_proplist: object');
+# TEST
 is($fs->revision_prop(1, 'not:exists'), undef, 'revision_prop: nonexistent');
+# TEST
 like($fs->revision_prop(1, 'svn:date'), qr/^\d+-\d+-\d+T\d+:\d+:\d+\.\d+Z$/,
      'revision_prop: svn:date');
 
@@ -108,12 +127,15 @@ SKIP: {
         or die "error making hook script '$script_filename' executable: $!";
 
     $fs->change_rev_prop(1, 'test-prop', 'foo');
+    # TEST
     is($fs->revision_prop(1, 'test-prop'), 'foo', 'change_rev_prop');
 
     $fs->change_rev_prop(1, 'test-prop', undef);
+    # TEST
     is($fs->revision_prop(1, 'test-prop'), undef, 'change_rev_prop: deleted');
 
     $fs->change_rev_prop(1, 'binary-prop', $BINARY_DATA);
+    # TEST
     is($fs->revision_prop(1, 'binary-prop'), $BINARY_DATA,
        'change_rev_prop with binary data');
 }