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 2011/12/18 18:36:29 UTC

svn commit: r1220465 [1/13] - in /subversion/branches/file-handle-cache: ./ build/ build/ac-macros/ contrib/client-side/emacs/ contrib/server-side/mod_dontdothat/ notes/ subversion/bindings/javahl/tests/org/apache/subversion/javahl/ subversion/bindings...

Author: stefan2
Date: Sun Dec 18 17:36:24 2011
New Revision: 1220465

URL: http://svn.apache.org/viewvc?rev=1220465&view=rev
Log:
On the file-handle-cache branch: bring up-to-date with /trunk.

Added:
    subversion/branches/file-handle-cache/tools/server-side/mod_dontdothat/   (props changed)
      - copied from r1215460, subversion/trunk/tools/server-side/mod_dontdothat/
Removed:
    subversion/branches/file-handle-cache/contrib/server-side/mod_dontdothat/
    subversion/branches/file-handle-cache/subversion/tests/libsvn_delta/editor-test.c
Modified:
    subversion/branches/file-handle-cache/   (props changed)
    subversion/branches/file-handle-cache/CHANGES
    subversion/branches/file-handle-cache/Makefile.in
    subversion/branches/file-handle-cache/build.conf
    subversion/branches/file-handle-cache/build/ac-macros/sqlite.m4
    subversion/branches/file-handle-cache/build/getversion.py
    subversion/branches/file-handle-cache/configure.ac
    subversion/branches/file-handle-cache/contrib/client-side/emacs/dsvn.el
    subversion/branches/file-handle-cache/contrib/client-side/emacs/vc-svn.el
    subversion/branches/file-handle-cache/notes/editor-v2.txt
    subversion/branches/file-handle-cache/notes/knobs
    subversion/branches/file-handle-cache/notes/repos-dictated-config
    subversion/branches/file-handle-cache/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
    subversion/branches/file-handle-cache/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
    subversion/branches/file-handle-cache/subversion/include/private/svn_cache.h
    subversion/branches/file-handle-cache/subversion/include/private/svn_client_private.h
    subversion/branches/file-handle-cache/subversion/include/private/svn_debug.h
    subversion/branches/file-handle-cache/subversion/include/private/svn_dep_compat.h
    subversion/branches/file-handle-cache/subversion/include/private/svn_mergeinfo_private.h
    subversion/branches/file-handle-cache/subversion/include/private/svn_mutex.h
    subversion/branches/file-handle-cache/subversion/include/private/svn_opt_private.h
    subversion/branches/file-handle-cache/subversion/include/private/svn_ra_private.h
    subversion/branches/file-handle-cache/subversion/include/private/svn_wc_private.h
    subversion/branches/file-handle-cache/subversion/include/svn_client.h
    subversion/branches/file-handle-cache/subversion/include/svn_delta.h
    subversion/branches/file-handle-cache/subversion/include/svn_dirent_uri.h
    subversion/branches/file-handle-cache/subversion/include/svn_editor.h
    subversion/branches/file-handle-cache/subversion/include/svn_fs.h
    subversion/branches/file-handle-cache/subversion/include/svn_ra.h
    subversion/branches/file-handle-cache/subversion/include/svn_repos.h
    subversion/branches/file-handle-cache/subversion/include/svn_wc.h
    subversion/branches/file-handle-cache/subversion/libsvn_client/add.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/cleanup.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/client.h
    subversion/branches/file-handle-cache/subversion/libsvn_client/commit.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/commit_util.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/copy.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/delete.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/deprecated.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/diff.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/externals.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/info.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/list.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/log.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/merge.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/mergeinfo.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/mergeinfo.h
    subversion/branches/file-handle-cache/subversion/libsvn_client/patch.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/prop_commands.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/ra.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/switch.c
    subversion/branches/file-handle-cache/subversion/libsvn_client/util.c
    subversion/branches/file-handle-cache/subversion/libsvn_delta/compat.c
    subversion/branches/file-handle-cache/subversion/libsvn_delta/editor.c
    subversion/branches/file-handle-cache/subversion/libsvn_diff/diff_file.c
    subversion/branches/file-handle-cache/subversion/libsvn_diff/parse-diff.c
    subversion/branches/file-handle-cache/subversion/libsvn_fs/fs-loader.c
    subversion/branches/file-handle-cache/subversion/libsvn_fs/fs-loader.h
    subversion/branches/file-handle-cache/subversion/libsvn_fs_base/bdb/locks-table.c
    subversion/branches/file-handle-cache/subversion/libsvn_fs_base/fs.c
    subversion/branches/file-handle-cache/subversion/libsvn_fs_base/reps-strings.c
    subversion/branches/file-handle-cache/subversion/libsvn_fs_fs/caching.c
    subversion/branches/file-handle-cache/subversion/libsvn_fs_fs/dag.c
    subversion/branches/file-handle-cache/subversion/libsvn_fs_fs/fs.c
    subversion/branches/file-handle-cache/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/file-handle-cache/subversion/libsvn_fs_fs/fs_fs.h
    subversion/branches/file-handle-cache/subversion/libsvn_fs_fs/rep-cache-db.sql
    subversion/branches/file-handle-cache/subversion/libsvn_fs_fs/rep-cache.c
    subversion/branches/file-handle-cache/subversion/libsvn_fs_fs/rep-cache.h
    subversion/branches/file-handle-cache/subversion/libsvn_ra/ra_loader.c
    subversion/branches/file-handle-cache/subversion/libsvn_ra_local/ra_plugin.c
    subversion/branches/file-handle-cache/subversion/libsvn_ra_neon/commit.c
    subversion/branches/file-handle-cache/subversion/libsvn_ra_neon/log.c
    subversion/branches/file-handle-cache/subversion/libsvn_ra_serf/log.c
    subversion/branches/file-handle-cache/subversion/libsvn_ra_svn/client.c
    subversion/branches/file-handle-cache/subversion/libsvn_repos/authz.c
    subversion/branches/file-handle-cache/subversion/libsvn_repos/commit.c
    subversion/branches/file-handle-cache/subversion/libsvn_repos/dump.c
    subversion/branches/file-handle-cache/subversion/libsvn_repos/load-fs-vtable.c
    subversion/branches/file-handle-cache/subversion/libsvn_repos/repos.c
    subversion/branches/file-handle-cache/subversion/libsvn_subr/cache-membuffer.c
    subversion/branches/file-handle-cache/subversion/libsvn_subr/config.c
    subversion/branches/file-handle-cache/subversion/libsvn_subr/debug.c
    subversion/branches/file-handle-cache/subversion/libsvn_subr/dirent_uri.c
    subversion/branches/file-handle-cache/subversion/libsvn_subr/io.c
    subversion/branches/file-handle-cache/subversion/libsvn_subr/mergeinfo.c
    subversion/branches/file-handle-cache/subversion/libsvn_subr/opt.c
    subversion/branches/file-handle-cache/subversion/libsvn_subr/sqlite.c
    subversion/branches/file-handle-cache/subversion/libsvn_subr/svn_mutex.c
    subversion/branches/file-handle-cache/subversion/libsvn_subr/target.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/adm_files.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/adm_ops.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/copy.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/entries.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/externals.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/node.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/questions.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/status.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/update_editor.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/upgrade.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/util.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/wc-metadata.sql
    subversion/branches/file-handle-cache/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/file-handle-cache/subversion/libsvn_wc/wc.h
    subversion/branches/file-handle-cache/subversion/libsvn_wc/wc_db.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/wc_db.h
    subversion/branches/file-handle-cache/subversion/libsvn_wc/wc_db_pristine.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/wc_db_wcroot.c
    subversion/branches/file-handle-cache/subversion/libsvn_wc/workqueue.c
    subversion/branches/file-handle-cache/subversion/mod_dav_svn/mod_dav_svn.c
    subversion/branches/file-handle-cache/subversion/mod_dav_svn/reports/log.c
    subversion/branches/file-handle-cache/subversion/mod_dav_svn/repos.c
    subversion/branches/file-handle-cache/subversion/po/de.po
    subversion/branches/file-handle-cache/subversion/svn/cl.h
    subversion/branches/file-handle-cache/subversion/svn/commit-cmd.c
    subversion/branches/file-handle-cache/subversion/svn/copy-cmd.c
    subversion/branches/file-handle-cache/subversion/svn/delete-cmd.c
    subversion/branches/file-handle-cache/subversion/svn/import-cmd.c
    subversion/branches/file-handle-cache/subversion/svn/log-cmd.c
    subversion/branches/file-handle-cache/subversion/svn/main.c
    subversion/branches/file-handle-cache/subversion/svn/merge-cmd.c
    subversion/branches/file-handle-cache/subversion/svn/mergeinfo-cmd.c
    subversion/branches/file-handle-cache/subversion/svn/mkdir-cmd.c
    subversion/branches/file-handle-cache/subversion/svn/move-cmd.c
    subversion/branches/file-handle-cache/subversion/svn/notify.c
    subversion/branches/file-handle-cache/subversion/svn/propedit-cmd.c
    subversion/branches/file-handle-cache/subversion/svn/relocate-cmd.c
    subversion/branches/file-handle-cache/subversion/svn/status-cmd.c
    subversion/branches/file-handle-cache/subversion/svn/status.c
    subversion/branches/file-handle-cache/subversion/svn/util.c
    subversion/branches/file-handle-cache/subversion/svnadmin/main.c
    subversion/branches/file-handle-cache/subversion/svnlook/main.c
    subversion/branches/file-handle-cache/subversion/svnserve/serve.c
    subversion/branches/file-handle-cache/subversion/svnsync/main.c
    subversion/branches/file-handle-cache/subversion/svnsync/sync.c
    subversion/branches/file-handle-cache/subversion/tests/cmdline/basic_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/commit_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/copy_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/dav-mirror-autocheck.sh
    subversion/branches/file-handle-cache/subversion/tests/cmdline/davautocheck.sh
    subversion/branches/file-handle-cache/subversion/tests/cmdline/depth_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/diff_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/externals_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
    subversion/branches/file-handle-cache/subversion/tests/cmdline/input_validation_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/log_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/merge_authz_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/merge_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/merge_tree_conflict_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/mergeinfo_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/patch_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/prop_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/resolve_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/special_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/stat_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/svntest/actions.py
    subversion/branches/file-handle-cache/subversion/tests/cmdline/svntest/main.py
    subversion/branches/file-handle-cache/subversion/tests/libsvn_client/client-test.c
    subversion/branches/file-handle-cache/subversion/tests/libsvn_diff/parse-diff-test.c
    subversion/branches/file-handle-cache/subversion/tests/libsvn_fs/locks-test.c
    subversion/branches/file-handle-cache/subversion/tests/libsvn_repos/repos-test.c
    subversion/branches/file-handle-cache/subversion/tests/libsvn_subr/cache-test.c
    subversion/branches/file-handle-cache/subversion/tests/libsvn_subr/config-test.c
    subversion/branches/file-handle-cache/subversion/tests/libsvn_subr/config-test.cfg
    subversion/branches/file-handle-cache/subversion/tests/libsvn_subr/dirent_uri-test.c
    subversion/branches/file-handle-cache/subversion/tests/libsvn_wc/   (props changed)
    subversion/branches/file-handle-cache/subversion/tests/libsvn_wc/db-test.c
    subversion/branches/file-handle-cache/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/file-handle-cache/tools/client-side/svnmucc/svnmucc.c
    subversion/branches/file-handle-cache/tools/dev/benchmarks/suite1/cronjob
    subversion/branches/file-handle-cache/tools/dev/benchmarks/suite1/run
    subversion/branches/file-handle-cache/tools/dev/unix-build/Makefile.svn
    subversion/branches/file-handle-cache/tools/dist/backport.pl
    subversion/branches/file-handle-cache/tools/dist/dist.sh
    subversion/branches/file-handle-cache/tools/server-side/svnauthz-validate.c
    subversion/branches/file-handle-cache/tools/server-side/svnpredumpfilter.py

