You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/03/06 12:10:05 UTC

svn commit: r1453290 [1/15] - in /subversion/branches/fsfs-format7: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ subversion/bindings/javahl/native/ subversion/bindings/javahl/src/org/apache/subversion/javahl/ subversion/bindin...

Author: stefan2
Date: Wed Mar  6 11:10:01 2013
New Revision: 1453290

URL: http://svn.apache.org/r1453290
Log:
On the fsfs-format7 branch: sync with /trunk (up to r1453266).
A minor conflict in fsfs.c has been resolved.

Added:
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/VersionExtended.cpp
      - copied unchanged from r1453266, subversion/trunk/subversion/bindings/javahl/native/VersionExtended.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/VersionExtended.h
      - copied unchanged from r1453266, subversion/trunk/subversion/bindings/javahl/native/VersionExtended.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/org_apache_subversion_javahl_types_VersionExtended.cpp
      - copied unchanged from r1453266, subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_types_VersionExtended.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InheritedProplistCallback.java
      - copied unchanged from r1453266, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/InheritedProplistCallback.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java
      - copied unchanged from r1453266, subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/VersionExtended.java
    subversion/branches/fsfs-format7/subversion/libsvn_wc/diff.h
      - copied unchanged from r1453266, subversion/trunk/subversion/libsvn_wc/diff.h
    subversion/branches/fsfs-format7/subversion/tests/cmdline/move_tests.py
      - copied unchanged from r1453266, subversion/trunk/subversion/tests/cmdline/move_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/svndumpfilter_tests_data/empty_revisions.dump
      - copied unchanged from r1453266, subversion/trunk/subversion/tests/cmdline/svndumpfilter_tests_data/empty_revisions.dump
Removed:
    subversion/branches/fsfs-format7/build/ac-macros/gssapi.m4
Modified:
    subversion/branches/fsfs-format7/   (props changed)
    subversion/branches/fsfs-format7/CHANGES
    subversion/branches/fsfs-format7/INSTALL
    subversion/branches/fsfs-format7/Makefile.in
    subversion/branches/fsfs-format7/build.conf
    subversion/branches/fsfs-format7/build/generator/gen_base.py
    subversion/branches/fsfs-format7/build/generator/gen_win.py
    subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcxproj.ezt
    subversion/branches/fsfs-format7/build/transform_sql.py
    subversion/branches/fsfs-format7/configure.ac
    subversion/branches/fsfs-format7/get-deps.sh
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CreateJ.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CreateJ.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ProplistCallback.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ProplistCallback.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNClient.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNClient.h
    subversion/branches/fsfs-format7/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java
    subversion/branches/fsfs-format7/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
    subversion/branches/fsfs-format7/subversion/bindings/swig/INSTALL
    subversion/branches/fsfs-format7/subversion/bindings/swig/include/svn_types.swg
    subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
    subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
    subversion/branches/fsfs-format7/subversion/bindings/swig/perl/native/t/3client.t
    subversion/branches/fsfs-format7/subversion/bindings/swig/perl/native/t/9wc.t
    subversion/branches/fsfs-format7/subversion/bindings/swig/python/README
    subversion/branches/fsfs-format7/subversion/bindings/swig/ruby/test/test_wc.rb
    subversion/branches/fsfs-format7/subversion/include/private/svn_client_private.h
    subversion/branches/fsfs-format7/subversion/include/private/svn_diff_tree.h
    subversion/branches/fsfs-format7/subversion/include/private/svn_fs_util.h
    subversion/branches/fsfs-format7/subversion/include/private/svn_temp_serializer.h
    subversion/branches/fsfs-format7/subversion/include/private/svn_wc_private.h
    subversion/branches/fsfs-format7/subversion/include/svn_auth.h
    subversion/branches/fsfs-format7/subversion/include/svn_client.h
    subversion/branches/fsfs-format7/subversion/include/svn_cmdline.h
    subversion/branches/fsfs-format7/subversion/include/svn_config.h
    subversion/branches/fsfs-format7/subversion/include/svn_dav.h
    subversion/branches/fsfs-format7/subversion/include/svn_props.h
    subversion/branches/fsfs-format7/subversion/include/svn_ra.h
    subversion/branches/fsfs-format7/subversion/include/svn_ra_svn.h
    subversion/branches/fsfs-format7/subversion/include/svn_repos.h
    subversion/branches/fsfs-format7/subversion/include/svn_sorts.h
    subversion/branches/fsfs-format7/subversion/include/svn_wc.h
    subversion/branches/fsfs-format7/subversion/libsvn_client/add.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/blame.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/cat.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/client.h
    subversion/branches/fsfs-format7/subversion/libsvn_client/cmdline.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/commit.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/commit_util.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/copy.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/copy_foreign.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/delete.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/deprecated.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/diff.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/externals.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/import.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/iprops.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/list.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/locking_commands.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/merge.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/mergeinfo.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/mergeinfo.h
    subversion/branches/fsfs-format7/subversion/libsvn_client/patch.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/prop_commands.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/ra.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/relocate.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/resolved.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/status.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/switch.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/update.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/upgrade.c
    subversion/branches/fsfs-format7/subversion/libsvn_client/util.c
    subversion/branches/fsfs-format7/subversion/libsvn_delta/svndiff.c
    subversion/branches/fsfs-format7/subversion/libsvn_diff/diff_tree.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_base/bdb/locks-table.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_base/reps-strings.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_base/tree.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/cached_data.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/dag.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/temp_serializer.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/transaction.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_fs/tree.c
    subversion/branches/fsfs-format7/subversion/libsvn_fs_util/fs-util.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra/deprecated.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra/ra_loader.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra/ra_loader.h
    subversion/branches/fsfs-format7/subversion/libsvn_ra/wrapper_template.h
    subversion/branches/fsfs-format7/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/getlocks.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/options.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/property.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/ra_serf.h
    subversion/branches/fsfs-format7/subversion/libsvn_ra_serf/update.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_svn/client.c
    subversion/branches/fsfs-format7/subversion/libsvn_ra_svn/marshal.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/authz.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/repos.c
    subversion/branches/fsfs-format7/subversion/libsvn_repos/rev_hunt.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/config_file.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/mergeinfo.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/prompt.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/sorts.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/sqlite.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/subst.c
    subversion/branches/fsfs-format7/subversion/libsvn_subr/sysinfo.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/adm_crawler.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/adm_files.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/adm_ops.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/conflicts.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/conflicts.h
    subversion/branches/fsfs-format7/subversion/libsvn_wc/copy.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/delete.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/deprecated.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/diff_editor.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/diff_local.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/entries.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/externals.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/info.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/lock.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/merge.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/node.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/props.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/revert.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/status.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/update_editor.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/util.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/fsfs-format7/subversion/libsvn_wc/wc_db.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/wc_db.h
    subversion/branches/fsfs-format7/subversion/libsvn_wc/wc_db_pristine.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/wc_db_private.h
    subversion/branches/fsfs-format7/subversion/libsvn_wc/wc_db_update_move.c
    subversion/branches/fsfs-format7/subversion/libsvn_wc/workqueue.c
    subversion/branches/fsfs-format7/subversion/mod_dav_svn/version.c
    subversion/branches/fsfs-format7/subversion/po/de.po
    subversion/branches/fsfs-format7/subversion/svn/blame-cmd.c
    subversion/branches/fsfs-format7/subversion/svn/cl.h
    subversion/branches/fsfs-format7/subversion/svn/conflict-callbacks.c
    subversion/branches/fsfs-format7/subversion/svn/merge-cmd.c
    subversion/branches/fsfs-format7/subversion/svn/notify.c
    subversion/branches/fsfs-format7/subversion/svn/patch-cmd.c
    subversion/branches/fsfs-format7/subversion/svn/propedit-cmd.c
    subversion/branches/fsfs-format7/subversion/svn/proplist-cmd.c
    subversion/branches/fsfs-format7/subversion/svn/svn.c
    subversion/branches/fsfs-format7/subversion/svn/switch-cmd.c
    subversion/branches/fsfs-format7/subversion/svn/update-cmd.c
    subversion/branches/fsfs-format7/subversion/svnadmin/svnadmin.c
    subversion/branches/fsfs-format7/subversion/svndumpfilter/svndumpfilter.c
    subversion/branches/fsfs-format7/subversion/svnmucc/svnmucc.c
    subversion/branches/fsfs-format7/subversion/svnserve/serve.c
    subversion/branches/fsfs-format7/subversion/svnsync/svnsync.c
    subversion/branches/fsfs-format7/subversion/tests/cmdline/authz_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/blame_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/copy_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/diff_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/externals_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/input_validation_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/lock_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/merge_authz_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/merge_automatic_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/merge_reintegrate_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/merge_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/patch_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/prop_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/svndumpfilter_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/svntest/actions.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/svntest/verify.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/switch_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/trans_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/tree_conflict_tests.py
    subversion/branches/fsfs-format7/subversion/tests/cmdline/update_tests.py
    subversion/branches/fsfs-format7/subversion/tests/libsvn_delta/range-index-test.h
    subversion/branches/fsfs-format7/subversion/tests/libsvn_fs_fs/fs-pack-test.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_repos/repos-test.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_subr/subst_translate-test.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/db-test.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/entries-compat.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/pristine-store-test.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/utils.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/utils.h
    subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/wc-queries-test.c
    subversion/branches/fsfs-format7/subversion/tests/libsvn_wc/wc-test.c
    subversion/branches/fsfs-format7/tools/client-side/bash_completion
    subversion/branches/fsfs-format7/tools/dev/unix-build/Makefile.svn
    subversion/branches/fsfs-format7/tools/dist/make-deps-tarball.sh   (props changed)
    subversion/branches/fsfs-format7/tools/hook-scripts/mailer/mailer.py
    subversion/branches/fsfs-format7/tools/hook-scripts/mailer/tests/mailer-init.sh
    subversion/branches/fsfs-format7/tools/hook-scripts/mailer/tests/mailer-t1.output
    subversion/branches/fsfs-format7/tools/server-side/fsfs-stats.c
    subversion/branches/fsfs-format7/tools/server-side/svnauthz.c
    subversion/branches/fsfs-format7/win-tests.py

