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

svn commit: r1371833 [1/3] - in /subversion/branches/inheritable-props: ./ build/ build/generator/ build/generator/templates/ contrib/client-side/emacs/ contrib/client-side/svn-push/ contrib/client-side/svnmerge/ contrib/hook-scripts/enforcer/ notes/me...

Author: pburba
Date: Fri Aug 10 22:30:18 2012
New Revision: 1371833

URL: http://svn.apache.org/viewvc?rev=1371833&view=rev
Log:
On the inheritable-props branch: Sync with ^/subversion/trunk through
r1371831.

Added:
    subversion/branches/inheritable-props/build/transform_config_hw.py
      - copied unchanged from r1371831, subversion/trunk/build/transform_config_hw.py
    subversion/branches/inheritable-props/subversion/libsvn_subr/sysinfo.c
      - copied unchanged from r1371831, subversion/trunk/subversion/libsvn_subr/sysinfo.c
    subversion/branches/inheritable-props/subversion/libsvn_subr/sysinfo.h
      - copied unchanged from r1371831, subversion/trunk/subversion/libsvn_subr/sysinfo.h
Modified:
    subversion/branches/inheritable-props/   (props changed)
    subversion/branches/inheritable-props/CHANGES
    subversion/branches/inheritable-props/INSTALL
    subversion/branches/inheritable-props/build.conf
    subversion/branches/inheritable-props/build/generator/gen_vcnet_vcproj.py
    subversion/branches/inheritable-props/build/generator/gen_win.py
    subversion/branches/inheritable-props/build/generator/templates/build_locale.ezt
    subversion/branches/inheritable-props/build/generator/templates/build_zlib.ezt
    subversion/branches/inheritable-props/build/generator/templates/serf.vcproj.ezt
    subversion/branches/inheritable-props/build/generator/templates/serf.vcxproj.ezt
    subversion/branches/inheritable-props/build/generator/templates/svn_config.vcproj.ezt
    subversion/branches/inheritable-props/build/generator/templates/svn_config.vcxproj.ezt
    subversion/branches/inheritable-props/build/generator/templates/vcnet_vcproj.ezt
    subversion/branches/inheritable-props/build/generator/templates/vcnet_vcxproj.ezt
    subversion/branches/inheritable-props/configure.ac
    subversion/branches/inheritable-props/contrib/client-side/emacs/dsvn.el
    subversion/branches/inheritable-props/contrib/client-side/emacs/psvn.el
    subversion/branches/inheritable-props/contrib/client-side/svn-push/svn-push.c
    subversion/branches/inheritable-props/contrib/client-side/svnmerge/svnmerge.py
    subversion/branches/inheritable-props/contrib/hook-scripts/enforcer/enforcer
    subversion/branches/inheritable-props/gen-make.py
    subversion/branches/inheritable-props/notes/merge-tracking/func-spec.html
    subversion/branches/inheritable-props/subversion/include/private/svn_client_private.h
    subversion/branches/inheritable-props/subversion/include/svn_dav.h
    subversion/branches/inheritable-props/subversion/include/svn_mergeinfo.h
    subversion/branches/inheritable-props/subversion/include/svn_opt.h
    subversion/branches/inheritable-props/subversion/include/svn_ra.h
    subversion/branches/inheritable-props/subversion/include/svn_wc.h
    subversion/branches/inheritable-props/subversion/libsvn_client/externals.c
    subversion/branches/inheritable-props/subversion/libsvn_client/merge.c
    subversion/branches/inheritable-props/subversion/libsvn_client/relocate.c
    subversion/branches/inheritable-props/subversion/libsvn_fs/fs-loader.c
    subversion/branches/inheritable-props/subversion/libsvn_fs_base/dag.c
    subversion/branches/inheritable-props/subversion/libsvn_fs_base/uuid.h
    subversion/branches/inheritable-props/subversion/libsvn_fs_fs/fs_fs.c
    subversion/branches/inheritable-props/subversion/libsvn_repos/repos.c
    subversion/branches/inheritable-props/subversion/libsvn_subr/base64.c
    subversion/branches/inheritable-props/subversion/libsvn_subr/cache-membuffer.c
    subversion/branches/inheritable-props/subversion/libsvn_subr/debug.c
    subversion/branches/inheritable-props/subversion/libsvn_subr/deprecated.c
    subversion/branches/inheritable-props/subversion/libsvn_subr/opt.c
    subversion/branches/inheritable-props/subversion/libsvn_subr/opt.h
    subversion/branches/inheritable-props/subversion/libsvn_wc/node.c
    subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db.c
    subversion/branches/inheritable-props/subversion/libsvn_wc/wc_db.h
    subversion/branches/inheritable-props/subversion/svn/cl.h
    subversion/branches/inheritable-props/subversion/svn/conflict-callbacks.c
    subversion/branches/inheritable-props/subversion/svn/file-merge.c
    subversion/branches/inheritable-props/subversion/svn/help-cmd.c
    subversion/branches/inheritable-props/subversion/svn/main.c
    subversion/branches/inheritable-props/subversion/svn/merge-cmd.c
    subversion/branches/inheritable-props/subversion/svn_private_config.hw
    subversion/branches/inheritable-props/subversion/svnadmin/main.c
    subversion/branches/inheritable-props/subversion/svndumpfilter/main.c
    subversion/branches/inheritable-props/subversion/svnlook/main.c
    subversion/branches/inheritable-props/subversion/svnmucc/svnmucc.c
    subversion/branches/inheritable-props/subversion/svnrdump/svnrdump.c
    subversion/branches/inheritable-props/subversion/svnserve/main.c
    subversion/branches/inheritable-props/subversion/svnsync/main.c
    subversion/branches/inheritable-props/subversion/svnversion/main.c
    subversion/branches/inheritable-props/subversion/tests/cmdline/merge_reintegrate_tests.py
    subversion/branches/inheritable-props/subversion/tests/cmdline/merge_symmetric_tests.py
    subversion/branches/inheritable-props/subversion/tests/cmdline/merge_tests.py
    subversion/branches/inheritable-props/subversion/tests/cmdline/prop_tests.py
    subversion/branches/inheritable-props/tools/dev/svnraisetreeconflict/main.c
    subversion/branches/inheritable-props/tools/server-side/svn-rep-sharing-stats.c

Propchange: subversion/branches/inheritable-props/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1367697-1371831

