subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hwri...@apache.org
Subject svn commit: r1329209 [2/38] - in /subversion/branches/javahl-ra: ./ build/ build/ac-macros/ build/generator/ build/generator/templates/ build/win32/ contrib/client-side/emacs/ contrib/client-side/vim/ contrib/server-side/mod_dontdothat/ notes/ notes/ap...
Date Mon, 23 Apr 2012 12:33:03 GMT
Modified: subversion/branches/javahl-ra/build/generator/templates/makefile.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/generator/templates/makefile.ezt?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/generator/templates/makefile.ezt (original)
+++ subversion/branches/javahl-ra/build/generator/templates/makefile.ezt Mon Apr 23 12:32:48 2012
@@ -126,11 +126,12 @@ $([target.varname]_OBJECTS): $([target.v
 [for areas]
 [is areas.type "apache-mod"]install-mods-shared:[for areas.files] [areas.files.fullname][end][for areas.files]
 	cd [areas.files.dirname] ; $(MKDIR) "$(APACHE_LIBEXECDIR)" ; $(INSTALL_MOD_SHARED) -n [areas.files.name] [areas.files.filename][end]
-[else]install-[areas.type]: [for areas.files][if-index areas.files first][else] [end][areas.files.fullname][end]
+[else]install-[areas.type]: [for areas.files][if-index areas.files first][else] [end][areas.files.fullname][end] [for areas.apache_files] [areas.apache_files.fullname][end]
 	$(MKDIR) $(DESTDIR)$([areas.varname]dir)[for areas.files][is areas.type "locale"]
 	$(MKDIR) [areas.files.installdir]
 	cd [areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename] [areas.files.installdir]/$(PACKAGE_NAME)[areas.files.objext][else]
-	cd [areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename] $(DESTDIR)[areas.files.install_fname][end][end]
+	cd [areas.files.dirname] ; $(INSTALL_[areas.uppervar]) [areas.files.filename] $(DESTDIR)[areas.files.install_fname][end][end][for areas.apache_files]
+	cd [areas.apache_files.dirname] ; $(MKDIR) "$(APACHE_LIBEXECDIR_TOOLS)" ; $(INSTALL_MOD_SHARED_TOOLS) -n [areas.apache_files.name] [areas.apache_files.filename][end]
 [if-any areas.extra_install]	$(INSTALL_EXTRA_[areas.uppervar])
 [end][end][end]
 

Modified: subversion/branches/javahl-ra/build/generator/templates/neon.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/generator/templates/neon.vcxproj.ezt?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/generator/templates/neon.vcxproj.ezt (original)
+++ subversion/branches/javahl-ra/build/generator/templates/neon.vcxproj.ezt Mon Apr 23 12:32:48 2012
@@ -33,7 +33,7 @@
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
     <ConfigurationType>Makefile</ConfigurationType>
     <UseDebugLibraries>[is configs "Debug"]true[else]false[end]</UseDebugLibraries>
-    <PlatformToolset>v100</PlatformToolset>
+    <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">

Modified: subversion/branches/javahl-ra/build/generator/templates/serf.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/generator/templates/serf.vcxproj.ezt?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/generator/templates/serf.vcxproj.ezt (original)
+++ subversion/branches/javahl-ra/build/generator/templates/serf.vcxproj.ezt Mon Apr 23 12:32:48 2012
@@ -34,7 +34,7 @@
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
     <ConfigurationType>Makefile</ConfigurationType>
     <UseDebugLibraries>[is configs "Debug"]true[else]false[end]</UseDebugLibraries>
-    <PlatformToolset>v100</PlatformToolset>
+    <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">

Modified: subversion/branches/javahl-ra/build/generator/templates/svn_config.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/generator/templates/svn_config.vcxproj.ezt?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/generator/templates/svn_config.vcxproj.ezt (original)
+++ subversion/branches/javahl-ra/build/generator/templates/svn_config.vcxproj.ezt Mon Apr 23 12:32:48 2012
@@ -33,6 +33,7 @@
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
     <ConfigurationType>Utility</ConfigurationType>
     <UseDebugLibraries>[is configs "Debug"]true[else]false[end]</UseDebugLibraries>
+    <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">

Modified: subversion/branches/javahl-ra/build/generator/templates/svn_locale.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/generator/templates/svn_locale.vcxproj.ezt?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/generator/templates/svn_locale.vcxproj.ezt (original)
+++ subversion/branches/javahl-ra/build/generator/templates/svn_locale.vcxproj.ezt Mon Apr 23 12:32:48 2012
@@ -34,6 +34,7 @@
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
     <ConfigurationType>Utility</ConfigurationType>
     <CLRSupport>false</CLRSupport>
+    <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">

Modified: subversion/branches/javahl-ra/build/generator/templates/vcnet_vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/generator/templates/vcnet_vcxproj.ezt?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/generator/templates/vcnet_vcxproj.ezt (original)
+++ subversion/branches/javahl-ra/build/generator/templates/vcnet_vcxproj.ezt Mon Apr 23 12:32:48 2012
@@ -33,6 +33,7 @@
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs.name]|[platforms]'" Label="Configuration">
     <ConfigurationType>[config_type]</ConfigurationType>
     <UseDebugLibraries>[is configs.name "Debug"]true[else]false[end]</UseDebugLibraries>
+    <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">

Modified: subversion/branches/javahl-ra/build/generator/templates/zlib.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/generator/templates/zlib.vcxproj.ezt?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/generator/templates/zlib.vcxproj.ezt (original)
+++ subversion/branches/javahl-ra/build/generator/templates/zlib.vcxproj.ezt Mon Apr 23 12:32:48 2012
@@ -33,7 +33,7 @@
 [for platforms][for configs]  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'" Label="Configuration">
     <ConfigurationType>Makefile</ConfigurationType>
     <UseDebugLibraries>[is configs "Debug"]true[else]false[end]</UseDebugLibraries>
-    <PlatformToolset>v100</PlatformToolset>
+    <PlatformToolset>[toolset_version]</PlatformToolset>
   </PropertyGroup>
 [end][end]  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <ImportGroup Label="ExtensionSettings">

Modified: subversion/branches/javahl-ra/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/run_tests.py?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/run_tests.py (original)
+++ subversion/branches/javahl-ra/build/run_tests.py Mon Apr 23 12:32:48 2012
@@ -43,7 +43,6 @@ separated list of test numbers; the defa
 '''
 
 # A few useful constants
-LINE_LENGTH = 45
 SVN_VER_MINOR = 8
 
 import os, re, subprocess, sys, imp
@@ -72,6 +71,49 @@ class TextColors:
     cls.SUCCESS = ''
 
 
+def _get_term_width():
+  'Attempt to discern the width of the terminal'
+  # This may not work on all platforms, in which case the default of 80
+  # characters is used.  Improvements welcomed.
+
+  def ioctl_GWINSZ(fd):
+    try:
+      import fcntl, termios, struct, os
+      cr = struct.unpack('hh', fcntl.ioctl(fd, termios.TIOCGWINSZ, '1234'))
+    except:
+      return None
+    return cr
+
+  cr = None
+  if not cr:
+    try:
+      cr = (os.environ['SVN_MAKE_CHECK_LINES'],
+            os.environ['SVN_MAKE_CHECK_COLUMNS'])
+    except:
+      cr = None
+  if not cr:
+    cr = ioctl_GWINSZ(0) or ioctl_GWINSZ(1) or ioctl_GWINSZ(2)
+  if not cr:
+    try:
+      fd = os.open(os.ctermid(), os.O_RDONLY)
+      cr = ioctl_GWINSZ(fd)
+      os.close(fd)
+    except:
+      pass
+  if not cr:
+    try:
+      cr = (os.environ['LINES'], os.environ['COLUMNS'])
+    except:
+      cr = None
+  if not cr:
+    # Default
+    if sys.platform == 'win32':
+      cr = (25, 79)
+    else:
+      cr = (25, 80)
+  return int(cr[1])
+
+
 class TestHarness:
   '''Test harness for Subversion tests.
   '''
@@ -82,7 +124,7 @@ class TestHarness:
                cleanup=None, enable_sasl=None, parallel=None, config_file=None,
                fsfs_sharding=None, fsfs_packing=None,
                list_tests=None, svn_bin=None, mode_filter=None,
-               milestone_filter=None):
+               milestone_filter=None, set_log_level=None):
     '''Construct a TestHarness instance.
 
     ABS_SRCDIR and ABS_BUILDDIR are the source and build directories.
@@ -129,6 +171,7 @@ class TestHarness:
       self.config_file = os.path.abspath(config_file)
     self.list_tests = list_tests
     self.milestone_filter = milestone_filter
+    self.set_log_level = set_log_level
     self.svn_bin = svn_bin
     self.mode_filter = mode_filter
     self.log = None
@@ -362,6 +405,10 @@ class TestHarness:
 
       line = prog.stdout.readline()
 
+    # If we didn't run any tests, still print out the dots
+    if not tests_completed:
+      os.write(sys.stdout.fileno(), '.' * dot_count)
+
     prog.wait()
     return prog.returncode
 
@@ -405,6 +452,8 @@ class TestHarness:
       svntest.main.options.list_tests = True
     if self.milestone_filter is not None:
       svntest.main.options.milestone_filter = self.milestone_filter
+    if self.set_log_level is not None:
+      svntest.main.logger.setLevel(self.set_log_level)
     if self.svn_bin is not None:
       svntest.main.options.svn_bin = self.svn_bin
     if self.fsfs_sharding is not None:
@@ -511,14 +560,17 @@ class TestHarness:
 
     progabs = os.path.abspath(os.path.join(self.srcdir, prog))
     old_cwd = os.getcwd()
+    line_length = _get_term_width()
+    dots_needed = line_length \
+                    - len(test_info) \
+                    - len('Running tests in ') \
+                    - len('success')
     try:
       os.chdir(progdir)
       if progbase[-3:] == '.py':
-        failed = self._run_py_test(progabs, test_nums,
-                                   (LINE_LENGTH - len(test_info)))
+        failed = self._run_py_test(progabs, test_nums, dots_needed)
       else:
-        failed = self._run_c_test(prog, test_nums,
-                                  (LINE_LENGTH - len(test_info)))
+        failed = self._run_c_test(prog, test_nums, dots_needed)
     except:
       os.chdir(old_cwd)
       raise
@@ -566,7 +618,7 @@ def main():
                             'fsfs-packing', 'fsfs-sharding=',
                             'enable-sasl', 'parallel', 'config-file=',
                             'log-to-stdout', 'list', 'milestone-filter=',
-                            'mode-filter='])
+                            'mode-filter=', 'set-log-level='])
   except getopt.GetoptError:
     args = []
 