Propchange: subversion/branches/file-handle-cache/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Dec 18 17:36:24 2011
@@ -57,3 +57,4 @@
 /subversion/branches/tree-conflicts:868291-873154
 /subversion/branches/tree-conflicts-notify:873926-874008
 /subversion/branches/uris-as-urls:1060426-1064427
+/subversion/trunk:1195467-1215460

Modified: subversion/branches/file-handle-cache/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/CHANGES?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/CHANGES (original)
+++ subversion/branches/file-handle-cache/CHANGES Sun Dec 18 17:36:24 2011
@@ -4,13 +4,15 @@ http://svn.apache.org/repos/asf/subversi
 
  User-visible changes:
   - General:
-    *
+    * remove extraneous externals output from 'svn status -q' (issue #1935)
 
   - Major new features:
     *
 
   - Minor new features and improvements:
     * new 'svnadmin load --revision' load filtering support (issue #3734)
+    * new 'commit --include-externals' option (related to issues #1167, #3563)
+    * new 'svnadmin hotcopy --incremental' support for FSFS (issue #3815)
 
   - Client-side bugfixes:
     *
@@ -31,6 +33,44 @@ http://svn.apache.org/repos/asf/subversi
   - Bindings:
     *
 
+
+Version 1.7.2
+(02 Dec 2011, from /branches/1.7.x)
+http://svn.apache.org/repos/asf/subversion/tags/1.7.2
+
+  User-visible changes:
+   * fix working copy corruption after interrupted update/switch (issue #4040)
+   * avoid segfaults against pre-1.5 servers (r1186928)
+   * improve configure error message if apr-util uses old or no bdb (r1186784)
+   * make 'svn patch' ignore '/dev/null' targets for compat with git (r1197998)
+   * fix 'svn patch' segfault on patch that skips and deletes files (r1199950)
+   * omit "Committed revision N." output from 'svn commit --quiet' (r1200837)
+   * fix authz denial when svnserve root is a repository (issue #4060)
+   * fix uninitialized memory read in client diff code (r1201002)
+   * avoid potential segfault during merges (r1202807)
+   * fix an assertion failure when a symlink is updated (r1186944, -81, -83)
+   * make working copy operations fail if nodes have no base checksum (r1202630)
+   * fix nested <Location>s when using v2 protocol (r1203546, -651, -653)
+   * make mod_dav_svn ignore non-Subversion POST requests (r1187695)
+   * avoid reading freed memory (r1204478)
+   * recognize empty (only byte order mark) UTF-8 files as text (issue #4064)
+   * fix 1.7 client regression when operating against a 1.0.x server (r1199876)
+   * remove empty parent dirs of removed externals on update (issue #4044)
+   * make 'svn diff -c N' work for files added in rN (issue #2873)
+   * plug a memory leak in the bdb backend (r1205726)
+   * fix 'svn import' with native eol-style and inconsistent EOLs (r1205193)
+   * fix reading beyond the end of a string in bdb backend (r1205839, -48)
+   * don't assert when committing an incomplete directory (issue #4042)
+
+  Developer-visible changes:
+   * JavaHL: allow 'status -u' to function properly (r1189190, -395)
+   * don't put '\r' characters in our generate sql headers (r1189580)
+   * properly define WIN64 on Windows x64 builds (r1188609)
+   * better adherence to C89 in enum definitions (r1189665)
+   * bump copyright year in Windows DLLs (r1189261)
+   * log a better error when opening rep-cache.db fails (r1204610, -73)
+
+
 Version 1.7.1
 (24 Oct 2011, from /branches/1.7.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.7.1
@@ -295,10 +335,10 @@ http://svn.apache.org/repos/asf/subversi
     * fix 'log -g' excessive duplicate output (issue #3650)
     * fix svnsync copyfrom handling bug with BDB (r1036429)
     * server-side validation of svn:mergeinfo syntax during commit (issue #3895)
-    * fix remotely triggerable mod_dav_svn DoS
+    * fix remotely triggerable mod_dav_svn DoS (r1130303)
             See CVE-2011-1783, and descriptive advisory at
             http://subversion.apache.org/security/CVE-2011-1783-advisory.txt
-    * fix potential leak of authz-protected file contents
+    * fix potential leak of authz-protected file contents (r1130303)
             See CVE-2011-1921, and descriptive advisory at
             http://subversion.apache.org/security/CVE-2011-1921-advisory.txt
 

Modified: subversion/branches/file-handle-cache/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/Makefile.in?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/Makefile.in (original)
+++ subversion/branches/file-handle-cache/Makefile.in Sun Dec 18 17:36:24 2011
@@ -99,6 +99,10 @@ javahl_libdir = @libdir@
 javahl_test_rootdir=$(abs_builddir)/subversion/bindings/javahl/test-work
 javahl_test_srcdir=$(abs_srcdir)/subversion/bindings/javahl
 
+gnome_auth_dir = $(abs_builddir)/subversion/libsvn_auth_gnome_keyring/.libs
+kwallet_auth_dir = $(abs_builddir)/subversion/libsvn_auth_kwallet/.libs
+auth_plugin_dirs = $(gnome_auth_dir):$(kwallet_auth_dir)
+
 MSGFMT = @MSGFMT@
 MSGFMTFLAGS = @MSGFMTFLAGS@
 MSGMERGE = @MSGMERGE@
@@ -484,6 +488,7 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $
 	    flags="--list --milestone-filter=$(MILESTONE_FILTER)             \
 		   --mode-filter=$(MODE_FILTER) --log-to-stdout $$flags";    \
 	  fi;                                                                \
+	  LD_LIBRARY_PATH='$(auth_plugin_dirs):$(LD_LIBRARY_PATH)'           \
 	  $(PYTHON) $(top_srcdir)/build/run_tests.py                         \
 	            --config-file $(top_srcdir)/subversion/tests/tests.conf  \
 	            $$flags                                                  \

Modified: subversion/branches/file-handle-cache/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/build.conf?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/build.conf (original)
+++ subversion/branches/file-handle-cache/build.conf Sun Dec 18 17:36:24 2011
@@ -363,6 +363,15 @@ libs = libsvn_repos libsvn_subr
 install = apache-mod
 msvc-libs = libhttpd.lib
 
+[mod_dontdothat]
+description = Apache Httpd module to block certain kinds of Apache Subversion requests
+type = apache-mod
+path = tools/server-side/mod_dontdothat
+nonlibs = mod_dav_svn apr aprutil
+libs = libsvn_subr
+install = apache-mod
+msvc-libs = libhttpd.lib
+
 # ----------------------------------------------------------------------------
 #
 # CONSTRUCTED HEADERS
@@ -875,14 +884,6 @@ sources = random-test.c
 install = test
 libs = libsvn_test libsvn_delta libsvn_subr apriconv apr
 
-[editor-test]
-description = Test the editor v2 interface
-type = exe
-path = subversion/tests/libsvn_delta
-sources = editor-test.c
-install = test
-libs = libsvn_repos libsvn_fs libsvn_test libsvn_delta libsvn_subr apriconv apr
-
 [window-test]
 description = Test delta window generation
 type = exe
@@ -1122,7 +1123,7 @@ type = project
 path = build/win32
 libs = svn svnadmin svndumpfilter svnlook svnmucc svnserve svnrdump svnsync
        svnversion
-       mod_authz_svn mod_dav_svn
+       mod_authz_svn mod_dav_svn mod_dontdothat
        svnauthz-validate svnraisetreeconflict
 
 [__ALL_TESTS__]
@@ -1133,7 +1134,7 @@ libs = __ALL__
        strings-reps-test changes-test locks-test repos-test
        checksum-test compat-test config-test hashdump-test mergeinfo-test
        opt-test path-test stream-test string-test time-test utf-test
-       target-test error-test cache-test editor-test spillbuf-test
+       target-test error-test cache-test spillbuf-test
        revision-test
        subst_translate-test
        translate-test

Modified: subversion/branches/file-handle-cache/build/ac-macros/sqlite.m4
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/build/ac-macros/sqlite.m4?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/build/ac-macros/sqlite.m4 (original)
+++ subversion/branches/file-handle-cache/build/ac-macros/sqlite.m4 Sun Dec 18 17:36:24 2011
@@ -106,7 +106,7 @@ AC_DEFUN(SVN_SQLITE_PKG_CONFIG,
       sqlite_version=`$PKG_CONFIG $SQLITE_PKGNAME --modversion --silence-errors`
 
       if test -n "$sqlite_version"; then
-        SVN_SQLITE_VERNUM_PARSE
+        SVN_SQLITE_VERNUM_PARSE([$sqlite_version], [sqlite_ver_num])
 
         if test "$sqlite_ver_num" -ge "$sqlite_min_ver_num"; then
           AC_MSG_RESULT([$sqlite_version])
@@ -198,20 +198,22 @@ SQLITE_VERSION_OKAY
   fi
 ])
 
-dnl SVN_SQLITE_VERNUM_PARSE()
+dnl SVN_SQLITE_VERNUM_PARSE(version_string, result_var)
 dnl
-dnl Parse a x.y[.z] version string sqlite_version into a number sqlite_ver_num.
+dnl Parse a x.y[.z] version string version_string into a number result_var.
 AC_DEFUN(SVN_SQLITE_VERNUM_PARSE,
 [
-  sqlite_major=`expr $sqlite_version : '\([[0-9]]*\)'`
-  sqlite_minor=`expr $sqlite_version : '[[0-9]]*\.\([[0-9]]*\)'`
-  sqlite_micro=`expr $sqlite_version : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
-  if test -z "$sqlite_micro"; then
-    sqlite_micro=0
+  version_string="$1"
+  
+  major=`expr $version_string : '\([[0-9]]*\)'`
+  minor=`expr $version_string : '[[0-9]]*\.\([[0-9]]*\)'`
+  micro=`expr $version_string : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
+  if test -z "$micro"; then
+    micro=0
   fi
-  sqlite_ver_num=`expr $sqlite_major \* 1000000 \
-                    \+ $sqlite_minor \* 1000 \
-                    \+ $sqlite_micro`
+  $2=`expr $major \* 1000000 \
+        \+ $minor \* 1000 \
+        \+ $micro`
 ])
 
 dnl SVN_SQLITE_MIN_VERNUM_PARSE()
@@ -220,12 +222,7 @@ dnl Parse a x.y.z version string SQLITE_
 dnl sqlite_min_ver_num.
 AC_DEFUN(SVN_SQLITE_MIN_VERNUM_PARSE,
 [
-  sqlite_min_major=`expr $SQLITE_MINIMUM_VER : '\([[0-9]]*\)'`
-  sqlite_min_minor=`expr $SQLITE_MINIMUM_VER : '[[0-9]]*\.\([[0-9]]*\)'`
-  sqlite_min_micro=`expr $SQLITE_MINIMUM_VER : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
-  sqlite_min_ver_num=`expr $sqlite_min_major \* 1000000 \
-                        \+ $sqlite_min_minor \* 1000 \
-                        \+ $sqlite_min_micro`
+  SVN_SQLITE_VERNUM_PARSE([$SQLITE_MINIMUM_VER], [sqlite_min_ver_num])
 ])
 
 dnl SVN_DOWNLOAD_SQLITE()

Modified: subversion/branches/file-handle-cache/build/getversion.py
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/build/getversion.py?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/build/getversion.py (original)
+++ subversion/branches/file-handle-cache/build/getversion.py Sun Dec 18 17:36:24 2011
@@ -85,7 +85,7 @@ def sqlite_extractor(parser, include_fil
 
 extractors = {
   'SVN' : svn_extractor,
-  'SQLITE' : sqlite_extractor,
+  # 'SQLITE' : sqlite_extractor, # not used
   }
 
 def usage_and_exit(msg):

Modified: subversion/branches/file-handle-cache/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/configure.ac?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/configure.ac (original)
+++ subversion/branches/file-handle-cache/configure.ac Sun Dec 18 17:36:24 2011
@@ -172,6 +172,18 @@ SQLITE_URL="http://www.sqlite.org/sqlite
 SVN_LIB_SQLITE(${SQLITE_MINIMUM_VER}, ${SQLITE_RECOMMENDED_VER},
                ${SQLITE_URL})
 
+AC_ARG_ENABLE(sqlite-compatibility-version,
+  AS_HELP_STRING([--enable-sqlite-compatibility-version=X.Y.Z],
+                 [Allow binary to run against SQLite as old as ARG]),
+  [sqlite_compat_ver=$enableval],[sqlite_compat_ver=no])
+
+if test -n "$sqlite_compat_ver" && test "$sqlite_compat_ver" != no; then
+  SVN_SQLITE_VERNUM_PARSE([$sqlite_compat_ver],
+                          [sqlite_compat_ver_num])
+  CFLAGS="-DSVN_SQLITE_MIN_VERSION='\"$sqlite_compat_ver\"' $CFLAGS"
+  CFLAGS="-DSVN_SQLITE_MIN_VERSION_NUMBER=$sqlite_compat_ver_num $CFLAGS"
+fi
+
 dnl Set up a number of directories ---------------------
 
 dnl Create SVN_BINDIR for proper substitution

Modified: subversion/branches/file-handle-cache/contrib/client-side/emacs/dsvn.el
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/contrib/client-side/emacs/dsvn.el?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/contrib/client-side/emacs/dsvn.el (original)
+++ subversion/branches/file-handle-cache/contrib/client-side/emacs/dsvn.el Sun Dec 18 17:36:24 2011
@@ -130,12 +130,19 @@
   :type 'boolean
   :group 'dsvn)
 
+;; start-file-process and process-file are needed for tramp but only appeared
+;; in Emacs 23 and 22 respectively.
+(setq svn-start-file-process
+  (if (fboundp 'start-file-process) 'start-file-process 'start-process))
+(setq svn-process-file
+  (if (fboundp 'process-file) 'process-file 'call-process))
+
 (defun svn-call-process (program buffer &rest args)
   "Run svn and wait for it to finish.
 Argument PROGRAM is the svn binary to run.
 Argument BUFFER is the buffer in which to insert output.
 Optional argument ARGS are the arguments to svn."
-  (let ((proc (apply 'start-process "svn" buffer program args)))
+  (let ((proc (apply svn-start-file-process "svn" buffer program args)))
     (set-process-coding-system proc 'utf-8)
     (set-process-filter proc 'svn-output-filter)
     (while (eq (process-status proc) 'run)
@@ -161,7 +168,7 @@ Return non-NIL if there was any output."
       (setq buffer-read-only t)
       (let ((cmd `(,svn-program ,subcommand ,@args))
             proc)
-        (setq proc (apply 'start-process "svn" buf cmd))
+        (setq proc (apply svn-start-file-process "svn" buf cmd))
         (set-process-coding-system proc 'utf-8)
         (set-process-filter proc 'svn-output-filter)
         (while (eq (process-status proc) 'run)
@@ -184,7 +191,7 @@ Returns the buffer that holds the output
     (with-current-buffer buf
       (erase-buffer)
       (setq default-directory dir))
-    (apply 'call-process svn-program nil buf nil (symbol-name command) args)
+    (apply svn-process-file svn-program nil buf nil (symbol-name command) args)
     buf))
 
 (defun svn-run-for-stdout (command args)
@@ -192,7 +199,7 @@ Returns the buffer that holds the output
 Argument COMMAND is the svn subcommand to run.
 Optional argument ARGS is a list of arguments."
   (let ((output-buffer (generate-new-buffer "*svn-stdout*")))
-    (apply 'call-process svn-program nil (list output-buffer nil) nil
+    (apply svn-process-file svn-program nil (list output-buffer nil) nil
 	   (symbol-name command) args)
     (let ((stdout (with-current-buffer output-buffer (buffer-string))))
       (kill-buffer output-buffer)
@@ -255,7 +262,7 @@ buffer to describe what is going on."
             args (cons "-v" args)))
     (unless (memq command svn-noninteractive-blacklist)
       (setq args (cons "--non-interactive" args)))
-    (setq proc (apply 'start-process "svn" (current-buffer)
+    (setq proc (apply svn-start-file-process "svn" (current-buffer)
                       svn-program command-s args))
     (if (fboundp filter-func)
         (set-process-filter proc filter-func)
@@ -1154,7 +1161,8 @@ With prefix arg, prompt for REVISION."
     (?D . "Deleted")
     (?U . "Updated")
     (?G . "Merged")
-    (?C . "Conflict")))
+    (?C . "Conflict")
+    (?E . "Existed")))
 
 (defvar svn-merging nil)
 
@@ -1182,7 +1190,7 @@ With prefix arg, prompt for REVISION."
       (goto-char svn-output-marker)
       (while (not nomore)
         (cond ((looking-at
-                "\\([ ADUCG][ ADUCG][ B]\\)  \\(.*\\)\n")
+                "\\([ ADUCGE][ ADUCGE][ B]\\)  \\(.*\\)\n")
                (let* ((status (match-string 1))
                       (file-status (elt status 0))
                       (prop-status (elt status 1))

Modified: subversion/branches/file-handle-cache/contrib/client-side/emacs/vc-svn.el
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/contrib/client-side/emacs/vc-svn.el?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/contrib/client-side/emacs/vc-svn.el (original)
+++ subversion/branches/file-handle-cache/contrib/client-side/emacs/vc-svn.el Sun Dec 18 17:36:24 2011
@@ -3,18 +3,28 @@
 
 ;;; #########################################################################
 ;;; ##                                                                     ##
-;;; ##          NOTE: THIS IS NOT THE MASTER VERSION OF VC-SVN.EL          ##
+;;; ##                NOTE: THIS FILE IS ONLY FOR EMACS 21                 ##
 ;;; ##                                                                     ##
-;;; ## The canonical vc-svn.el now lives in the FSF Emacs tree, at         ##
-;;; ## http://savannah.gnu.org/cgi-bin/viewcvs/emacs/emacs/lisp/vc-svn.el. ##
-;;; ## The version here is maintained only because it is compatible with   ##
-;;; ## older releases of Emacs, since (as of this writing) the one in the  ##
-;;; ## FSF tree hasn't made it into an official release of Emacs yet.      ##
-;;; ## Eventually it will, though, and sometime after that the version     ##
-;;; ## here will go away.                                                  ##
+;;; ## Emacs 21 does not come with a working vc-mode for Subversion, and   ##
+;;; ## in particular, dsvn.el needs one. This file is provided for those   ##
+;;; ## who use that Emacs version.					   ##
 ;;; ##                                                                     ##
+;;; ## Emacs 22 and newer versions come with a Subversion-capable vc-mode  ##
+;;; ## and should not use this file.					   ##
+;;; ##									   ##
+;;; ## This file is a mild fork of vc-svn.el from the Emacs source tree.   ##
+;;; ## It may go away at some undetermined point in the future, when	   ##
+;;; ## support of Emacs 21 becomes completely irrelevant.		   ##
+;;; ## 									   ##
+;;; ## Maintenance of the vc-mode for Subversion should be done first and  ##
+;;; ## foremost in the Emacs tree, and changes done to this file only	   ##
+;;; ## when necessary.							   ##
+;;; ## 									   ##
 ;;; #########################################################################
 
+(if (> emacs-major-version 21)
+    (error "This file should only be used by Emacs versions 21 and earlier"))
+
 ;;; Writing this back end has shown up some problems in VC: bugs,
 ;;; shortcomings in the back end interface, and so on.  But I want to
 ;;; first produce code that Subversion users can use with an already

Modified: subversion/branches/file-handle-cache/notes/editor-v2.txt
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/notes/editor-v2.txt?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/notes/editor-v2.txt (original)
+++ subversion/branches/file-handle-cache/notes/editor-v2.txt Sun Dec 18 17:36:24 2011
@@ -1,3 +1,11 @@
+###
+###
+### THIS FILE IS HISTORICAL ONLY. FOR CURRENT INFORMATION, PLEASE SEE:
+###     include/svn_editor.h
+###
+###
+
+
 NOTES on a revamped editor interface
 
 -- all paths are relpaths

Modified: subversion/branches/file-handle-cache/notes/knobs
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/notes/knobs?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/notes/knobs (original)
+++ subversion/branches/file-handle-cache/notes/knobs Sun Dec 18 17:36:24 2011
@@ -44,6 +44,8 @@ SVN_MERGE__ALLOW_ALL_FORWARD_MERGES_FROM
 SVN_USE_WIN32_CRASHHANDLER
 SVN_DAV_SEND_VTXN_NAME
 SVN_DISABLE_PREFIX_SUFFIX_SCANNING
+SVN_SQLITE_MIN_VERSION_NUMBER
+SVN_SQLITE_MIN_VERSION
 
 2.3 Debugging Support
 
@@ -205,6 +207,24 @@ SVN_I_LIKE_LATENCY_SO_IGNORE_HTTPV2
   Default:   not defined
   Suggested: not defined
 
+4.8 SVN_SQLITE_MIN_VERSION_NUMBER
+
+  Scope:     libsvn_subr
+  Purpose:   The minimum SQLite version to have run-time support for.
+  Range:     SQLite version numbers, as packed integers
+  Default:   SQLITE_VERSION_NUMBER (i.e., the compile-time-sqlite version)
+  Suggested: not defined (to use default)
+
+4.9 SVN_SQLITE_MIN_VERSION
+
+  Scope:     libsvn_subr
+  Purpose:   See SVN_SQLITE_MIN_VERSION_NUMBER.  The two must be overridden
+             (or not overridden) together; defining one but leaving the other
+             at its default will cause undefined behaviour.
+  Range:     SQLite versions, as string literals
+  Default:   SQLITE_VERSION
+  Suggested: not defined (to use default)
+
 
 5 Defines controling debug support
 ==================================

Modified: subversion/branches/file-handle-cache/notes/repos-dictated-config
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/notes/repos-dictated-config?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/notes/repos-dictated-config (original)
+++ subversion/branches/file-handle-cache/notes/repos-dictated-config Sun Dec 18 17:36:24 2011
@@ -1,58 +1,2 @@
-Some thoughts on repository-dictated configuration
-
-Introduction
-============
-Many software development shops of non-trivial size desire to have an enforce
-a uniform configuration environment among the various clients which commit
-to their repositories.  Although these shops my have the ability to control
-the environment on the client machines (dictating software versions, etc),
-relying up on the client for setting various configuration parameters can
-be time-consuming and problematic.
-
-Subversion already provides the means of enforcing much (but not all) of this
-configuration through the hook script mechanism.  What our users desire is
-some way of having the server dictate a default or recommended configuration
-to clients.  The parameters of interest typically come from the standard
-client-side config: things like global-excludes or auto-props.  Allowing the
-administrator to store a default config on the server, which then gets pushed
-to the clients, would save both time and frustration.
-
-
-Behavioral specification
-========================
-The high-level behavior for repository-dictated configuration is relatively
-simple: the repository maintains a list of configuration parameters and
-values, and upon request, provides these to the client who then applies them
-appropriately.
-
-It should be noted that the configuration the server dictates is only a
-*suggestion* to the client.  Clients may choose to override the suggestion
-with a configuration of their own, so appropriate server-side enforcement
-(often via hook scripts) is still recommended.
-
-
-Server-client transmission mechanism
-====================================
-As part of the OPTIONS request, the client will send to the server the 
-sha1 hash of the version of the server-dictated config that it current has
-cached.  If the server has a different version, it will send that to the
-client in the OPTIONS response.
-
-
-Server-side storage
-===================
-[TODO]
-
-
-Client-side storage
-===================
-The client current maintains a global configuration file in
-~/.subversion/config  This feature will introduce the ~/.subversion/repos/
-directory, which will hold additional subdirectories keyed on the UUID of the
-repository.  It is in this subdirectory that the cached version of the
-repository configuration will be stored.
-
-
-Configuration Hierarchy
-=======================
-[TODO]
+[  The contents and further evolution of this document have been moved to  ]
+[  http://wiki.apache.org/subversion/ServerDictatedConfiguration           ]

Modified: subversion/branches/file-handle-cache/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/file-handle-cache/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Sun Dec 18 17:36:24 2011
@@ -2737,7 +2737,7 @@ public class BasicTests extends SVNTests
             "## -0,0 +1 ##" + NL +
             "+Test property value." + NL;
 
-        setprop(aPath, "testprop", "Test property value.");
+        setprop(aPath, "testprop", "Test property value." + NL);
         client.diff(aPath, Revision.BASE, aPath, Revision.WORKING, wcPath,
                     diffOutput.getPath(), Depth.infinity, null, true, true,
                     false, false);
@@ -2755,7 +2755,7 @@ public class BasicTests extends SVNTests
             "## -0,0 +1 ##" + NL +
             "+Test property value." + NL;
 
-        setprop(aPath, "testprop", "Test property value.");
+        setprop(aPath, "testprop", "Test property value." + NL);
         client.diff(aPath, Revision.BASE, aPath, Revision.WORKING, aPath,
                     diffOutput.getPath(), Depth.infinity, null, true, true,
                     false, false);

Modified: subversion/branches/file-handle-cache/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/file-handle-cache/subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java Sun Dec 18 17:36:24 2011
@@ -2674,7 +2674,8 @@ public class BasicTests extends SVNTests
             "## -0,0 +1 ##" + NL +
             "+Test property value." + NL;
 
-        client.propertySet(aPath, "testprop", "Test property value.", false);
+        client.propertySet(aPath, "testprop", "Test property value." + NL,
+                           false);
         client.diff(aPath, Revision.BASE, aPath, Revision.WORKING, wcPath,
                     diffOutput.getPath(), Depth.infinity, null, true, true,
                     false);
@@ -2692,7 +2693,8 @@ public class BasicTests extends SVNTests
             "## -0,0 +1 ##" + NL +
             "+Test property value." + NL;
 
-        client.propertySet(aPath, "testprop", "Test property value.", false);
+        client.propertySet(aPath, "testprop", "Test property value." + NL,
+                           false);
         client.diff(aPath, Revision.BASE, aPath, Revision.WORKING, aPath,
                     diffOutput.getPath(), Depth.infinity, null, true, true,
                     false);

Modified: subversion/branches/file-handle-cache/subversion/include/private/svn_cache.h
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/subversion/include/private/svn_cache.h?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/subversion/include/private/svn_cache.h (original)
+++ subversion/branches/file-handle-cache/subversion/include/private/svn_cache.h Sun Dec 18 17:36:24 2011
@@ -295,8 +295,9 @@ svn_cache__membuffer_cache_create(svn_me
  * svn_string_t; if @a serialize_func is NULL, then the data is
  * assumed to be an svn_stringbuf_t.
  *
- * These caches themselves are thread safe, the shared @a memcache may
- * be not, depending on its creation parameters.
+ * If @a thread_safe is true, and APR is compiled with threads, all
+ * accesses to the cache will be protected with a mutex, if the shared 
+ * @a memcache has also been created with thread_safe flag set.
  *
  * These caches do not support svn_cache__iter.
  */
@@ -307,6 +308,7 @@ svn_cache__create_membuffer_cache(svn_ca
                                   svn_cache__deserialize_func_t deserialize,
                                   apr_ssize_t klen,
                                   const char *prefix,
+                                  svn_boolean_t thread_safe,
                                   apr_pool_t *result_pool);
 
 /**

Modified: subversion/branches/file-handle-cache/subversion/include/private/svn_client_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/subversion/include/private/svn_client_private.h?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/subversion/include/private/svn_client_private.h (original)
+++ subversion/branches/file-handle-cache/subversion/include/private/svn_client_private.h Sun Dec 18 17:36:24 2011
@@ -59,6 +59,29 @@ svn_client__create_status(svn_client_sta
                           apr_pool_t *result_pool,
                           apr_pool_t *scratch_pool);
 
+/* Set *ANCESTOR_URL and *ANCESTOR_REVISION to the URL and revision,
+ * respectively, of the youngest common ancestor of the two locations
+ * PATH_OR_URL1@REV1 and PATH_OR_URL2@REV2.  Set *ANCESTOR_RELPATH to
+ * NULL and *ANCESTOR_REVISION to SVN_INVALID_REVNUM if they have no
+ * common ancestor.  This function assumes that PATH_OR_URL1@REV1 and
+ * PATH_OR_URL2@REV2 both refer to the same repository.
+ *
+ * Use the authentication baton cached in CTX to authenticate against
+ * the repository.
+ *
+ * See also svn_client__get_youngest_common_ancestor().
+ */
+svn_error_t *
+svn_client__youngest_common_ancestor(const char **ancestor_url,
+                                     svn_revnum_t *ancestor_rev,
+                                     const char *path_or_url1,
+                                     const svn_opt_revision_t *revision1,
+                                     const char *path_or_url2,
+                                     const svn_opt_revision_t *revision2,
+                                     svn_client_ctx_t *ctx,
+                                     apr_pool_t *result_pool,
+                                     apr_pool_t *scratch_pool);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/file-handle-cache/subversion/include/private/svn_debug.h
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/subversion/include/private/svn_debug.h?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/subversion/include/private/svn_debug.h (original)
+++ subversion/branches/file-handle-cache/subversion/include/private/svn_debug.h Sun Dec 18 17:36:24 2011
@@ -37,13 +37,17 @@
 extern "C" {
 #endif /* __cplusplus */
 
-/* A couple helper functions for the macros below.  */
+/* A few helper functions for the macros below.  */
 void
 svn_dbg__preamble(const char *file, long line, FILE *output);
 void
 svn_dbg__printf(const char *fmt, ...)
   __attribute__((format(printf, 1, 2)));
-
+void
+svn_dbg__print_props(apr_hash_t *props,
+                     const char *header_fmt,
+                     ...)
+  __attribute__((format(printf, 2, 3)));
 
 /* Print to stdout. Edit this line if you need stderr.  */
 #define SVN_DBG_OUTPUT stdout
@@ -55,6 +59,7 @@ svn_dbg__printf(const char *fmt, ...)
 #ifdef SVN_DBG_QUIET
 
 #define SVN_DBG(ARGS) svn_dbg__preamble(__FILE__, __LINE__, NULL)
+#define SVN_DBG_PROPS(ARGS) svn_dbg__preamble(__FILE__, __LINE__, NULL)
 
 #else
 
@@ -77,6 +82,9 @@ svn_dbg__printf(const char *fmt, ...)
  */
 #define SVN_DBG(ARGS) (svn_dbg__preamble(__FILE__, __LINE__, SVN_DBG_OUTPUT), \
                        svn_dbg__printf ARGS)
+#define SVN_DBG_PROPS(ARGS) (svn_dbg__preamble(__FILE__, __LINE__, \
+                                               SVN_DBG_OUTPUT), \
+                             svn_dbg__print_props ARGS)
 
 #endif
 

Modified: subversion/branches/file-handle-cache/subversion/include/private/svn_dep_compat.h
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/subversion/include/private/svn_dep_compat.h?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/subversion/include/private/svn_dep_compat.h (original)
+++ subversion/branches/file-handle-cache/subversion/include/private/svn_dep_compat.h Sun Dec 18 17:36:24 2011
@@ -107,6 +107,32 @@ typedef apr_uint32_t apr_uintptr_t;
 #endif /* SERF_VERSION_AT_LEAST */
 
 /**
+ * By default, if libsvn is built against one version of SQLite
+ * and then run using an older version, svn will error out:
+ *
+ *     svn: Couldn't perform atomic initialization
+ *     svn: SQLite compiled for 3.7.4, but running with 3.7.3
+ *
+ * That can be annoying when building on a modern system in order
+ * to deploy on a less modern one.  So these constants allow one
+ * to specify how old the system being deployed on might be.
+ * For example,
+ *
+ *     EXTRA_CFLAGS += -DSVN_SQLITE_MIN_VERSION_NUMBER=3007003
+ *     EXTRA_CFLAGS += '-DSVN_SQLITE_MIN_VERSION="3.7.3"'
+ *
+ * turns on code that works around infelicities in older versions
+ * as far back as 3.7.3 and relaxes the check at initialization time
+ * to permit them.
+ *
+ * @since New in 1.8.
+ */
+#ifndef SVN_SQLITE_MIN_VERSION_NUMBER
+#define SVN_SQLITE_MIN_VERSION_NUMBER SQLITE_VERSION_NUMBER
+#define SVN_SQLITE_MIN_VERSION SQLITE_VERSION
+#endif /* SVN_SQLITE_MIN_VERSION_NUMBER */
+
+/**
  * Check at compile time if the SQLite version is at least a certain
  * level.
  * @param major The major version component of the version checked
@@ -120,7 +146,7 @@ typedef apr_uint32_t apr_uintptr_t;
  */
 #ifndef SQLITE_VERSION_AT_LEAST
 #define SQLITE_VERSION_AT_LEAST(major,minor,patch)                     \
-((major*1000000 + minor*1000 + patch) <= SQLITE_VERSION_NUMBER)
+((major*1000000 + minor*1000 + patch) <= SVN_SQLITE_MIN_VERSION_NUMBER)
 #endif /* SQLITE_VERSION_AT_LEAST */
 
 #ifdef __cplusplus

Modified: subversion/branches/file-handle-cache/subversion/include/private/svn_mergeinfo_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/subversion/include/private/svn_mergeinfo_private.h?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/subversion/include/private/svn_mergeinfo_private.h (original)
+++ subversion/branches/file-handle-cache/subversion/include/private/svn_mergeinfo_private.h Sun Dec 18 17:36:24 2011
@@ -234,15 +234,6 @@ svn_boolean_t
 svn_mergeinfo__is_noninheritable(svn_mergeinfo_t mergeinfo,
                                  apr_pool_t *scratch_pool);
 
-/* If MERGEINFO_STR is a string representation of non-inheritable mergeinfo
-   set *IS_NONINHERITABLE to TRUE, set it to FALSE otherwise.  MERGEINFO_STR
-   may be NULL or empty.  If MERGEINFO_STR cannot be parsed return
-   SVN_ERR_MERGEINFO_PARSE_ERROR. */
-svn_error_t *
-svn_mergeinfo__string_has_noninheritable(svn_boolean_t *is_noninheritable,
-                                         const char *mergeinfo_str,
-                                         apr_pool_t *scratch_pool);
-
 /* Return a rangelist with one svn_merge_range_t * element defined by START,
    END, and INHERITABLE.  The rangelist and its contents are allocated in
    RESULT_POOL. */

Modified: subversion/branches/file-handle-cache/subversion/include/private/svn_mutex.h
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/subversion/include/private/svn_mutex.h?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/subversion/include/private/svn_mutex.h (original)
+++ subversion/branches/file-handle-cache/subversion/include/private/svn_mutex.h Sun Dec 18 17:36:24 2011
@@ -55,7 +55,7 @@ typedef void svn_mutex__t;
 
 #endif
 
-/** Initialize the @a *mutex. If @a enable_mutex is TRUE, the mutex will
+/** Initialize the @a *mutex. If @a mutex_required is TRUE, the mutex will
  * actually be created with a lifetime defined by @a result_pool. Otherwise,
  * the pointer will be set to @c NULL and @ref svn_mutex__lock as well as
  * @ref svn_mutex__unlock will be no-ops.
@@ -64,7 +64,7 @@ typedef void svn_mutex__t;
  */
 svn_error_t *
 svn_mutex__init(svn_mutex__t **mutex,
-                svn_boolean_t enable_mutex,
+                svn_boolean_t mutex_required,
                 apr_pool_t *result_pool);
 
 /** Acquire the @a mutex, if that has been enabled in @ref svn_mutex__init.

Modified: subversion/branches/file-handle-cache/subversion/include/private/svn_opt_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/subversion/include/private/svn_opt_private.h?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/subversion/include/private/svn_opt_private.h (original)
+++ subversion/branches/file-handle-cache/subversion/include/private/svn_opt_private.h Sun Dec 18 17:36:24 2011
@@ -129,6 +129,26 @@ const char *
 svn_opt__revision_to_string(const svn_opt_revision_t *revision,
                             apr_pool_t *result_pool);
 
+/**
+ * Create a revision range structure from two revisions.  Return a new range
+ * allocated in @a result_pool with the start and end initialized to
+ * (deep copies of) @a *start_revision and @a *end_revision.
+ */
+svn_opt_revision_range_t *
+svn_opt__revision_range_create(const svn_opt_revision_t *start_revision,
+                               const svn_opt_revision_t *end_revision,
+                               apr_pool_t *result_pool);
+
+/**
+ * Create a revision range structure from two revnums.  Return a new range
+ * allocated in @a result_pool with the start and end kinds initialized to
+ * #svn_opt_revision_number and values @a start_revnum and @a end_revnum.
+ */
+svn_opt_revision_range_t *
+svn_opt__revision_range_from_revnums(svn_revnum_t start_revnum,
+                                     svn_revnum_t end_revnum,
+                                     apr_pool_t *result_pool);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/file-handle-cache/subversion/include/private/svn_ra_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/subversion/include/private/svn_ra_private.h?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/subversion/include/private/svn_ra_private.h (original)
+++ subversion/branches/file-handle-cache/subversion/include/private/svn_ra_private.h Sun Dec 18 17:36:24 2011
@@ -116,6 +116,16 @@ svn_ra__release_operational_lock(svn_ra_
                                  const svn_string_t *mylocktoken,
                                  apr_pool_t *scratch_pool);
 
+
+/** Like svn_ra_get_path_relative_to_root(), except returning a fspath
+ * (starting with '/') instead of a relpath.
+ */
+svn_error_t *
+svn_ra__get_fspath_relative_to_root(svn_ra_session_t *ra_session,
+                                    const char **fspath,
+                                    const char *url,
+                                    apr_pool_t *pool);
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/branches/file-handle-cache/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/subversion/include/private/svn_wc_private.h?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/file-handle-cache/subversion/include/private/svn_wc_private.h Sun Dec 18 17:36:24 2011
@@ -131,6 +131,55 @@ svn_wc__read_external_info(svn_node_kind
                            apr_pool_t *result_pool,
                            apr_pool_t *scratch_pool);
 
+/** See svn_wc__committable_externals_below(). */
+typedef struct svn_wc__committable_external_info_t {
+
+  /* The local absolute path where the external should be checked out. */
+  const char *local_abspath;
+
+  /* The relpath part of the source URL the external should be checked out
+   * from. */
+  const char *repos_relpath;
+
+  /* The root URL part of the source URL the external should be checked out
+   * from. */
+  const char *repos_root_url;
+
+  /* Set to either svn_kind_file or svn_kind_dir. */
+  svn_kind_t kind;
+
+} svn_wc__committable_external_info_t;
+
+/* Add svn_wc__committable_external_info_t* items to *EXTERNALS, describing
+ * 'committable' externals checked out below LOCAL_ABSPATH. Recursively find
+ * all nested externals (externals defined inside externals).
+ *
+ * In this context, a 'committable' external belongs to the same repository as
+ * LOCAL_ABSPATH, is not revision-pegged and is currently checked out in the
+ * WC. (Local modifications are not tested for.)
+ *
+ * *EXTERNALS must be initialized either to NULL or to a pointer created with
+ * apr_array_make(..., sizeof(svn_wc__committable_external_info_t *)). If
+ * *EXTERNALS is initialized to NULL, an array will be allocated from
+ * RESULT_POOL as necessary. If no committable externals are found,
+ * *EXTERNALS is left unchanged.
+ *
+ * DEPTH limits the recursion below LOCAL_ABSPATH.
+ *
+ * This function will not find externals defined in some parent WC above
+ * LOCAL_ABSPATH's WC-root.
+ *
+ * ###TODO: Add a WRI_ABSPATH (wc root indicator) separate from LOCAL_ABSPATH,
+ * to allow searching any wc-root for externals under LOCAL_ABSPATH, not only
+ * LOCAL_ABSPATH's most immediate wc-root. */
+svn_error_t *
+svn_wc__committable_externals_below(apr_array_header_t **externals,
+                                    svn_wc_context_t *wc_ctx,
+                                    const char *local_abspath,
+                                    svn_depth_t depth,
+                                    apr_pool_t *result_pool,
+                                    apr_pool_t *scratch_pool);
+
 /* Gets a mapping from const char * local abspaths of externals to the const
    char * local abspath of where they are defined for all externals defined
    at or below LOCAL_ABSPATH.
@@ -354,13 +403,15 @@ svn_wc__node_get_children(const apr_arra
 
 
 /**
- * Fetch the repository root information for a given @a local_abspath into
- * @a *repos_root_url and @a repos_uuid. Use @a wc_ctx to access the working copy
+ * Fetch the repository root information for the working version
+ * of the node at @a local_abspath into @a *repos_root_url
+ * and @a *repos_uuid. Use @a wc_ctx to access the working copy
  * for @a local_abspath, @a scratch_pool for all temporary allocations,
- * @a result_pool for result allocations. Note: the result may be NULL if the
- * given node has no repository root associated with it (e.g. locally added).
+ * @a result_pool for result allocations. Note: the results will be NULL if
+ * the node does not exist or is not under version control. If the node is
+ * locally added, return the repository root it will have if committed.
  *
- * Either input value may be NULL, indicating no interest.
+ * Either output argument may be NULL, indicating no interest.
  */
 svn_error_t *
 svn_wc__node_get_repos_info(const char **repos_root_url,
@@ -748,6 +799,35 @@ svn_wc__call_with_write_lock(svn_wc__wit
                              apr_pool_t *result_pool,
                              apr_pool_t *scratch_pool);
 
+/** Evaluate the expression @a expr while holding a write lock on
+ * @a local_abspath.
+ *
+ * @a expr must yield an (svn_error_t *) error code.  If the error code
+ * is not #SVN_NO_ERROR, cause the function using this macro to return
+ * the error to its caller.
+ *
+ * If @a lock_anchor is TRUE, determine if @a local_abspath has an anchor
+ * that should be locked instead.
+ *
+ * Use @a wc_ctx for working copy access.
+ *
+ * The lock is guaranteed to be released after evaluating @a expr.
+ */
+#define SVN_WC__CALL_WITH_WRITE_LOCK(expr, wc_ctx, local_abspath,             \
+                                     lock_anchor, scratch_pool)               \
+  do {                                                                        \
+    svn_error_t *svn_wc__err1, *svn_wc__err2;                                 \
+    const char *svn_wc__lock_root_abspath;                                    \
+    SVN_ERR(svn_wc__acquire_write_lock(&svn_wc__lock_root_abspath, wc_ctx,    \
+                                       local_abspath, lock_anchor,            \
+                                       scratch_pool, scratch_pool));          \
+    svn_wc__err1 = svn_error_trace(expr);                                     \
+    svn_wc__err2 = svn_wc__release_write_lock(                                \
+                     wc_ctx, svn_wc__lock_root_abspath, scratch_pool);        \
+    SVN_ERR(svn_error_compose_create(svn_wc__err1, svn_wc__err2));            \
+  } while (0)
+
+
 /**
  * Calculates the schedule and copied status of a node as that would
  * have been stored in an svn_wc_entry_t instance.
@@ -867,19 +947,6 @@ svn_wc__min_max_revisions(svn_revnum_t *
                           svn_boolean_t committed,
                           apr_pool_t *scratch_pool);
 
-/* Indicate in @a *is_sparse_checkout whether any of the nodes within
- * @a local_abspath is sparse, using context @a wc_ctx.
- * Use @a scratch_pool for temporary allocations.
- *
- * This function provides a subset of the functionality of
- * svn_wc_revision_status2() and is more efficient if the caller
- * doesn't need all information returned by svn_wc_revision_status2(). */
-svn_error_t *
-svn_wc__is_sparse_checkout(svn_boolean_t *is_sparse_checkout,
-                           svn_wc_context_t *wc_ctx,
-                           const char *local_abspath,
-                           apr_pool_t *scratch_pool);
-
 /* Indicate in @a is_switched whether any node beneath @a local_abspath
  * is switched, using context @a wc_ctx.
  * Use @a scratch_pool for temporary allocations.
@@ -1132,6 +1199,22 @@ svn_wc__delete_internal(svn_wc_context_t
                         void *notify_baton,
                         apr_pool_t *scratch_pool);
 
+
+/* Alternative version of svn_wc_delete4().
+ * It can delete multiple TARGETS more efficiently (within a single sqlite
+ * transaction per working copy), but lacks support for moves. */
+svn_error_t *
+svn_wc__delete_many(svn_wc_context_t *wc_ctx,
+                    const apr_array_header_t *targets,
+                    svn_boolean_t keep_local,
+                    svn_boolean_t delete_unversioned_target,
+                    svn_cancel_func_t cancel_func,
+                    void *cancel_baton,
+                    svn_wc_notify_func2_t notify_func,
+                    void *notify_baton,
+                    apr_pool_t *scratch_pool);
+
+
 /* If the node at LOCAL_ABSPATH was moved away set *MOVED_TO_ABSPATH to
  * the absolute path of the copied move-target node, and *COPY_OP_ROOT_ABSPATH
  * to the absolute path of the root node of the copy operation.

Modified: subversion/branches/file-handle-cache/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/subversion/include/svn_client.h?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/subversion/include/svn_client.h (original)
+++ subversion/branches/file-handle-cache/subversion/include/svn_client.h Sun Dec 18 17:36:24 2011
@@ -1954,6 +1954,22 @@ svn_client_import(svn_client_commit_info
  * #TRUE, changes to descendants are only committed if they are itself
  * included via @a depth and targets.
  *
+ * If @a include_file_externals and/or @a include_dir_externals are #TRUE,
+ * also commit all file and/or dir externals (respectively) that are reached
+ * by recursion, with these exceptions: Never recurse to externals
+ * - that have a fixed revision or
+ * - that come from a different repository root URL (dir externals).
+ * These flags affect only recursion; externals that directly appear in @a
+ * targets are always included in the commit.
+ *
+ * ### TODO: currently, file externals hidden inside an unversioned dir are
+ *     skipped deliberately, because we can't commit those yet.
+ *     See STMT_SELECT_COMMITTABLE_EXTERNALS_BELOW.
+ *
+ * ### TODO: With @c depth_immediates, this function acts as if
+ *     @a include_dir_externals was passed #FALSE, but caller expects
+ *     immediate child dir externals to be included @c depth_empty.
+ *
  * When @a commit_as_operations is #TRUE it is possible to delete a node and
  * all its descendants by selecting just the root of the deletion. If it is
  * set to #FALSE this will raise an error.
@@ -1967,6 +1983,26 @@ svn_client_import(svn_client_commit_info
  *
  * Use @a pool for any temporary allocations.
  *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_client_commit6(const apr_array_header_t *targets,
+                   svn_depth_t depth,
+                   svn_boolean_t keep_locks,
+                   svn_boolean_t keep_changelists,
+                   svn_boolean_t commit_as_operations,
+                   svn_boolean_t include_file_externals,
+                   svn_boolean_t include_dir_externals,
+                   const apr_array_header_t *changelists,
+                   const apr_hash_t *revprop_table,
+                   svn_commit_callback2_t commit_callback,
+                   void *commit_baton,
+                   svn_client_ctx_t *ctx,
+                   apr_pool_t *pool);
+
+/**
+ * Similar to svn_client_commit6(), but passes @a include_file_externals as
+ * TRUE and @a include_dir_externals as FALSE.
  * @since New in 1.7.
  */
 svn_error_t *
@@ -2746,9 +2782,10 @@ svn_client_blame(const char *path_or_url
 
 /**
  * Produce diff output which describes the delta between
- * @a path1/@a revision1 and @a path2/@a revision2.  Print the output
- * of the diff to @a outfile, and any errors to @a errfile.  @a path1
- * and @a path2 can be either working-copy paths or URLs.
+ * @a path_or_url1/@a revision1 and @a path_or_url2/@a revision2.  Print
+ * the output of the diff to @a outstream, and any errors to @a
+ * errstream.  @a path_or_url1 and @a path_or_url2 can be either
+ * working-copy paths or URLs.
  *
  * If @a relative_to_dir is not @c NULL, the @a original_path and
  * @a modified_path will have the @a relative_to_dir stripped from the
@@ -2761,9 +2798,10 @@ svn_client_blame(const char *path_or_url
  * If either @a revision1 or @a revision2 has an `unspecified' or
  * unrecognized `kind', return #SVN_ERR_CLIENT_BAD_REVISION.
  *
- * @a path1 and @a path2 must both represent the same node kind -- that
- * is, if @a path1 is a directory, @a path2 must also be, and if @a path1
- * is a file, @a path2 must also be.
+ * @a path_or_url1 and @a path_or_url2 must both represent the same node
+ * kind -- that is, if @a path_or_url1 is a directory, @a path_or_url2
+ * must also be, and if @a path_or_url1 is a file, @a path_or_url2 must
+ * also be.
  *
  * If @a depth is #svn_depth_infinity, diff fully recursively.
  * Else if it is #svn_depth_immediates, diff the named paths and
@@ -2829,9 +2867,9 @@ svn_client_blame(const char *path_or_url
  */
 svn_error_t *
 svn_client_diff6(const apr_array_header_t *diff_options,
-                 const char *path1,
+                 const char *path_or_url1,
                  const svn_opt_revision_t *revision1,
-                 const char *path2,
+                 const char *path_or_url2,
                  const svn_opt_revision_t *revision2,
                  const char *relative_to_dir,
                  svn_depth_t depth,
@@ -2972,22 +3010,22 @@ svn_client_diff(const apr_array_header_t
                 apr_pool_t *pool);
 
 /**
- * Produce diff output which describes the delta between the
- * filesystem object @a path in peg revision @a peg_revision, as it
- * changed between @a start_revision and @a end_revision.  @a path can
+ * Produce diff output which describes the delta between the filesystem
+ * object @a path_or_url in peg revision @a peg_revision, as it changed
+ * between @a start_revision and @a end_revision.  @a path_or_url can
  * be either a working-copy path or URL.
  *
  * If @a peg_revision is #svn_opt_revision_unspecified, behave
- * identically to svn_client_diff5(), using @a path for both of that
- * function's @a path1 and @a path2 arguments.
+ * identically to svn_client_diff6(), using @a path_or_url for both of that
+ * function's @a path_or_url1 and @a path_or_url2 arguments.
  *
- * All other options are handled identically to svn_client_diff5().
+ * All other options are handled identically to svn_client_diff6().
  *
- * @since New in 1.7.
+ * @since New in 1.8.
  */
 svn_error_t *
 svn_client_diff_peg6(const apr_array_header_t *diff_options,
-                     const char *path,
+                     const char *path_or_url,
                      const svn_opt_revision_t *peg_revision,
                      const svn_opt_revision_t *start_revision,
                      const svn_opt_revision_t *end_revision,
@@ -3131,8 +3169,9 @@ svn_client_diff_peg(const apr_array_head
 
 /**
  * Produce a diff summary which lists the changed items between
- * @a path1/@a revision1 and @a path2/@a revision2 without creating text
- * deltas. @a path1 and @a path2 can be either working-copy paths or URLs.
+ * @a path_or_url1/@a revision1 and @a path_or_url2/@a revision2 without
+ * creating text deltas. @a path_or_url1 and @a path_or_url2 can be
+ * either working-copy paths or URLs.
  *
  * The function may report false positives if @a ignore_ancestry is false,
  * since a file might have been modified between two revisions, but still
@@ -3141,14 +3180,14 @@ svn_client_diff_peg(const apr_array_head
  * Calls @a summarize_func with @a summarize_baton for each difference
  * with a #svn_client_diff_summarize_t structure describing the difference.
  *
- * See svn_client_diff5() for a description of the other parameters.
+ * See svn_client_diff6() for a description of the other parameters.
  *
  * @since New in 1.5.
  */
 svn_error_t *
-svn_client_diff_summarize2(const char *path1,
+svn_client_diff_summarize2(const char *path_or_url1,
                            const svn_opt_revision_t *revision1,
-                           const char *path2,
+                           const char *path_or_url2,
                            const svn_opt_revision_t *revision2,
                            svn_depth_t depth,
                            svn_boolean_t ignore_ancestry,
@@ -3183,13 +3222,13 @@ svn_client_diff_summarize(const char *pa
 
 /**
  * Produce a diff summary which lists the changed items between the
- * filesystem object @a path in peg revision @a peg_revision, as it
- * changed between @a start_revision and @a end_revision. @a path can
+ * filesystem object @a path_or_url in peg revision @a peg_revision, as it
+ * changed between @a start_revision and @a end_revision. @a path_or_url can
  * be either a working-copy path or URL.
  *
  * If @a peg_revision is #svn_opt_revision_unspecified, behave
- * identically to svn_client_diff_summarize2(), using @a path for both
- * of that function's @a path1 and @a path2 arguments.
+ * identically to svn_client_diff_summarize2(), using @a path_or_url for
+ * both of that function's @a path_or_url1 and @a path_or_url2 arguments.
  *
  * The function may report false positives if @a ignore_ancestry is false,
  * as described in the documentation for svn_client_diff_summarize2().
@@ -3202,7 +3241,7 @@ svn_client_diff_summarize(const char *pa
  * @since New in 1.5.
  */
 svn_error_t *
-svn_client_diff_summarize_peg2(const char *path,
+svn_client_diff_summarize_peg2(const char *path_or_url,
                                const svn_opt_revision_t *peg_revision,
                                const svn_opt_revision_t *start_revision,
                                const svn_opt_revision_t *end_revision,
@@ -3396,25 +3435,57 @@ svn_client_merge(const char *source1,
                  apr_pool_t *pool);
 
 
+/**
+ * Determine the URLs and revisions needed to perform a reintegrate merge
+ * from @a source_path_or_url at @a source_peg_revision into the working
+ * copy at @a target_wcpath.
+ *
+ * Set @a *url1_p and @a *rev1_p to the left side, and @a *url2_p and
+ * @a *rev2_p to the right side, URLs and revisions of the source of the
+ * required two-URL merge.
+ *
+ * If no merge should be performed, set @a *url1_p to NULL and @a *rev1_p
+ * to #SVN_INVALID_REVNUM.
+ *
+ * The authentication baton cached in @a ctx is used to communicate with the
+ * repository.
+ *
+ * Allocate all the results in @a result_pool.  Use @a scratch_pool for
+ * temporary allocations.
+ *
+ * @since New in 1.8.
+ */
+svn_error_t *
+svn_client_find_reintegrate_merge(const char **url1_p,
+                                  svn_revnum_t *rev1_p,
+                                  const char **url2_p,
+                                  svn_revnum_t *rev2_p,
+                                  /* inputs */
+                                  const char *source_path_or_url,
+                                  const svn_opt_revision_t *source_peg_revision,
+                                  const char *target_wcpath,
+                                  svn_client_ctx_t *ctx,
+                                  apr_pool_t *result_pool,
+                                  apr_pool_t *scratch_pool);
 
 /**
- * Perform a reintegration merge of @a source at @a peg_revision
+ * Perform a reintegration merge of @a source_path_or_url at @a source_peg_revision
  * into @a target_wcpath.
  * @a target_wcpath must be a single-revision, #svn_depth_infinity,
  * pristine, unswitched working copy -- in other words, it must
  * reflect a single revision tree, the "target".  The mergeinfo on @a
- * source must reflect that all of the target has been merged into it.
- * Then this behaves like a merge with svn_client_merge3() from the
+ * source_path_or_url must reflect that all of the target has been merged into it.
+ * Then this behaves like a merge with svn_client_merge4() from the
  * target's URL to the source.
  *
- * All other options are handled identically to svn_client_merge3().
+ * All other options are handled identically to svn_client_merge4().
  * The depth of the merge is always #svn_depth_infinity.
  *
  * @since New in 1.5.
  */
 svn_error_t *
-svn_client_merge_reintegrate(const char *source,
-                             const svn_opt_revision_t *peg_revision,
+svn_client_merge_reintegrate(const char *source_path_or_url,
+                             const svn_opt_revision_t *source_peg_revision,
                              const char *target_wcpath,
                              svn_boolean_t dry_run,
                              const apr_array_header_t *merge_options,
@@ -3422,8 +3493,8 @@ svn_client_merge_reintegrate(const char 
                              apr_pool_t *pool);
 
 /**
- * Merge the changes between the filesystem object @a source in peg
- * revision @a peg_revision, as it changed between the ranges described
+ * Merge the changes between the filesystem object @a source_path_or_url in peg
+ * revision @a source_peg_revision, as it changed between the ranges described
  * in @a ranges_to_merge.
  *
  * @a ranges_to_merge is an array of <tt>svn_opt_revision_range_t
@@ -3439,9 +3510,9 @@ svn_client_merge_reintegrate(const char 
  * @since New in 1.7.
  */
 svn_error_t *
-svn_client_merge_peg4(const char *source,
+svn_client_merge_peg4(const char *source_path_or_url,
                       const apr_array_header_t *ranges_to_merge,
-                      const svn_opt_revision_t *peg_revision,
+                      const svn_opt_revision_t *source_peg_revision,
                       const char *target_wcpath,
                       svn_depth_t depth,
                       svn_boolean_t ignore_ancestry,
@@ -3542,6 +3613,8 @@ svn_client_suggest_merge_sources(apr_arr
 
 
 /**
+ * Get the mergeinfo for a single target node (ignoring any subtrees).
+ *
  * Set @a *mergeinfo to a hash mapping <tt>const char *</tt> merge
  * source URLs to <tt>apr_array_header_t *</tt> rangelists (arrays of
  * <tt>svn_merge_range_t *</tt> ranges) describing the ranges which
@@ -3571,6 +3644,9 @@ svn_client_mergeinfo_get_merged(apr_hash
 
 
 /**
+ * Describe the revisions that either have or have not been merged from
+ * one source branch (or subtree) into another.
+ *
  * If @a finding_merged is TRUE, then drive log entry callbacks
  * @a receiver / @a receiver_baton with the revisions merged from
  * @a source_path_or_url (as of @a source_peg_revision) into

Modified: subversion/branches/file-handle-cache/subversion/include/svn_delta.h
URL: http://svn.apache.org/viewvc/subversion/branches/file-handle-cache/subversion/include/svn_delta.h?rev=1220465&r1=1220464&r2=1220465&view=diff
==============================================================================
--- subversion/branches/file-handle-cache/subversion/include/svn_delta.h (original)
+++ subversion/branches/file-handle-cache/subversion/include/svn_delta.h Sun Dec 18 17:36:24 2011
@@ -1111,6 +1111,20 @@ typedef svn_error_t *(*svn_delta_fetch_k
   apr_pool_t *scratch_pool
   );
 
+/** Callback to fetch the FILENAME of a file to use as the delta base for
+ * PATH.  The file should last at least as long as RESULT_POOL.  If the base
+ * stream is empty, return NULL through FILENAME.
+ *
+ * @since New in 1.8.
+ */
+typedef svn_error_t *(*svn_delta_fetch_base_func_t)(
+  const char **filename,
+  void *baton,
+  const char *path,
+  apr_pool_t *result_pool,
+  apr_pool_t *scratch_pool
+  );
+
 /** Collection of callbacks used for the shim code.  To enable this struct
  * to grow, always use svn_delta_shim_callbacks_default()
  * to allocate new instances of it.
@@ -1123,6 +1137,8 @@ typedef struct svn_delta_shim_callbacks_
   void *fetch_props_baton;
   svn_delta_fetch_kind_func_t fetch_kind_func;
   void *fetch_kind_baton;
+  svn_delta_fetch_base_func_t fetch_base_func;
+  void *fetch_base_baton;
 } svn_delta_shim_callbacks_t;
 
 /** Return a collection of default shim functions in @a result_pool.