Modified: subversion/branches/inheritable-props/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/CHANGES?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/CHANGES (original)
+++ subversion/branches/inheritable-props/CHANGES Fri Aug 10 22:30:18 2012
@@ -27,6 +27,7 @@ http://svn.apache.org/repos/asf/subversi
     * 'svn mergeinfo' now honors the --revision (-r) option (issue #4199)
     * new --search and --isearch options for 'svn log' (r1354666, -830)
     * new built-in interactive text conflict merge tool (r1357864, et al)
+    * new 'svn --version --verbose' option shows runtime environment info
 
   - Client-side bugfixes:
     *
@@ -49,7 +50,7 @@ http://svn.apache.org/repos/asf/subversi
 
 
 Version 1.7.6
-(XX YYY 2012, from /branches/1.7.x)
+(15 Aug 2012, from /branches/1.7.x)
 http://svn.apache.org/repos/asf/subversion/tags/1.7.6
 
  User-visible changes:
@@ -67,16 +68,27 @@ http://svn.apache.org/repos/asf/subversi
     * allow 'file:///C:\repos' style arguments on Windows, like 1.6 (r1346765)
     * fix ra_serf against Subversion 1.2 servers (r1349367)
     * fix 'svn upgrade' on working copies with certain tree conflicts (r1345482)
+    * avoid workqueue references to system temp dir (r1367854)
+    * allow non-existant canonical paths (r1367853)
+    * fix 'svn revert --depth files' to operate on files (r1365554)
+    * fix ra_serf XML namespace handling against malicious server (r1337441)
+    * fix relocate with server-relative externals (issue 4216)
+    * change two asserts into errors for TortoiseSVN (r1368128, r1368065)
+    * don't attempt to anchor an operation outside a wc root (r1361341)
 
   - Server-side bugfixes:
     * partial sync drops properties when converting to adds (issue #4184)
     * replaying a copy and delete of an unreadable child fails (issue #4121)
+    * allow svnlook to operate on r0 (r1362508)
+    * make FSFS revision files independent of APR hash order (r1367498)
 
   - Other tool improvements and bugfixes:
+    * move mod_dontdothat to install-tools (r1307177)
 
  Developer-visible changes:
   - General:
     * fix running tests against httpd 2.4 (r1291594)
+    * use constant struct initialisers for C89 compatibility (r1352068)
 
   - Bindings:
     * JavaHL: Don't assert on some invalid input (r1354626, r1354652)

Modified: subversion/branches/inheritable-props/INSTALL
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/INSTALL?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/INSTALL (original)
+++ subversion/branches/inheritable-props/INSTALL Fri Aug 10 22:30:18 2012
@@ -807,7 +807,7 @@ II.   INSTALLATION
       * Python 2.5 or higher, downloaded from http://www.python.org/ which is
         used to generate the project files.
       * Perl 5.8 or higher from http://www.activestate.com/
-      * Awk (from http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe) is
+      * Awk (from http://www.cs.princeton.edu/~bwk/btl.mirror/awk95.exe) is
         needed to compile Apache or APR.  Note that this is the actual awk
         program, not an installer - just rename it to awk.exe and it is
         ready to use.

Modified: subversion/branches/inheritable-props/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/build.conf?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/build.conf (original)
+++ subversion/branches/inheritable-props/build.conf Fri Aug 10 22:30:18 2012
@@ -296,7 +296,8 @@ type = lib
 install = fsmod-lib
 path = subversion/libsvn_subr
 libs = aprutil apriconv apr xml zlib apr_memcache sqlite magic
-msvc-libs = advapi32.lib shfolder.lib ole32.lib crypt32.lib version.lib
+msvc-libs = kernel32.lib advapi32.lib shfolder.lib ole32.lib
+            crypt32.lib version.lib psapi.lib
 msvc-export = 
         svn_auth.h svn_base64.h svn_cache_config.h svn_checksum.h svn_cmdline.h
         svn_compat.h svn_config.h svn_ctype.h svn_dirent_uri.h svn_dso.h 

Modified: subversion/branches/inheritable-props/build/generator/gen_vcnet_vcproj.py
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/build/generator/gen_vcnet_vcproj.py?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/build/generator/gen_vcnet_vcproj.py (original)
+++ subversion/branches/inheritable-props/build/generator/gen_vcnet_vcproj.py Fri Aug 10 22:30:18 2012
@@ -138,14 +138,14 @@ class Generator(gen_win.WinGeneratorBase
                                    key=lambda t: t[0]):
       sql.append(_eztdata(header=hdrfile.replace('/', '\\'),
                           source=sqlfile[0].replace('/', '\\'),
-                          dependencies=[x.replace('/', '\\') for x in sqlfile[1:]],
-                          svn_python=sys.executable))
+                          dependencies=[x.replace('/', '\\') for x in sqlfile[1:]]))
 
     # apr doesn't supply vcproj files, the user must convert them
     # manually before loading the generated solution
     self.move_proj_file(self.projfilesdir,
                         'svn_config' + self.vcproj_extension,
                           (
+                            ('svn_python', sys.executable),
                             ('sql', sql),
                             ('project_guid', self.makeguid('__CONFIG__')),
                           )

Modified: subversion/branches/inheritable-props/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/build/generator/gen_win.py?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/build/generator/gen_win.py (original)
+++ subversion/branches/inheritable-props/build/generator/gen_win.py Fri Aug 10 22:30:18 2012
@@ -94,6 +94,7 @@ class GeneratorBase(gen_base.GeneratorBa
     # Instrumentation options
     self.disable_shared = None
     self.static_apr = None
+    self.static_openssl = None
     self.instrument_apr_pools = None
     self.instrument_purify_quantify = None
     self.configure_apr_util = None
@@ -155,6 +156,8 @@ class GeneratorBase(gen_base.GeneratorBa
         self.disable_shared = 1
       elif opt == '--with-static-apr':
         self.static_apr = 1
+      elif opt == '--with-static-openssl':
+        self.static_openssl = 1
       elif opt == '--vsnet-version':
         if val == '2002' or re.match('7(\.\d+)?', val):
           self.vs_version = '2002'
@@ -962,7 +965,11 @@ class WinGeneratorBase(GeneratorBase):
   def get_win_lib_dirs(self, target, cfg):
     "Return the list of library directories for target"
 
-    libcfg = cfg.replace("Debug", "LibD").replace("Release", "LibR")
+    expatlibcfg = cfg.replace("Debug", "LibD").replace("Release", "LibR")
+    if self.static_apr:
+      libcfg = expatlibcfg
+    else:
+      libcfg = cfg
 
     fakelibdirs = [ self.apath(self.bdb_path, "lib"),
                     self.apath(self.zlib_path),
@@ -976,10 +983,10 @@ class WinGeneratorBase(GeneratorBase):
     if self.serf_lib:
       fakelibdirs.append(self.apath(msvc_path_join(self.serf_path, cfg)))
 
-    fakelibdirs.append(self.apath(self.apr_path, cfg))
-    fakelibdirs.append(self.apath(self.apr_util_path, cfg))
+    fakelibdirs.append(self.apath(self.apr_path, libcfg))
+    fakelibdirs.append(self.apath(self.apr_util_path, libcfg))
     fakelibdirs.append(self.apath(self.apr_util_path, 'xml', 'expat',
-                                  'lib', libcfg))
+                                  'lib', expatlibcfg))
 
     if isinstance(target, gen_base.TargetApacheMod):
       fakelibdirs.append(self.apath(self.httpd_path, cfg))
@@ -1160,6 +1167,8 @@ class WinGeneratorBase(GeneratorBase):
     else:
       serflib = 'serf.lib'
 
+    apr_static = self.static_apr and 'APR_STATIC=1' or ''
+    openssl_static = self.static_openssl and 'OPENSSL_STATIC=1' or ''
     self.move_proj_file(self.serf_path, name,
                         (('serf_sources', serf_sources),
                          ('serf_headers', serf_headers),
@@ -1172,7 +1181,8 @@ class WinGeneratorBase(GeneratorBase):
                          ('apr_util_path', os.path.relpath(self.apr_util_path,
                                                            self.serf_path)),
                          ('project_guid', self.makeguid('serf')),
-                         ('apr_static', self.static_apr),
+                         ('apr_static', apr_static),
+                         ('openssl_static', openssl_static),
                          ('serf_lib', serflib),
                         ))
 

Modified: subversion/branches/inheritable-props/build/generator/templates/build_locale.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/build/generator/templates/build_locale.ezt?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/build/generator/templates/build_locale.ezt (original)
+++ subversion/branches/inheritable-props/build/generator/templates/build_locale.ezt Fri Aug 10 22:30:18 2012
@@ -18,14 +18,14 @@
 
 @echo off
 @rem **************************************************************************
-cd ..\..\subversion\po
+cd ..\..\..\subversion\po
 mkdir ..\..\%1\mo
 set exitcode=0
 [for pofiles]echo Running msgfmt on [pofiles.po]...
 python ..\..\build\strip-po-charset.py [pofiles.po] [pofiles.spo]
-if not errorlevel 0 goto err
+if errorlevel 1 goto err
 msgfmt.exe -c -o ..\..\%1\mo\[pofiles.mo] [pofiles.spo]
-if not errorlevel 0 goto err
+if errorlevel 1 goto err
 del [pofiles.spo]
 [end]
 goto end

Modified: subversion/branches/inheritable-props/build/generator/templates/build_zlib.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/build/generator/templates/build_zlib.ezt?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/build/generator/templates/build_zlib.ezt (original)
+++ subversion/branches/inheritable-props/build/generator/templates/build_zlib.ezt Fri Aug 10 22:30:18 2012
@@ -108,7 +108,7 @@ set BUILD_OPTS=%ASM_OPTS%
 [end]
 @echo nmake /f win32\Makefile.msc %BUILD_OPTS% STATICLIB=%STATICLIB% %target%
 nmake /nologo /f win32\Makefile.msc %BUILD_OPTS% STATICLIB=%STATICLIB% %target%
-if not errorlevel 0 goto err
+if errorlevel 1 goto err
 goto end
 
 @rem **************************************************************************

Modified: subversion/branches/inheritable-props/build/generator/templates/serf.vcproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/build/generator/templates/serf.vcproj.ezt?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/build/generator/templates/serf.vcproj.ezt (original)
+++ subversion/branches/inheritable-props/build/generator/templates/serf.vcproj.ezt Fri Aug 10 22:30:18 2012
@@ -40,9 +40,9 @@
             ATLMinimizesCRunTimeLibraryUsage="FALSE">
             <Tool
                 Name="VCNMakeTool"
-                BuildCommandLine="nmake /s /nologo /f serf.mak ALL DEBUG_BUILD=1 APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path][end]"
-                ReBuildCommandLine="nmake /s /nologo /f serf.mak CLEAN ALL DEBUG_BUILD=1 APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path][end]"
-                CleanCommandLine="nmake /s /nologo /f serf.mak CLEAN DEBUG_BUILD=1 APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path]  [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path][end]"
+                BuildCommandLine="nmake /s /nologo /f serf.mak ALL DEBUG_BUILD=1 APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]"
+                ReBuildCommandLine="nmake /s /nologo /f serf.mak CLEAN ALL DEBUG_BUILD=1 APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]"
+                CleanCommandLine="nmake /s /nologo /f serf.mak CLEAN DEBUG_BUILD=1 APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]"
                 Output="$(OutDir)\[serf_lib]"/>
         </Configuration>
         <Configuration
@@ -56,9 +56,9 @@
             ATLMinimizesCRunTimeLibraryUsage="FALSE">
             <Tool
                 Name="VCNMakeTool"
-                BuildCommandLine="nmake /s /nologo /f serf.mak ALL APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path][end]"
-                ReBuildCommandLine="nmake /s /nologo /f serf.mak CLEAN ALL APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path]  [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path][end]"
-                CleanCommandLine="nmake /s /nologo /f serf.mak CLEAN APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path][end]"
+                BuildCommandLine="nmake /s /nologo /f serf.mak ALL APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]"
+                ReBuildCommandLine="nmake /s /nologo /f serf.mak CLEAN ALL APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]"
+                CleanCommandLine="nmake /s /nologo /f serf.mak CLEAN APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]"
                 Output="$(OutDir)\[serf_lib]"/>
         </Configuration>
 [end]    </Configurations>

Modified: subversion/branches/inheritable-props/build/generator/templates/serf.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/build/generator/templates/serf.vcxproj.ezt?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/build/generator/templates/serf.vcxproj.ezt (original)
+++ subversion/branches/inheritable-props/build/generator/templates/serf.vcxproj.ezt Fri Aug 10 22:30:18 2012
@@ -46,9 +46,9 @@
   <PropertyGroup>
 [for configs][for platforms]    <OutDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">[configs]</OutDir>
     <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">[configs]</IntDir>
-    <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">"$(VCInstallDir)bin\nmake.exe" /s /nologo /f serf.mak ALL [is configs "Debug"]DEBUG_BUILD=1 [end]APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path][end]</NMakeBuildCommandLine>
-    <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">"$(VCInstallDir)bin\nmake.exe" /s /nologo /f serf.mak CLEAN ALL [is configs "Debug"]DEBUG_BUILD=1 [end]APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path][end]</NMakeReBuildCommandLine>
-    <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">"$(VCInstallDir)bin\nmake.exe" /s /nologo /f serf.mak CLEAN [is configs "Debug"]DEBUG_BUILD=1 [end]APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path]  [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path][end]</NMakeCleanCommandLine>
+    <NMakeBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">"$(VCInstallDir)bin\nmake.exe" /s /nologo /f serf.mak ALL [is configs "Debug"]DEBUG_BUILD=1 [end]APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]</NMakeBuildCommandLine>
+    <NMakeReBuildCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">"$(VCInstallDir)bin\nmake.exe" /s /nologo /f serf.mak CLEAN ALL [is configs "Debug"]DEBUG_BUILD=1 [end]APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]</NMakeReBuildCommandLine>
+    <NMakeCleanCommandLine Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">"$(VCInstallDir)bin\nmake.exe" /s /nologo /f serf.mak CLEAN [is configs "Debug"]DEBUG_BUILD=1 [end]APR_SRC=[apr_path] APRUTIL_SRC=[apr_util_path] [apr_static] [if-any zlib_path]ZLIB_SRC=[zlib_path][end] [if-any openssl_path]OPENSSL_SRC=[openssl_path] [openssl_static][end]</NMakeCleanCommandLine>
     <NMakeOutput Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">$(OutDir)\[serf_lib]</NMakeOutput>
 [end][end]  </PropertyGroup>
   <ItemDefinitionGroup>

Modified: subversion/branches/inheritable-props/build/generator/templates/svn_config.vcproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/build/generator/templates/svn_config.vcproj.ezt?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/build/generator/templates/svn_config.vcproj.ezt (original)
+++ subversion/branches/inheritable-props/build/generator/templates/svn_config.vcproj.ezt Fri Aug 10 22:30:18 2012
@@ -33,7 +33,7 @@
 			Name="[configs]|[platforms]"
 			OutputDirectory="."
 			BuildLogFile="$(IntDir)\BuildLog_$(ProjectName).htm"
-			IntermediateDirectory="..\..\$(ConfigurationName)"
+			IntermediateDirectory="..\..\..\$(ConfigurationName)"
 			ConfigurationType="10"
 			UseOfMFC="0"
 			DeleteExtensionsOnClean="*.obj;*.ilk;*.pdb;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;$(TargetPath)"
@@ -53,7 +53,7 @@
 	</Configurations>
 	<Files>
 		<File
-			RelativePath="..\..\subversion\svn_private_config.h">
+			RelativePath="$(IntDir)\svn_private_config.h">
 [for platforms][for configs]			<FileConfiguration
 				Name="[configs]|[platforms]"
 				ExcludedFromBuild="TRUE">
@@ -68,19 +68,27 @@
 				<Tool
 					Name="VCCustomBuildTool"
 					Description="Creating svn_private_config.h from svn_private_config.hw."
-					CommandLine="copy ..\..\..\subversion\svn_private_config.hw ..\..\..\subversion\svn_private_config.h &gt; nul
-"
-					Outputs="..\..\subversion\svn_private_config.h"/>
+					CommandLine="&quot;[svn_python]&quot; &quot;$(SolutionDir)\build\transform_config_hw.py&quot; [platforms] &quot;$(InputPath)&quot; &quot;$(IntDir)\svn_private_config.h&quot;"
+					Outputs="$(IntDir)subversion\svn_private_config.h"/>
 			</FileConfiguration>
 [end][end]		</File>
 [for sql]		<File
+			RelativePath="$(SolutionDir)\[sql.header]">
+[for platforms][for configs]			<FileConfiguration
+				Name="[configs]|[platforms]"
+				ExcludedFromBuild="TRUE">
+				<Tool
+					Name="VCCustomBuildTool"/>
+			</FileConfiguration>
+[end][end]		</File>
+		<File
 			RelativePath="../../../[sql.source]">
 [for platforms][for configs]			<FileConfiguration
 				Name="[configs]|[platforms]">
 				<Tool
 					Name="VCCustomBuildTool"
 					Description="Generating [sql.header]"
-					CommandLine="&quot;[sql.svn_python]&quot; &quot;$(SolutionDir)\build\transform_sql.py&quot; &quot;$(InputPath)&quot; &quot;$(SolutionDir)\[sql.header]&quot;"
+					CommandLine="&quot;[svn_python]&quot; &quot;$(SolutionDir)\build\transform_sql.py&quot; &quot;$(InputPath)&quot; &quot;$(SolutionDir)\[sql.header]&quot;"
 					AdditionalDependencies="[for sql.dependencies]$(SolutionDir)\[sql.dependencies];[end]"
 					Outputs="$(SolutionDir)\[sql.header]"
 				/>
@@ -91,4 +99,3 @@
 	<Globals>
 	</Globals>
 </VisualStudioProject>
-

Modified: subversion/branches/inheritable-props/build/generator/templates/svn_config.vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/build/generator/templates/svn_config.vcxproj.ezt?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/build/generator/templates/svn_config.vcxproj.ezt (original)
+++ subversion/branches/inheritable-props/build/generator/templates/svn_config.vcxproj.ezt Fri Aug 10 22:30:18 2012
@@ -46,10 +46,10 @@
 [end][end]  <PropertyGroup Label="UserMacros" />
   <PropertyGroup>
 [for configs][for platforms]    <OutDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</OutDir>
-    <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">.\</IntDir>
+    <IntDir Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">$(SolutionDir)\$(Configuration)\</IntDir>
 [end][end]  </PropertyGroup>
   <ItemGroup>
-    <CustomBuild Include="$(SolutionDir)\subversion\svn_private_config.h">
+    <CustomBuild Include="$(IntDir)svn_private_config.h">
 [for configs][for platforms]      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">true</ExcludedFromBuild>
 [end][end]    </CustomBuild>
   </ItemGroup>
@@ -57,13 +57,16 @@
     <CustomBuild Include="$(SolutionDir)\subversion\svn_private_config.hw">
       <FileType>Document</FileType>
 [for configs][for platforms]      <Message Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">Creating svn_private_config.h from svn_private_config.hw.</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">copy $(SolutionDir)\subversion\svn_private_config.hw $(SolutionDir)\subversion\svn_private_config.h &gt; nul:</Command>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">$(SolutionDir)\subversion\svn_private_config.h;%(Outputs)</Outputs>
+      <Command Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">"[svn_python]" "$(SolutionDir)\build\transform_config_hw.py" $(Platform) "%(FullPath)" "$(IntDir)svn_private_config.h"</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">$(IntDir)svn_private_config.h;%(Outputs)</Outputs>
 [end][end]    </CustomBuild>
-[for sql]    <CustomBuild Include="$(SolutionDir)\[sql.source]">
+[for sql]    <CustomBuild Include="$(SolutionDir)\[sql.header]">
+[for configs][for platforms]      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">true</ExcludedFromBuild>
+[end][end]    </CustomBuild>
+    <CustomBuild Include="$(SolutionDir)\[sql.source]">
       <FileType>Document</FileType>
 [for configs][for platforms]      <Message Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">Generating [sql.header].</Message>
-      <Command Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">"[sql.svn_python]" "$(SolutionDir)\build\transform_sql.py" "%(FullPath)" "$(SolutionDir)\[sql.header]"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">"[svn_python]" "$(SolutionDir)\build\transform_sql.py" "%(FullPath)" "$(SolutionDir)\[sql.header]"</Command>
       <Outputs Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">$(SolutionDir)\[sql.header];%(Outputs)</Outputs>
       <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='[configs]|[platforms]'">[for sql.dependencies]$(SolutionDir)\[sql.dependencies];[end]%(AdditionalInputs)</AdditionalInputs>
 [end][end]

Modified: subversion/branches/inheritable-props/build/generator/templates/vcnet_vcproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/build/generator/templates/vcnet_vcproj.ezt?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/build/generator/templates/vcnet_vcproj.ezt (original)
+++ subversion/branches/inheritable-props/build/generator/templates/vcnet_vcproj.ezt Fri Aug 10 22:30:18 2012
@@ -45,7 +45,7 @@
 				EnableIntrinsicFunctions="TRUE"
 				FavorSizeOrSpeed="1"
 				OmitFramePointers="TRUE"
-[end]				AdditionalIncludeDirectories="[for includes][includes][if-index includes last][else];[end][end]"
+[end]				AdditionalIncludeDirectories="..\..\..\[configs.name];[for includes][includes][if-index includes last][else];[end][end]"
 				PreprocessorDefinitions="[if-any instrument_apr_pools]APR_POOL_DEBUG=[instrument_apr_pools];[end][is platforms "x64"]WIN64;[end][for configs.defines][configs.defines][if-index configs.defines last][else];[end][end];_CRT_SECURE_NO_WARNINGS"
 [is configs.name "Debug"]				MinimalRebuild="TRUE"
 				RuntimeLibrary="3"

Modified: subversion/branches/inheritable-props/build/generator/templates/vcnet_vcxproj.ezt
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/build/generator/templates/vcnet_vcxproj.ezt?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/build/generator/templates/vcnet_vcxproj.ezt (original)
+++ subversion/branches/inheritable-props/build/generator/templates/vcnet_vcxproj.ezt Fri Aug 10 22:30:18 2012
@@ -57,7 +57,7 @@
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
       <StringPooling>true</StringPooling>
-[end]      <AdditionalIncludeDirectories>[for includes][includes];[end]%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+[end]      <AdditionalIncludeDirectories>$(SolutionDir)[configs.name];[for includes][includes];[end];%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>[if-any instrument_apr_pools]APR_POOL_DEBUG=[instrument_apr_pools];[end][is platforms "x64"]WIN64;[end][for configs.defines][configs.defines];[end]%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <WarningLevel>Level4</WarningLevel>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

Modified: subversion/branches/inheritable-props/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/configure.ac?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/configure.ac (original)
+++ subversion/branches/inheritable-props/configure.ac Fri Aug 10 22:30:18 2012
@@ -699,13 +699,23 @@ if test "$enable_nls" = "yes"; then
   fi
 fi
 
-AH_BOTTOM(
+AH_BOTTOM([
+/* Indicate to translators that string X should be translated.  Do not look
+   up the translation at run time; just expand to X.  This macro is suitable
+   for use where a constant string is required at compile time. */
 #define N_(x) x
+/* Indicate to translators that we have decided the string X should not be
+   translated.  Expand to X. */
 #define U_(x) x
 #ifdef ENABLE_NLS
 #include <locale.h>
 #include <libintl.h>
+/* Indicate to translators that string X should be translated.  At run time,
+   look up and return the translation of X. */
 #define _(x) dgettext(PACKAGE_NAME, x)
+/* Indicate to translators that strings X1 and X2 are singular and plural
+   forms of the same message, and should be translated.  At run time, return
+   an appropriate translation depending on the number N. */
 #define Q_(x1, x2, n) dngettext(PACKAGE_NAME, x1, x2, n)
 #else
 #define _(x) (x)
@@ -713,7 +723,7 @@ AH_BOTTOM(
 #define gettext(x) (x)
 #define dgettext(domain, x) (x)
 #endif
-)
+])
 
 dnl Used to simulate makefile conditionals.
 GETTEXT_CODESET=\#
@@ -877,6 +887,8 @@ AC_FUNC_VPRINTF
 dnl check for functions needed in special file handling
 AC_CHECK_FUNCS(symlink readlink)
 
+dnl check for uname
+AC_CHECK_HEADERS(sys/utsname.h, [AC_CHECK_FUNCS(uname)], [])
 
 dnl Process some configuration options ----------
 
@@ -1389,6 +1401,10 @@ AC_SUBST(SVN_CONFIG_SCRIPT_FILES)
 # Ensure that SWIG is checked after reconfiguration.
 rm -f .swig_checked
 
+dnl Provide ${host} for use in compiled code (for svn --version)
+AC_DEFINE_UNQUOTED([SVN_BUILD_HOST], "${host}",
+                   [Defined to the config.guess name of the build system])
+
 AC_OUTPUT
 
 # ==== Print final messages to user ==========================================

Modified: subversion/branches/inheritable-props/contrib/client-side/emacs/dsvn.el
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/contrib/client-side/emacs/dsvn.el?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/contrib/client-side/emacs/dsvn.el (original)
+++ subversion/branches/inheritable-props/contrib/client-side/emacs/dsvn.el Fri Aug 10 22:30:18 2012
@@ -130,6 +130,11 @@
   :type 'boolean
   :group 'dsvn)
 
+(defcustom svn-diff-args '("-x" "-p")
+  "*Additional arguments used for all invocations of `svn diff'."
+  :type '(repeat string)
+  :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
@@ -351,7 +356,9 @@ during the run."
   "Run `svn diff'.
 Argument ARG are the command line arguments."
   (interactive "ssvn diff arguments: ")
-  (svn-run-with-output "diff" (split-string arg) 'diff-mode))
+  (svn-run-with-output "diff"
+		       (append svn-diff-args (split-string arg))
+		       'diff-mode))
 
 (defun svn-commit ()
   "Commit changes to one or more files."
@@ -573,7 +580,7 @@ VERBOSE-P."
       (erase-buffer)
       (setq default-directory dir)
       (svn-call-process diff-buf
-                        "diff" "-r"
+                        "diff" "-x" "-p" "-r"
                         (format "%d:%d" (1- commit-id) commit-id)))))
 
 (defun svn-log-edit-files (commit-id)
@@ -601,7 +608,9 @@ VERBOSE-P."
   "Run `svn diff' for the current log entry."
   (interactive)
   (let ((commit-id (svn-log-current-commit)))
-    (svn-run-with-output "diff" (list "-c" (number-to-string commit-id))
+    (svn-run-with-output "diff"
+			 (append svn-diff-args
+				 (list "-c" (number-to-string commit-id)))
                          'diff-mode)))
 
 (defun svn-log-edit ()
@@ -1957,7 +1966,8 @@ files instead."
                  (list (or (svn-getprop (point) 'file)
                            (svn-getprop (point) 'dir)
                            (error "No file on line"))))))
-    (unless (svn-run-with-output "diff" files 'diff-mode)
+    (unless (svn-run-with-output "diff" (append svn-diff-args files)
+				 'diff-mode)
       (message "No difference found"))))
 
 (defun svn-previous-file (arg)

Modified: subversion/branches/inheritable-props/contrib/client-side/emacs/psvn.el
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/contrib/client-side/emacs/psvn.el?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/contrib/client-side/emacs/psvn.el (original)
+++ subversion/branches/inheritable-props/contrib/client-side/emacs/psvn.el Fri Aug 10 22:30:18 2012
@@ -3575,7 +3575,7 @@ If the file is not found, return nil."
     (and found start-pos)))
 
 (defun svn-status-goto-file-name (name)
-  "Move the cursor the the line that displays NAME."
+  "Move the cursor to the line that displays NAME."
   (let ((pos (svn-status-get-file-name-buffer-position name)))
     (if pos
         (goto-char pos)

Modified: subversion/branches/inheritable-props/contrib/client-side/svn-push/svn-push.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/contrib/client-side/svn-push/svn-push.c?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/contrib/client-side/svn-push/svn-push.c (original)
+++ subversion/branches/inheritable-props/contrib/client-side/svn-push/svn-push.c Fri Aug 10 22:30:18 2012
@@ -147,8 +147,8 @@ check_lib_versions (void)
       { "svn_ra",     svn_ra_version },
       { NULL, NULL }
     };
-
   SVN_VERSION_DEFINE (my_version);
+
   return svn_ver_check_list (&my_version, checklist);
 }
 

Modified: subversion/branches/inheritable-props/contrib/client-side/svnmerge/svnmerge.py
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/contrib/client-side/svnmerge/svnmerge.py?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/contrib/client-side/svnmerge/svnmerge.py (original)
+++ subversion/branches/inheritable-props/contrib/client-side/svnmerge/svnmerge.py Fri Aug 10 22:30:18 2012
@@ -342,10 +342,13 @@ def check_dir_clean(dir):
     # Checking with -q does not show unversioned files or external
     # directories.  Though it displays a debug message for external
     # directories, after a blank line.  So, practically, the first line
-    # matters: if it's non-empty there is a modification.
+    # matters: if it's non-empty there is a modification. (Lines starting
+    # with "X" must be skipped, since they just indicate externals.)
     out = launchsvn("status -q %s" % dir)
-    if out and out[0].strip():
-        error('"%s" has local modifications; it must be clean' % dir)
+    while out and out[0].strip():
+        if not out[0].startswith("X"):
+            error('"%s" has local modifications; it must be clean' % dir)
+        out.pop(0)
 
 class PathIdentifier:
     """Abstraction for a path identifier, so that we can start talking

Modified: subversion/branches/inheritable-props/contrib/hook-scripts/enforcer/enforcer
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/contrib/hook-scripts/enforcer/enforcer?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/contrib/hook-scripts/enforcer/enforcer (original)
+++ subversion/branches/inheritable-props/contrib/hook-scripts/enforcer/enforcer Fri Aug 10 22:30:18 2012
@@ -129,7 +129,7 @@ configuration file "enforcer.conf".
 
 When writing hooks, it is usually easier to test the hooks on committed
 transactions already in the repository, rather than installing the
-hook and making commits to test the them.  Enforcer allows you to
+hook and making commits to test them.  Enforcer allows you to
 specify either a transaction ID (for use in a hook script) or a
 revision number (for testing).  You can then, for example, find a
 revision that you would like to have blocked (or not) and test your

Modified: subversion/branches/inheritable-props/gen-make.py
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/gen-make.py?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/gen-make.py (original)
+++ subversion/branches/inheritable-props/gen-make.py Fri Aug 10 22:30:18 2012
@@ -204,6 +204,9 @@ def _usage_exit(err=None):
   print("  --with-static-apr")
   print("           Use static apr and apr-util")
   print("")
+  print("  --with-static-openssl")
+  print("           Use static openssl")
+  print("")
   print("  --vsnet-version=VER")
   print("           generate for VS.NET version VER (2002, 2003, 2005, 2008, 2010 or 2012)")
   print("           [only valid in combination with '-t vcproj']")
@@ -248,6 +251,7 @@ if __name__ == '__main__':
                             'with-sasl=',
                             'with-apr_memcache=',
                             'with-static-apr',
+                            'with-static-openssl',
                             'enable-pool-debug',
                             'enable-purify',
                             'enable-quantify',

Modified: subversion/branches/inheritable-props/notes/merge-tracking/func-spec.html
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/notes/merge-tracking/func-spec.html?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/notes/merge-tracking/func-spec.html (original)
+++ subversion/branches/inheritable-props/notes/merge-tracking/func-spec.html Fri Aug 10 22:30:18 2012
@@ -672,7 +672,7 @@ Whitespace fixes.  No functional change.
 
   <p>The <code>--verbose</code> flag also triggers additional information.
   In addition to the date of the revision, <code>--verbose</code>, in
-  combination with <code>-g</code>, also displays the the original path, relative
+  combination with <code>-g</code>, also displays the original path, relative
   to the repository root, where the modifications were made.  Given the above
   example, <code>svn blame -g --verbose</code> will be something like this:</p>
   <pre>

Modified: subversion/branches/inheritable-props/subversion/include/private/svn_client_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/include/private/svn_client_private.h?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/include/private/svn_client_private.h (original)
+++ subversion/branches/inheritable-props/subversion/include/private/svn_client_private.h Fri Aug 10 22:30:18 2012
@@ -178,14 +178,13 @@ svn_client__wc_node_get_origin(svn_clien
                                apr_pool_t *result_pool,
                                apr_pool_t *scratch_pool);
 
-/* A macro to mark sections of code that belong to the 'symmetric merge'
- * feature while it's still new. */
-#define SVN_WITH_SYMMETRIC_MERGE
-
-#ifdef SVN_WITH_SYMMETRIC_MERGE
 
 /* Details of a symmetric merge. */
-typedef struct svn_client__symmetric_merge_t svn_client__symmetric_merge_t;
+typedef struct svn_client__symmetric_merge_t
+{
+  svn_client__pathrev_t *yca, *base, *mid, *right;
+  svn_boolean_t allow_mixed_rev, allow_local_mods, allow_switched_subtrees;
+} svn_client__symmetric_merge_t;
 
 /* Find the information needed to merge all unmerged changes from a source
  * branch into a target branch.  The information is the locations of the
@@ -211,9 +210,7 @@ svn_client__find_symmetric_merge(svn_cli
  *
  * Merge according to MERGE into the WC at TARGET_WCPATH.
  *
- * The other parameters are as in svn_client_merge4().  IGNORE_ANCESTRY
- * only controls the diffing of files, it doesn't prevent mergeinfo from
- * being used.
+ * The other parameters are as in svn_client_merge4().
  *
  * ### TODO: There's little point in this function being the only way the
  * caller can use the result of svn_client__find_symmetric_merge().  The
@@ -227,7 +224,6 @@ svn_error_t *
 svn_client__do_symmetric_merge(const svn_client__symmetric_merge_t *merge,
                                const char *target_wcpath,
                                svn_depth_t depth,
-                               svn_boolean_t ignore_ancestry,
                                svn_boolean_t force,
                                svn_boolean_t record_only,
                                svn_boolean_t dry_run,
@@ -235,7 +231,6 @@ svn_client__do_symmetric_merge(const svn
                                svn_client_ctx_t *ctx,
                                apr_pool_t *scratch_pool);
 
-#endif /* SVN_WITH_SYMMETRIC_MERGE */
 
 #ifdef __cplusplus
 }

Modified: subversion/branches/inheritable-props/subversion/include/svn_dav.h
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/include/svn_dav.h?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/include/svn_dav.h (original)
+++ subversion/branches/inheritable-props/subversion/include/svn_dav.h Fri Aug 10 22:30:18 2012
@@ -171,7 +171,7 @@ extern "C" {
 #define SVN_DAV_TXN_NAME_HEADER "SVN-Txn-Name"
 
 /** This header is used in the POST request, to pass a client supplied
- * alternative transaction name to the server, and in the the POST
+ * alternative transaction name to the server, and in the POST
  * response, to tell the client that the alternative transaction
  * resource names should be used.  (HTTP protocol v2 only)
  * @since New in 1.7.  */

Modified: subversion/branches/inheritable-props/subversion/include/svn_mergeinfo.h
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/include/svn_mergeinfo.h?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/include/svn_mergeinfo.h (original)
+++ subversion/branches/inheritable-props/subversion/include/svn_mergeinfo.h Fri Aug 10 22:30:18 2012
@@ -395,7 +395,7 @@ svn_mergeinfo_intersect(svn_mergeinfo_t 
  * @a consider_inheritance determines how to account for the inheritability
  * of the two rangelist's ranges when calculating the intersection,
  * @see svn_mergeinfo_diff().  If @a consider_inheritance is FALSE then
- * ranges with different inheritance can intersect, but the the resulting
+ * ranges with different inheritance can intersect, but the resulting
  * @a *rangelist is non-inheritable only if the corresponding ranges from
  * both @a rangelist1 and @a rangelist2 are non-inheritable.
  * If @a consider_inheritance is TRUE, then ranges with different

Modified: subversion/branches/inheritable-props/subversion/include/svn_opt.h
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/include/svn_opt.h?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/include/svn_opt.h (original)
+++ subversion/branches/inheritable-props/subversion/include/svn_opt.h Fri Aug 10 22:30:18 2012
@@ -680,7 +680,8 @@ svn_opt_parse_path(svn_opt_revision_t *r
  * Else, if @a print_version is TRUE, then print version info, in
  * brief form if @a quiet is also TRUE; if @a quiet is FALSE, then if
  * @a version_footer is non-NULL, print it following the version
- * information.
+ * information. If @a verbose is TRUE, also print information about
+ * the running system and loaded shared libraries, where available.
  *
  * Else, if @a os is not @c NULL and does not contain arguments, print
  * generic help, via svn_opt_print_generic_help2() with the @a header,
@@ -695,8 +696,30 @@ svn_opt_parse_path(svn_opt_revision_t *r
  * --version flag *and* subcommand arguments on a help command line.
  * The logic for handling such a situation should be in one place.
  *
- * @since New in 1.5.
+ * @since New in 1.8.
  */
+
+svn_error_t *
+svn_opt_print_help4(apr_getopt_t *os,
+                    const char *pgm_name,
+                    svn_boolean_t print_version,
+                    svn_boolean_t quiet,
+                    svn_boolean_t verbose,
+                    const char *version_footer,
+                    const char *header,
+                    const svn_opt_subcommand_desc2_t *cmd_table,
+                    const apr_getopt_option_t *option_table,
+                    const int *global_options,
+                    const char *footer,
+                    apr_pool_t *pool);
+
+/**
+ * Same as svn_opt_print_help4(), but with @a verbose always @c FALSE.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ */
+
+SVN_DEPRECATED
 svn_error_t *
 svn_opt_print_help3(apr_getopt_t *os,
                     const char *pgm_name,

Modified: subversion/branches/inheritable-props/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/include/svn_ra.h?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/include/svn_ra.h (original)
+++ subversion/branches/inheritable-props/subversion/include/svn_ra.h Fri Aug 10 22:30:18 2012
@@ -613,6 +613,17 @@ typedef struct svn_ra_session_t svn_ra_s
  * corrected_url is NULL, return an #SVN_ERR_RA_SESSION_URL_MISMATCH
  * error.  Allocate all returned items in @a pool.
  *
+ * The @a repos_URL need not point to the root of the repository: subject
+ * to authorization, it may point to any path within the repository, even
+ * a path at which no node exists in the repository.  The session will
+ * remember this URL as its "session URL" (also called "session root URL"),
+ * until changed by svn_ra_reparent().  Many RA functions take or return
+ * paths that are relative to the session URL.
+ *
+ * If a @a corrected_url is returned, it will point to the same path
+ * within the new repository root URL that @a repos_URL pointed to within
+ * the old repository root URL.
+ *
  * Return @c SVN_ERR_RA_UUID_MISMATCH if @a uuid is non-NULL and not equal
  * to the UUID of the repository at @c repos_URL.
  *
@@ -702,7 +713,7 @@ svn_ra_reparent(svn_ra_session_t *ra_ses
                 const char *url,
                 apr_pool_t *pool);
 
-/** Set @a *url to the repository URL to which @a ra_session was
+/** Set @a *url to the session URL -- the URL to which @a ra_session was
  * opened or most recently reparented.
  *
  * @since New in 1.5.
@@ -713,8 +724,8 @@ svn_ra_get_session_url(svn_ra_session_t 
                        apr_pool_t *pool);
 
 
-/** Convert @a url into a path relative to the URL at which @a ra_session
- * is parented, setting @a *rel_path to that value.  If @a url is not
+/** Convert @a url into a path relative to the session URL of @a ra_session,
+ * setting @a *rel_path to that value.  If @a url is not
  * a child of the session URL, return @c SVN_ERR_RA_ILLEGAL_URL.
  *
  * The returned path is uri decoded to allow using it with the ra or other

Modified: subversion/branches/inheritable-props/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/include/svn_wc.h?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/include/svn_wc.h (original)
+++ subversion/branches/inheritable-props/subversion/include/svn_wc.h Fri Aug 10 22:30:18 2012
@@ -1685,7 +1685,7 @@ typedef struct svn_wc_conflict_version_t
  *
  * Set the @c repos_url field of the created struct to @a repos_url, the
  * @c path_in_repos field to @a path_in_repos, the @c peg_rev field to
- * @a peg_rev and the the @c node_kind to @c node_kind. Make only shallow
+ * @a peg_rev and the @c node_kind to @c node_kind. Make only shallow
  * copies of the pointer arguments.
  *
  * @since New in 1.8.
@@ -4566,7 +4566,7 @@ svn_wc_add_from_disk(svn_wc_context_t *w
  * working copy as a copy of the original location. The separate working
  * copy will be integrated by this step. In this case, which is only used
  * by code like that of "svn cp URL@rev path" @a copyfrom_url and
- * @a copyfrom_rev MUST BE the the url and revision of @a local_abspath
+ * @a copyfrom_rev MUST BE the url and revision of @a local_abspath
  * in the separate working copy.
  *
  * 2a) If the node was not versioned before it will be scheduled as a local

Modified: subversion/branches/inheritable-props/subversion/libsvn_client/externals.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_client/externals.c?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_client/externals.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_client/externals.c Fri Aug 10 22:30:18 2012
@@ -204,31 +204,45 @@ switch_dir_external(const char *local_ab
               goto cleanup;
             }
 
+          /* We'd really prefer not to have to do a brute-force
+             relegation -- blowing away the current external working
+             copy and checking it out anew -- so we'll first see if we
+             can get away with a generally cheaper relocation (if
+             required) and switch-style update.
+
+             To do so, we need to know the repository root URL of the
+             external working copy as it currently sits. */
           SVN_ERR(svn_wc__node_get_repos_info(&repos_root_url, &repos_uuid,
                                               ctx->wc_ctx, local_abspath,
                                               pool, subpool));
           if (repos_root_url)
             {
-              /* URLs don't match.  Try to relocate (if necessary) and then
-                 switch. */
+              /* If the new external target URL is not obviously a
+                 child of the external working copy's current
+                 repository root URL... */
               if (! svn_uri__is_ancestor(repos_root_url, url))
                 {
                   const char *repos_root;
                   svn_ra_session_t *ra_session;
 
-                  /* Get the repos root of the new URL. */
-                  SVN_ERR(svn_client__open_ra_session_internal
-                          (&ra_session, NULL, url, NULL, NULL,
-                           FALSE, TRUE, ctx, subpool));
+                  /* ... then figure out precisely which repository
+                      root URL that target URL *is* a child of ... */
+                  SVN_ERR(svn_client__open_ra_session_internal(&ra_session,
+                                                               NULL, url, NULL,
+                                                               NULL, FALSE,
+                                                               TRUE, ctx,
+                                                               subpool));
                   SVN_ERR(svn_ra_get_repos_root2(ra_session, &repos_root,
                                                  subpool));
 
+                  /* ... and use that to try to relocate the external
+                     working copy to the target location.  */
                   err = svn_client_relocate2(local_abspath, repos_root_url,
-                                             repos_root,
-                                             FALSE, ctx, subpool);
-                  /* If the relocation failed because the new URL points
-                     to another repository, then we need to relegate and
-                     check out a new WC. */
+                                             repos_root, FALSE, ctx, subpool);
+
+                  /* If the relocation failed because the new URL
+                     points to a totally different repository, we've
+                     no choice but to relegate and check out a new WC. */
                   if (err
                       && (err->apr_err == SVN_ERR_WC_INVALID_RELOCATION
                           || (err->apr_err
@@ -239,6 +253,10 @@ switch_dir_external(const char *local_ab
                     }
                   else if (err)
                     return svn_error_trace(err);
+
+                  /* If the relocation went without a hitch, we should
+                     have a new repository root URL. */
+                  repos_root_url = repos_root;
                 }
 
               SVN_ERR(svn_client__switch_internal(NULL, local_abspath, url,

Modified: subversion/branches/inheritable-props/subversion/libsvn_client/merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_client/merge.c?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_client/merge.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_client/merge.c Fri Aug 10 22:30:18 2012
@@ -9557,26 +9557,6 @@ open_target_wc(merge_target_t **target_p
   return SVN_NO_ERROR;
 }
 
-/* Open an RA session to PATH_OR_URL at PEG_REVISION.  Set *RA_SESSION_P to
- * the session and set *LOCATION_P to the resolved revision, URL and
- * repository root.  Allocate the results in RESULT_POOL.  */
-static svn_error_t *
-open_source_session(svn_client__pathrev_t **location_p,
-                    svn_ra_session_t **ra_session_p,
-                    const char *path_or_url,
-                    const svn_opt_revision_t *peg_revision,
-                    svn_client_ctx_t *ctx,
-                    apr_pool_t *result_pool,
-                    apr_pool_t *scratch_pool)
-{
-  SVN_ERR(svn_client__ra_session_from_path2(
-            ra_session_p, location_p,
-            path_or_url, NULL, peg_revision, peg_revision,
-            ctx, result_pool));
-  return SVN_NO_ERROR;
-}
-
-
 /*-----------------------------------------------------------------------*/
 
 /*** Public APIs ***/
@@ -9621,10 +9601,12 @@ merge_locked(const char *source1,
   /* Open RA sessions to both sides of our merge source, and resolve URLs
    * and revisions. */
   sesspool = svn_pool_create(scratch_pool);
-  SVN_ERR(open_source_session(&source1_loc, &ra_session1, source1, revision1,
-                              ctx, sesspool, scratch_pool));
-  SVN_ERR(open_source_session(&source2_loc, &ra_session2, source2, revision2,
-                              ctx, sesspool, scratch_pool));
+  SVN_ERR(svn_client__ra_session_from_path2(
+            &ra_session1, &source1_loc,
+            source1, NULL, revision1, revision1, ctx, sesspool));
+  SVN_ERR(svn_client__ra_session_from_path2(
+            &ra_session2, &source2_loc,
+            source2, NULL, revision2, revision2, ctx, sesspool));
 
   /* We can't do a diff between different repositories. */
   /* ### We should also insist that the root URLs of the two sources match,
@@ -10832,9 +10814,10 @@ open_reintegrate_source_and_target(svn_r
                              svn_dirent_local_style(target->abspath,
                                                     scratch_pool));
 
-  SVN_ERR(open_source_session(&source_loc, source_ra_session_p,
-                              source_path_or_url, source_peg_revision,
-                              ctx, result_pool, scratch_pool));
+  SVN_ERR(svn_client__ra_session_from_path2(
+            source_ra_session_p, &source_loc,
+            source_path_or_url, NULL, source_peg_revision, source_peg_revision,
+            ctx, result_pool));
 
   /* source_loc and target->loc are required to be in the same repository,
      as mergeinfo doesn't come into play for cross-repository merging. */
@@ -11024,9 +11007,10 @@ merge_peg_locked(const char *source_path
                          ctx, sesspool, sesspool));
 
   /* Open an RA session to our source URL, and determine its root URL. */
-  SVN_ERR(open_source_session(&source_loc, &ra_session,
-                              source_path_or_url, source_peg_revision,
-                              ctx, sesspool, sesspool));
+  SVN_ERR(svn_client__ra_session_from_path2(
+            &ra_session, &source_loc,
+            source_path_or_url, NULL, source_peg_revision, source_peg_revision,
+            ctx, sesspool));
 
   /* Normalize our merge sources. */
   SVN_ERR(normalize_merge_sources(&merge_sources, source_path_or_url,
@@ -11095,7 +11079,6 @@ svn_client_merge_peg4(const char *source
   return SVN_NO_ERROR;
 }
 
-#ifdef SVN_WITH_SYMMETRIC_MERGE
 
 /* The location-history of a branch.
  *
@@ -11149,12 +11132,6 @@ location_on_branch_at_rev(const branch_h
   return NULL;
 }
 
-/* Details of a symmetric merge. */
-struct svn_client__symmetric_merge_t
-{
-  svn_client__pathrev_t *yca, *base, *mid, *right;
-};
-
 /* */
 typedef struct source_and_target_t
 {
@@ -11211,9 +11188,10 @@ open_source_and_target(source_and_target
                                      ctx, session_pool));
 
   /* Source */
-  SVN_ERR(open_source_session(&s_t->source, &s_t->source_ra_session,
-                              source_path_or_url, source_peg_revision,
-                              ctx, result_pool, scratch_pool));
+  SVN_ERR(svn_client__ra_session_from_path2(
+            &s_t->source_ra_session, &s_t->source,
+            source_path_or_url, NULL, source_peg_revision, source_peg_revision,
+            ctx, result_pool));
 
   *source_and_target = s_t;
   return SVN_NO_ERROR;
@@ -11580,8 +11558,17 @@ svn_client__find_symmetric_merge(svn_cli
   svn_client__symmetric_merge_t *merge = apr_palloc(result_pool, sizeof(*merge));
 
   SVN_ERR(svn_dirent_get_absolute(&target_abspath, target_wcpath, scratch_pool));
+
+  /* Open RA sessions to the source and target trees.  We're not going
+   * to check the target WC for mixed-rev, local mods or switched
+   * subtrees yet.  After we find out what kind of merge is required,
+   * then if a reintegrate-like merge is required we'll do the stricter
+   * checks, in do_symmetric_merge_locked(). */
   SVN_ERR(open_source_and_target(&s_t, source_path_or_url, source_revision,
-                                 target_abspath, allow_mixed_rev, allow_local_mods, allow_switched_subtrees,
+                                 target_abspath,
+                                 TRUE /*allow_mixed_rev*/,
+                                 TRUE /*allow_local_mods*/,
+                                 TRUE /*allow_switched_subtrees*/,
                                  ctx, result_pool, result_pool, scratch_pool));
 
   /* Check source is in same repos as target. */
@@ -11593,6 +11580,9 @@ svn_client__find_symmetric_merge(svn_cli
                                ctx, result_pool, scratch_pool));
   merge->yca = s_t->yca;
   merge->right = s_t->source;
+  merge->allow_mixed_rev = allow_mixed_rev;
+  merge->allow_local_mods = allow_local_mods;
+  merge->allow_switched_subtrees = allow_switched_subtrees;
 
   *merge_p = merge;
 
@@ -11632,7 +11622,6 @@ static svn_error_t *
 do_symmetric_merge_locked(const svn_client__symmetric_merge_t *merge,
                           const char *target_abspath,
                           svn_depth_t depth,
-                          svn_boolean_t ignore_ancestry,
                           svn_boolean_t force,
                           svn_boolean_t record_only,
                           svn_boolean_t dry_run,
@@ -11641,19 +11630,41 @@ do_symmetric_merge_locked(const svn_clie
                           apr_pool_t *scratch_pool)
 {
   merge_target_t *target;
+  svn_boolean_t reintegrate_like = (merge->mid != NULL);
   svn_boolean_t use_sleep = FALSE;
   svn_error_t *err;
 
-  SVN_ERR(open_target_wc(&target, target_abspath, TRUE, TRUE, TRUE,
+  SVN_ERR(open_target_wc(&target, target_abspath,
+                         merge->allow_mixed_rev && ! reintegrate_like,
+                         merge->allow_local_mods && ! reintegrate_like,
+                         merge->allow_switched_subtrees && ! reintegrate_like,
                          ctx, scratch_pool, scratch_pool));
 
-  if (merge->mid)
+  if (reintegrate_like)
     {
       merge_source_t source;
       svn_ra_session_t *base_ra_session = NULL;
       svn_ra_session_t *right_ra_session = NULL;
       svn_ra_session_t *target_ra_session = NULL;
 
+      if (record_only)
+        return svn_error_create(SVN_ERR_INCORRECT_PARAMS, NULL,
+                                _("The required merge is reintegrate-like, "
+                                  "and the record-only option "
+                                  "cannot be used with this kind of merge"));
+
+      if (depth != svn_depth_unknown)
+        return svn_error_create(SVN_ERR_INCORRECT_PARAMS, NULL,
+                                _("The required merge is reintegrate-like, "
+                                  "and the depth option "
+                                  "cannot be used with this kind of merge"));
+
+      if (force)
+        return svn_error_create(SVN_ERR_INCORRECT_PARAMS, NULL,
+                                _("The required merge is reintegrate-like, "
+                                  "and the force option "
+                                  "cannot be used with this kind of merge"));
+
       SVN_ERR(ensure_ra_session_url(&base_ra_session, merge->base->url,
                                     ctx, scratch_pool));
       SVN_ERR(ensure_ra_session_url(&right_ra_session, merge->right->url,
@@ -11682,7 +11693,8 @@ do_symmetric_merge_locked(const svn_clie
                                                    right_ra_session,
                                                    &source, merge->yca,
                                                    TRUE /* same_repos */,
-                                                   depth, ignore_ancestry,
+                                                   depth,
+                                                   FALSE /*ignore_ancestry*/,
                                                    force, record_only,
                                                    dry_run,
                                                    merge_options, &use_sleep,
@@ -11711,8 +11723,8 @@ do_symmetric_merge_locked(const svn_clie
       APR_ARRAY_PUSH(merge_sources, const merge_source_t *) = &source;
 
       err = do_merge(NULL, NULL, merge_sources, target, NULL,
-                     TRUE /*related*/,
-                     TRUE /*same_repos*/, ignore_ancestry, force, dry_run,
+                     TRUE /*related*/, TRUE /*same_repos*/,
+                     FALSE /*ignore_ancestry*/, force, dry_run,
                      record_only, NULL, FALSE, FALSE, depth, merge_options,
                      &use_sleep, ctx, scratch_pool, scratch_pool);
     }
@@ -11729,7 +11741,6 @@ svn_error_t *
 svn_client__do_symmetric_merge(const svn_client__symmetric_merge_t *merge,
                                const char *target_wcpath,
                                svn_depth_t depth,
-                               svn_boolean_t ignore_ancestry,
                                svn_boolean_t force,
                                svn_boolean_t record_only,
                                svn_boolean_t dry_run,
@@ -11745,17 +11756,15 @@ svn_client__do_symmetric_merge(const svn
   if (!dry_run)
     SVN_WC__CALL_WITH_WRITE_LOCK(
       do_symmetric_merge_locked(merge,
-                                target_abspath, depth, ignore_ancestry,
+                                target_abspath, depth,
                                 force, record_only, dry_run,
                                 merge_options, ctx, pool),
       ctx->wc_ctx, lock_abspath, FALSE /* lock_anchor */, pool);
   else
     SVN_ERR(do_symmetric_merge_locked(merge,
-                                target_abspath, depth, ignore_ancestry,
+                                target_abspath, depth,
                                 force, record_only, dry_run,
                                 merge_options, ctx, pool));
 
   return SVN_NO_ERROR;
 }
-
-#endif /* SVN_WITH_SYMMETRIC_MERGE */

Modified: subversion/branches/inheritable-props/subversion/libsvn_client/relocate.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_client/relocate.c?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_client/relocate.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_client/relocate.c Fri Aug 10 22:30:18 2012
@@ -139,7 +139,6 @@ relocate_externals(const char *local_abs
                    apr_array_header_t *ext_desc,
                    const char *old_parent_repos_root_url,
                    const char *new_parent_repos_root_url,
-                   svn_boolean_t ignore_externals,
                    svn_client_ctx_t *ctx,
                    apr_pool_t *scratch_pool)
 {
@@ -199,7 +198,7 @@ relocate_externals(const char *local_abs
         SVN_ERR(svn_client_relocate2(target_abspath,
                                      old_parent_repos_root_url,
                                      new_parent_repos_root_url,
-                                     ignore_externals, ctx, iterpool));
+                                     FALSE, ctx, iterpool));
     }
 
   svn_pool_destroy(iterpool);
@@ -281,8 +280,7 @@ svn_client_relocate2(const char *wcroot_
                                                   iterpool));
       if (ext_desc->nelts)
         SVN_ERR(relocate_externals(this_abspath, ext_desc, old_repos_root_url,
-                                   new_repos_root_url, ignore_externals, ctx,
-                                   iterpool));
+                                   new_repos_root_url, ctx, iterpool));
     }
 
   svn_pool_destroy(iterpool);

Modified: subversion/branches/inheritable-props/subversion/libsvn_fs/fs-loader.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_fs/fs-loader.c?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_fs/fs-loader.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_fs/fs-loader.c Fri Aug 10 22:30:18 2012
@@ -199,10 +199,12 @@ static svn_error_t *
 get_or_allocate_third(struct fs_type_defn **fst,
                       const char *fs_type)
 {
-  fst = &fs_modules;
-
   while (*fst)
-    fst = &(*fst)->next;
+    {
+      if (strcmp(fs_type, (*fst)->fs_type) == 0)
+        return SVN_NO_ERROR;
+      fst = &(*fst)->next;
+    }
 
   *fst = apr_palloc(common_pool, sizeof(struct fs_type_defn));
   (*fst)->fs_type = apr_pstrdup(common_pool, fs_type);
@@ -220,12 +222,19 @@ get_library_vtable(fs_library_vtable_t *
                    apr_pool_t *pool)
 {
   struct fs_type_defn **fst = &fs_modules;
+  svn_boolean_t known = FALSE;
 
-  while (*fst)
+  /* There are two FS module definitions known at compile time.  We
+     want to check these without any locking overhead even when
+     dynamic third party modules are enabled.  The third party modules
+     cannot be checked until the lock is held.  */
+  if (strcmp(fs_type, (*fst)->fs_type) == 0)
+    known = TRUE;
+  else
     {
+      fst = &(*fst)->next;
       if (strcmp(fs_type, (*fst)->fs_type) == 0)
-        break;
-      (*fst) = (*fst)->next;
+        known = TRUE;
     }
 
 #if defined(SVN_USE_DSO) && APR_HAS_DSO
@@ -241,15 +250,17 @@ get_library_vtable(fs_library_vtable_t *
      Change the content of fs-type to "base" in a BDB filesystem or to
      "fs" in an FSFS filesystem and they will be loaded as third party
      modules. */
-  if (! *fst)
+  if (!known)
     {
+      fst = &(*fst)->next;
       if (!common_pool)  /* Best-effort init, see get_library_vtable_direct. */
         SVN_ERR(svn_fs_initialize(NULL));
       SVN_MUTEX__WITH_LOCK(common_pool_lock,
                            get_or_allocate_third(fst, fs_type));
+      known = TRUE;
     }
 #endif
-  if (!*fst)
+  if (!known)
     return svn_error_createf(SVN_ERR_FS_UNKNOWN_FS_TYPE, NULL,
                              _("Unknown FS type '%s'"), fs_type);
   return get_library_vtable_direct(vtable, *fst, pool);

Modified: subversion/branches/inheritable-props/subversion/libsvn_fs_base/dag.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_fs_base/dag.c?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_fs_base/dag.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_fs_base/dag.c Fri Aug 10 22:30:18 2012
@@ -1632,7 +1632,7 @@ svn_fs_base__things_different(svn_boolea
   if (! props_changed && ! contents_changed)
     return SVN_NO_ERROR;
 
-  /* The the node revision skels for these two nodes. */
+  /* The node revision skels for these two nodes. */
   SVN_ERR(svn_fs_bdb__get_node_revision(&noderev1, node1->fs, node1->id,
                                         trail, pool));
   SVN_ERR(svn_fs_bdb__get_node_revision(&noderev2, node2->fs, node2->id,

Modified: subversion/branches/inheritable-props/subversion/libsvn_fs_base/uuid.h
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_fs_base/uuid.h?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_fs_base/uuid.h (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_fs_base/uuid.h Fri Aug 10 22:30:18 2012
@@ -29,7 +29,7 @@ extern "C" {
 
 
 
-/* Set FS->UUID to the the value read from the database, allocated
+/* Set FS->UUID to the value read from the database, allocated
    in FS->POOL.  Use SCRATCH_POOL for temporary allocations. */
 svn_error_t *svn_fs_base__populate_uuid(svn_fs_t *fs,
                                         apr_pool_t *scratch_pool);

Modified: subversion/branches/inheritable-props/subversion/libsvn_fs_fs/fs_fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_fs_fs/fs_fs.c?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_fs_fs/fs_fs.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_fs_fs/fs_fs.c Fri Aug 10 22:30:18 2012
@@ -3429,7 +3429,7 @@ get_revprop_packname(svn_fs_t *fs,
   const char *manifest_file_path;
   int idx;
 
-  /* read content of the the manifest file */
+  /* read content of the manifest file */
   revprops->folder = path_revprops_pack_shard(fs, revprops->revision, pool);
   manifest_file_path = svn_dirent_join(revprops->folder, PATH_MANIFEST, pool);
 
@@ -9799,7 +9799,7 @@ hotcopy_io_dir_file_copy(const char *src
 }
 
 /* Set *NAME_P to the UTF-8 representation of directory entry NAME.
- * NAME is in the the internal encoding used by APR; PARENT is in
+ * NAME is in the internal encoding used by APR; PARENT is in
  * UTF-8 and in internal (not local) style.
  *
  * Use PARENT only for generating an error string if the conversion

Modified: subversion/branches/inheritable-props/subversion/libsvn_repos/repos.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_repos/repos.c?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_repos/repos.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_repos/repos.c Fri Aug 10 22:30:18 2012
@@ -1018,7 +1018,7 @@ create_conf(svn_repos_t *repos, apr_pool
 "# password-db = passwd"                                                     NL
 "### The authz-db option controls the location of the authorization"         NL
 "### rules for path-based access control.  Unless you specify a path"        NL
-"### starting with a /, the file's location is relative to the the"          NL
+"### starting with a /, the file's location is relative to the"              NL
 "### directory containing this file.  If you don't specify an"               NL
 "### authz-db, no path-based access control is done."                        NL
 "### Uncomment the line below to use the default authorization file."        NL

Modified: subversion/branches/inheritable-props/subversion/libsvn_subr/base64.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_subr/base64.c?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_subr/base64.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_subr/base64.c Fri Aug 10 22:30:18 2012
@@ -36,7 +36,7 @@
 #include "private/svn_string_private.h"
 #include "private/svn_subr_private.h"
 
-/* When asked to format the the base64-encoded output as multiple lines,
+/* When asked to format the base64-encoded output as multiple lines,
    we put this many chars in each line (plus one new line char) unless
    we run out of data.
    It is vital for some of the optimizations below that this value is

Modified: subversion/branches/inheritable-props/subversion/libsvn_subr/cache-membuffer.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_subr/cache-membuffer.c?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_subr/cache-membuffer.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_subr/cache-membuffer.c Fri Aug 10 22:30:18 2012
@@ -58,7 +58,7 @@
  * The data buffer usage information is implicitly given by the directory
  * entries. Every USED entry has a reference to the previous and the next
  * used dictionary entry and this double-linked list is ordered by the
- * offsets of their item data within the the data buffer. So removing data,
+ * offsets of their item data within the data buffer. So removing data,
  * for instance, is done simply by unlinking it from the chain, implicitly
  * marking the entry as well as the data buffer section previously
  * associated to it as unused.

Modified: subversion/branches/inheritable-props/subversion/libsvn_subr/debug.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_subr/debug.c?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_subr/debug.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_subr/debug.c Fri Aug 10 22:30:18 2012
@@ -25,7 +25,10 @@
    be used in release code. One of the reasons to avoid this code in release
    builds is that this code is not thread-safe. */
 #include <stdarg.h>
+#include <assert.h>
 
+#include <apr_pools.h>
+#include <apr_strings.h>
 #include "svn_types.h"
 #include "svn_string.h"
 
@@ -35,6 +38,8 @@
 #define DBG_FLAG "DBG: "
 
 /* This will be tweaked by the preamble code.  */
+static const char *debug_file = NULL;
+static long debug_line = 0;
 static FILE * volatile debug_output = NULL;
 
 
@@ -57,25 +62,48 @@ svn_dbg__preamble(const char *file, long
 
       if (slash == NULL)
         slash = strrchr(file, '\\');
-      if (slash == NULL)
-        slash = file;
+      if (slash)
+        debug_file = slash + 1;
       else
-        ++slash;
-
-      fprintf(output, DBG_FLAG "%s:%4ld: ", slash, line);
+        debug_file = file;
     }
+  debug_line = line;
 }
 
 
+/* Print a formatted string using format FMT and argument-list AP,
+ * prefixing each line of output with a debug header. */
 static void
-print_line(const char *fmt, va_list ap)
+debug_vprintf(const char *fmt, va_list ap)
 {
   FILE *output = debug_output;
+  char prefix[80], buffer[1000];
+  char *s = buffer;
+  int n;
 
   if (output == NULL || quiet_mode())
     return;
 
-  (void) vfprintf(output, fmt, ap);
+  n = apr_snprintf(prefix, sizeof(prefix), DBG_FLAG "%s:%4ld: ",
+                   debug_file, debug_line);
+  assert(n < sizeof(prefix) - 1);
+  n = apr_vsnprintf(buffer, sizeof(buffer), fmt, ap);
+  assert(n < sizeof(buffer) - 1);
+  do
+    {
+      char *newline = strchr(s, '\n');
+      if (newline)
+        *newline = '\0';
+
+      fputs(prefix, output);
+      fputs(s, output);
+      fputc('\n', output);
+
+      if (! newline)
+        break;
+      s = newline + 1;
+    }
+  while (*s);  /* print another line, except after a final newline */
 }
 
 
@@ -85,7 +113,7 @@ svn_dbg__printf(const char *fmt, ...)
   va_list ap;
 
   va_start(ap, fmt);
-  print_line(fmt, ap);
+  debug_vprintf(fmt, ap);
   va_end(ap);
 }
 
@@ -102,12 +130,12 @@ svn_dbg__print_props(apr_hash_t *props,
   va_list ap;
 
   va_start(ap, header_fmt);
-  print_line(header_fmt, ap);
+  debug_vprintf(header_fmt, ap);
   va_end(ap);
 
   if (props == NULL)
     {
-      SVN_DBG(("    (null)\n"));
+      svn_dbg__printf("    (null)\n");
       return;
     }
 
@@ -117,7 +145,7 @@ svn_dbg__print_props(apr_hash_t *props,
       const char *name = svn__apr_hash_index_key(hi);
       svn_string_t *val = svn__apr_hash_index_val(hi);
 
-      SVN_DBG(("    '%s' -> '%s'\n", name, val->data));
+      svn_dbg__printf("    '%s' -> '%s'\n", name, val->data);
     }
 #endif /* SVN_DEBUG */
 }

Modified: subversion/branches/inheritable-props/subversion/libsvn_subr/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/inheritable-props/subversion/libsvn_subr/deprecated.c?rev=1371833&r1=1371832&r2=1371833&view=diff
==============================================================================
--- subversion/branches/inheritable-props/subversion/libsvn_subr/deprecated.c (original)
+++ subversion/branches/inheritable-props/subversion/libsvn_subr/deprecated.c Fri Aug 10 22:30:18 2012
@@ -524,6 +524,33 @@ svn_opt_args_to_target_array(apr_array_h
 }
 
 svn_error_t *
+svn_opt_print_help3(apr_getopt_t *os,
+                    const char *pgm_name,
+                    svn_boolean_t print_version,
+                    svn_boolean_t quiet,
+                    const char *version_footer,
+                    const char *header,
+                    const svn_opt_subcommand_desc2_t *cmd_table,
+                    const apr_getopt_option_t *option_table,
+                    const int *global_options,
+                    const char *footer,
+                    apr_pool_t *pool)
+{
+  return svn_error_trace(svn_opt_print_help4(os,
+                                             pgm_name,
+                                             print_version,
+                                             quiet,
+                                             FALSE,
+                                             version_footer,
+                                             header,
+                                             cmd_table,
+                                             option_table,
+                                             global_options,
+                                             footer,
+                                             pool));
+}
+
+svn_error_t *
 svn_opt_print_help2(apr_getopt_t *os,
                     const char *pgm_name,
                     svn_boolean_t print_version,
@@ -535,10 +562,11 @@ svn_opt_print_help2(apr_getopt_t *os,
                     const char *footer,
                     apr_pool_t *pool)
 {
-  return svn_error_trace(svn_opt_print_help3(os,
+  return svn_error_trace(svn_opt_print_help4(os,
                                              pgm_name,
                                              print_version,
                                              quiet,
+                                             FALSE,
                                              version_footer,
                                              header,
                                              cmd_table,
@@ -576,8 +604,8 @@ svn_opt_print_help(apr_getopt_t *os,
         }
     }
   else if (print_version)   /* just --version */
-    SVN_ERR(svn_opt__print_version_info(pgm_name, version_footer, quiet,
-                                        pool));
+    SVN_ERR(svn_opt__print_version_info(pgm_name, version_footer,
+                                        quiet, FALSE, pool));
   else if (os && !targets->nelts)            /* `-h', `--help', or `help' */
     svn_opt_print_generic_help(header,
                                cmd_table,