Propchange: subversion/branches/fsfs-format7/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1445081-1453266

Modified: subversion/branches/fsfs-format7/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/CHANGES?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/CHANGES (original)
+++ subversion/branches/fsfs-format7/CHANGES Wed Mar  6 11:10:01 2013
@@ -33,6 +33,7 @@ http://svn.apache.org/repos/asf/subversi
     * new 'svn --version --verbose' option shows runtime environment info
     * new 'svnadmin freeze' subcommand (r1376228)
     * 'svndumpfilter' now supports --delta dumpfiles (r1351009, -3745)
+    * new '--drop-all-emtpy-revs' option for 'svndumpfilter' (issue #3681)
     * 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)

Modified: subversion/branches/fsfs-format7/INSTALL
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/INSTALL?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/INSTALL (original)
+++ subversion/branches/fsfs-format7/INSTALL Wed Mar  6 11:10:01 2013
@@ -307,7 +307,7 @@ I.    INTRODUCTION
       newer. The autogen.sh script knows about that.
 
 
-      5.  Serf library 1.1 or newer (http://code.google.com/p/serf/) (OPTIONAL)
+      5.  Serf library 1.2 or newer (http://code.google.com/p/serf/) (OPTIONAL)
 
       If you want your client to be able to speak to an Apache
       server (via a http:// or https:// URL), you must link against

Modified: subversion/branches/fsfs-format7/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/Makefile.in?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/Makefile.in (original)
+++ subversion/branches/fsfs-format7/Makefile.in Wed Mar  6 11:10:01 2013
@@ -48,7 +48,6 @@ SVN_APR_MEMCACHE_LIBS = @SVN_APR_MEMCACH
 SVN_DB_LIBS = @SVN_DB_LIBS@
 SVN_GPG_AGENT_LIBS = @SVN_GPG_AGENT_LIBS@
 SVN_GNOME_KEYRING_LIBS = @SVN_GNOME_KEYRING_LIBS@
-SVN_GSSAPI_LIBS = @SVN_GSSAPI_LIBS@
 SVN_KWALLET_LIBS = @SVN_KWALLET_LIBS@
 SVN_MAGIC_LIBS = @SVN_MAGIC_LIBS@
 SVN_SASL_LIBS = @SVN_SASL_LIBS@
@@ -126,7 +125,7 @@ LT_CXX_LIBADD = @LT_CXX_LIBADD@
 
 INCLUDES = -I$(top_srcdir)/subversion/include -I$(top_builddir)/subversion \
            @SVN_APR_INCLUDES@ @SVN_APRUTIL_INCLUDES@ @SVN_APR_MEMCACHE_INCLUDES@ \
-           @SVN_DB_INCLUDES@ @SVN_GNOME_KEYRING_INCLUDES@ @SVN_GSSAPI_INCLUDES@ \
+           @SVN_DB_INCLUDES@ @SVN_GNOME_KEYRING_INCLUDES@ \
            @SVN_KWALLET_INCLUDES@ @SVN_MAGIC_INCLUDES@ \
            @SVN_SASL_INCLUDES@ @SVN_SERF_INCLUDES@ @SVN_SQLITE_INCLUDES@ \
            @SVN_XML_INCLUDES@ @SVN_ZLIB_INCLUDES@
@@ -249,7 +248,6 @@ INSTALL_APR_MEMCACHE_LIB = $(INSTALL_LIB
 INSTALL_BDB_LIB = $(INSTALL_LIB)
 INSTALL_GPG_AGENT_LIB = $(INSTALL_LIB)
 INSTALL_GNOME_KEYRING_LIB = $(INSTALL_LIB)
-INSTALL_GSSAPI_LIB = $(INSTALL_LIB)
 INSTALL_KWALLET_LIB = $(INSTALL_LIB)
 INSTALL_SERF_LIB = $(INSTALL_LIB)
 INSTALL_BIN = $(LIBTOOL) --mode=install $(INSTALL)
@@ -593,8 +591,8 @@ gcov-clean:
 	find . -name "*.gcda" -o -name "*.gcno" -print0 | xargs -0 rm -f --
 
 check-clean: gcov-clean
-	find subversion/tests/cmdline/svn-test-work -print0    \
-	       -mindepth 1 -maxdepth 1 | xargs -0 rm -rf --;   \
+	find subversion/tests/cmdline/svn-test-work -mindepth 1 -maxdepth 1 \
+               -print0 | xargs -0 rm -rf --;   \
 	rm -rf subversion/tests/libsvn_fs/test-repo-*          \
 	       subversion/tests/libsvn_fs_base/test-repo-*     \
 	       subversion/tests/libsvn_fs_fs/test-repo-*       \
@@ -926,4 +924,6 @@ INSTALL_EXTRA_TOOLS=\
   $(MKDIR) $(DESTDIR)$(bindir); \
   test -n "$$SVN_SVNMUCC_IS_SVNSYITF" && \
   ln -sf svnmucc$(EXEEXT) $(DESTDIR)$(bindir)/svnsyitf$(EXEEXT); \
-  ln -sf $(DESTDIR)$(bindir)/svnmucc$(EXEEXT) $(DESTDIR)$(toolsdir)/svnmucc$(EXEEXT)
+  if test "$(DESTDIR)$(bindir)" != "$(DESTDIR)$(toolsdir)"; then \
+    ln -sf $(DESTDIR)$(bindir)/svnmucc$(EXEEXT) $(DESTDIR)$(toolsdir)/svnmucc$(EXEEXT); \
+  fi

Modified: subversion/branches/fsfs-format7/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/build.conf?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/build.conf (original)
+++ subversion/branches/fsfs-format7/build.conf Wed Mar  6 11:10:01 2013
@@ -57,6 +57,11 @@ private-built-includes =
         subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNRepos.h
         subversion/bindings/javahl/include/org_apache_subversion_javahl_SVNClient.h
         subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Version.h
+        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended.h
+        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LinkedLib.h
+        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LinkedLibIterator.h
+        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LoadedLib.h
+        subversion/bindings/javahl/include/org_apache_subversion_javahl_types_VersionExtended_LoadedLibIterator.h
         subversion/bindings/javahl/include/org_apache_subversion_javahl_types_Revision.h
         subversion/bindings/javahl/include/org_apache_subversion_javahl_callback_UserPasswordCallback.h
         subversion/svn/svn-help.inc
@@ -1232,12 +1237,17 @@ 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 fsfs-stats fsfs-access-map svn-bench
        client-test
        conflict-data-test db-test pristine-store-test entries-compat-test
        op-depth-test dirent_uri-test wc-queries-test wc-test
        auth-test
        parse-diff-test
+
+[__MORE__]
+type = project
+path = build/win32
+libs = __ALL_TESTS__
+       diff diff3 diff4 fsfs-reorg fsfs-stats fsfs-access-map svn-bench
        svn-rep-sharing-stats svn-populate-node-origins-index
 
 [__LIBS__]

Modified: subversion/branches/fsfs-format7/build/generator/gen_base.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/build/generator/gen_base.py?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/build/generator/gen_base.py (original)
+++ subversion/branches/fsfs-format7/build/generator/gen_base.py Wed Mar  6 11:10:01 2013
@@ -469,7 +469,10 @@ class TargetExe(TargetLinked):
     TargetLinked.add_dependencies(self)
 
     # collect test programs
-    if self.install == 'test':
+    if 'svnauthz' in self.name: # special case
+      self.gen_obj.test_deps.append(self.filename)
+      self.gen_obj.test_helpers.append(self.filename)
+    elif self.install == 'test':
       self.gen_obj.test_deps.append(self.filename)
       if self.testing != 'skip':
         self.gen_obj.test_progs.append(self.filename)

Modified: subversion/branches/fsfs-format7/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/build/generator/gen_win.py?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/build/generator/gen_win.py (original)
+++ subversion/branches/fsfs-format7/build/generator/gen_win.py Wed Mar  6 11:10:01 2013
@@ -159,22 +159,22 @@ class GeneratorBase(gen_base.GeneratorBa
       elif opt == '--with-static-openssl':
         self.static_openssl = 1
       elif opt == '--vsnet-version':
-        if val == '2002' or re.match('7(\.\d+)?', val):
+        if val == '2002' or re.match('7(\.\d+)?$', val):
           self.vs_version = '2002'
           self.sln_version = '7.00'
           self.vcproj_version = '7.00'
           self.vcproj_extension = '.vcproj'
-        elif val == '2003' or re.match('8(\.\d+)?', val):
+        elif val == '2003' or re.match('8(\.\d+)?$', val):
           self.vs_version = '2003'
           self.sln_version = '8.00'
           self.vcproj_version = '7.10'
           self.vcproj_extension = '.vcproj'
-        elif val == '2005' or re.match('9(\.\d+)?', val):
+        elif val == '2005' or re.match('9(\.\d+)?$', val):
           self.vs_version = '2005'
           self.sln_version = '9.00'
           self.vcproj_version = '8.00'
           self.vcproj_extension = '.vcproj'
-        elif val == '2008' or re.match('10(\.\d+)?', val):
+        elif val == '2008' or re.match('10(\.\d+)?$', val):
           self.vs_version = '2008'
           self.sln_version = '10.00'
           self.vcproj_version = '9.00'
@@ -189,6 +189,11 @@ class GeneratorBase(gen_base.GeneratorBa
           self.sln_version = '12.00'
           self.vcproj_version = '11.0'
           self.vcproj_extension = '.vcxproj'
+        elif re.match('^1\d+$', val):
+          self.vsversion = val
+          self.sln_version = '12.00'
+          self.vcproj_version = val + '.0'
+          self.vcproj_extension = '.vcxproj'
         else:
           print('WARNING: Unknown VS.NET version "%s",'
                  ' assuming "%s"\n' % (val, '7.00'))
@@ -962,6 +967,9 @@ class WinGeneratorBase(GeneratorBase):
     if target.name == "libsvnjavahl" and self.jdk_path:
       fakeincludes.append(os.path.join(self.jdk_path, 'include'))
       fakeincludes.append(os.path.join(self.jdk_path, 'include', 'win32'))
+      
+    if target.name.find('cxxhl') != -1:
+      fakeincludes.append(self.path("subversion/bindings/cxxhl/include"))
 
     return fakeincludes
 
@@ -1433,7 +1441,7 @@ class WinGeneratorBase(GeneratorBase):
   def _find_serf(self):
     "Check if serf and its dependencies are available"
 
-    minimal_serf_version = (0, 3, 0)
+    minimal_serf_version = (1, 2, 0)
     self.serf_lib = None
     if self.serf_path and os.path.exists(self.serf_path):
       if self.openssl_path and os.path.exists(self.openssl_path):
@@ -1441,7 +1449,7 @@ class WinGeneratorBase(GeneratorBase):
         version = self._get_serf_version()
         if None in version:
           msg = 'Unknown serf version found; but, will try to build ' \
-                'ra_serf.\n'
+                'ra_serf.'
         else:
           self.serf_ver = '.'.join(str(v) for v in version)
           if version < minimal_serf_version:
@@ -1449,7 +1457,7 @@ class WinGeneratorBase(GeneratorBase):
             msg = 'Found serf %s, but >= %s is required. ra_serf will not be built.\n' % \
                   (self.serf_ver, '.'.join(str(v) for v in minimal_serf_version))
           else:
-            msg = 'Found serf version %s\n' % self.serf_ver
+            msg = 'Found serf %s' % self.serf_ver
         print(msg)
       else:
         print('openssl not found, ra_serf will not be built\n')
@@ -1458,6 +1466,8 @@ class WinGeneratorBase(GeneratorBase):
 
   def _find_apr(self):
     "Find the APR library and version"
+    
+    minimal_apr_version = (0, 9, 0)
 
     version_file_path = os.path.join(self.apr_path, 'include',
                                      'apr_version.h')
@@ -1470,22 +1480,41 @@ class WinGeneratorBase(GeneratorBase):
     fp = open(version_file_path)
     txt = fp.read()
     fp.close()
+    
     vermatch = re.search(r'^\s*#define\s+APR_MAJOR_VERSION\s+(\d+)', txt, re.M)
-
-    major_ver = int(vermatch.group(1))
+    major = int(vermatch.group(1))
+    
+    vermatch = re.search(r'^\s*#define\s+APR_MINOR_VERSION\s+(\d+)', txt, re.M)
+    minor = int(vermatch.group(1))
+    
+    vermatch = re.search(r'^\s*#define\s+APR_PATCH_VERSION\s+(\d+)', txt, re.M)
+    patch = int(vermatch.group(1))
+    
+    version = (major, minor, patch)
+    self.apr_version = '%d.%d.%d' % version
 
     suffix = ''
-    if major_ver > 0:
-        suffix = '-%d' % major_ver
+    if major > 0:
+        suffix = '-%d' % major
 
     if self.static_apr:
       self.apr_lib = 'apr%s.lib' % suffix
     else:
       self.apr_lib = 'libapr%s.lib' % suffix
+      
+    if version < minimal_apr_version:
+      sys.stderr.write("ERROR: apr %s or higher is required "
+                       "(%s found)\n" % (
+                          '.'.join(str(v) for v in minimal_apr_version),
+                          self.apr_version))
+      sys.exit(1)
+    else:
+      print('Found apr %s' % self.apr_version)
 
   def _find_apr_util(self):
     "Find the APR-util library and version"
 
+    minimal_aprutil_version = (0, 9, 0)
     version_file_path = os.path.join(self.apr_util_path, 'include',
                                      'apu_version.h')
 
@@ -1497,22 +1526,42 @@ class WinGeneratorBase(GeneratorBase):
     fp = open(version_file_path)
     txt = fp.read()
     fp.close()
+    
     vermatch = re.search(r'^\s*#define\s+APU_MAJOR_VERSION\s+(\d+)', txt, re.M)
-
-    major_ver = int(vermatch.group(1))
+    major = int(vermatch.group(1))
+    
+    vermatch = re.search(r'^\s*#define\s+APU_MINOR_VERSION\s+(\d+)', txt, re.M)
+    minor = int(vermatch.group(1))
+    
+    vermatch = re.search(r'^\s*#define\s+APU_PATCH_VERSION\s+(\d+)', txt, re.M)
+    patch = int(vermatch.group(1))
+   
+    version = (major, minor, patch)
+    self.aprutil_version = '%d.%d.%d' % version
 
     suffix = ''
-    if major_ver > 0:
-        suffix = '-%d' % major_ver
+    if major > 0:
+        suffix = '-%d' % major
 
     if self.static_apr:
       self.aprutil_lib = 'aprutil%s.lib' % suffix
     else:
       self.aprutil_lib = 'libaprutil%s.lib' % suffix
+      
+    if version < minimal_aprutil_version:
+      sys.stderr.write("ERROR: aprutil %s or higher is required "
+                       "(%s found)\n" % (
+                          '.'.join(str(v) for v in minimal_aprutil_version),
+                          self.aprutil_version))
+      sys.exit(1)
+    else:
+      print('Found aprutil %s' % self.aprutil_version)
 
   def _find_sqlite(self):
     "Find the Sqlite library and version"
 
+    minimal_sqlite_version = (3, 7, 12)
+
     header_file = os.path.join(self.sqlite_path, 'inc', 'sqlite3.h')
 
     # First check for compiled version of SQLite.
@@ -1537,23 +1586,26 @@ class WinGeneratorBase(GeneratorBase):
     fp = open(header_file)
     txt = fp.read()
     fp.close()
-    vermatch = re.search(r'^\s*#define\s+SQLITE_VERSION\s+"(\d+)\.(\d+)\.(\d+)(?:\.\d)?"', txt, re.M)
-
-    version = tuple(map(int, vermatch.groups()))
-
+    vermatch = re.search(r'^\s*#define\s+SQLITE_VERSION\s+"(\d+)\.(\d+)\.(\d+)(?:\.(\d))?"', txt, re.M)
 
-    self.sqlite_version = '%d.%d.%d' % version
-
-    msg = 'Found SQLite version %s\n'
-
-    major, minor, patch = version
-    if major < 3 or (major == 3 and minor < 6) \
-                 or (major == 3 and minor == 6 and patch < 18):
-      sys.stderr.write("ERROR: SQLite 3.6.18 or higher is required "
-                       "(%s found)\n" % self.sqlite_version);
+    version = vermatch.groups()
+    
+    # Sqlite doesn't add patch numbers for their ordinary releases
+    if not version[3]:
+      version = version[0:3]
+
+    version = tuple(map(int, version))
+
+    self.sqlite_version = '.'.join(str(v) for v in version)
+
+    if version < minimal_sqlite_version:
+      sys.stderr.write("ERROR: sqlite %s or higher is required "
+                       "(%s found)\n" % (
+                          '.'.join(str(v) for v in minimal_sqlite_version),
+                          self.sqlite_version))
       sys.exit(1)
     else:
-      print(msg % self.sqlite_version)
+      print('Found SQLite %s' % self.sqlite_version)
 
   def _find_zlib(self):
     "Find the ZLib library and version"
@@ -1577,9 +1629,7 @@ class WinGeneratorBase(GeneratorBase):
 
     self.zlib_version = '%d.%d.%d' % version
 
-    msg = 'Found ZLib version %s\n'
-
-    print(msg % self.zlib_version)
+    print('Found ZLib %s' % self.zlib_version)
 
 class ProjectItem:
   "A generic item class for holding sources info, config info, etc for a project"

Modified: subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcxproj.ezt?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcxproj.ezt (original)
+++ subversion/branches/fsfs-format7/build/generator/templates/vcnet_vcxproj.ezt Wed Mar  6 11:10:01 2013
@@ -45,7 +45,7 @@
 [end][end]  <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
 [for configs][for platforms]    <OutDir Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">$(SolutionDir)[configs.name]\[target.output_dir]\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">$(SolutionDir)[configs.name]\[target.intermediate_dir]\[target.proj_name]\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">$(SolutionDir)[configs.name]\obj\[target.intermediate_dir]\[target.proj_name]\</IntDir>
     <TargetName Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'">[target.output_name_without_ext]</TargetName>
 [is config_type "DynamicLibrary"][is target.output_ext ".dll"][else]    <TargetExt>[target.output_ext]</TargetExt>
 [end][end][end][end]  </PropertyGroup>

Modified: subversion/branches/fsfs-format7/build/transform_sql.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/build/transform_sql.py?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/build/transform_sql.py (original)
+++ subversion/branches/fsfs-format7/build/transform_sql.py Wed Mar  6 11:10:01 2013
@@ -137,10 +137,6 @@ class Processor(object):
       # So for the root we can compare with > '' and < x'FFFF'. (This skips the
       # root itself and selects all descendants)
       #
-      ### RH: I implemented this first with a user defined Sqlite function. But
-      ### when I wrote the documentation for it, I found out I could just
-      ### define it this way, without losing the option of just dropping the
-      ### query in a plain sqlite3.
 
       # '/'+1 == '0'
       line = re.sub(
@@ -149,6 +145,48 @@ class Processor(object):
             r" AND ((\1) < CASE (\2) WHEN '' THEN X'FFFF' ELSE (\2) || '0' END))",
             line)
 
+      # RELPATH_SKIP_JOIN(x, y, z) skips the x prefix from z and the joins the
+      # result after y. In other words it replaces x with y, but follows the
+      # relpath rules.
+      line = re.sub(
+             r'RELPATH_SKIP_JOIN[(]([?]?[A-Za-z0-9_.]+), ' +
+                                 r'([?]?[A-Za-z0-9_.]+), ' +
+                                 r'([?]?[A-Za-z0-9_.]+)[)]',
+             r"(CASE WHEN (\1) = '' THEN RELPATH_JOIN(\2, \3) " +
+             r"WHEN (\2) = '' THEN RELPATH_SKIP_ANCESTOR(\1, \3) " +
+             r"WHEN SUBSTR((\3), 1, LENGTH(\1)) = (\1) " +
+             r"THEN " +
+                   r"CASE WHEN LENGTH(\1) = LENGTH(\3) THEN (\2) " +
+                        r"WHEN SUBSTR((\3), LENGTH(\1)+1, 1) = '/' " +
+                        r"THEN (\2) || SUBSTR((\3), LENGTH(\1)+1) " +
+                   r"END " +
+             r"END)",
+             line)
+
+      # RELPATH_JOIN(x, y) joins x to y following the svn_relpath_join() rules
+      line = re.sub(
+            r'RELPATH_JOIN[(]([?]?[A-Za-z0-9_.]+), ([?]?[A-Za-z0-9_.]+)[)]',
+            r"(CASE WHEN (\1) = '' THEN (\2) " +
+                  r"WHEN (\2) = '' THEN (\1) " +
+                 r"ELSE (\1) || '/' || (\2) " +
+            r"END)",
+            line)
+
+      # RELPATH_SKIP_ANCESTOR(x, y) skips the x prefix from y following the
+      # svn_relpath_skip_ancestor() rules. Returns NULL when y is not below X.
+      line = re.sub(
+             r'RELPATH_SKIP_ANCESTOR[(]([?]?[A-Za-z0-9_.]+), ' +
+                                     r'([?]?[A-Za-z0-9_.]+)[)]',
+             r"(CASE WHEN (\1) = '' THEN (\2) " +
+             r" WHEN SUBSTR((\2), 1, LENGTH(\1)) = (\1) " +
+             r" THEN " +
+                   r"CASE WHEN LENGTH(\1) = LENGTH(\2) THEN '' " +
+                        r"WHEN SUBSTR((\2), LENGTH(\1)+1, 1) = '/' " +
+                        r"THEN SUBSTR((\2), LENGTH(\1)+2) " +
+                   r"END" +
+             r" END)",
+            line)
+
       # Another preprocessing.
       for symbol, string in self.token_map.iteritems():
         # ### This doesn't sql-escape 'string'

Modified: subversion/branches/fsfs-format7/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/configure.ac?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/configure.ac (original)
+++ subversion/branches/fsfs-format7/configure.ac Wed Mar  6 11:10:01 2013
@@ -125,21 +125,13 @@ dnl Search for pkg-config
 AC_PATH_PROG(PKG_CONFIG, pkg-config)
 
 dnl Search for serf
-SVN_LIB_SERF(1,0,0)
+SVN_LIB_SERF(1,2,0)
 
 if test "$svn_lib_serf" = "yes"; then
   AC_DEFINE([SVN_HAVE_SERF], 1,
             [Defined if support for Serf is enabled])
 fi
 
-dnl Search for GSSAPI
-SVN_LIB_RA_SERF_GSSAPI
-
-if test "$svn_lib_gssapi" = "yes"; then
-  AC_DEFINE([SVN_RA_SERF_HAVE_GSSAPI], 1,
-            [Defined if support for GSSAPI is enabled])
-fi
-
 dnl Search for apr_memcache (only affects fs_fs)
 SVN_LIB_APR_MEMCACHE
 
@@ -912,20 +904,6 @@ AC_CHECK_HEADER(termios.h,[
 
 dnl Process some configuration options ----------
 
-AC_ARG_WITH(ssl,
-AS_HELP_STRING([--with-ssl],
-               [This option does NOT affect the Subversion build process in any
-                way. It enables OpenSSL support in the Neon HTTP client
-                library. If and only if you are building Neon as an integrated
-                part of the Subversion build process, rather than linking to
-                an already installed version of Neon, you probably want to pass
-                this option so that Neon (and so indirectly, Subversion) will
-                be capable of https:// access via that library. (Note that
-                Subversion may also or alternatively be configured to use
-                the Serf library for http:// and https:// access; see the
-                --with-serf and --with-openssl options.)]),
-[])
-
 AC_ARG_WITH(openssl,
 AS_HELP_STRING([--with-openssl],
                [This option does NOT affect the Subversion build process in any

Modified: subversion/branches/fsfs-format7/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/get-deps.sh?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/get-deps.sh (original)
+++ subversion/branches/fsfs-format7/get-deps.sh Wed Mar  6 11:10:01 2013
@@ -25,10 +25,11 @@
 
 APR=apr-1.4.6
 APR_UTIL=apr-util-1.5.1
-SERF=serf-1.1.1
+SERF=serf-1.2.0
 ZLIB=zlib-1.2.7
 SQLITE_VERSION=3.7.15.1
-SQLITE=sqlite-amalgamation-$(printf %d%02d%02d%02d $(echo $SQLITE_VERSION | sed -e 's/\./ /g'))
+SQLITE_VERSION_LIST=`echo $SQLITE_VERSION | sed -e 's/\./ /g'`
+SQLITE=sqlite-amalgamation-`printf %d%02d%02d%02d $SQLITE_VERSION_LIST`
 GTEST_VERSION=1.6.0
 GTEST=gtest-${GTEST_VERSION}
 GTEST_URL=http://googletest.googlecode.com/files/
@@ -40,9 +41,9 @@ BASEDIR=`pwd`
 TEMPDIR=$BASEDIR/temp
 
 HTTP_FETCH=
-[ -z "$HTTP_FETCH" ] && type wget  >/dev/null 2>&1 && HTTP_FETCH="wget -nc"
-[ -z "$HTTP_FETCH" ] && type curl  >/dev/null 2>&1 && HTTP_FETCH="curl -O"
-[ -z "$HTTP_FETCH" ] && type fetch >/dev/null 2>&1 && HTTP_FETCH="fetch"
+[ -z "$HTTP_FETCH" ] && type wget  >/dev/null 2>&1 && HTTP_FETCH="wget -q -nc"
+[ -z "$HTTP_FETCH" ] && type curl  >/dev/null 2>&1 && HTTP_FETCH="curl -sO"
+[ -z "$HTTP_FETCH" ] && type fetch >/dev/null 2>&1 && HTTP_FETCH="fetch -q"
 
 # Need this uncommented if any of the specific versions of the ASF tarballs to
 # be downloaded are no longer available on the general mirrors.
@@ -129,7 +130,7 @@ get_deps() {
     done
 
     if [ $# -gt 0 ]; then
-      for target; do
+      for target in "$@"; do
         if [ "$target" != "deps" ]; then
           get_$target || usage
         else

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CreateJ.cpp?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CreateJ.cpp Wed Mar  6 11:10:01 2013
@@ -35,6 +35,7 @@
 #include "../include/org_apache_subversion_javahl_CommitItemStateFlags.h"
 
 #include "svn_path.h"
+#include "svn_props.h"
 #include "private/svn_wc_private.h"
 
 jobject
@@ -1049,6 +1050,87 @@ jobject CreateJ::PropertyMap(apr_hash_t 
   return env->PopLocalFrame(map);
 }
 
+jobject CreateJ::InheritedProps(apr_array_header_t *iprops)
+{
+  JNIEnv *env = JNIUtil::getEnv();
+
+  if (iprops == NULL)
+    return NULL;
+
+  // Create a local frame for our references
+  env->PushLocalFrame(LOCAL_FRAME_SIZE);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  jclass list_cls = env->FindClass("java/util/ArrayList");
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
+
+  static volatile jmethodID init_mid = 0;
+  if (init_mid == 0)
+    {
+      init_mid = env->GetMethodID(list_cls, "<init>", "(I)V");
+      if (JNIUtil::isJavaExceptionThrown())
+        POP_AND_RETURN_NULL;
+    }
+
+  static volatile jmethodID add_mid = 0;
+  if (add_mid == 0)
+    {
+      add_mid = env->GetMethodID(list_cls, "add",
+                                 "(Ljava/lang/Object;)Z");
+      if (JNIUtil::isJavaExceptionThrown())
+        POP_AND_RETURN_NULL;
+    }
+
+  jclass item_cls = env->FindClass(
+      JAVA_PACKAGE"/callback/InheritedProplistCallback$InheritedItem");
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
+
+  static volatile jmethodID ctor_mid = 0;
+  if (ctor_mid == 0)
+    {
+      ctor_mid = env->GetMethodID(item_cls, "<init>",
+                                  "(Ljava/lang/String;Ljava/util/Map;)V");
+      if (JNIUtil::isJavaExceptionThrown())
+        POP_AND_RETURN_NULL;
+    }
+
+  jobject array = env->NewObject(list_cls, init_mid, iprops->nelts);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN_NULL;
+
+  for (int i = 0; i < iprops->nelts; ++i)
+    {
+      svn_prop_inherited_item_t *iprop =
+        APR_ARRAY_IDX(iprops, i, svn_prop_inherited_item_t*);
+
+      jstring path_or_url = JNIUtil::makeJString(iprop->path_or_url);
+      if (JNIUtil::isJavaExceptionThrown())
+        POP_AND_RETURN_NULL;
+
+      jobject props = PropertyMap(iprop->prop_hash);
+      if (JNIUtil::isJavaExceptionThrown())
+        POP_AND_RETURN_NULL;
+
+      jobject item = env->NewObject(item_cls, ctor_mid, path_or_url, props);
+      if (JNIUtil::isJavaExceptionThrown())
+        POP_AND_RETURN_NULL;
+
+      env->CallBooleanMethod(array, add_mid, item);
+      if (JNIUtil::isJavaExceptionThrown())
+        POP_AND_RETURN_NULL;
+
+      env->DeleteLocalRef(item);
+      env->DeleteLocalRef(props);
+      env->DeleteLocalRef(path_or_url);
+    }
+
+  return env->PopLocalFrame(array);
+}
+
+
 jobject CreateJ::Set(std::vector<jobject> &objects)
 {
   JNIEnv *env = JNIUtil::getEnv();

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CreateJ.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CreateJ.h?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CreateJ.h (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/native/CreateJ.h Wed Mar  6 11:10:01 2013
@@ -82,6 +82,9 @@ class CreateJ
   static jobject
   PropertyMap(apr_hash_t *prop_hash);
 
+  static jobject
+  InheritedProps(apr_array_header_t *inherited_props);
+
   /* This creates a set of Objects.  It derefs the members of the vector
    * after putting them in the set, so they caller doesn't need to. */
   static jobject

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ProplistCallback.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ProplistCallback.cpp?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ProplistCallback.cpp (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ProplistCallback.cpp Wed Mar  6 11:10:01 2013
@@ -33,10 +33,10 @@
  * Create a ProplistCallback object
  * @param jcallback the Java callback object.
  */
-ProplistCallback::ProplistCallback(jobject jcallback)
-{
-  m_callback = jcallback;
-}
+ProplistCallback::ProplistCallback(jobject jcallback, bool inherited)
+  : m_callback(jcallback),
+    m_inherited(inherited)
+{}
 
 /**
  * Destroy a ProplistCallback object
@@ -51,11 +51,18 @@ svn_error_t *
 ProplistCallback::callback(void *baton,
                            const char *path,
                            apr_hash_t *prop_hash,
+                           apr_array_header_t *inherited_props,
                            apr_pool_t *pool)
 {
   if (baton)
-    return static_cast<ProplistCallback *>(baton)->singlePath(
-            path, prop_hash, pool);
+    {
+      ProplistCallback *cb = static_cast<ProplistCallback *>(baton);
+
+      if (cb->inherited())
+        return cb->singlePath(path, prop_hash, inherited_props, pool);
+      else
+        return cb->singlePath(path, prop_hash, pool);
+    }
 
   return SVN_NO_ERROR;
 }
@@ -79,7 +86,7 @@ svn_error_t *ProplistCallback::singlePat
 
   // The method id will not change during the time this library is
   // loaded, so it can be cached.
-  static jmethodID mid = 0;
+  static volatile jmethodID mid = 0;
   if (mid == 0)
     {
       jclass clazz = env->FindClass(JAVA_PACKAGE"/callback/ProplistCallback");
@@ -109,3 +116,62 @@ svn_error_t *ProplistCallback::singlePat
 
   return SVN_NO_ERROR;
 }
+
+
+
+/**
+ * Callback called for a single path
+ * @param path      the path name
+ * @param prop_hash the hash of properties on this path
+ * @param inherited_props list of inherited props
+ * @param pool      memory pool for the use of this function
+ */
+svn_error_t *ProplistCallback::singlePath(
+    const char *path,
+    apr_hash_t *prop_hash,
+    apr_array_header_t *inherited_props,
+    apr_pool_t *pool)
+{
+  JNIEnv *env = JNIUtil::getEnv();
+
+  // Create a local frame for our references
+  env->PushLocalFrame(LOCAL_FRAME_SIZE);
+  if (JNIUtil::isJavaExceptionThrown())
+    return NULL;
+
+  // The method id will not change during the time this library is
+  // loaded, so it can be cached.
+  static jmethodID mid = 0;
+  if (mid == 0)
+    {
+      jclass clazz = env->FindClass(JAVA_PACKAGE"/callback/InheritedProplistCallback");
+      if (JNIUtil::isJavaExceptionThrown())
+        return SVN_NO_ERROR;
+
+      mid = env->GetMethodID(clazz, "singlePath",
+                             "(Ljava/lang/String;Ljava/util/Map;Ljava/util/Collection;)V");
+      if (JNIUtil::isJavaExceptionThrown() || mid == 0)
+        POP_AND_RETURN(SVN_NO_ERROR);
+    }
+
+  // convert the parameters to their Java relatives
+  jstring jpath = JNIUtil::makeJString(path);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN(SVN_NO_ERROR);
+
+  jobject jmap = CreateJ::PropertyMap(prop_hash);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN(SVN_NO_ERROR);
+
+  jobject jiprops = CreateJ::InheritedProps(inherited_props);
+  if (JNIUtil::isJavaExceptionThrown())
+    POP_AND_RETURN(SVN_NO_ERROR);
+
+  // call the Java method
+  env->CallVoidMethod(m_callback, mid, jpath, jmap, jiprops);
+  // We return whether an exception was thrown or not.
+
+  env->PopLocalFrame(NULL);
+
+  return SVN_NO_ERROR;
+}

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ProplistCallback.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ProplistCallback.h?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ProplistCallback.h (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/native/ProplistCallback.h Wed Mar  6 11:10:01 2013
@@ -37,24 +37,33 @@
 class ProplistCallback
 {
  public:
-  ProplistCallback(jobject jcallback);
+  ProplistCallback(jobject jcallback, bool inherited);
   ~ProplistCallback();
 
   static svn_error_t *callback(void *baton,
                                const char *path,
                                apr_hash_t *prop_hash,
+                               apr_array_header_t *inherited_props,
                                apr_pool_t *pool);
 
+  bool inherited() const { return m_inherited; }
+
  protected:
   svn_error_t *singlePath(const char *path,
                           apr_hash_t *prop_hash,
                           apr_pool_t *pool);
 
+  svn_error_t *singlePath(const char *path,
+                          apr_hash_t *prop_hash,
+                          apr_array_header_t *inherited_props,
+                          apr_pool_t *pool);
  private:
   /**
    * This a local reference to the Java object.
    */
   jobject m_callback;
+  bool m_inherited;
 };
 
+
 #endif  // PROPLISTCALLBACK_H

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNClient.cpp?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNClient.cpp Wed Mar  6 11:10:01 2013
@@ -35,6 +35,7 @@
 #include "Revision.h"
 #include "OutputStream.h"
 #include "RevisionRange.h"
+#include "VersionExtended.h"
 #include "BlameCallback.h"
 #include "ProplistCallback.h"
 #include "LogMessageCallback.h"
@@ -93,6 +94,41 @@ void SVNClient::dispose(jobject jthis)
     SVNBase::dispose(jthis, &fid, JAVA_PACKAGE"/SVNClient");
 }
 
+jobject SVNClient::getVersionExtended(bool verbose)
+{
+    JNIEnv *const env = JNIUtil::getEnv();
+
+    jclass clazz = env->FindClass(JAVA_PACKAGE"/types/VersionExtended");
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    static volatile jmethodID ctor = 0;
+    if (!ctor)
+    {
+        ctor = env->GetMethodID(clazz, "<init>", "()V");
+        if (JNIUtil::isJavaExceptionThrown())
+            return NULL;
+    }
+
+    static volatile jfieldID fid = 0;
+    if (!fid)
+    {
+        fid = env->GetFieldID(clazz, "cppAddr", "J");
+        if (JNIUtil::isJavaExceptionThrown())
+            return NULL;
+    }
+
+    jobject j_ext_info = env->NewObject(clazz, ctor);
+    if (JNIUtil::isJavaExceptionThrown())
+        return NULL;
+
+    VersionExtended *vx = new VersionExtended(verbose);
+    env->SetLongField(j_ext_info, fid, vx->getCppAddr());
+
+    env->DeleteLocalRef(clazz);
+    return j_ext_info;
+}
+
 jstring SVNClient::getAdminDirectoryName()
 {
     SVN::Pool subPool(pool);
@@ -849,7 +885,8 @@ jbyteArray SVNClient::propertyGet(const 
 
 void SVNClient::properties(const char *path, Revision &revision,
                            Revision &pegRevision, svn_depth_t depth,
-                           StringArray &changelists, ProplistCallback *callback)
+                           StringArray &changelists,
+                           ProplistCallback *callback)
 {
     SVN::Pool subPool(pool);
     SVN_JNI_NULL_PTR_EX(path, "path", );
@@ -860,13 +897,12 @@ void SVNClient::properties(const char *p
     if (ctx == NULL)
         return;
 
-    SVN_JNI_ERR(svn_client_proplist3(intPath.c_str(), pegRevision.revision(),
+    SVN_JNI_ERR(svn_client_proplist4(intPath.c_str(), pegRevision.revision(),
                                      revision.revision(), depth,
                                      changelists.array(subPool),
+                                     callback->inherited(),
                                      ProplistCallback::callback, callback,
                                      ctx, subPool.getPool()), );
-
-    return;
 }
 
 void SVNClient::propertySetLocal(Targets &targets, const char *name,

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNClient.h?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/native/SVNClient.h Wed Mar  6 11:10:01 2013
@@ -151,6 +151,7 @@ class SVNClient :public SVNBase
                    bool discoverPaths, bool includeMergedRevisions,
                    StringArray &revProps,
                    long limit, LogMessageCallback *callback);
+  jobject getVersionExtended(bool verbose);
   jstring getAdminDirectoryName();
   jboolean isAdminDirectory(const char *name);
   void addToChangelist(Targets &srcPaths, const char *changelist,

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Wed Mar  6 11:10:01 2013
@@ -51,6 +51,7 @@
 #include "ChangelistCallback.h"
 #include "StringArray.h"
 #include "RevpropTable.h"
+#include "VersionExtended.h"
 #include "svn_version.h"
 #include "svn_private_config.h"
 #include "version.h"
@@ -89,6 +90,20 @@ Java_org_apache_subversion_javahl_SVNCli
     cl->finalize();
 }
 
+JNIEXPORT jobject JNICALL
+Java_org_apache_subversion_javahl_SVNClient_getVersionExtended(
+    JNIEnv *env, jobject jthis, jboolean verbose)
+{
+  JNIEntry(SVNClient, getVersionExtended);
+  SVNClient *cl = SVNClient::getCppObject(jthis);
+  if (cl == NULL)
+    {
+      JNIUtil::throwError(_("bad C++ this"));
+      return NULL;
+    }
+  return cl->getVersionExtended(!!verbose);
+}
+
 JNIEXPORT jstring JNICALL
 Java_org_apache_subversion_javahl_SVNClient_getAdminDirectoryName
 (JNIEnv *env, jobject jthis)
@@ -891,13 +906,11 @@ Java_org_apache_subversion_javahl_SVNCli
                        jdryRun ? true:false);
 }
 
-JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_properties
+static void SVNClient_properties
 (JNIEnv *env, jobject jthis, jstring jpath, jobject jrevision,
  jobject jpegRevision, jobject jdepth, jobject jchangelists,
- jobject jproplistCallback)
+ jobject jproplistCallback, bool inherited)
 {
-  JNIEntry(SVNClient, properties);
   SVNClient *cl = SVNClient::getCppObject(jthis);
   if (cl == NULL)
     {
@@ -920,12 +933,34 @@ Java_org_apache_subversion_javahl_SVNCli
   if (JNIUtil::isExceptionThrown())
     return;
 
-  ProplistCallback callback(jproplistCallback);
+  ProplistCallback callback(jproplistCallback, inherited);
   cl->properties(path, revision, pegRevision, EnumMapper::toDepth(jdepth),
                  changelists, &callback);
 }
 
 JNIEXPORT void JNICALL
+Java_org_apache_subversion_javahl_SVNClient_properties__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2Lorg_apache_subversion_javahl_callback_ProplistCallback_2
+(JNIEnv *env, jobject jthis, jstring jpath, jobject jrevision,
+ jobject jpegRevision, jobject jdepth, jobject jchangelists,
+ jobject jproplistCallback)
+{
+  JNIEntry(SVNClient, properties);
+  SVNClient_properties(env, jthis, jpath, jrevision, jpegRevision, jdepth,
+                       jchangelists, jproplistCallback, false);
+}
+
+JNIEXPORT void JNICALL
+Java_org_apache_subversion_javahl_SVNClient_properties__Ljava_lang_String_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Revision_2Lorg_apache_subversion_javahl_types_Depth_2Ljava_util_Collection_2Lorg_apache_subversion_javahl_callback_InheritedProplistCallback_2
+(JNIEnv *env, jobject jthis, jstring jpath, jobject jrevision,
+ jobject jpegRevision, jobject jdepth, jobject jchangelists,
+ jobject jproplistCallback)
+{
+  JNIEntry(SVNClient, properties);
+  SVNClient_properties(env, jthis, jpath, jrevision, jpegRevision, jdepth,
+                       jchangelists, jproplistCallback, true);
+}
+
+JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNClient_propertySetRemote
 (JNIEnv *env, jobject jthis, jstring jpath, jlong jbaseRev, jstring jname,
  jbyteArray jval, jobject jmessage, jboolean jforce, jobject jrevpropTable,

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictDescriptor.java Wed Mar  6 11:10:01 2013
@@ -244,11 +244,13 @@ public class ConflictDescriptor
 
         /**
          * Object is already added or schedule-add.
+         * @since 1.6
          */
         added,
 
         /**
          * Object is already replaced.
+         * @since 1.7
          */
         replaced,
 

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Wed Mar  6 11:10:01 2013
@@ -51,6 +51,12 @@ public interface ISVNClient
     public Version getVersion();
 
     /**
+     * @return Extended version information about the underlying
+     * native libraries and operating system.
+     */
+    public VersionExtended getVersionExtended(boolean verbose);
+
+    /**
      * @return The name of the working copy's administrative
      * directory, which is usually <code>.svn</code>.
      * @see <a
@@ -656,6 +662,23 @@ public interface ISVNClient
             throws ClientException;
 
     /**
+     * Retrieves the properties of an item, including inherited properties.
+     *
+     * @param path        the path of the item
+     * @param revision    the revision of the item
+     * @param pegRevision the revision to interpret path
+     * @param depth       the depth to recurse into subdirectories
+     * @param changelists changelists to filter by
+     * @param callback    the callback to use to return the properties
+     * @throws ClientException
+     * @since 1.8
+     */
+    void properties(String path, Revision revision, Revision pegRevision,
+                    Depth depth, Collection<String> changelists,
+                    InheritedProplistCallback callback)
+            throws ClientException;
+
+    /**
      * Sets one property of an item with a String value
      *
      * @param paths   paths of the items

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Wed Mar  6 11:10:01 2013
@@ -103,6 +103,8 @@ public class SVNClient implements ISVNCl
         return NativeResources.getVersion();
     }
 
+    public native VersionExtended getVersionExtended(boolean verbose);
+
     public native String getAdminDirectoryName();
 
     public native boolean isAdminDirectory(String name);
@@ -354,6 +356,12 @@ public class SVNClient implements ISVNCl
                                   ProplistCallback callback)
             throws ClientException;
 
+    public native void properties(String path, Revision revision,
+                                  Revision pegRevision, Depth depth,
+                                  Collection<String> changelists,
+                                  InheritedProplistCallback callback)
+            throws ClientException;
+
     public native void propertySetLocal(Set<String> paths, String name,
                                         byte[] value, Depth depth,
                                         Collection<String> changelists,

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/src/org/apache/subversion/javahl/callback/ProplistCallback.java Wed Mar  6 11:10:01 2013
@@ -33,7 +33,7 @@ import org.apache.subversion.javahl.ISVN
 public interface ProplistCallback
 {
     /**
-     * the method will be called for every line in a file.
+     * the method will be called once for every file.
      * @param path        the path.
      * @param properties  the properties on the path.
      */

Modified: subversion/branches/fsfs-format7/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Wed Mar  6 11:10:01 2013
@@ -131,6 +131,91 @@ public class BasicTests extends SVNTests
     }
 
     /**
+     * Test SVNClient.getVersionExtended().
+     * @throws Throwable
+     */
+    public void testVersionExtendedQuiet() throws Throwable
+    {
+        try
+        {
+            VersionExtended vx = client.getVersionExtended(false);
+            String result = vx.getBuildDate();
+            if (result == null || result.trim().length() == 0)
+                throw new Exception("Build date empty");
+            result = vx.getBuildTime();
+            if (result == null || result.trim().length() == 0)
+                throw new Exception("Build time empty");
+            result = vx.getBuildHost();
+            if (result == null || result.trim().length() == 0)
+                throw new Exception("Build host empty");
+            result = vx.getCopyright();
+            if (result == null || result.trim().length() == 0)
+                throw new Exception("Copyright empty");
+        }
+        catch (Exception e)
+        {
+            fail("VersionExtended should always be available unless the " +
+                 "native libraries failed to initialize: " + e);
+        }
+    }
+
+    /**
+     * Test SVNClient.getVersionExtended().
+     * @throws Throwable
+     */
+    public void testVersionExtendedVerbose() throws Throwable
+    {
+        try
+        {
+            VersionExtended vx = client.getVersionExtended(true);
+            String result = vx.getRuntimeHost();
+            if (result == null || result.trim().length() == 0)
+                throw new Exception("Runtime host empty");
+
+            // OS name is allowed to be null, but not empty
+            result = vx.getRuntimeOSName();
+            if (result != null && result.trim().length() == 0)
+                throw new Exception("Runtime OS name empty");
+
+            java.util.Iterator<VersionExtended.LinkedLib> ikl;
+            ikl = vx.getLinkedLibs();
+            if (ikl.hasNext())
+            {
+                VersionExtended.LinkedLib lib = ikl.next();
+                result = lib.getName();
+                if (result == null || result.trim().length() == 0)
+                    throw new Exception("Linked lib name empty");
+                result = lib.getCompiledVersion();
+                if (result == null || result.trim().length() == 0)
+                    throw new Exception("Linked lib compiled version empty");
+                // Runtime version is allowed to be null, but not empty
+                result = lib.getRuntimeVersion();
+                if (result != null && result.trim().length() == 0)
+                    throw new Exception("Linked lib runtime version empty");
+            }
+
+            java.util.Iterator<VersionExtended.LoadedLib> ill;
+            ill = vx.getLoadedLibs();
+            if (ill.hasNext())
+            {
+                VersionExtended.LoadedLib lib = ill.next();
+                result = lib.getName();
+                if (result == null || result.trim().length() == 0)
+                    throw new Exception("Loaded lib name empty");
+                // Version is allowed to be null, but not empty
+                result = lib.getVersion();
+                if (result != null && result.trim().length() == 0)
+                    throw new Exception("Loaded lib version empty");
+            }
+        }
+        catch (Exception e)
+        {
+            fail("VersionExtended should always be available unless the " +
+                 "native libraries failed to initialize: " + e);
+        }
+    }
+
+    /**
      * Test the JNIError class functionality
      * @throws Throwable
      */
@@ -711,6 +796,49 @@ public class BasicTests extends SVNTests
     }
 
     /**
+     * Test property inheritance.
+     * @throws Throwable
+     */
+    public void testInheritedProperties() throws Throwable
+    {
+        OneTest thisTest = new OneTest();
+        WC wc = thisTest.getWc();
+
+        String adirPath = fileToSVNPath(new File(thisTest.getWCPath(),
+                                                 "/A"),
+                                        false);
+        String alphaPath = fileToSVNPath(new File(thisTest.getWCPath(),
+                                                  "/A/B/E/alpha"),
+                                         false);
+
+        String propval = "ybg";
+        setprop(adirPath, "ahqrtz", propval.getBytes());
+
+        final Map<String, Collection<InheritedProplistCallback.InheritedItem>> ipropMaps =
+            new HashMap<String, Collection<InheritedProplistCallback.InheritedItem>>();
+
+        client.properties(alphaPath, null, null, Depth.empty, null,
+            new InheritedProplistCallback () {
+                public void singlePath(
+                    String path, Map<String, byte[]> props,
+                    Collection<InheritedProplistCallback.InheritedItem> iprops)
+                { ipropMaps.put(path, iprops); }
+            });
+        Collection<InheritedProplistCallback.InheritedItem> iprops = ipropMaps.get(alphaPath);
+        for (InheritedProplistCallback.InheritedItem item : iprops)
+        {
+            for (String key : item.properties.keySet())
+            {
+                assertEquals("ahqrtz", key);
+                assertEquals(propval, new String(item.properties.get(key)));
+            }
+        }
+
+        wc.setItemPropStatus("A", Status.Kind.modified);
+        thisTest.checkStatus();
+    }
+
+    /**
      * Test the basic SVNClient.update functionality.
      * @throws Throwable
      */

Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/INSTALL
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/INSTALL?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/INSTALL (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/INSTALL Wed Mar  6 11:10:01 2013
@@ -121,18 +121,18 @@ Step 3:  Install Specific Language Bindi
 
 *  Python
 
-   1.  Run 'make swig-py' from the top of the Subversion source tree,
+   1.  Run 'make swig-py' from the top of the Subversion build tree,
        to build the bindings.
 
        (This will invoke SWIG on the *.i files, resulting in a collection
        of .c source files.  It will then compile and link those .c files into
        Python libraries.)
 
-   2.  Run 'make check-swig-py' from the top of the Subversion source
+   2.  Run 'make check-swig-py' from the top of the Subversion build
        tree, to test the bindings 
 
    3.  Run 'make install-swig-py' (as root, typically)
-       from the top of the Subversion source tree.  This will copy
+       from the top of the Subversion build tree.  This will copy
        your new Python libraries into the appropriate system location.
 
        Note: If you don't have access to install to Python's site-packages
@@ -167,18 +167,18 @@ Step 3:  Install Specific Language Bindi
    is the same one that you configured SWIG to run against during the
    SWIG configure (see above).
 
-   1.  Run `make swig-pl' from the top of the Subversion source tree.
+   1.  Run `make swig-pl' from the top of the Subversion build tree.
 
-   2.  Run `make check-swig-pl' from the top of the Subversion source
+   2.  Run `make check-swig-pl' from the top of the Subversion build
        tree, to test the bindings 
 
    3.  to install run `make install-swig-pl' from the top of the
-       Subversion source tree.
+       Subversion build tree.
 
    If you need to pass extra parameters to Perl build process (Makefile.PL),
    then you need to do this process somewhat different:
 
-   1.  Run `make swig-pl-lib' from the top of the Subversion source tree.
+   1.  Run `make swig-pl-lib' from the top of the Subversion build tree.
 
    2.  Run `make install-swig-pl-lib'
 
@@ -195,14 +195,14 @@ Step 3:  Install Specific Language Bindi
 
 * Ruby
   
-   1. Run `make swig-rb' from the top of the Subversion source tree,
+   1. Run `make swig-rb' from the top of the Subversion build tree,
       to build the bindings.
 
-   2. Run `make check-swig-rb' from the top of the Subversion source
+   2. Run `make check-swig-rb' from the top of the Subversion build
       tree, to test the bindings.
 
    3. To install, run `make install-swig-rb' from the top of the 
-      Subversion source tree.
+      Subversion build tree.
 
    You can specify the ruby binary by passing RUBY=/path/to/ruby as part 
    of the configure command in the top level of the Subversion source 
@@ -332,13 +332,50 @@ BUILDING SWIG BINDINGS FOR SVN ON WINDOW
         copy Release\subversion\bindings\swig\perl\_Wc.dll %PERL_LIBS%\auto\SVN\_Wc
         copy Release\subversion\bindings\swig\perl\_Wc.pdb %PERL_LIBS%\auto\SVN\_Wc
 
-TESTING AND USING SWIG BINDINGS
+
+TESTING SWIG BINDINGS
 
 *  Python
 
    You can exercise the Python bindings test suite by running 'make
    check-swig-py' as described in the install section.
 
+*  Perl
+
+   The Perl bindings are using the standard module testing facilities
+   to do regression tests. Simply run 'make check-swig-pl' as described in 
+   the install section.
+
+*  Ruby
+
+   To test the Ruby bindings, simply run `make check-swig-rb' as described 
+   in the install section.
+
+
+USING SWIG BINDINGS
+
+*  Python
+
+   1. Ensure Python's module search path includes the 'lib/svn-python'
+      subdirectory of the Subversion installation directory.  For example,
+      include that directory in the 'PYTHONPATH' environment variable or
+      insert it into 'sys.path' at run time.
+
+   2. Import the required modules into your Python program.  For example:
+
+        import svn.client, svn.repos
+
+   3. The APIs available within each module are broadly the same as the
+      corresponding C APIs except:
+
+        * omit the module prefix (for example, 'svn_client_')
+        * pool arguments are optional
+        * using Python exceptions instead of returning svn_error_t
+        * returning a tuple of outputs instead of return-by-pointer
+        * do not pass a baton along with a callback function
+
+      See python/README for more details on these differences.
+
    For examples of how to use the Python bindings, check out the
    sample/demo programs found in tools/examples/ in the Subversion
    source code tree.  Additionally, there are several third-party
@@ -347,15 +384,10 @@ TESTING AND USING SWIG BINDINGS
 
 *  Perl
 
-   The Perl bindings are using the standard module testing facilities
-   to do regression tests. Simply run 'make check-swig-pl' as described in 
-   the install section.
+   ### TODO
 
-* Ruby
+*  Ruby
 
-   To test the Ruby bindings, simply run `make check-swig-rb' as described 
-   in the install section.
-   
    For examples of how to use the Ruby bindings, take a look at the .rb files
    in the following directory:
      subversion/bindings/swig/test

Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/include/svn_types.swg?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/include/svn_types.swg Wed Mar  6 11:10:01 2013
@@ -1169,8 +1169,7 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
 */
 #ifdef SWIGPERL
 %typemap(in) svn_opt_revision_t * (svn_opt_revision_t rev) {
-    $1 = &rev;
-    svn_swig_pl_set_revision(&rev, $input);
+    $1 = svn_swig_pl_set_revision(&rev, $input);
 }
 #endif
 

Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c Wed Mar  6 11:10:01 2013
@@ -315,12 +315,13 @@ SV *svn_swig_pl_revnums_to_list(const ap
 } 
 
 /* perl -> c svn_opt_revision_t conversion */
-void svn_swig_pl_set_revision(svn_opt_revision_t *rev, SV *source)
+svn_opt_revision_t *svn_swig_pl_set_revision(svn_opt_revision_t *rev, SV *source)
 {
     if (source == NULL || source == &PL_sv_undef || !SvOK(source)) {
         rev->kind = svn_opt_revision_unspecified;
     }
     else if (sv_isobject(source) && sv_derived_from(source, "_p_svn_opt_revision_t")) {
+        /* this will assign to rev */
         SWIG_ConvertPtr(source, (void **)&rev, _SWIG_TYPE("svn_opt_revision_t *"), 0);
     }
     else if (looks_like_number(source)) {
@@ -371,6 +372,8 @@ void svn_swig_pl_set_revision(svn_opt_re
               "a string (one of \"BASE\", \"HEAD\", \"WORKING\", "
               "\"COMMITTED\", \"PREV\" or a \"{DATE}\") "
               "or a _p_svn_opt_revision_t object");
+
+    return rev;
 }
 
 /* put the va_arg in stack and invoke caller_func with func.

Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h Wed Mar  6 11:10:01 2013
@@ -40,7 +40,6 @@
 #include "svn_delta.h"
 #include "svn_client.h"
 #include "svn_repos.h"
-#undef _
 #include "svn_private_config.h"
 
 #ifdef __cplusplus
@@ -107,7 +106,7 @@ SV *svn_swig_pl_convert_array(const apr_
 
 SV *svn_swig_pl_revnums_to_list(const apr_array_header_t *array);
 
-void svn_swig_pl_set_revision(svn_opt_revision_t *rev, SV *source);
+svn_opt_revision_t *svn_swig_pl_set_revision(svn_opt_revision_t *rev, SV *source);
 
 /* thunked log receiver function.  */
 svn_error_t * svn_swig_pl_thunk_log_receiver(void *py_receiver,

Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/perl/native/t/3client.t
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/perl/native/t/3client.t?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/perl/native/t/3client.t (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/perl/native/t/3client.t Wed Mar  6 11:10:01 2013
@@ -20,7 +20,7 @@
 #
 #
 
-use Test::More tests => 221;
+use Test::More tests => 223;
 use strict;
 
 # shut up about variables that are only used once.
@@ -388,6 +388,28 @@ is($ctx->log("$reposurl/dir1/new",$curre
    'log returns undef');
 
 # TEST
+my $opt_revision_head = SVN::_Core::new_svn_opt_revision_t();
+$opt_revision_head->kind($SVN::Core::opt_revision_head);
+is_deeply(get_log2($opt_revision_head),      # got
+          get_log2("HEAD"));                 # expected
+# TEST
+my $opt_revision_number = SVN::_Core::new_svn_opt_revision_t();
+$opt_revision_number->kind($SVN::Core::opt_revision_number);
+$opt_revision_number->value->number($current_rev);
+is_deeply(get_log2($opt_revision_number),    # got
+          get_log2($current_rev));           # expected
+
+sub get_log2 {
+    my ($rev) = @_;
+    my @log;
+    $ctx->log2($reposurl, $rev, $rev, 0, 0, 0, sub { 
+        my (undef, $revision, $author, $date, $msg, undef) = @_; 
+        push @log, [ $revision, $author, $date, $msg ];
+    });
+    return \@log;
+}
+
+# TEST
 is($ctx->update($wcpath,'HEAD',1),$current_rev,
    'Return from update is the current rev');
 

Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/perl/native/t/9wc.t
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/perl/native/t/9wc.t?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/perl/native/t/9wc.t (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/perl/native/t/9wc.t Wed Mar  6 11:10:01 2013
@@ -21,7 +21,8 @@
 #
 
 use strict;
-use Test::More tests => 13;
+use Test::More tests => 19;
+use Scalar::Util;
 
 # shut up about variables that are only used once.
 # these come from constants and variables used
@@ -33,9 +34,9 @@ use_ok('SVN::Core');
 # TEST
 use_ok('SVN::Wc');
 
-my $external_desc = <<END;
+my $external_desc = <<'END';
 http://svn.example.com/repos/project1 project1
-^/repos/project2 "Project 2"
+-r6 ^/repos/project2@3 "Project 2"
 END
 
 # Run parse_externals_description3()
@@ -53,17 +54,13 @@ is($externals->[0]->target_dir(), 'proje
 is($externals->[0]->url(), 'http://svn.example.com/repos/project1');
 # TEST
 isa_ok($externals->[0]->revision(), '_p_svn_opt_revision_t');
-# XTEST
-# This and the other similiarly commented out tests below are
-# not working right now.  Need to figure out why but when you try
-# to access the fields in the _p_svn_opt_revision_t type it
-# gets corrupted.
-#is($externals->[0]->revision->kind, $SVN::Core::opt_revision_head);
+# TEST
+is($externals->[0]->revision->kind, $SVN::Core::opt_revision_head);
 # TEST
 isa_ok($externals->[0]->peg_revision(), '_p_svn_opt_revision_t');
-# XTEST
-#is($externals->[0]->peg_revision()->kind(),
-#   $SVN::Core::opt_revision_head);
+# TEST
+is($externals->[0]->peg_revision()->kind(),
+   $SVN::Core::opt_revision_head);
 
 # Check the second member
 # TEST
@@ -74,11 +71,14 @@ is($externals->[1]->target_dir(), 'Proje
 is($externals->[1]->url(), '^/repos/project2');
 # TEST
 isa_ok($externals->[1]->revision(), '_p_svn_opt_revision_t');
-# XTEST
-#is($externals->[1]->revision()->kind(), $SVN::Core::opt_revision_head);
+# TEST
+is($externals->[1]->revision()->kind(), $SVN::Core::opt_revision_number);
+# TEST
+is($externals->[1]->revision()->value()->number(), 6);
 # TEST
 isa_ok($externals->[1]->peg_revision(), '_p_svn_opt_revision_t');
-# XTEST
-#is($externals->[1]->peg_revision()->kind(),
-#   $SVN::Core::opt_revision_head);
+# TEST
+is($externals->[1]->peg_revision()->kind(), $SVN::Core::opt_revision_number);
+# TEST
+is($externals->[1]->peg_revision()->value()->number(), 3);
 

Modified: subversion/branches/fsfs-format7/subversion/bindings/swig/python/README
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-format7/subversion/bindings/swig/python/README?rev=1453290&r1=1453289&r2=1453290&view=diff
==============================================================================
--- subversion/branches/fsfs-format7/subversion/bindings/swig/python/README (original)
+++ subversion/branches/fsfs-format7/subversion/bindings/swig/python/README Wed Mar  6 11:10:01 2013
@@ -13,30 +13,51 @@ TRANSLATING PARAMETER LISTS
        pointers with new data (you know, values that are returned to
        the caller, but not as "return values") will return those
        values directly in Python.  So:
-   
-          error = foo (object **returned_obj, int blah);
-   
+
+          object_t *returned_obj;
+          SVN_ERR(svn_client_foo(&returned_obj, blah));
+
+       becomes:
+
+          returned_obj = svn.client.foo(blah)
+
+       and:
+
+          err = svn_client_foo(&returned_obj, blah);
+          if (err && err->apr_err == SVN_ERR_...)
+            /* handle it */
+
        becomes:
    
           try:
-              returned_obj = foo (blah)
+              returned_obj = svn.client.foo(blah)
           except:
               # handle it
    
      - Callback function/baton pairs get reduced to just callback
        functions, and the benefit you get from batons is gotten
-       instead through Python default arguments:
-   
-          error = foo (callback_t function, void *baton);
-   
+       instead through defining the callback function locally and
+       passing the 'baton' data in through Python default arguments.  So:
+
+          struct baton_t { userdata1, ... };
+
+          svn_error_t *cb_func(cb_arg1, ..., void *baton)
+          {
+            baton_t *b = baton;
+            /* do stuff here with b->userdata1... etc. */
+          }
+
+          /* Now use it: */
+          {
+            baton_t *b = { whatever, ... };
+            error = svn_client_foo(cb_func, b);
+          }
+
        becomes:
-   
-          try:
-              def function(callback_arg1, ..., userdata1=whatever, ...):
-                  # do stuff here
-              foo(function)
-          except:
-              # handle it
+
+          def cb_func(cb_arg1, ..., userdata1=whatever, ...):
+              # do stuff here with userdata1 etc.
+          svn.client.foo(cb_func)
 
 
 RUNNING THE TESTS