@@ -576,9 +628,10 @@ def main():
 
   base_url, fs_type, verbose, cleanup, enable_sasl, http_library, \
     server_minor_version, fsfs_sharding, fsfs_packing, parallel, \
-    config_file, log_to_stdout, list_tests, mode_filter, milestone_filter= \
+    config_file, log_to_stdout, list_tests, mode_filter, milestone_filter, \
+    set_log_level = \
             None, None, None, None, None, None, None, None, None, None, None, \
-            None, None, None, None
+            None, None, None, None, None
   for opt, val in opts:
     if opt in ['-u', '--url']:
       base_url = val
@@ -610,6 +663,8 @@ def main():
       milestone_filter = val
     elif opt in ['--mode-filter']:
       mode_filter = val
+    elif opt in ['--set-log-level']:
+      set_log_level = val
     else:
       raise getopt.GetoptError
 
@@ -624,7 +679,8 @@ def main():
                    base_url, fs_type, http_library, server_minor_version,
                    verbose, cleanup, enable_sasl, parallel, config_file,
                    fsfs_sharding, fsfs_packing, list_tests,
-                   mode_filter=mode_filter, milestone_filter=milestone_filter)
+                   mode_filter=mode_filter, milestone_filter=milestone_filter,
+                   set_log_level=set_log_level)
 
   failed = th.run(args[2:])
   if failed:

Modified: subversion/branches/javahl-ra/build/win32/make_dist.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/win32/make_dist.py?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/win32/make_dist.py (original)
+++ subversion/branches/javahl-ra/build/win32/make_dist.py Mon Apr 23 12:32:48 2012
@@ -209,6 +209,8 @@ _disttree = {'': OptFile('%(readme)s', '
                      File('%(blddir)s/svnserve/svnserve.pdb'),
                      File('%(blddir)s/svnversion/svnversion.exe'),
                      File('%(blddir)s/svnversion/svnversion.pdb'),
+                     File('%(blddir)s/svnrdump/svnrdump.exe'),
+                     File('%(blddir)s/svnrdump/svnrdump.pdb'),
                      File('%(blddir)s/../contrib/client-side/svn-push/svn-push.exe'),
                      File('%(blddir)s/../contrib/client-side/svn-push/svn-push.pdb'),
                      File('%(blddir)s/../tools/client-side/svnmucc/svnmucc.exe'),

Modified: subversion/branches/javahl-ra/build/win32/vc6-build.bat.in
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/build/win32/vc6-build.bat.in?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/build/win32/vc6-build.bat.in (original)
+++ subversion/branches/javahl-ra/build/win32/vc6-build.bat.in Mon Apr 23 12:32:48 2012
@@ -136,6 +136,7 @@ copy src-%DIR%\Release\subversion\svndum
 copy src-%DIR%\Release\subversion\svnlook\svnlook.exe svn-win32-%VER%\bin
 copy src-%DIR%\Release\subversion\svnserve\svnserve.exe svn-win32-%VER%\bin
 copy src-%DIR%\Release\subversion\svnversion\svnversion.exe svn-win32-%VER%\bin
+copy src-%DIR%\Release\subversion\svnrdump\svnrdump.exe svn-win32-%VER%\bin
 copy src-%DIR%\Release\subversion\mod_authz_svn\mod_authz_svn.so svn-win32-%VER%\httpd
 copy src-%DIR%\Release\subversion\mod_dav_svn\mod_dav_svn.so svn-win32-%VER%\httpd
 copy svn-win32-%VER%\bin\intl.dll "%APACHEDIR%\bin"

Modified: subversion/branches/javahl-ra/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/configure.ac?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/configure.ac (original)
+++ subversion/branches/javahl-ra/configure.ac Mon Apr 23 12:32:48 2012
@@ -138,7 +138,7 @@ if test "$svn_lib_neon" = "yes"; then
 fi
 
 dnl Search for serf as an alternative to neon
-SVN_LIB_SERF(0,7,1)
+SVN_LIB_SERF(1,0,0)
 
 if test "$svn_lib_serf" = "yes"; then
   AC_DEFINE([SVN_HAVE_SERF], 1,
@@ -172,6 +172,24 @@ 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
+
+SVN_CHECK_FOR_ATOMIC_BUILTINS
+
+if test "$svn_cv_atomic_builtins" = "yes"; then
+    AC_DEFINE(SVN_HAS_ATOMIC_BUILTINS, 1, [Define if compiler provides atomic builtins])
+fi
+
 dnl Set up a number of directories ---------------------
 
 dnl Create SVN_BINDIR for proper substitution
@@ -572,7 +590,7 @@ dnl GPG Agent -------------------
 AC_ARG_WITH(gpg_agent,
 AS_HELP_STRING([--without-gpg-agent], 
                [Disable support for GPG-Agent]),
-               [with_gpg_agent=no], [with_gpg_agent=yes])
+               [], [with_gpg_agent=yes])
 AC_MSG_CHECKING([whether to support GPG-Agent])
 if test "$svn_enable_shared" != "yes"; then
   AC_MSG_RESULT([no (shared library support is disabled)])
@@ -642,6 +660,19 @@ AC_SUBST(SVN_GNOME_KEYRING_INCLUDES)
 AC_SUBST(SVN_GNOME_KEYRING_LIBS)
 
 
+dnl Ev2 experimental feature ----------------------
+dnl Note: The Ev2 compat code will be built unconditionally, but by providing
+dnl this flag, users can enforce Ev2 compliance for testing purposes
+AC_ARG_ENABLE(ev2-shims,
+  AS_HELP_STRING([--enable-ev2-shims],
+                 [Compile with Ev2 translation [EXPERIMENTAL]]),
+  [enable_ev2_shims=$enableval],[enable_ev2_shims=no])
+if test "$enable_ev2_shims" = "yes"; then
+  AC_DEFINE(ENABLE_EV2_SHIMS, 1,
+            [Define to 1 if Ev2 should be interjected into editor stacks.])
+fi
+
+
 dnl I18n -------------------
 
 AC_ARG_ENABLE(nls,
@@ -780,13 +811,27 @@ if test "$svn_lib_kwallet" = "yes"; then
             [Defined if KWallet support is enabled])
 fi
 
+dnl plaintext passwords -------------------
+AC_ARG_ENABLE(plaintext-password-storage,
+AS_HELP_STRING([--disable-plaintext-password-storage],
+               [Disable on-disk caching of plaintext passwords and passphrases.
+                (Leaving this functionality enabled will not force Subversion
+                to store passwords in plaintext, but does permit users to
+                explicitly allow that behavior via runtime configuration.)]),
+[
+   if test "$enableval" = "no"; then
+      AC_MSG_NOTICE([Disabling plaintext password/passphrase storage])
+      AC_DEFINE(SVN_DISABLE_PLAINTEXT_PASSWORD_STORAGE, 1,
+                [Defined if plaintext password/passphrase storage is disabled])
+   fi
+])
 
 dnl Build and install rules -------------------
 
 INSTALL_STATIC_RULES="install-bin install-docs"
 INSTALL_RULES="install-fsmod-lib install-ramod-lib install-lib install-include install-static"
 INSTALL_RULES="$INSTALL_RULES $INSTALL_APACHE_RULE"
-BUILD_RULES="fsmod-lib ramod-lib lib bin test $BUILD_APACHE_RULE tools"
+BUILD_RULES="fsmod-lib ramod-lib lib bin test sub-test $BUILD_APACHE_RULE tools"
 
 if test "$svn_lib_berkeley_db" = "yes"; then
   BUILD_RULES="$BUILD_RULES bdb-lib bdb-test"
@@ -1108,7 +1153,7 @@ AS_HELP_STRING([--enable-gprof],
 
 PYTHON="`$abs_srcdir/build/find_python.sh`"
 if test -z "$PYTHON"; then
-  AC_MSG_WARN([Python 2.4 or later is required to run the testsuite])
+  AC_MSG_WARN([Python 2.5 or later is required to run the testsuite])
   AC_MSG_WARN([or to use the Subversion Python bindings])
   AC_MSG_WARN([])
   AC_MSG_WARN([If you have a suitable Python installed, but not on the])

Modified: subversion/branches/javahl-ra/contrib/client-side/emacs/dsvn.el
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/contrib/client-side/emacs/dsvn.el?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/contrib/client-side/emacs/dsvn.el (original)
+++ subversion/branches/javahl-ra/contrib/client-side/emacs/dsvn.el Mon Apr 23 12:32:48 2012
@@ -130,12 +130,41 @@
   :type 'boolean
   :group 'dsvn)
 
-(defun svn-call-process (program buffer &rest args)
+;; 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))
+
+;; Run svn with default (US-English) messages, since we are going to
+;; parse them.
+(setq svn-process-environment '("LC_MESSAGES=C"))
+
+(defun svn-call-in-svn-environment (func)
+  ;; Dynamic rebinding of process-environment
+  (let ((process-environment
+         (append svn-process-environment process-environment)))
+    (funcall func)))
+
+(defun svn-start-svn-process (buffer args)
+  "Start an svn process associated to BUFFER, with command-line
+arguments ARGS. Return the process object for it."
+  (svn-call-in-svn-environment
+   (lambda ()
+     (apply svn-start-file-process "svn" buffer svn-program args))))
+
+(defun svn-call-svn (infile buffer display args)
+  "Call svn synchronously. Arguments are like process-file."
+  (svn-call-in-svn-environment
+   (lambda ()
+     (apply svn-process-file svn-program infile buffer display args))))
+
+(defun svn-call-process (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 (svn-start-svn-process buffer args)))
     (set-process-coding-system proc 'utf-8)
     (set-process-filter proc 'svn-output-filter)
     (while (eq (process-status proc) 'run)
@@ -159,9 +188,7 @@ Return non-NIL if there was any output."
         (fundamental-mode))
       (setq default-directory dir)
       (setq buffer-read-only t)
-      (let ((cmd `(,svn-program ,subcommand ,@args))
-            proc)
-        (setq proc (apply 'start-process "svn" buf cmd))
+      (let ((proc (svn-start-svn-process buf (cons subcommand args))))
         (set-process-coding-system proc 'utf-8)
         (set-process-filter proc 'svn-output-filter)
         (while (eq (process-status proc) 'run)
@@ -184,7 +211,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)
+    (svn-call-svn nil buf nil (cons (symbol-name command) args))
     buf))
 
 (defun svn-run-for-stdout (command args)
@@ -192,8 +219,8 @@ 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
-	   (symbol-name command) args)
+    (svn-call-svn nil (list output-buffer nil) nil
+                  (cons (symbol-name command) args))
     (let ((stdout (with-current-buffer output-buffer (buffer-string))))
       (kill-buffer output-buffer)
       stdout)))
@@ -255,8 +282,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)
-                      svn-program command-s args))
+    (setq proc (svn-start-svn-process (current-buffer) (cons command-s args)))
     (if (fboundp filter-func)
         (set-process-filter proc filter-func)
       (set-process-filter proc 'svn-default-filter))
@@ -546,7 +572,7 @@ VERBOSE-P."
       (setq buffer-read-only t)
       (erase-buffer)
       (setq default-directory dir)
-      (svn-call-process svn-program diff-buf
+      (svn-call-process diff-buf
                         "diff" "-r"
                         (format "%d:%d" (1- commit-id) commit-id)))))
 
@@ -1085,9 +1111,9 @@ outside."
       (insert str)
       (goto-char svn-output-marker)
       (while (looking-at
-              "\\([ ACDGIMRX?!~][ CM][ L][ +][ S][ KOTB]\\)[ C]? \\([* ]\\) \\(........\\) \\(........\\) \\(............\\) \\([^ ].*\\)\n")
-        (let ((status (match-string 1))
-              (filename (svn-normalise-path (match-string 6))))
+              "\\(?:\\(\\?.....\\)\\|\\([ ACDGIMRX!~][ CM][ L][ +][ S][ KOTB]\\)[ C]? [* ] +[^ ]+ +[^ ]+ +[^ ]+\\) +\\([^ ].*\\)\n")
+        (let ((status (or (match-string 1) (match-string 2)))
+              (filename (svn-normalise-path (match-string 3))))
           (delete-region (match-beginning 0)
                          (match-end 0))
 	  (when (or (not svn-file-filter)
@@ -1154,7 +1180,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 +1209,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))
@@ -1211,6 +1238,8 @@ With prefix arg, prompt for REVISION."
               ((looking-at "At revision \\([0-9]+\\)\\.\n")
                (svn-update-label svn-revision-label (match-string 1))
                (forward-line 1))
+              ((looking-at "Updating '.*':\n")
+               (delete-region (match-beginning 0) (match-end 0)))
               ((and (not svn-merging)
                     (looking-at "Updated to revision \\([0-9]+\\)\\.\n"))
                (svn-update-label svn-revision-label (match-string 1))

Modified: subversion/branches/javahl-ra/contrib/client-side/emacs/vc-svn.el
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/contrib/client-side/emacs/vc-svn.el?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/contrib/client-side/emacs/vc-svn.el (original)
+++ subversion/branches/javahl-ra/contrib/client-side/emacs/vc-svn.el Mon Apr 23 12:32:48 2012
@@ -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/javahl-ra/get-deps.sh
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/get-deps.sh?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/get-deps.sh (original)
+++ subversion/branches/javahl-ra/get-deps.sh Mon Apr 23 12:32:48 2012
@@ -23,15 +23,15 @@
 # get-deps.sh -- download the dependencies useful for building Subversion
 #
 
-APR=apr-1.4.5
-APR_UTIL=apr-util-1.3.12
+APR=apr-1.4.6
+APR_UTIL=apr-util-1.4.1
 NEON=neon-0.29.6
-SERF=serf-0.7.2
-ZLIB=zlib-1.2.5
-SQLITE_VERSION=3.7.8
+SERF=serf-1.0.1
+ZLIB=zlib-1.2.6
+SQLITE_VERSION=3.7.10
 SQLITE=sqlite-amalgamation-$(printf %u%02u%02u%02u $(echo $SQLITE_VERSION | sed -e "s/\./ /g"))
 
-HTTPD=httpd-2.2.21
+HTTPD=httpd-2.2.22
 APR_ICONV=apr-iconv-1.2.1
 
 BASEDIR=`pwd`

Modified: subversion/branches/javahl-ra/notes/api-errata/1.7/ra001.txt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/api-errata/1.7/ra001.txt?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/api-errata/1.7/ra001.txt (original)
+++ subversion/branches/javahl-ra/notes/api-errata/1.7/ra001.txt Mon Apr 23 12:32:48 2012
@@ -3,7 +3,7 @@ API ERRATA -- $Id$
 Root Cause of Errata: 
  Library(s) Affected: libsvn_ra, RA servers (svnserve, mod_dav_svn)
 Function(s) Affected: svn_delta_editor_t
-     New Behavior in: 1.7 (default), 1.4 (client optional)
+     New Behavior in: 1.8 (default), 1.4 (client optional)
       Related Issues: #2932, #3628
 
 

Modified: subversion/branches/javahl-ra/notes/dump-load-format.txt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/dump-load-format.txt?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/dump-load-format.txt (original)
+++ subversion/branches/javahl-ra/notes/dump-load-format.txt Mon Apr 23 12:32:48 2012
@@ -1,139 +1,375 @@
-This file describes the format produced by 'svnadmin dump' and
-consumed by 'svnadmin load'.  
+= How to interpret Subversion dumpfiles =
 
-The format has undergone revisions over time.  They are presented in
-reverse chronological order here.  You may wish to start with the
-VERSION 1 description in order to get a baseline understanding first.
+Version 1.0, 2012-01-18
 
-===== SVN DUMPFILE VERSION 3 FORMAT =====
+== Introduction ==
 
-(generated by SVN versions 1.1.0-present, if requested by the user)
+The Subversion dumpfile format is a serialized description of the
+actions required to (re)build a version history. from scratch.
 
-This format is equivalent to the VERSION 2 format except for the
-following:
+The goal of this document is that it be sufficient for people writing
+dumpfile interpreters to emulate the actions the dumpfile describes on
+a versioned filesystem-like store, such as another version-control
+system.  It derives from and incorporates some incomplete notes from 
+before r39883.
 
-1.) The format starts with the new version number of the dump format
-    ("SVN-fs-dump-format-version: 3\n").
+1. In interpreting a Node record which has both a copyfrom source and
+a property section, it is possible that the copy source node itself
+has a property section.  How are they to be combined?
 
-2.) There are several new optional headers for node changes:
+Also note that the section on the semantics of kinds of operations 
+documents a minor bug at r39883 in the behavior of "add", which 
+should be fixed.
 
-[Text-delta: true|false]
-[Prop-delta: true|false]
-[Text-delta-base-md5: blob]
-[Text-delta-base-sha1: blob]
-[Text-copy-source-sha1: blob]
-[Text-content-sha1: blob]
+== Syntax ==
 
-    The default value for the boolean headers is "false".  If the value is
-    set to "true", then the text and property contents will be treated
-    as deltas against the previous contents of the node (as determined
-    by copy history for adds with history, or by the value in the
-    previous revision for changes--just as with commits).
+=== Encoding and delimiters ===
 
-Property deltas have the same format as regular property lists except
-that (1) properties with the same value as in the previous contents of
-the node are not printed, and (2) deleted properties will be written
-out as
+Subversion dumpfiles are plain byte streams. The structural parts are
+ASCII.  Text sections and property key/value pairs may be interpreted
+as binary data in any encoding by client tools.
 
-D <name length>
-<name>
+A dumpfile consists of four kinds of records.  A record is a group of
+RFC822-style header lines (each consisting of a key, followed by a
+colon, followed by text data to end of line), followed by an empty
+spacer line, followed optionally by a body section.  If the body
+section is present, another empty spacer line separates it from the
+following record.
 
-just as a regular property is printed, but with the "K " changed to a
-"D " and with no value part.
+For forward compatibility, unrecognized headers are ignored.
 
-Text deltas are written out as a series of svndiff0 windows.  If
-Text-delta-base-md5 is provided, it is the checksum of the base to
-which the text delta is applied; note that older versions (pre-1.5) of
-'svnadmin load' may ignore the checksum.
+=== Record types ===
 
-Text-delta-base-sha1, Text-copy-source-sha1, and Text-content-sha1 are not
-currently used by the loader.  They are written by 1.6-and-later versions of
-Subversion so that future loaders can optionally choose which checksum to
-use for checking for corruption.
+Dumpfiles include four record types.  Two, the version stamp and UUID
+record, consist of single header lines. The bulk of a dumpfile
+consists of Revision and Node records.
+
+A version stamp record is always the first line of the file and
+looks like this:
+
+-------------------------------------------------------------------
+SVN-fs-dump-format-version: <N>\n
+-------------------------------------------------------------------
+
+where <N> is replaced by the dump format version. Except where 
+specified, the descriptions in this document aapply to all
+versions of the format.
+
+Versions 2 and later may have a UUID record following the version
+stamp. It is of the form 
 
-===== SVN DUMPFILE VERSION 2 FORMAT =====
+-------------------------------------------------------------------
+UUID: <hex-string>
+-------------------------------------------------------------------
 
-(generated by SVN versions 0.18.0-present, by default)
+where the <hex-string> is the UUID of the originating repository.
+An example UUID is "7bf7a5ef-cabf-0310-b7d4-93df341afa7e".
 
-This format is equivalent to the VERSION 1 format in every respect,
-except for the following:
+A Revision record has three headers and is always followed by a
+property section.  Expect the following form and sequence:
+
+-------------------------------------------------------------------
+Revision-number: <N>
+Prop-content-length: <P>
+Content-length: <L>
+!
+-------------------------------------------------------------------
+
+with the Revision-number header always first and the '!' indicating
+a mandatory empty spacer line.  <P> gives the length in bytes of the
+following property section. <L> gives the body length of the entire
+Revision record.  These two numbers will be *identical* for a Revision
+record; the Content-length header is added for the benefit of software
+that can parse RFC-822 messages.
+
+A revision record is followed by one or more Node records (see below).
+
+=== Property sections ==
+
+A Revision record *must* have a property section, and a Node record *may*
+have a property section. Every record with a property section has 
+a Prop-content-length header.
+
+A property section consists of pairs of key and value records and
+is ended by a fixed trailer.  Here is an example attached to a
+Revision record:
+
+-------------------------------------------------------------------
+Revision-number: 1422
+Prop-content-length: 80
+Content-length: 80
+
+K 6
+author
+V 7
+sussman
+K 3
+log
+V 33
+Added two files, changed a third.
+PROPS-END
+-------------------------------------------------------------------
+
+The fixed trailer is "PROPS-END\n" and its length is included in the
+Prop-content-length. Before it, each K and V record consists of a
+header line giving the length of the key or value content in bytes.  
+The content follows.  The content is itself always followed by \n.
+
+In version 3 of the format, a third type 'D' of property record is
+introduced to describe property deletion. This feature will be
+described later, in the specification of delta dumps.
+
+=== Node records ===
+
+Each Revision record is followed by one or more Node records.
+Node records have the following sequence of header lines:
+
+-------------------------------------------------------------------
+Node-path: <path/to/node/in/filesystem>
+[Node-kind: {file | dir}]
+Node-action: {change | add | delete | replace}
+[Node-copyfrom-rev: <rev>]
+[Node-copyfrom-path: <path> ]
+[Text-copy-source-md5: <blob>]
+[Text-content-md5: <blob>]
+[Text-content-length: <T>]
+[Prop-content-length: <P>]
+[Content-length: Y]
+!
+-------------------------------------------------------------------
+
+Bracketing in [] indicates optional lines; { | } is an alternation group.
+
+Dump decoders should be prepared for the optional lines after
+Node-action to be in any order, except that Content-length is 
+always last if it present.
+
+A Node record describes an action on a path relative to the repository
+root, and always begins with the Node-path specification.
+
+The Node-kind line indicates whether the path is a file or directory.
+The header value will be one of the strings "file" or "dir". 
+This header may be (and usually is) absent if the node action is a delete.  
+
+The Node-action line is always present and specifies the type of
+operation for this node.  The header value is one of the strings
+"change", "add", "delete", or "replace".  These operations will be
+described in detail later in this document.
+
+Either both the Node-copyfrom-rev and Node-copyfrom-path lines will be
+present, or neither will be.  They pair to describe a copy source for
+the node. Copy-source semantics will be described in detail later in
+this document.
+
+The Text-content-md5 and Text-copy-source-md5 lines are hash integrity
+checks and will be present only if Text-content-length and the copfyrom
+pair (respectively) are also present. A decoder may use them to verify
+that the source content they refer to has not been corrupted.
+
+Text-content-length will be present only when there is a text section.
+Zero is a legal value for this length, indicating an empty file.
+
+Prop-content-length will be present only when there is a properties section.
+
+Content-length will be present if there is either a text or a
+properties section.  This is not always the case.  In particular, 
+a delete operation cannot have either.  Some other operations that use
+copyfrom sources may also not have either.
+
+Again, the '!' stands in for a mandatory empty line following the
+RFC822-style headers. A body may follow
+
+== Semantics ==
+
+=== The kinds of things ===
+
+There are four kinds of things described by a dumpfile: paths,
+properties, content, and flows.  The distinctions among content,
+paths, and flows matter for understanding some operations.
+
+A path is a filesystem location (a file or directory).  There are two
+kinds of paths in a dumpfile; node paths and copy sources.
+
+Properties are key-value pairs associated with revisions or paths.
+Subversion interprets and reserves some properties, those beginning
+with "svn:". Others are not interpreted by Subversion; they may 
+may be set and read for the convenience of other applications, such
+as repository browsers or translators.
+
+A flow is a sequence of actions on a file or directory path that is
+considered to be a single history for change-tracking purposes.
+Creating a flow tells Subversion that you want to track the history of
+the path or paths it contains. Destroying a flow breaks the chain of
+history; changes will not be tracked across the break, even if another
+flow is created at the same path.  A copy operation creates a new
+flow connected to the flow from which it was copied.
+
+Content is what file paths point at (one timewise slice of a flow). It
+is the payload of program source code, documents, images, and so forth
+that a version control system actually manages.
+
+A Node record describes a change in properties, the addition or deletion
+of a flow, or a change in content.  It nust do at least one of these things,
+otherwise it would be a no-op and omitted.
+
+When no copyfrom is present, and the action isn't an add or copy, then
+the kind of the thing identified by (PATH, REVISION) must agree with
+the kind of the thing identified by (PATH, -1+REVISION).
+
+Terminological node: in Subversion-speak, the term "node" is
+historically ambiguous.  Sometimes it refers to what this document
+calls a "flow", and sometimes it refers to the internal per-revision
+structure that a Node record represents (that is, just one action in a
+flow).  For clarity, most of this document avoids the term "node" in
+favor of the more specific "flow" and "Node record", but knowing 
+about this issue will help if you read the Ancient History section.
+
+=== The kinds of operations ===
+
+.File operations
+|======================================================================
+|                           |   add    | delete | replace  |  change  |
+|Can have text section?     | optional |   no   | optional | optional |
+|Can have property section? | optional |   no   | optional | optional |
+|Can have copy source?      | optional |   no   | optional |    no    |
+|Fails on existent path     |   yes*   |   no   |    no    |    no    |   
+|Fails on non-existent path |    no    |  yes   |   yes    |   yes    |   
+|======================================================================
+
+* As of December 2011 there is a minor bug: Adding a file with history
+twice _in two different revisions_ succeeds silently.
+
+.Directory operations
+|======================================================================
+|                           |   add    | delete | replace  |  change  |
+|Can have text section?     |    no    |   no   |    no    |    no    |
+|Can have property section? | optional |   no   | optional | required |
+|Can have copy source?      | optional |   no   | optional |    no    |
+|Fails on existent path     |   yes    |   no   |    no    |    no    |   
+|Fails on non-existent path |    no    |  yes   |   yes    |   yes    |   
+|======================================================================
+
+A Node record represents an operation that does one of four things: add,
+delete, change, or replace.
+
+Node records can carry content in one (or both!) of two ways: from a text
+section or from a copy source (that is, a copy-path and copy-revision
+pair).
+
+Giving a copy source appends the node to the flow of which that source
+is part; when you 'add' or 'replace' with a copy source, the content
+at the path becomes a copy of the source (but see below for a
+qualification about directories).
+
+Giving a text section also changes the content of the flow. In the
+(unusual) case that a node has both a copy source and a text section,
+the correct semantics is to attach the path to the source flow and
+then change the content.
+
+An add operation creates a new flow for a file or directory. See the
+table above for possible operand combinations.
+
+A delete operation deletes a flow and its content. If the path is a
+file, the file is deleted.  If the path is a directory, the directory
+and all its children are deleted. A subsequent add at the same path
+will create a new and different flow with its own history.
+
+A change operation changes properties on a file or directory path. See the
+table above for possible operand combinations.
+
+A replace operation behaves exactly like a delete followed by an add
+(destroying an old flow, producing a new one) when it has no copy
+source. When a replace has a copy source, it produces a new flow
+with history extending back through the copy source. A Node record
+representing a replace operation may have a property section.
+
+The main reason "replace" exists is because it helps sequential
+processors of the dump stream avoid possibly notifying about multiple
+actions on the same path.
+
+It is even possible to have a replace with a copyfrom source *and*
+text, such as would result from this on the client side:
+ 
+-------------------------------------------------------------------
+$ svn rm dir/file.txt
+$ svn cp otherdir/otherfile.txt dir/file.txt
+$ echo "Replacement text" > dir/file.txt
+$ svn ci -m "Replace dir/file.txt with a copy of otherdir/otherfile.txt and replace its text, too."
+-------------------------------------------------------------------
+
+$Subversion filesystems do not allow the root directory ("/") to be
+deleted or replaced.
+
+=== Some details about copyfroms ===
+
+The source and target of a copyfrom are always of like kind; that is,
+Subversion dump will never generate a node with a source type of file
+and a target type of directory or vice-versa.
+
+Interpreting copyfrom_path for file copies is straightforward; the
+target pathname gets the contents of the source pathname.
+
+Directory copies (the primitive beneath branching and tagging) are
+tricky.  For each source path under the source directory, a new path
+is generated by removing the head segment of the pathname that is
+the source directory.  That new path under the target directory gets
+the content of the source path.
+
+After this operation:
+
+-------------------------------------------------------------------
+Node-path: x/y/z
+Node-kind: dir
+Node-action: add
+Node-copyfrom-rev: 10
+Node-copyfrom-path: a/b/c
+-------------------------------------------------------------------
 
-1.) The format starts with the new version number of the dump format
-    ("SVN-fs-dump-format-version: 2\n").
-
-2.) In addition to "Revision Records", another sort of record is supported:
-    the "UUID" record, which should be of the form:
-
-UUID: 7bf7a5ef-cabf-0310-b7d4-93df341afa7e
-
-    This should be used to indicate the UUID of the originating repository.
-
-===== SVN DUMPFILE VERSION 1 FORMAT =====
-
-(generated by SVN versions prior to 0.18.0)
-
-The binary format starts with the version number of the dump format
-("SVN-fs-dump-format-version: 1\n"), followed by a series of revision
-records.  Each revision record starts with information about the
-revision, followed by a variable number of node changes for that
-revision.  Fields in [braces] are optional, and unknown headers are
-always ignored, for backwards compatibility.
-
-Revision-number: N
-Prop-content-length: P
-Content-length: L
-
-   ...P bytes of property data.  Properties are stored in the same
-   human-readable hashdump format used by working copy property files,
-   except that they end with "PROPS-END\n" for better readability.
-
-Node-path: absolute/path/to/node/in/filesystem
-Node-kind: file | dir  (1)
-Node-action: change | add | delete | replace
-[Node-copyfrom-rev: X]
-[Node-copyfrom-path: path ]
-[Text-copy-source-md5: blob] (2)
-[Text-content-md5: blob]
-[Text-content-length: T]
-[Prop-content-length: P]
-Content-length: Y (3)
-
-   ... Y bytes of content data, divided into P bytes of "property"
-   data and T bytes of "text" data.  The properties come first; their
-   total length (including formatting) is Prop-content-length, and is
-   included in Node-content-length.  The "PROPS-END\n" line always
-   terminates the property section if there are props.  The remainder
-   of the Y bytes (expected to be equivalent to Text-content-length)
-   represent the contents of the node.
-
-
-Notes:
-
-   (1) if the node represents a deletion, this field is optional.
-   
-   (2) this is a checksum of the source of the copy.  a loader process
-       can use this checksum to determine that the copyfrom path/rev
-       already present in a filesystem is really the *correct* one to
-       use.
-   
-   (3) the Content-length header is technically unnecessary, since the
-       information it holds (and more) can be found in the
-       Prop-content-length and Text-content-length fields.  Though
-       Subversion itself does not make use of the header when reading
-       a dumpfile, we include it for compatibility with generic RFC822
-       parsers.
-   
-   (4) There are actually 2 types of version 1 dump streams. The
-       regular ones are generated since r2634 (svn 0.14.0). Older ones
-       also claim to be version 1, but miss the Props-content-length
-       and Text-content-length fields in the block header. In those
-       days there *always* was a properties block.
-   
-EXAMPLE:
+the file a/b/c/d will have been be copied to x/y/z/d.
 
-Here's an example of revision 1422, whereby I added a new directory
+A single revision may include multiple copyfrom Node records, even multiple
+copyfroms to the same directory, even mixed directory and file copies
+to the same directory. 
+
+=== Properties and persistence ===
+
+The properties section of a Revision record consists of some subset
+of the three reserved per-commit properties: svn:author, svn:date,
+and svn.log. These properties do not persist to later revisions.
+
+The key thing to know about Node properties is that they are 
+persistent, once set, until modified by a future property 
+section on the same path.
+
+Normally, a dumpfile re-lists the entire property set for a directory
+or file in every Node record that changes any part of it. (But see
+the material on delta dumps for an exception.)
+
+This implies that to delete a given property from a path, a dumpfile
+generator will issue a Node record with all other properties listed in it;
+to delete all properties from a path, the dumpfile generator will
+simply issue a node with an empty properties section. Note that this
+is different from an *absent* properties section, which will change
+no properties and will be associated with a change to content!
+
+=== Implementation pragmatics ===
+
+Because directory operations with copyfroms don't specify all the file
+paths they modify, an interpreter for this format must build a map of
+the paths in the file store it is manipulating, and update that map as
+it processes each Node record.
+
+On a repository with thousands of commits, the per-revision list of
+maps can become quite large. For space economy, the file map for each 
+revision can be discarded after it is processed *unless it is a source
+revision for a copyfrom*. 
+
+== An example ==
+
+Here's an example of revision 1422, which added a new directory
 "baz", added a new file "bop" inside it, and modified the file "foo.c":
 
+-------------------------------------------------------------------
 Revision-number: 1422
 Prop-content-length: 80
 Content-length: 80
@@ -188,8 +424,79 @@ Content-length: 102
 
 Here is the fulltext of my change to an existing /bar/foo.c.
 Notice that this file has no properties.
+-------------------------------------------------------------------
+
+== Format variants ==
+
+=== Version 3 format ===
+
+Version 3 format is a delta dump; text changes are represented 
+as diffs against the original file, and properties as incremental
+changes to a persistent set (that is, a property section does not
+necessarily implcitly clear the property set on a path before the
+new property settings are evaluated).
+
+This change is a space optimization. It requires additional 
+computing time to integrate the diff history.
+
+Version 3 is generated by SVN versions 1.1.0-present, if requested by the user.
+
+This format is equivalent to the VERSION 2 format except for the
+following:
+
+1. The format starts with the new version number of the dump format
+   ("SVN-fs-dump-format-version: 3\n").
+
+2. There are several new optional headers for Node records:
+
+-------------------------------------------------------------------
+[Text-delta: true|false]
+[Prop-delta: true|false]
+[Text-delta-base-md5: blob]
+[Text-delta-base-sha1: blob]
+[Text-copy-source-sha1: blob]
+[Text-content-sha1: blob]
+-------------------------------------------------------------------
 
--*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*- -*-
+The default value for the boolean headers is "false".  If the value is
+set to "true", then the text and property contents will be treated
+as deltas against the previous contents of the flow (as determined
+by copy history for adds with history, or by the value in the
+previous revision for changes--just as with commits).
+
+Property deltas have the same format as regular property lists except
+that (1) properties with the same value as in the previous contents of
+the flow are not printed, and (2) deleted properties will be written
+out as
+
+D <name length>
+<name>
+
+just as a regular property is printed, but with the "K " changed to a
+"D " and with no value part.
+
+Text deltas are written out as a series of svndiff0 windows.  If
+Text-delta-base-md5 is provided, it is the checksum of the base to
+which the text delta is applied; note that older versions (pre-1.5) of
+'svnadmin load' may ignore the checksum.
+
+Text-delta-base-sha1, Text-copy-source-sha1, and Text-content-sha1 are not
+currently used by the loader.  They are written by 1.6-and-later versions of
+Subversion so that future loaders can optionally choose which checksum to
+use for checking for corruption.
+
+=== Archaic version 1 format ===
+
+There are actually two types of version 1 dump streams. The regular ones
+are generated since r2634 (svn 0.14.0). Older ones also claim to be
+version 1, but miss the Props-content-length and Text-content-length
+fields in the block header. In those days there *always* was a
+properties block.
+
+This note is included for historical completeness only, at is it highly
+unlikely that any Subversion instances that old remain in production.
+
+== Ancient history ==
 
 Old discussion: 
 
@@ -197,8 +504,7 @@ Old discussion: 
 
 A proposal for an svn filesystem dump/restore format.
 
-Two problems we want to solve
-=============================
+=== Two problems we want to solve ===
 
  1.  When we change our node-id schema, we need to migrate all of our
      data (by dumping and restoring).
@@ -207,8 +513,7 @@ Two problems we want to solve
      someday.
 
 
-Design Goals
-============
+=== Design Goals ===
 
  A.  Written as two new public functions in svn_fs.h.  To be invoked
      by new 'svnadmin' subcommands.
@@ -221,9 +526,7 @@ Design Goals
      backend.  In other words, we're talking about the basic ideas in
      our original "design spec" from May 2000.
 
-
-Format Semantics
-================
+=== Format Semantics ===
 
 Here are the timeless semantics of our fs design -- the things that
 would be stored in our dump format.
@@ -248,10 +551,9 @@ would be stored in our dump format.
     The history values can be non-existent (meaning the node is
     completely new), or can have a value of {revision, path}.
 
+=== Refinement of proposal #2: ===
 
-------------------------------------------------------------------------
-Refinement of proposal #2:  (after discussion with gstein)
-=========================
+(after discussion with gstein)
 
 Each node starts with RFC822-style headers at the top.  The final
 header is a 'Content-length:', followed by the content, so record
@@ -261,3 +563,5 @@ The content section has two implicit par
 fulltext.  The division between these two sections is implied by the
 "PROPS-END\n" tag at the end of the prophash.  In the case of a
 directory node or a revision, only the prophash is present.
+
+//End of document.

Modified: subversion/branches/javahl-ra/notes/http-and-webdav/webdav-protocol
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/http-and-webdav/webdav-protocol?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/http-and-webdav/webdav-protocol (original)
+++ subversion/branches/javahl-ra/notes/http-and-webdav/webdav-protocol Mon Apr 23 12:32:48 2012
@@ -354,6 +354,7 @@ Request:
     <S:discover-changed-paths/> (optional)
     <S:strict-node-history/> (optional)
     <S:include-merged-revisions/> (optional)
+    <S:encode-binary-props> (optional)
     <S:revprop>REVPROP</S:revprop>... | <S:all-revprops/> | <S:no-revprops/>
       ('revprop', 'all-revprops', and 'no-revprops' are all optional)
     <S:path></S:path>... (optional)
@@ -369,6 +370,7 @@ Response:
       <S:date>2006-02-27T18:44:26.149336Z</S:date>
       <D:comment>Add doo-hickey</D:comment>
       <S:revprop name="REVPROP">value</S:revprop>... (optional)
+      <S:revprop name="REVPROP" encoding="base64">encoded value</S:revprop>... (optional)
       <S:has-children/> (optional)
       <S:added-path( copyfrom-path="PATH" copyfrom-rev="REVNUM">PATH</S:added-path>... (optional)
       <S:replaced-path( copyfrom-path="PATH" copyfrom-rev="REVNUM">PATH</S:replaced-path>... (optional)

Modified: subversion/branches/javahl-ra/notes/knobs
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/knobs?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/knobs (original)
+++ subversion/branches/javahl-ra/notes/knobs Mon Apr 23 12:32:48 2012
@@ -22,6 +22,8 @@ The SVN source code boasts a number of e
 processor enabled tweaks that are mainly aimed at developer support.
 If you introduce new ones, please document them here.
 
+Macros documented in the configure-generated ../subversion/svn_private_config.h
+file are not repeated here.
 
 2 Defines and Environment Variables
 ===================================
@@ -33,6 +35,8 @@ DEFAULT_HTTP_LIBRARY
 MAX_SECS_TO_LINGER
 SUFFIX_LINES_TO_KEEP
 SVN_FS_FS_DEFAULT_MAX_FILES_PER_DIR
+SVN_FS_FS_MAX_LINEAR_DELTIFICATION
+SVN_FS_FS_MAX_DELTIFICATION_WALK
 SVN_UNALIGNED_ACCESS_IS_OK
 
 2.2 Features
@@ -44,6 +48,10 @@ SVN_MERGE__ALLOW_ALL_FORWARD_MERGES_FROM
 SVN_USE_WIN32_CRASHHANDLER
 SVN_DAV_SEND_VTXN_NAME
 SVN_DISABLE_PREFIX_SUFFIX_SCANNING
+SVN_FS_FS_DELTIFY_DIRECTORIES
+SVN_FS_FS_DELTIFY_PROPS
+SVN_SQLITE_MIN_VERSION_NUMBER
+SVN_SQLITE_MIN_VERSION
 
 2.3 Debugging Support
 
@@ -123,7 +131,28 @@ SVN_I_LIKE_LATENCY_SO_IGNORE_HTTPV2
   Range:     natural integers
   Suggested: 1, 2, 3, 4, 5, 7, 11
 
-3.6 SVN_UNALIGNED_ACCESS_IS_OK
+3.6 SVN_FS_FS_MAX_LINEAR_DELTIFICATION
+
+  Scope:     libsvn_fs_fs
+  Purpose:   Controls the space efficiency vs. reconstruction costs tradeoff
+             of rep deltification.  Defines the max length of the linear
+             deltification history before skip-deltification kicks in.
+             Values < 2 result in skip-delta-only behavior.
+  Default:   16
+  Range:     natural integers; should be a power of 2
+  Suggested: 1, 4, 8, 16, 32, 64
+
+3.7 SVN_FS_FS_MAX_DELTIFICATION_WALK
+
+  Scope:     libsvn_fs_fs
+  Purpose:   Limits the skip deltification range to provide commit runtime
+             guarantees. Change histories longer than that will be restarted
+             with a fulltext.  Values < 1 disable deltification.
+  Default:   1023
+  Range:     natural integers; should be a power of 2 minus one
+  Suggested: 0, 63, 1023, 4095, 16383
+
+3.8 SVN_UNALIGNED_ACCESS_IS_OK
 
   Scope:     (global)
   Purpose:   enable data accesss optimizations.
@@ -205,6 +234,44 @@ SVN_I_LIKE_LATENCY_SO_IGNORE_HTTPV2
   Default:   not defined
   Suggested: not defined
 
+4.8 SVN_FS_FS_DELTIFY_DIRECTORIES
+
+  Scope:     libsvn_fs_fs
+  Purpose:   Define this symbol to enable directory deltification in FSFS.
+             When activated, previous versions of Subversion will still be
+             able to read from and write to this repository.
+  Range:     definedness
+  Default:   not defined
+  Suggested: defined
+
+4.9 SVN_FS_FS_DELTIFY_PROPS
+
+  Scope:     libsvn_fs_fs
+  Purpose:   Define this symbol to enable node property deltification in
+             FSFS.  When activated, previous versions of Subversion will
+             still be able to read from and write to this repository.
+  Range:     definedness
+  Default:   not defined
+  Suggested: not defined
+
+4.10 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.11 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/javahl-ra/notes/merge-tracking/func-spec.html
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/merge-tracking/func-spec.html?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/merge-tracking/func-spec.html (original)
+++ subversion/branches/javahl-ra/notes/merge-tracking/func-spec.html Mon Apr 23 12:32:48 2012
@@ -154,37 +154,89 @@ mergeinfo for the merge is set on the de
 <div class="h2" id="switched-paths">
 <h2>Switched Paths</h2>
 
-<p>Switched paths are treated as the root of the working copy regarding
-merge info inheritance and elision, specifically:</p>
+<p>Switched paths are treated as the root of a working copy regarding
+mergeinfo inheritance, recording, and elision.  Specifically, for a
+merge target with an arbitrary switched subtree:</p>
+
+<pre>
+  WC-Root
+     |
+  Target
+     |
+    SSP
+     | \
+     |  \
+    SS   SSS
+
+  Target - The WC target of the merge operation (may be same as WC-Root)
+  SSP    - Switched Subtree Parent (may be same as Target)
+  SSPS   - Switched Subtree Sibling (zero or more)
+  SS     - Switched Subtree</pre>
+
+<p>Note: If SS is itself the target of the merge, then the no special
+handling is needed, the merge takes place as if SS is the root of the WC.</p>
+
+<ul>
+ <li><strong>Inheritance:</strong> If SS has no explicit mergeinfo of its
+   own, it inherits mergeinfo not from its WC parent (SSP) but from its
+   repository parent:</li>
+
+<pre>
+      WC-Root
+         |
+      Target
+         |
+         V
+        SSP
+SSRP..   | \
+      \  |  \
+       V x   V
+        SS  SSS
+
+SSRP - Switched subtree's repository parent
+-->    Mergeinfo inheritance
+--x    No mergeinfo inheritance</pre>
+
+ <li><strong>Recording a Merge:</strong> If we merge revision N from ^/SRC,
+   mergeinfo is recorded like so (note that mergeinfo source '/SRC' is not
+   literal for children of 'Target' but would be adjusted for the path-wise
+   differences between the root of the merge target and the subtree in
+   question):</li>
+
+<pre>
+  WC-Root
+     |
+  Target ('/SRC:N')
+     |
+    SSP('/SRC:N*')
+     | \
+     |  \
+     |   SSS('/SRC:N')
+     |
+    SS('/SRC:N' and possibly the mergeinfo
+                inherited from SSRP if SS
+                had no pre-existing explicit
+                mergeinfo)</pre>
+
+ <li><strong>Elision:</strong> Mergeinfo on switched paths never elides to
+   its working copy parents:</li>
+
+<pre>
+      WC-Root
+         ^
+         |
+      Target
+         ^
+         |
+        SSP
+         x ^
+         |  \
+         |   \
+        SS   SSS
+
+-->    Mergeinfo elision possible
+--x    No mergeinfo elision possible</pre>
 
-<ul>
- <li>Merge rev N to switched PATH which has no explicit merge info: PATH
-   does not inherit merge info from its working copy ancestors.  PATH gets
-   merge info for rev N plus any inherited mergeinfo from the repository.</li>
-
- <li>Merge rev N to PATH with switched CHILD:  If CHILD has no explicit
-   mergeinfo it does not inherit merge info from its working copy ancestors.
-   Instead CHILD gets merge info for rev N plus any inherited mergeinfo from
-   the repository.  Regardless of wether CHILD has explicit mergeinfo,
-   CHILD's immediate PARENT (which may be the same as PATH) gets
-   non-inheritable mergeinfo added for rev N.  If PARENT didn't have
-   pre-existing mergeinfo it will have mergeinfo added.  If CHILD has an
-   unswitched SIBLING, then SIBLING will get a full set of mergeinfo since
-   SIBLING and CHILD's common PARENT gets non-inheritable mergeinfo for this
-   merge.  Again,  like PARENT, if SIBLING does not have pre-existing
-   mergeinfo it will have mergeinfo added.
-   </li>
-
- <li>Elision: Merge info on switched paths never elides.</li>
-
- <li>Switch PATH which has <em>committed</em> merge info or switch PATH which
-   has a CHILD with <em>committed</em> mergeinfo: PATH's / CHILD's mergeinfo
-   is <em>replaced</em> by the explicit mergeinfo from the repository.</li>
-
- <li>Switch PATH which has <em>local</em> merge info or switch PATH which has
-   a CHILD with <em>local</em> mergeinfo: PATH's / CHILDS's local mergeinfo
-   is <em>merged</em> with explicit or inherited mergeinfo from the repository.
-   </li>
 </ul>
 
 </div>  <!-- switched-paths -->

Modified: subversion/branches/javahl-ra/notes/moves
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/moves?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/moves (original)
+++ subversion/branches/javahl-ra/notes/moves Mon Apr 23 12:32:48 2012
@@ -39,29 +39,22 @@ The following columns in the NODES table
 moves from copies:
 
   /* Boolean value, specifying if this node was moved here (rather than just
-     copied). The source of the move is implied by a different node with
-     a moved_to column pointing at this node. */
+     copied). This is set on all the nodes in the moved tree.  The source of
+     the move is implied by a different node with a moved_to column pointing
+     at the root node of the moved tree. */
   moved_here  INTEGER,
 
   /* If the underlying node was moved away (rather than just deleted), this
-     specifies the local_relpath of where the BASE node was moved to.
+     specifies the local_relpath of where the node was moved to.
      This is set only on the root of a move, and is NULL for all children.
 
-     Note that moved_to never refers to *this* node. It always refers
-     to the "underlying" node in the BASE tree. A non-NULL moved_to column
-     is only valid in rows where op_depth == 0. */
+     The op-depth of the moved-to node is not recorded. A moved_to path
+     always points at a node within the highest op-depth layer at the
+     destination. This invariant must be maintained by operations which
+     change existing move information. */
   moved_to  TEXT,
 
-Some new queries were added which use these columns:
-
-  STMT_SELECT_MOVED_FROM_RELPATH
-  STMT_UPDATE_MOVED_TO_RELPATH
-  STMT_CLEAR_MOVED_TO_RELPATH
-  STMT_CLEAR_MOVED_TO_RELPATH_RECURSIVE
-  STMT_SELECT_MOVED_HERE_CHILDREN
-
-More queries might be needed (TBD).
-
+Many queries were added or changed to use these columns.
 
 == libsvn_wc ==
 
@@ -81,6 +74,8 @@ private libsvn_wc API:
       the node at the moved_from abspath
 
 More API changes might be needed (TBD).
+In particular, scan_deletion may need to return a list of moves
+in the multi-layer case (http://wiki.apache.org/subversion/MultiLayerMoves)
 
 We might require a working copy upgrade when going from 1.7 to 1.8,
 and only allow new move functionality to be used with 1.8 working copies.

Modified: subversion/branches/javahl-ra/notes/ra-serf-testing.txt
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/ra-serf-testing.txt?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/ra-serf-testing.txt (original)
+++ subversion/branches/javahl-ra/notes/ra-serf-testing.txt Mon Apr 23 12:32:48 2012
@@ -1,3 +1,5 @@
+[ THE CUSTOM TESTING CODE DESCRIBED BELOW WAS REMOVED in r1302567 ]
+
 For the 1.7 release, ra_serf grew a new internal feature to "pause"
 the parsing of (large) XML response bodies. This file intends to
 document the strategy for testing this new feature.

Modified: subversion/branches/javahl-ra/notes/repos-dictated-config
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/repos-dictated-config?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/repos-dictated-config (original)
+++ subversion/branches/javahl-ra/notes/repos-dictated-config Mon Apr 23 12:32:48 2012
@@ -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/javahl-ra/notes/subversion-design.html
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/subversion-design.html?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/subversion-design.html (original)
+++ subversion/branches/javahl-ra/notes/subversion-design.html Mon Apr 23 12:32:48 2012
@@ -2340,7 +2340,10 @@ write/Makefile:6
       <p>Once you've done this, read Jim Blandy's own structural overview,
         which explains how nodes and revisions are organized (among other
         things) in the filesystem implementation:
-        <tt class="filename">subversion/libsvn_fs/structure</tt>.</p>
+        <tt class="filename">subversion/libsvn_fs_base/notes/structure</tt>.
+        (Some details in that document are specific to the BDB-based
+        filesystem implementation.  Details specific to FSFS are recorded in
+        <tt class="filename">subversion/libsvn_fs_fs/structure</tt>.)</p>
 
       <p>Finally, read the well-documented API in
         <tt class="filename">subversion/include/svn_fs.h</tt>.</p>

Modified: subversion/branches/javahl-ra/notes/wc-ng/conflict-storage
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/notes/wc-ng/conflict-storage?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/notes/wc-ng/conflict-storage (original)
+++ subversion/branches/javahl-ra/notes/wc-ng/conflict-storage Mon Apr 23 12:32:48 2012
@@ -200,7 +200,7 @@ Tree conflicts
 Tree conflicts exist on files or directories.
 
 ### JAF: And symlinks, I presume - or, if not, why not?
-### stsp: Symlinks are resolved before retreiving conflict information.,
+### stsp: Symlinks are resolved before retreiving conflict information.
 
 The following information is stored if there is a tree conflict on the node:
 
@@ -212,8 +212,18 @@ The following information is stored if t
 
 LOCAL_CHANGE is the local change which conflicted with the
 incoming change during the operation. Possible values are "edit", "add",
-"delete", "rename", "replace", "obstructed", "missing", and "unversioned"
-(### possibly collapse "unversioned" with "obstructed"?).
+"delete", "rename", "replace", "obstructed", "missing", "unversioned",
+"moved-away", "moved-here", and "copied-here".
+
+### possibly collapse "unversioned" with "obstructed"?
+
+### what is "replace"? we should probably have "replace-add",
+### "replace-moved-away", "replace-moved-here", and "replace-copied-here"
+### hrm. this probably isn't the right representation. "replace-add"
+### says how the new node arrived, but not how the original departed.
+### was it a deleted or moved-away? for example, a local-deleted
+### followed by an add, followed by an incoming-delete should probably
+### be deemed "no conflict".
 
 ORIGINAL_NODE_KIND is the kind of the node in the BASE tree.
 MINE_NODE_KIND is the kind of the node from the WORKING tree at the
@@ -221,7 +231,9 @@ time the conflict was flagged.
 
 INCOMING_CHANGE is the incoming change which conflicted with the
 local change during the operation. Possible values are "edit", "add",
-"delete", "rename", and "replace".
+"delete", "rename", "replace", "moved-away", "moved-here", and
+"copied-here".
+### see concerns above about LOCAL_CHANGE.
 
 The *_SHA1 sum fields are only present if {ORIGINAL,MINE,INCOMING}_NODE_KIND
 is "file".

Propchange: subversion/branches/javahl-ra/subversion/bindings/javahl/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Apr 23 12:32:48 2012
@@ -3,3 +3,4 @@ classes
 include
 svn-javahl.jar
 test-work
+Manifest

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/README
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/README?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/README (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/README Mon Apr 23 12:32:48 2012
@@ -5,7 +5,7 @@ JavaHL provides a (mostly native, using 
 a high level Java API for Subversion, which was originally targeted for
 implementors of GUI clients and IDE plug-ins for Subversion.  JavaHL
 currently provides a minimal-but-complete set of APIs which expose the
-core Subversion C API to Java.  It requires a JRE 1.2+ (runtime).
+core Subversion C API to Java.  It requires a JRE 1.5+ (runtime).
 
 It is currently quite mature, and can be considered for production use.
 
@@ -14,7 +14,7 @@ Build system
 ------------
 
 JavaHL should compile and run under Linux, Win32, and Mac OS X with a
-JDK 1.3+.
+JDK 1.5+.
 
 Its build will produce both a native library (libsvnjavahl-1.so on Unix
 or libsvnjavahl-1.dll on Win32) and a platform independent archive of
@@ -62,9 +62,6 @@ Success stories
 
 Subclipse, Eclipse IDE plug-in <http://subclipse.tigris.org/>
 
-Svn-Up, Swing GUI and plug-in for the IDEA IDE
-<http://svnup.tigris.org/>
-
 
 Why not 100% pure Java?
 -----------------------

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/native/ClientContext.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/ClientContext.cpp?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/ClientContext.cpp (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/ClientContext.cpp Mon Apr 23 12:32:48 2012
@@ -111,7 +111,7 @@ ClientContext::~ClientContext()
 /* Helper function to make sure that we don't keep dangling pointers in ctx.
    Note that this function might be called multiple times if getContext()
    is called on the same pool.
-   
+
    The use of this function assumes a proper subpool behavior by its user,
    (read: SVNClient) usually per request.
  */

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/native/File.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/File.cpp?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/File.cpp (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/File.cpp Mon Apr 23 12:32:48 2012
@@ -82,7 +82,7 @@ const char *File::getAbsPath()
       /* We don't remove the local ref for jabsolutePath here, because
          JNIStringHolder expects that ref to be valid for the life of
          the object, which in this case is allocated on the stack.
-         
+
          So we just "leak" the reference, and it will get cleaned up when
          we eventually exit back to Java-land. */
       env->DeleteLocalRef(clazz);

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.cpp?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.cpp Mon Apr 23 12:32:48 2012
@@ -829,10 +829,11 @@ jbyteArray SVNClient::propertyGet(const 
         return NULL;
 
     apr_hash_t *props;
-    SVN_JNI_ERR(svn_client_propget3(&props, name,
+    SVN_JNI_ERR(svn_client_propget4(&props, name,
                                     intPath.c_str(), pegRevision.revision(),
                                     revision.revision(), NULL, svn_depth_empty,
-                                    NULL, ctx, subPool.getPool()),
+                                    NULL, ctx, subPool.getPool(),
+                                    subPool.getPool()),
                 NULL);
 
     apr_hash_index_t *hi;
@@ -935,7 +936,7 @@ void SVNClient::diff(const char *target1
                      OutputStream &outputStream, svn_depth_t depth,
                      StringArray &changelists,
                      bool ignoreAncestry, bool noDiffDelete, bool force,
-                     bool showCopiesAsAdds)
+                     bool showCopiesAsAdds, bool ignoreProps)
 {
     SVN::Pool subPool(pool);
     const char *c_relToDir = relativeToDir ?
@@ -971,7 +972,8 @@ void SVNClient::diff(const char *target1
                                    noDiffDelete,
                                    showCopiesAsAdds,
                                    force,
-                                   FALSE,
+                                   ignoreProps,
+                                   FALSE, /* use_git_diff_format */
                                    SVN_APR_LOCALE_CHARSET,
                                    outputStream.getStream(subPool),
                                    NULL /* error file */,
@@ -997,7 +999,8 @@ void SVNClient::diff(const char *target1
                                noDiffDelete,
                                showCopiesAsAdds,
                                force,
-                               FALSE,
+                               ignoreProps,
+                               FALSE, /* use_git_diff_format */
                                SVN_APR_LOCALE_CHARSET,
                                outputStream.getStream(subPool),
                                NULL /* error stream */,
@@ -1013,11 +1016,11 @@ void SVNClient::diff(const char *target1
                      const char *relativeToDir, OutputStream &outputStream,
                      svn_depth_t depth, StringArray &changelists,
                      bool ignoreAncestry, bool noDiffDelete, bool force,
-                     bool showCopiesAsAdds)
+                     bool showCopiesAsAdds, bool ignoreProps)
 {
     diff(target1, revision1, target2, revision2, NULL, relativeToDir,
          outputStream, depth, changelists, ignoreAncestry, noDiffDelete, force,
-         showCopiesAsAdds);
+         showCopiesAsAdds, ignoreProps);
 }
 
 void SVNClient::diff(const char *target, Revision &pegRevision,
@@ -1025,11 +1028,12 @@ void SVNClient::diff(const char *target,
                      const char *relativeToDir, OutputStream &outputStream,
                      svn_depth_t depth, StringArray &changelists,
                      bool ignoreAncestry, bool noDiffDelete, bool force,
-                     bool showCopiesAsAdds)
+                     bool showCopiesAsAdds, bool ignoreProps)
 {
     diff(target, startRevision, NULL, endRevision, &pegRevision,
          relativeToDir, outputStream, depth, changelists,
-         ignoreAncestry, noDiffDelete, force, showCopiesAsAdds);
+         ignoreAncestry, noDiffDelete, force, showCopiesAsAdds,
+         ignoreProps);
 }
 
 void

Modified: subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.h?rev=1329209&r1=1329208&r2=1329209&view=diff
==============================================================================
--- subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/branches/javahl-ra/subversion/bindings/javahl/native/SVNClient.h Mon Apr 23 12:32:48 2012
@@ -177,13 +177,13 @@ class SVNClient :public SVNBase
             const char *relativeToDir, OutputStream &outputStream,
             svn_depth_t depth, StringArray &changelists,
             bool ignoreAncestry, bool noDiffDelete, bool force,
-            bool showCopiesAsAdds);
+            bool showCopiesAsAdds, bool ignoreProps);
   void diff(const char *target, Revision &pegevision,
             Revision &startRevision, Revision &endRevision,
             const char *relativeToDir, OutputStream &outputStream,
             svn_depth_t depth, StringArray &changelists,
             bool ignoreAncestry, bool noDiffDelete, bool force,
-            bool showCopiesAsAdds);
+            bool showCopiesAsAdds, bool ignoreProps);
   void diffSummarize(const char *target1, Revision &revision1,
                      const char *target2, Revision &revision2,
                      svn_depth_t depth, StringArray &changelists,
@@ -212,7 +212,7 @@ class SVNClient :public SVNBase
             OutputStream &outputStream, svn_depth_t depth,
             StringArray &changelists,
             bool ignoreAncestry, bool noDiffDelete, bool force,
-            bool showCopiesAsAdds);
+            bool showCopiesAsAdds, bool ignoreProps);
 
   Path m_lastPath;
   ClientContext context;



Mime
View raw message