subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From julianf...@apache.org
Subject svn commit: r1661492 [1/7] - in /subversion/branches/move-tracking-2: ./ build/ build/generator/ subversion/ subversion/bindings/javahl/native/ subversion/bindings/javahl/src/org/apache/subversion/javahl/ subversion/bindings/javahl/tests/org/apache/sub...
Date Sun, 22 Feb 2015 16:52:07 GMT
Author: julianfoad
Date: Sun Feb 22 16:52:05 2015
New Revision: 1661492

URL: http://svn.apache.org/r1661492
Log:
On the 'move-tracking-2' branch: catch up with trunk@1661488.

Added:
    subversion/branches/move-tracking-2/tools/dev/wc-ng/svn-wc-db-tester.c
      - copied unchanged from r1661488, subversion/trunk/tools/dev/wc-ng/svn-wc-db-tester.c
Removed:
    subversion/branches/move-tracking-2/subversion/svn/youngest-cmd.c
Modified:
    subversion/branches/move-tracking-2/   (props changed)
    subversion/branches/move-tracking-2/CHANGES   (contents, props changed)
    subversion/branches/move-tracking-2/INSTALL   (contents, props changed)
    subversion/branches/move-tracking-2/build/   (props changed)
    subversion/branches/move-tracking-2/build.conf   (contents, props changed)
    subversion/branches/move-tracking-2/build/generator/gen_base.py
    subversion/branches/move-tracking-2/build/getversion.py
    subversion/branches/move-tracking-2/build/run_tests.py
    subversion/branches/move-tracking-2/build/transform_sql.py
    subversion/branches/move-tracking-2/gen-make.py   (contents, props changed)
    subversion/branches/move-tracking-2/subversion/   (props changed)
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/SVNClient.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/SVNClient.h
    subversion/branches/move-tracking-2/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
    subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
    subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
    subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
    subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
    subversion/branches/move-tracking-2/subversion/include/private/svn_cache.h
    subversion/branches/move-tracking-2/subversion/include/private/svn_sqlite.h
    subversion/branches/move-tracking-2/subversion/include/private/svn_wc_private.h
    subversion/branches/move-tracking-2/subversion/include/svn_client.h
    subversion/branches/move-tracking-2/subversion/include/svn_version.h
    subversion/branches/move-tracking-2/subversion/libsvn_client/add.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/blame.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/client.h
    subversion/branches/move-tracking-2/subversion/libsvn_client/commit.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/commit_util.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/copy.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/deprecated.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/merge.c
    subversion/branches/move-tracking-2/subversion/libsvn_client/patch.c
    subversion/branches/move-tracking-2/subversion/libsvn_ra/ra_loader.c
    subversion/branches/move-tracking-2/subversion/libsvn_repos/load-fs-vtable.c
    subversion/branches/move-tracking-2/subversion/libsvn_repos/rev_hunt.c
    subversion/branches/move-tracking-2/subversion/libsvn_subr/cache-membuffer.c
    subversion/branches/move-tracking-2/subversion/libsvn_subr/cache.c
    subversion/branches/move-tracking-2/subversion/libsvn_subr/sqlite.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/adm_ops.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/copy.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/diff_editor.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/entries.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/info.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/node.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/translate.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/update_editor.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/upgrade.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc-checks.sql
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc-queries.sql
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc.h
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc_db.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc_db.h
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc_db_private.h
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc_db_util.c
    subversion/branches/move-tracking-2/subversion/libsvn_wc/wc_db_wcroot.c
    subversion/branches/move-tracking-2/subversion/mod_dav_svn/mod_dav_svn.c
    subversion/branches/move-tracking-2/subversion/svn/blame-cmd.c
    subversion/branches/move-tracking-2/subversion/svn/changelist-cmd.c
    subversion/branches/move-tracking-2/subversion/svn/cl.h
    subversion/branches/move-tracking-2/subversion/svn/commit-cmd.c
    subversion/branches/move-tracking-2/subversion/svn/copy-cmd.c
    subversion/branches/move-tracking-2/subversion/svn/diff-cmd.c
    subversion/branches/move-tracking-2/subversion/svn/status.c
    subversion/branches/move-tracking-2/subversion/svn/svn.c
    subversion/branches/move-tracking-2/subversion/svn/util.c
    subversion/branches/move-tracking-2/subversion/tests/cmdline/README
    subversion/branches/move-tracking-2/subversion/tests/cmdline/basic_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/blame_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/copy_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/depth_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout
    subversion/branches/move-tracking-2/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout
    subversion/branches/move-tracking-2/subversion/tests/cmdline/info_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/lock_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/log_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/move_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/svnadmin_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/svntest/actions.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/svntest/factory.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/svntest/main.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/svntest/sandbox.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/svntest/wc.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/tree_conflict_tests.py
    subversion/branches/move-tracking-2/subversion/tests/cmdline/upgrade_tests.py
    subversion/branches/move-tracking-2/subversion/tests/libsvn_client/client-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_client/mtcc-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_subr/cache-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_subr/sqlite-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_subr/subst_translate-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/db-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/entries-compat.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/op-depth-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/utils.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/utils.h
    subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/wc-queries-test.c
    subversion/branches/move-tracking-2/subversion/tests/libsvn_wc/wc-test-queries.sql
    subversion/branches/move-tracking-2/tools/   (props changed)
    subversion/branches/move-tracking-2/tools/client-side/bash_completion
    subversion/branches/move-tracking-2/tools/dist/backport.pl
    subversion/branches/move-tracking-2/tools/dist/backport_tests.py

Propchange: subversion/branches/move-tracking-2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Feb 22 16:52:05 2015
@@ -69,6 +69,7 @@
 /subversion/branches/revprop-packing:1143907,1143971,1143997,1144017,1144499,1144568,1146145
 /subversion/branches/subtree-mergeinfo:876734-878766
 /subversion/branches/svn-auth-x509:1603509-1655900
+/subversion/branches/svn-info-detail:1660035-1660413
 /subversion/branches/svn-mergeinfo-enhancements:870119-870195,870197-870288
 /subversion/branches/svn-patch-improvements:918519-934609
 /subversion/branches/svn_mutex:1141683-1182099
@@ -87,4 +88,4 @@
 /subversion/branches/verify-at-commit:1462039-1462408
 /subversion/branches/verify-keep-going:1439280-1546110
 /subversion/branches/wc-collate-path:1402685-1480384
-/subversion/trunk:1606692-1660163
+/subversion/trunk:1606692-1661488

Modified: subversion/branches/move-tracking-2/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/CHANGES?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/CHANGES (original)
+++ subversion/branches/move-tracking-2/CHANGES Sun Feb 22 16:52:05 2015
@@ -11,7 +11,7 @@ http://svn.apache.org/repos/asf/subversi
     * membuffer: virtually perfect short-term cache efficiency (r1476664 et at)
     * membuffer: quadruple the maximum cacheable directory size (r1545948 et al)
     * resolve: improve interactive conflict resolution menus
-    * blame: allow -r M:N with M>N
+    * blame: support showing prospective as well as previous changes
     * svn auth: new subcommand to manage cached credentials and certs
     * svn youngest: new remote version of svnlook youngest (issue #4299)
     * new experimental filesystem fsx (faster, smaller)

Propchange: subversion/branches/move-tracking-2/CHANGES
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Feb 22 16:52:05 2015
@@ -86,4 +86,4 @@
 /subversion/branches/verify-at-commit/CHANGES:1462039-1462408
 /subversion/branches/verify-keep-going/CHANGES:1439280-1546110
 /subversion/branches/wc-collate-path/CHANGES:1402685-1480384
-/subversion/trunk/CHANGES:1606692-1660163
+/subversion/trunk/CHANGES:1606692-1661488

Modified: subversion/branches/move-tracking-2/INSTALL
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/INSTALL?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/INSTALL (original)
+++ subversion/branches/move-tracking-2/INSTALL Sun Feb 22 16:52:05 2015
@@ -15,7 +15,7 @@ Contents:
        D. Documentation
 
     II. INSTALLATION
-       A. Building from a Tarball or RPM
+       A. Building from a Tarball
        B. Building the Latest Source under Unix
        C. Building under Unix in Different Directories
        D. Installing from a Zip or Installer File under Windows
@@ -123,7 +123,8 @@ I.    INTRODUCTION
          create a repository, you have the option of specifying a
          storage back-end.  The Berkeley DB back-end will only be
          available if the BDB libraries are discovered at compile
-         time.
+         time.  The Berkeley DB back-end has been deprecated and
+         is not recommend.
 
       * libsasl (OPTIONAL for client and server)
 
@@ -192,7 +193,7 @@ I.    INTRODUCTION
       commands described in section II.B before installing the following.
 
 
-      1.  Apache Portable Runtime 0.9.7 or 1.X.X  (REQUIRED)
+      1.  Apache Portable Runtime 1.3 or newer  (REQUIRED)
 
       Whenever you want to build any part of Subversion, you need the
       Apache Portable Runtime (APR) and the APR Utility (APR-util)
@@ -200,8 +201,8 @@ I.    INTRODUCTION
 
 
         ****************************************************************
-        **       IMPORTANT ISSUE ABOUT APR VERSIONS:  READ THIS.      **
-        **                                                            **
+        **       IMPORTANT ISSUE ABOUT APR VERSIONS:  READ THIS       **
+        **       IF UPGRADING FROM MUCH OLDER SUBVERSION              **
         ****************************************************************
         |                                                              |
         | APR 0.9.X and 1.X are binary-incompatible.                   |
@@ -355,10 +356,6 @@ I.    INTRODUCTION
           Under Windows, you can specify the paths to these libraries by
           passing the options --with-zlib and --with-openssl to gen-make.py.
 
-            ### Is that right? In-tree build of Neon was disabled in r875974.
-                This may now apply to Serf, or else gen-make.py should be
-                updated to remove such options.
-
         c. Using OpenSSL on the Apache server
 
           You can also add support for these features to an Apache httpd
@@ -465,23 +462,7 @@ I.    INTRODUCTION
       script.
 
 
-      12. MASM 6 or newer (Windows only, OPTIONAL)
-
-      The Windows build scripts for Subversion can use the Microsoft
-      Macro Assembler (MASM) to build an optimized version of the ZLib
-      library. Make sure that the version of MASM you use is compatible
-      with the C compiler. If you're using MSVC 6, and don't have MASM 6,
-      a free MASM-compatible assembler is available here:
-
-          http://www.masm32.com/
-
-      You only need ML.EXE and ML.ERR from this distribution.
-
-      The VS.NET installation already contains MASM (but note, that
-      version if MASM is not compatible with MSVC 6).
-
-
-      13. SQLite  (REQUIRED)
+      12. SQLite  (REQUIRED)
 
       Subversion 1.8 requires SQLite version 3.7.12 or above.  You can meet
       this dependency several ways:
@@ -497,26 +478,26 @@ I.    INTRODUCTION
           http://www.sqlite.org/download.html
 
 
-      14. pkg-config  (Unix only, OPTIONAL)
+      13. pkg-config  (Unix only, OPTIONAL)
 
       Subversion uses pkg-config to find appropriate options used
       at build time.
 
 
-      15. D-Bus  (Unix only, OPTIONAL)
+      14. D-Bus  (Unix only, OPTIONAL)
 
       D-Bus is a message bus system. D-Bus is required for support for KWallet
       and GNOME Keyring. pkg-config is needed to find D-Bus headers and library.
 
 
-      16. Qt 4  (Unix only, OPTIONAL)
+      15. Qt 4  (Unix only, OPTIONAL)
 
       Qt is a cross-platform application framework. QtCore, QtDBus and QtGui
       modules are required for support for KWallet. pkg-config is needed
       to find Qt headers and libraries.
 
 
-      17. KDELibs 4  (Unix only, OPTIONAL)
+      16. KDELibs 4  (Unix only, OPTIONAL)
 
       Subversion contains optional support for storing passwords in KWallet.
       KDELibs contains core KDE libraries. Subversion uses libkdecore and libkdeui
@@ -528,13 +509,13 @@ I.    INTRODUCTION
 
           --with-kwallet=/path/to/KDE/prefix
 
-      18. GLib 2  (Unix only, OPTIONAL)
+      17. GLib 2  (Unix only, OPTIONAL)
 
       GLib is a general-purpose utility library. GLib is required for support
       for GNOME Keyring. pkg-config is needed to find GLib headers and library.
 
 
-      19. GNOME Keyring  (Unix only, OPTIONAL)
+      18. GNOME Keyring  (Unix only, OPTIONAL)
 
       Subversion contains optional support for storing passwords in GNOME Keyring.
       pkg-config is needed to find GNOME Keyring headers and library. D-Bus and
@@ -542,7 +523,7 @@ I.    INTRODUCTION
       then pass the '--with-gnome-keyring' option to `configure`.
 
 
-      20. Ctypesgen  (OPTIONAL)
+      19. Ctypesgen  (OPTIONAL)
 
       Ctypesgen is Python wrapper generator for ctypes. It is used to generate
       a part of Subversion Ctypes Python bindings (CSVN). If you want to build
@@ -553,7 +534,7 @@ I.    INTRODUCTION
 
       For more information on CSVN, see subversion/bindings/ctypes-python/README.
 
-      21. libmagic (OPTIONAL)
+      20. libmagic (OPTIONAL)
 
       Subversion's configure script attempts to find libmagic automatically.
       If it is installed in a non-standard location, then use:
@@ -574,7 +555,7 @@ I.    INTRODUCTION
 
         --with-libmagic
 
-      22. Googlemock (OPTIONAL)
+      21. Googlemock (OPTIONAL)
 
       Googlemock can be installed and built in-tree by invoking
 
@@ -594,7 +575,7 @@ I.    INTRODUCTION
 II.   INSTALLATION
       ============
 
-  A.  Building from a Tarball or RPM
+  A.  Building from a Tarball
       ------------------------------
 
       1.  Building from a Tarball
@@ -612,33 +593,6 @@ II.   INSTALLATION
       You can also run the full test suite by running 'make check'.
 
 
-      2.  Building from an RPM
-
-      If you are using Linux (or any OS that can use RPM) then another
-      possibility is to download the binary RPM from the
-      http://summersoft.fay.ar.us/pub/subversion directory.
-
-      Currently only Linux on the i386 platform is supported
-      using this method.  You might also require additional RPMS
-      (which can be found in the above mentioned directory) to use the
-      subversion RPM depending on what packages you already have installed:
-
-          subversion*.i386.rpm
-          apache*.i386.rpm (Version 2.0.49 or greater)
-          db*.i386.rpm     (Version 4.0.14 or greater; version 4.3.27 or
-                            4.2.52 is preferred however)
-          expat            (Comes with RedHat)
-
-      After downloading, install it (as root user):
-
-          # rpm -ivh subversion*.386.rpm (add other packages as necessary)
-
-      Note: For an easy way to generate a new version of the RPM
-      source and binary package from the latest source code you
-      just checked out, see the packages/rpm/README file for a
-      one-line build procedure.
-
-
   B.  Building the Latest Source under Unix
       -------------------------------------
 
@@ -658,7 +612,6 @@ II.   INSTALLATION
 
           # rm -f /usr/local/lib/libsvn*
           # rm -f /usr/local/lib/libapr*
-          # rm -f /usr/local/lib/libexpat*
           # rm -f /usr/local/lib/libserf*
 
       Start the process by running "autogen.sh":
@@ -813,7 +766,7 @@ II.   INSTALLATION
         program, not an installer - just rename it to awk.exe and it is
         ready to use.
       * Apache apr, apr-util, and optionally apr-iconv libraries, version
-        0.9.12 or later. Included in both the Subversion dependencies ZIP file
+        1.3 or later. Included in both the Subversion dependencies ZIP file
         and the Apache 2 source zip.  If you are building from a Subversion
         checkout and have not downloaded Apache 2, then get these 3 libraries
         from http://www.apache.org/dist/apr/.
@@ -830,11 +783,7 @@ II.   INSTALLATION
       * [Optional] Apache 2 source, downloaded from
         http://httpd.apache.org/download.cgi, these instructions assume
         version 2.0.58.  This is only needed for building the Subversion
-        server Apache modules.  Note that although Subversion will compile
-        against Apache 2.2.3 and APR 1.2.7, there is a bug that causes
-        runtime failures with Subversion on Windows.  The fix is included in
-        APR 1.2.8 and will be bundled in the next HTTP Server release
-        (likely to be 2.2.4).
+        server Apache modules.  ### FIXME Apache 2.2 or greater required.
       * [Optional] Apache 2 msi install file, also from
         http://httpd.apache.org/download.cgi (required for running the
         tests).  Only needed for testing the server dso modules and if
@@ -1164,12 +1113,6 @@ III.  BUILDING A SUBVERSION SERVER
   A.  Setting Up Apache
       -----------------
 
-      (Following the BOOTSTRAPPING FROM RPM procedures above will install and
-      build the latest Subversion server for Linux RedHat 7.1, 7.2, and PPC
-      Linux systems *IF* the apache-devel-2.0.41 or greater package is already
-      installed when the SUBVERSION RPM is built.)
-
-
       1.  Obtaining and Installing Apache 2
 
       Subversion tries to compile against the latest released version

Propchange: subversion/branches/move-tracking-2/INSTALL
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Sun Feb 22 16:52:05 2015
@@ -0,0 +1,90 @@
+/subversion/branches/1.5.x-r30215/INSTALL:870312
+/subversion/branches/1.7.x-fs-verify/INSTALL:1146708,1161180
+/subversion/branches/10Gb/INSTALL:1388102,1388163-1388190,1388195,1388202,1388205,1388211,1388276,1388362,1388375,1388394,1388636,1388639-1388640,1388643-1388644,1388654,1388720,1388789,1388795,1388801,1388805,1388807,1388810,1388816,1389044,1389276,1389289,1389662,1389867,1390017,1390209,1390216,1390407,1390409,1390414,1390419,1390955
+/subversion/branches/atomic-revprop/INSTALL:965046-1000689
+/subversion/branches/authzperf/INSTALL:1615360
+/subversion/branches/auto-props-sdc/INSTALL:1384106-1401643
+/subversion/branches/bdb-reverse-deltas/INSTALL:872050-872529
+/subversion/branches/cache-server/INSTALL:1458643-1476567
+/subversion/branches/diff-callbacks3/INSTALL:870059-870761
+/subversion/branches/diff-optimizations/INSTALL:1031270-1037352
+/subversion/branches/diff-optimizations-bytes/INSTALL:1037353-1067789
+/subversion/branches/dont-save-plaintext-passwords-by-default/INSTALL:870728-871118
+/subversion/branches/double-delete/INSTALL:870511-872970
+/subversion/branches/dump-load-cross-check/INSTALL:1654853-1657295
+/subversion/branches/ev2-export/INSTALL:1325914,1332738,1413107
+/subversion/branches/explore-wc/INSTALL:875486,875493,875497,875507,875511,875514,875559,875580-875581,875584,875587,875611,875627,875647,875667-875668,875711-875712,875733-875734,875736,875744-875748,875751,875758,875782,875795-875796,875830,875836,875838,875842,875852,875855,875864,875870,875873,875880,875885-875888,875890,875897-875898,875905,875907-875909,875935,875943-875944,875946,875979,875982-875983,875985-875986,875990,875997
+/subversion/branches/file-externals/INSTALL:871779-873302
+/subversion/branches/fs-rep-sharing/INSTALL:869036-873803
+/subversion/branches/fsfs-format7/INSTALL:1426304,1430673,1433848,1438408,1438982,1441129,1442051,1442068,1442504,1442910,1443171,1443803,1444690,1444693,1444695,1445040,1445080,1446103,1451129,1453590,1454307,1460579,1461851,1461865,1462837,1462904,1463120,1467362,1467382,1469487,1471208,1477166,1478055,1481447,1489817,1489949,1490673-1490674,1491784,1493042,1498029,1498103,1498155,1500054,1507729-1507731,1507735-1507736
+/subversion/branches/fsfs-improvements/INSTALL:1499981-1547039
+/subversion/branches/fsfs-lock-many/INSTALL:1571740-1577217
+/subversion/branches/fsfs-pack/INSTALL:873717-874575
+/subversion/branches/fsx/INSTALL:1507845-1509914
+/subversion/branches/fsx-id/INSTALL:1645603-1649011
+/subversion/branches/gnome-keyring/INSTALL:870558-871410
+/subversion/branches/gpg-agent-password-store/INSTALL:1005036-1150766
+/subversion/branches/gtest_addition/INSTALL:1452117-1502138
+/subversion/branches/http-protocol-v2/INSTALL:874395-876041
+/subversion/branches/in-memory-cache/INSTALL:869829-871452
+/subversion/branches/in-repo-authz/INSTALL:1414342-1424779
+/subversion/branches/inheritable-props/INSTALL:1297080-1395089
+/subversion/branches/integrate-cache-item-serialization/INSTALL:1068724-1068739
+/subversion/branches/integrate-cache-membuffer/INSTALL:998649-998852
+/subversion/branches/integrate-compression-level/INSTALL:1068651-1072287
+/subversion/branches/integrate-io-improvements/INSTALL:1068684-1072297
+/subversion/branches/integrate-is-cachable/INSTALL:1072568-1074082
+/subversion/branches/integrate-partial-getter/INSTALL:1072558-1076552
+/subversion/branches/integrate-readline-speedup/INSTALL:1072553-1072555
+/subversion/branches/integrate-stream-api-extensions/INSTALL:1068695-1072516
+/subversion/branches/integrate-string-improvements/INSTALL:1068251-1190617
+/subversion/branches/integrate-txdelta-caching/INSTALL:1072541-1078213
+/subversion/branches/issue-2779-dev/INSTALL:965496-984198
+/subversion/branches/issue-2843-dev/INSTALL:871432-874179
+/subversion/branches/issue-3000/INSTALL:871713,871716-871719,871721-871726,871728,871734
+/subversion/branches/issue-3067-deleted-subtrees/INSTALL:873375-874084
+/subversion/branches/issue-3148-dev/INSTALL:875193-875204
+/subversion/branches/issue-3220-dev/INSTALL:872210-872226
+/subversion/branches/issue-3242-dev/INSTALL:879653-896436
+/subversion/branches/issue-3334-dirs/INSTALL:875156-875867
+/subversion/branches/issue-3975/INSTALL:1152931-1160746
+/subversion/branches/issue-4116-dev/INSTALL:1424719-1425040
+/subversion/branches/issue-4194-dev/INSTALL:1410507-1414880
+/subversion/branches/javahl-ra/INSTALL:991978-1494640
+/subversion/branches/kwallet/INSTALL:870785-871314
+/subversion/branches/log-addressing/INSTALL:1509279-1546844
+/subversion/branches/log-g-performance/INSTALL:870941-871032
+/subversion/branches/merge-skips-obstructions/INSTALL:874525-874615
+/subversion/branches/multi-layer-moves/INSTALL:1239019-1300930
+/subversion/branches/nfc-nfd-aware-client/INSTALL:870276,870376
+/subversion/branches/node_pool/INSTALL:1304828-1305388
+/subversion/branches/performance/INSTALL:979193,980118,981087,981090,981189,981194,981287,981684,981827,982043,982355,983398,983406,983430,983474,983488,983490,983760,983764,983766,983770,984927,984973,984984,985014,985037,985046,985472,985477,985482,985487-985488,985493,985497,985500,985514,985601,985603,985606,985669,985673,985695,985697,986453,986465,986485,986491-986492,986517,986521,986605,986608,986817,986832,987865,987868-987869,987872,987886-987888,987893,988319,988898,990330,990533,990535-990537,990541,990568,990572,990574-990575,990600,990759,992899,992904,992911,993127,993141,994956,995478,995507,995603,998012,998858,999098,1001413,1001417,1004291,1022668,1022670,1022676,1022715,1022719,1025660,1025672,1027193,1027203,1027206,1027214,1027227,1028077,1028092,1028094,1028104,1028107,1028111,1028354,1029038,1029042-1029043,1029054-1029055,1029062-1029063,1029078,1029080,1029090,1029092-1029093,1029111,1029151,1029158,1029229-1029230,1029232,1029335-1029336,1029339-1029340,10
 29342,1029344,1030763,1030827,1031203,1031235,1032285,1032333,1033040,1033057,1033294,1035869,1035882,1039511,1043705,1053735,1056015,1066452,1067683,1067697-1078365
+/subversion/branches/pin-externals/INSTALL:1643757-1659392
+/subversion/branches/py-tests-as-modules/INSTALL:956579-1033052
+/subversion/branches/ra_serf-digest-authn/INSTALL:875693-876404
+/subversion/branches/reintegrate-improvements/INSTALL:873853-874164
+/subversion/branches/remote-only-status/INSTALL:1581845-1586090
+/subversion/branches/revprop-cache/INSTALL:1298521-1326293
+/subversion/branches/revprop-caching-ng/INSTALL:1620597,1620599
+/subversion/branches/revprop-packing/INSTALL:1143907,1143971,1143997,1144017,1144499,1144568,1146145
+/subversion/branches/subtree-mergeinfo/INSTALL:876734-878766
+/subversion/branches/svn-auth-x509/INSTALL:1603509-1655900
+/subversion/branches/svn-mergeinfo-enhancements/INSTALL:870119-870195,870197-870288
+/subversion/branches/svn-patch-improvements/INSTALL:918519-934609
+/subversion/branches/svn_mutex/INSTALL:1141683-1182099
+/subversion/branches/svnpatch-diff/INSTALL:865738-876477
+/subversion/branches/svnraisetc/INSTALL:874709-875149
+/subversion/branches/svnserve-logging/INSTALL:869828-870893
+/subversion/branches/tc-issue-3334/INSTALL:874697-874773
+/subversion/branches/tc-merge-notify/INSTALL:874017-874062
+/subversion/branches/tc-resolve/INSTALL:874191-874239
+/subversion/branches/tc_url_rev/INSTALL:874351-874483
+/subversion/branches/tree-conflicts/INSTALL:868291-873154
+/subversion/branches/tree-conflicts-notify/INSTALL:873926-874008
+/subversion/branches/tristate-chunked-request/INSTALL:1502394-1502681
+/subversion/branches/tweak-build-take-two/INSTALL:1424288-1425049,1425051-1425613
+/subversion/branches/uris-as-urls/INSTALL:1060426-1064427
+/subversion/branches/verify-at-commit/INSTALL:1462039-1462408
+/subversion/branches/verify-keep-going/INSTALL:1439280-1546110
+/subversion/branches/wc-collate-path/INSTALL:1402685-1480384
+/subversion/trunk/INSTALL:1606692-1661488

Propchange: subversion/branches/move-tracking-2/build/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Feb 22 16:52:05 2015
@@ -82,4 +82,4 @@
 /subversion/branches/verify-at-commit/build:1462039-1462408
 /subversion/branches/verify-keep-going/build:1439280-1546110
 /subversion/branches/wc-collate-path/build:1402685-1480384
-/subversion/trunk/build:1606692-1660163
+/subversion/trunk/build:1606692-1661488

Modified: subversion/branches/move-tracking-2/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/build.conf?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/build.conf (original)
+++ subversion/branches/move-tracking-2/build.conf Sun Feb 22 16:52:05 2015
@@ -1362,6 +1362,15 @@ libs = libsvn_wc libsvn_subr apriconv ap
 msvc-force-static = yes
 testing = skip
 
+[svn-wc-db-tester]
+type = exe
+path = tools/dev/wc-ng
+sources = svn-wc-db-tester.c
+install = test
+libs = libsvn_wc libsvn_subr apr
+msvc-force-static = yes
+testing = skip
+
 # ----------------------------------------------------------------------------
 #
 # EXTERNAL TARGETS (NO BUILD NEEDED)
@@ -1521,7 +1530,7 @@ type = project
 path = build/win32
 libs = __ALL_TESTS__
        diff diff3 diff4 fsfs-access-map svnauth 
-       svn-populate-node-origins-index
+       svn-populate-node-origins-index x509-parser svn-wc-db-tester
 
 [__LIBS__]
 type = project
@@ -1636,6 +1645,7 @@ libs = libsvn_wc libsvn_subr apriconv ap
 install = tools
 
 [x509-parser]
+description = Tool to verify x509 certificates
 type = exe
 path = tools/dev
 sources = x509-parser.c

Propchange: subversion/branches/move-tracking-2/build.conf
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Feb 22 16:52:05 2015
@@ -82,4 +82,4 @@
 /subversion/branches/verify-at-commit/build.conf:1462039-1462408
 /subversion/branches/verify-keep-going/build.conf:1439280-1546110
 /subversion/branches/wc-collate-path/build.conf:1402685-1480384
-/subversion/trunk/build.conf:1606692-1660163
+/subversion/trunk/build.conf:1606692-1661488

Modified: subversion/branches/move-tracking-2/build/generator/gen_base.py
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/build/generator/gen_base.py?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/build/generator/gen_base.py (original)
+++ subversion/branches/move-tracking-2/build/generator/gen_base.py Sun Feb 22 16:52:05 2015
@@ -240,12 +240,16 @@ class GeneratorBase:
         os.rename(new_hdrfile, hdrfile)
 
   def write_file_if_changed(self, fname, new_contents):
-    """Rewrite the file if new_contents are different than its current content.
+    """Rewrite the file if NEW_CONTENTS are different than its current content.
 
     If you have your windows projects open and generate the projects
     it's not a small thing for windows to re-read all projects so
     only update those that have changed.
+
+    Under Python >=3, NEW_CONTENTS must be a 'str', not a 'bytes'.
     """
+    if sys.version_info[0] >= 3:
+      new_contents = new_contents.encode()
 
     try:
       old_contents = open(fname, 'rb').read()

Modified: subversion/branches/move-tracking-2/build/getversion.py
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/build/getversion.py?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/build/getversion.py (original)
+++ subversion/branches/move-tracking-2/build/getversion.py Sun Feb 22 16:52:05 2015
@@ -26,6 +26,7 @@
 import os
 import re
 import sys
+import traceback
 
 __all__ = ['Parser', 'Result']
 
@@ -64,8 +65,10 @@ def svn_extractor(parser, include_file):
 
   try:
     r = p.parse(include_file)
-  except IOError, e:
-    usage_and_exit(str(e))
+  except IOError:
+    typ, val, tb = sys.exc_info()
+    msg = ''.join(traceback.format_exception_only(typ, val))
+    usage_and_exit(msg)
   sys.stdout.write("%d.%d.%d" % (r.major, r.minor, r.patch))
 
 
@@ -75,8 +78,10 @@ def sqlite_extractor(parser, include_fil
 
   try:
     r = p.parse(include_file)
-  except IOError, e:
-    usage_and_exit(str(e))
+  except IOError:
+    typ, val, tb = sys.exc_info()
+    msg = ''.join(traceback.format_exception_only(typ, val))
+    usage_and_exit(msg)
   major = r.version / 1000000
   minor = (r.version - (major * 1000000)) / 1000
   micro = (r.version - (major * 1000000) - (minor * 1000))

Modified: subversion/branches/move-tracking-2/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/build/run_tests.py?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/build/run_tests.py (original)
+++ subversion/branches/move-tracking-2/build/run_tests.py Sun Feb 22 16:52:05 2015
@@ -45,7 +45,7 @@ separated list of test numbers; the defa
 '''
 
 # A few useful constants
-SVN_VER_MINOR = 9
+SVN_VER_MINOR = 10
 
 import os, re, subprocess, sys, imp, threading, traceback, exceptions
 from datetime import datetime

Modified: subversion/branches/move-tracking-2/build/transform_sql.py
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/build/transform_sql.py?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/build/transform_sql.py (original)
+++ subversion/branches/move-tracking-2/build/transform_sql.py Sun Feb 22 16:52:05 2015
@@ -140,7 +140,7 @@ class Processor(object):
 
       # '/'+1 == '0'
       line = re.sub(
-            r'IS_STRICT_DESCENDANT_OF[(]([A-Za-z_.]+), ([?][0-9]+)[)]',
+            r'IS_STRICT_DESCENDANT_OF[(]([?]?[A-Za-z0-9_.]+), ([?]?[A-Za-z0-9_.]+)[)]',
             r"(((\1) > (CASE (\2) WHEN '' THEN '' ELSE (\2) || '/' END))" +
             r" AND ((\1) < CASE (\2) WHEN '' THEN X'FFFF' ELSE (\2) || '0' END))",
             line)
@@ -194,14 +194,14 @@ class Processor(object):
             line)
 
       # Another preprocessing.
-      for symbol, string in self.token_map.iteritems():
+      for symbol, string in self.token_map.items():
         # ### This doesn't sql-escape 'string'
         line = re.sub(r'\b%s\b' % re.escape(symbol), "'%s'" % string, line)
 
       if line.strip():
         handled = False
 
-        for regex, handler in self._directives.iteritems():
+        for regex, handler in self._directives.items():
           match = regex.match(line)
           if match:
             handler(match)

Modified: subversion/branches/move-tracking-2/gen-make.py
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/gen-make.py?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/gen-make.py (original)
+++ subversion/branches/move-tracking-2/gen-make.py Sun Feb 22 16:52:05 2015
@@ -25,7 +25,9 @@
 
 
 import os
+import traceback
 import sys
+
 import getopt
 try:
   my_getopt = getopt.gnu_getopt
@@ -266,8 +268,10 @@ if __name__ == '__main__':
                             ])
     if len(args) > 1:
       _usage_exit("Too many arguments")
-  except getopt.GetoptError, e:
-    _usage_exit(str(e))
+  except getopt.GetoptError:
+    typ, val, tb = sys.exc_info()
+    msg = ''.join(traceback.format_exception_only(typ, val))
+    _usage_exit(msg)
 
   conf = 'build.conf'
   skip = 0

Propchange: subversion/branches/move-tracking-2/gen-make.py
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Sun Feb 22 16:52:05 2015
@@ -0,0 +1,90 @@
+/subversion/branches/1.5.x-r30215/gen-make.py:870312
+/subversion/branches/1.7.x-fs-verify/gen-make.py:1146708,1161180
+/subversion/branches/10Gb/gen-make.py:1388102,1388163-1388190,1388195,1388202,1388205,1388211,1388276,1388362,1388375,1388394,1388636,1388639-1388640,1388643-1388644,1388654,1388720,1388789,1388795,1388801,1388805,1388807,1388810,1388816,1389044,1389276,1389289,1389662,1389867,1390017,1390209,1390216,1390407,1390409,1390414,1390419,1390955
+/subversion/branches/atomic-revprop/gen-make.py:965046-1000689
+/subversion/branches/authzperf/gen-make.py:1615360
+/subversion/branches/auto-props-sdc/gen-make.py:1384106-1401643
+/subversion/branches/bdb-reverse-deltas/gen-make.py:872050-872529
+/subversion/branches/cache-server/gen-make.py:1458643-1476567
+/subversion/branches/diff-callbacks3/gen-make.py:870059-870761
+/subversion/branches/diff-optimizations/gen-make.py:1031270-1037352
+/subversion/branches/diff-optimizations-bytes/gen-make.py:1037353-1067789
+/subversion/branches/dont-save-plaintext-passwords-by-default/gen-make.py:870728-871118
+/subversion/branches/double-delete/gen-make.py:870511-872970
+/subversion/branches/dump-load-cross-check/gen-make.py:1654853-1657295
+/subversion/branches/ev2-export/gen-make.py:1325914,1332738,1413107
+/subversion/branches/explore-wc/gen-make.py:875486,875493,875497,875507,875511,875514,875559,875580-875581,875584,875587,875611,875627,875647,875667-875668,875711-875712,875733-875734,875736,875744-875748,875751,875758,875782,875795-875796,875830,875836,875838,875842,875852,875855,875864,875870,875873,875880,875885-875888,875890,875897-875898,875905,875907-875909,875935,875943-875944,875946,875979,875982-875983,875985-875986,875990,875997
+/subversion/branches/file-externals/gen-make.py:871779-873302
+/subversion/branches/fs-rep-sharing/gen-make.py:869036-873803
+/subversion/branches/fsfs-format7/gen-make.py:1426304,1430673,1433848,1438408,1438982,1441129,1442051,1442068,1442504,1442910,1443171,1443803,1444690,1444693,1444695,1445040,1445080,1446103,1451129,1453590,1454307,1460579,1461851,1461865,1462837,1462904,1463120,1467362,1467382,1469487,1471208,1477166,1478055,1481447,1489817,1489949,1490673-1490674,1491784,1493042,1498029,1498103,1498155,1500054,1507729-1507731,1507735-1507736
+/subversion/branches/fsfs-improvements/gen-make.py:1499981-1547039
+/subversion/branches/fsfs-lock-many/gen-make.py:1571740-1577217
+/subversion/branches/fsfs-pack/gen-make.py:873717-874575
+/subversion/branches/fsx/gen-make.py:1507845-1509914
+/subversion/branches/fsx-id/gen-make.py:1645603-1649011
+/subversion/branches/gnome-keyring/gen-make.py:870558-871410
+/subversion/branches/gpg-agent-password-store/gen-make.py:1005036-1150766
+/subversion/branches/gtest_addition/gen-make.py:1452117-1502138
+/subversion/branches/http-protocol-v2/gen-make.py:874395-876041
+/subversion/branches/in-memory-cache/gen-make.py:869829-871452
+/subversion/branches/in-repo-authz/gen-make.py:1414342-1424779
+/subversion/branches/inheritable-props/gen-make.py:1297080-1395089
+/subversion/branches/integrate-cache-item-serialization/gen-make.py:1068724-1068739
+/subversion/branches/integrate-cache-membuffer/gen-make.py:998649-998852
+/subversion/branches/integrate-compression-level/gen-make.py:1068651-1072287
+/subversion/branches/integrate-io-improvements/gen-make.py:1068684-1072297
+/subversion/branches/integrate-is-cachable/gen-make.py:1072568-1074082
+/subversion/branches/integrate-partial-getter/gen-make.py:1072558-1076552
+/subversion/branches/integrate-readline-speedup/gen-make.py:1072553-1072555
+/subversion/branches/integrate-stream-api-extensions/gen-make.py:1068695-1072516
+/subversion/branches/integrate-string-improvements/gen-make.py:1068251-1190617
+/subversion/branches/integrate-txdelta-caching/gen-make.py:1072541-1078213
+/subversion/branches/issue-2779-dev/gen-make.py:965496-984198
+/subversion/branches/issue-2843-dev/gen-make.py:871432-874179
+/subversion/branches/issue-3000/gen-make.py:871713,871716-871719,871721-871726,871728,871734
+/subversion/branches/issue-3067-deleted-subtrees/gen-make.py:873375-874084
+/subversion/branches/issue-3148-dev/gen-make.py:875193-875204
+/subversion/branches/issue-3220-dev/gen-make.py:872210-872226
+/subversion/branches/issue-3242-dev/gen-make.py:879653-896436
+/subversion/branches/issue-3334-dirs/gen-make.py:875156-875867
+/subversion/branches/issue-3975/gen-make.py:1152931-1160746
+/subversion/branches/issue-4116-dev/gen-make.py:1424719-1425040
+/subversion/branches/issue-4194-dev/gen-make.py:1410507-1414880
+/subversion/branches/javahl-ra/gen-make.py:991978-1494640
+/subversion/branches/kwallet/gen-make.py:870785-871314
+/subversion/branches/log-addressing/gen-make.py:1509279-1546844
+/subversion/branches/log-g-performance/gen-make.py:870941-871032
+/subversion/branches/merge-skips-obstructions/gen-make.py:874525-874615
+/subversion/branches/multi-layer-moves/gen-make.py:1239019-1300930
+/subversion/branches/nfc-nfd-aware-client/gen-make.py:870276,870376
+/subversion/branches/node_pool/gen-make.py:1304828-1305388
+/subversion/branches/performance/gen-make.py:979193,980118,981087,981090,981189,981194,981287,981684,981827,982043,982355,983398,983406,983430,983474,983488,983490,983760,983764,983766,983770,984927,984973,984984,985014,985037,985046,985472,985477,985482,985487-985488,985493,985497,985500,985514,985601,985603,985606,985669,985673,985695,985697,986453,986465,986485,986491-986492,986517,986521,986605,986608,986817,986832,987865,987868-987869,987872,987886-987888,987893,988319,988898,990330,990533,990535-990537,990541,990568,990572,990574-990575,990600,990759,992899,992904,992911,993127,993141,994956,995478,995507,995603,998012,998858,999098,1001413,1001417,1004291,1022668,1022670,1022676,1022715,1022719,1025660,1025672,1027193,1027203,1027206,1027214,1027227,1028077,1028092,1028094,1028104,1028107,1028111,1028354,1029038,1029042-1029043,1029054-1029055,1029062-1029063,1029078,1029080,1029090,1029092-1029093,1029111,1029151,1029158,1029229-1029230,1029232,1029335-1029336,1029339-102934
 0,1029342,1029344,1030763,1030827,1031203,1031235,1032285,1032333,1033040,1033057,1033294,1035869,1035882,1039511,1043705,1053735,1056015,1066452,1067683,1067697-1078365
+/subversion/branches/pin-externals/gen-make.py:1643757-1659392
+/subversion/branches/py-tests-as-modules/gen-make.py:956579-1033052
+/subversion/branches/ra_serf-digest-authn/gen-make.py:875693-876404
+/subversion/branches/reintegrate-improvements/gen-make.py:873853-874164
+/subversion/branches/remote-only-status/gen-make.py:1581845-1586090
+/subversion/branches/revprop-cache/gen-make.py:1298521-1326293
+/subversion/branches/revprop-caching-ng/gen-make.py:1620597,1620599
+/subversion/branches/revprop-packing/gen-make.py:1143907,1143971,1143997,1144017,1144499,1144568,1146145
+/subversion/branches/subtree-mergeinfo/gen-make.py:876734-878766
+/subversion/branches/svn-auth-x509/gen-make.py:1603509-1655900
+/subversion/branches/svn-mergeinfo-enhancements/gen-make.py:870119-870195,870197-870288
+/subversion/branches/svn-patch-improvements/gen-make.py:918519-934609
+/subversion/branches/svn_mutex/gen-make.py:1141683-1182099
+/subversion/branches/svnpatch-diff/gen-make.py:865738-876477
+/subversion/branches/svnraisetc/gen-make.py:874709-875149
+/subversion/branches/svnserve-logging/gen-make.py:869828-870893
+/subversion/branches/tc-issue-3334/gen-make.py:874697-874773
+/subversion/branches/tc-merge-notify/gen-make.py:874017-874062
+/subversion/branches/tc-resolve/gen-make.py:874191-874239
+/subversion/branches/tc_url_rev/gen-make.py:874351-874483
+/subversion/branches/tree-conflicts/gen-make.py:868291-873154
+/subversion/branches/tree-conflicts-notify/gen-make.py:873926-874008
+/subversion/branches/tristate-chunked-request/gen-make.py:1502394-1502681
+/subversion/branches/tweak-build-take-two/gen-make.py:1424288-1425049,1425051-1425613
+/subversion/branches/uris-as-urls/gen-make.py:1060426-1064427
+/subversion/branches/verify-at-commit/gen-make.py:1462039-1462408
+/subversion/branches/verify-keep-going/gen-make.py:1439280-1546110
+/subversion/branches/wc-collate-path/gen-make.py:1402685-1480384
+/subversion/trunk/gen-make.py:1606692-1661488

Propchange: subversion/branches/move-tracking-2/subversion/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sun Feb 22 16:52:05 2015
@@ -82,4 +82,4 @@
 /subversion/branches/verify-at-commit/subversion:1462039-1462408
 /subversion/branches/verify-keep-going/subversion:1439280-1546110
 /subversion/branches/wc-collate-path/subversion:1402685-1480384
-/subversion/trunk/subversion:1606692-1660163
+/subversion/trunk/subversion:1606692-1661488

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/SVNClient.cpp?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/SVNClient.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/SVNClient.cpp Sun Feb 22 16:52:05 2015
@@ -519,6 +519,7 @@ apr_hash_t *get_externals_to_pin(jobject
 void SVNClient::copy(CopySources &copySources, const char *destPath,
                      CommitMessage *message, bool copyAsChild,
                      bool makeParents, bool ignoreExternals,
+                     bool metadataOnly,
                      bool pinExternals, jobject jexternalsToPin,
                      PropertyTable &revprops, CommitCallback *callback)
 {
@@ -538,6 +539,7 @@ void SVNClient::copy(CopySources &copySo
     if (!JNIUtil::isJavaExceptionThrown())
       SVN_JNI_ERR(svn_client_copy7(srcs, destinationPath.c_str(),
                                    copyAsChild, makeParents, ignoreExternals,
+                                   metadataOnly,
                                    pinExternals, pin_set,
                                    revprops.hash(subPool),
                                    CommitCallback::callback, callback,

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/SVNClient.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/SVNClient.h?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/SVNClient.h (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/SVNClient.h Sun Feb 22 16:52:05 2015
@@ -149,7 +149,7 @@ class SVNClient :public SVNBase
             PropertyTable &revprops, CommitCallback *callback);
   void copy(CopySources &copySources, const char *destPath,
             CommitMessage *message, bool copyAsChild, bool makeParents,
-            bool ignoreExternals, bool pinExternals,
+            bool ignoreExternals, bool metaDataOnly, bool pinExternals,
             jobject jexternalsToPin,
             PropertyTable &revprops, CommitCallback *callback);
   void commit(Targets &targets, CommitMessage *message, svn_depth_t depth,

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp Sun Feb 22 16:52:05 2015
@@ -559,7 +559,7 @@ JNIEXPORT void JNICALL
 Java_org_apache_subversion_javahl_SVNClient_copy
 (JNIEnv *env, jobject jthis, jobject jcopySources, jstring jdestPath,
  jboolean jcopyAsChild, jboolean jmakeParents, jboolean jignoreExternals,
- jboolean jpinExternals, jobject jexternalsToPin,
+ jboolean jmetadataOnly, jboolean jpinExternals, jobject jexternalsToPin,
  jobject jrevpropTable, jobject jmessage, jobject jcallback)
 {
   JNIEntry(SVNClient, copy);
@@ -593,7 +593,8 @@ Java_org_apache_subversion_javahl_SVNCli
   CommitCallback callback(jcallback);
   cl->copy(copySources, destPath, &message,
            bool(jcopyAsChild), bool(jmakeParents),
-           bool(jignoreExternals), bool(jpinExternals), jexternalsToPin,
+           bool(jignoreExternals), bool(jmetadataOnly),
+           bool(jpinExternals), jexternalsToPin,
            revprops, jcallback ? &callback : NULL);
 }
 

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Sun Feb 22 16:52:05 2015
@@ -376,6 +376,7 @@ public interface ISVNClient
      * @param makeParents Whether to create intermediate parents
      * @param ignoreExternals Whether or not to process external definitions
      *                        as part of this operation.
+     * @param metadataOnly Copy just the metadata and not the working files/dirs
      * @param pinExternals Whether or not to pin external definitions as part
      *                     of this operation.
      * @param externalsToPin The set of externals to pin.
@@ -401,7 +402,8 @@ public interface ISVNClient
      */
     void copy(List<CopySource> sources, String destPath,
               boolean copyAsChild, boolean makeParents,
-              boolean ignoreExternals,  boolean pinExternals,
+              boolean ignoreExternals, boolean metadataOnly,
+              boolean pinExternals,
               Map<String, List<ExternalItem>> externalsToPin,
               Map<String, String> revpropTable,
               CommitMessageCallback handler, CommitCallback callback)
@@ -411,8 +413,9 @@ public interface ISVNClient
      * Copy versioned paths with the history preserved.
      * <p>
      * Behaves like the 1.9 version with
-     *     <code>pinExternals<code> set to <code>false</code> and
-     *     <code>externalsToPin<code> set to <code>null</code>.
+     *     <code>pinExternals</code> set to <code>false</code> and
+     *     <code>externalsToPin</code> set to <code>null</code> and
+     *     <code>metadataOnly</code> set to <code>false</code>.
      */
     void copy(List<CopySource> sources, String destPath,
               boolean copyAsChild, boolean makeParents,

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/NativeResources.java Sun Feb 22 16:52:05 2015
@@ -142,10 +142,10 @@ public class NativeResources
     private static final void init()
     {
         version = new Version();
-        if (!version.isAtLeast(1, 9, 0))
+        if (!version.isAtLeast(1, 10, 0))
         {
             throw new LinkageError("Native library version must be at least " +
-                                   "1.9.0, but is only " + version);
+                                   "1.10.0, but is only " + version);
         }
 
         runtimeVersion = new RuntimeVersion();

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Sun Feb 22 16:52:05 2015
@@ -240,7 +240,8 @@ public class SVNClient implements ISVNCl
 
     public native void copy(List<CopySource> sources, String destPath,
                             boolean copyAsChild, boolean makeParents,
-                            boolean ignoreExternals, boolean pinExternals,
+                            boolean ignoreExternals, boolean metadataOnly,
+                            boolean pinExternals,
                             Map<String, List<ExternalItem>> externalsToPin,
                             Map<String, String> revpropTable,
                             CommitMessageCallback handler, CommitCallback callback)
@@ -254,7 +255,7 @@ public class SVNClient implements ISVNCl
             throws ClientException
     {
         copy(sources, destPath, copyAsChild, makeParents, ignoreExternals,
-             false, null, revpropTable, handler, callback);
+             false, false, null, revpropTable, handler, callback);
     }
 
     public native void move(Set<String> srcPaths, String destPath,

Modified: subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/branches/move-tracking-2/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Sun Feb 22 16:52:05 2015
@@ -1060,7 +1060,7 @@ public class BasicTests extends SVNTests
         }
         client.copy(sources,
                     new File(thisTest.getWorkingCopy(), "A/B/F").getPath(),
-                    true, false, false, false, null, null, null, null);
+                    true, false, false, false, false, null, null, null, null);
 
         // Commit the changes, and check the state of the WC.
         checkCommitRevision(thisTest,
@@ -1077,7 +1077,7 @@ public class BasicTests extends SVNTests
                                         "A/B").getPath(), Revision.WORKING,
                                     Revision.WORKING));
         client.copy(wcSource, thisTest.getUrl() + "/parent/A/B",
-                    true, true, false, false, null, null,
+                    true, true, false, false, false, null, null,
                     new ConstMsg("Copy WC to URL"), null);
 
         // update the WC to get new folder and confirm the copy
@@ -1123,7 +1123,7 @@ public class BasicTests extends SVNTests
         List<CopySource> sources = new ArrayList<CopySource>(1);
         sources.add(new CopySource(thisTest.getWCPath() + "/A/B", null, null));
         String target = thisTest.getWCPath() + "/A/Bcopy";
-        client.copy(sources, target, true, false, false,
+        client.copy(sources, target, true, false, false, false,
                     true,       // pinExternals
                     null,       // externalsToPin
                     null, null, null);
@@ -1151,7 +1151,7 @@ public class BasicTests extends SVNTests
         List<CopySource> sources = new ArrayList<CopySource>(1);
         sources.add(new CopySource(thisTest.getWCPath() + "/A/B", null, null));
         String target = thisTest.getUrl() + "/A/Bcopy";
-        client.copy(sources, target, true, false, false,
+        client.copy(sources, target, true, false, false, false,
                     true,       // pinExternals
                     null,       // externalsToPin
                     null, new ConstMsg("Copy WC to REPO"), null);
@@ -1179,7 +1179,7 @@ public class BasicTests extends SVNTests
         List<CopySource> sources = new ArrayList<CopySource>(1);
         sources.add(new CopySource(thisTest.getUrl() + "/A/B", null, null));
         String target = thisTest.getWCPath() + "/A/Bcopy";
-        client.copy(sources, target, true, false, false,
+        client.copy(sources, target, true, false, false, false,
                     true,       // pinExternals
                     null,       // externalsToPin
                     null, null, null);
@@ -1207,7 +1207,7 @@ public class BasicTests extends SVNTests
         List<CopySource> sources = new ArrayList<CopySource>(1);
         sources.add(new CopySource(thisTest.getUrl() + "/A/B", null, null));
         String target = thisTest.getUrl() + "/A/Bcopy";
-        client.copy(sources, target, true, false, false,
+        client.copy(sources, target, true, false, false, false,
                     true,       // pinExternals
                     null,       // externalsToPin
                     null, new ConstMsg("Copy WC to REPO"), null);
@@ -1242,7 +1242,7 @@ public class BasicTests extends SVNTests
         List<CopySource> sources = new ArrayList<CopySource>(1);
         sources.add(new CopySource(sourceUrl, null, null));
         String target = thisTest.getUrl() + "/A/Bcopy";
-        client.copy(sources, target, true, false, false,
+        client.copy(sources, target, true, false, false, false,
                     true,       // pinExternals
                     externalsToPin,
                     null, new ConstMsg("Copy WC to REPO"), null);
@@ -3175,7 +3175,7 @@ public class BasicTests extends SVNTests
         srcs.add(new CopySource(thisTest.getUrl() + "/A", Revision.HEAD,
                                 Revision.HEAD));
         client.copy(srcs, thisTest.getUrl() + "/branches/A",
-                    true, false, false, false, null, null,
+                    true, false, false, false, false, null, null,
                     new ConstMsg("create A branch"), null);
 
         // update the WC (to r3) so that it has the branches folder

Modified: subversion/branches/move-tracking-2/subversion/include/private/svn_cache.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/private/svn_cache.h?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/private/svn_cache.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/private/svn_cache.h Sun Feb 22 16:52:05 2015
@@ -542,6 +542,15 @@ svn_cache__get_global_membuffer_cache(vo
 svn_cache__info_t *
 svn_cache__membuffer_get_global_info(apr_pool_t *pool);
 
+/**
+ * Remove all current contents from CACHE.
+ *
+ * NOTE:  In a multi-threaded environment, new contents may have been put
+ * into the cache by the time this function returns.
+ */
+svn_error_t *
+svn_cache__membuffer_clear(svn_membuffer_t *cache);
+
 /** @} */
 
 

Modified: subversion/branches/move-tracking-2/subversion/include/private/svn_sqlite.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/private/svn_sqlite.h?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/private/svn_sqlite.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/private/svn_sqlite.h Sun Feb 22 16:52:05 2015
@@ -63,7 +63,7 @@ typedef enum svn_sqlite__mode_e {
 typedef svn_error_t *(*svn_sqlite__func_t)(svn_sqlite__context_t *sctx,
                                            int argc,
                                            svn_sqlite__value_t *values[],
-                                           apr_pool_t *scatch_pool);
+                                           void *baton);
 
 
 /* Step the given statement; if it returns SQLITE_DONE, reset the statement.

Modified: subversion/branches/move-tracking-2/subversion/include/private/svn_wc_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/private/svn_wc_private.h?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/private/svn_wc_private.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/private/svn_wc_private.h Sun Feb 22 16:52:05 2015
@@ -381,15 +381,13 @@ svn_wc__status2_from_3(svn_wc_status2_t
                        apr_pool_t *result_pool,
                        apr_pool_t *scratch_pool);
 
-
 /**
  * Set @a *children to a new array of the immediate children of the working
  * node at @a dir_abspath.  The elements of @a *children are (const char *)
  * absolute paths.
  *
- * Include children that are scheduled for deletion.  Iff @a show_hidden
- * is true, also include children that are 'excluded' or 'server-excluded' or
- * 'not-present'.
+ * Include children that are scheduled for deletion, but not those that
+ * are excluded, server-excluded or not-present.
  *
  * Return every path that refers to a child of the working node at
  * @a dir_abspath.  Do not include a path just because it was a child of a
@@ -403,24 +401,20 @@ svn_error_t *
 svn_wc__node_get_children_of_working_node(const apr_array_header_t **children,
                                           svn_wc_context_t *wc_ctx,
                                           const char *dir_abspath,
-                                          svn_boolean_t show_hidden,
                                           apr_pool_t *result_pool,
                                           apr_pool_t *scratch_pool);
 
 /**
- * Like svn_wc__node_get_children_of_working_node(), except also include any
- * path that was a child of a deleted directory that existed at
- * @a dir_abspath, even if that directory is now scheduled to be replaced by
- * the working node at @a dir_abspath.
+ * Gets the immediate 'not-present' children of a node.
+ *
+ * #### Needed during 'svn cp WC URL' to handle mixed revision cases
  */
 svn_error_t *
-svn_wc__node_get_children(const apr_array_header_t **children,
-                          svn_wc_context_t *wc_ctx,
-                          const char *dir_abspath,
-                          svn_boolean_t show_hidden,
-                          apr_pool_t *result_pool,
-                          apr_pool_t *scratch_pool);
-
+svn_wc__node_get_not_present_children(const apr_array_header_t **children,
+                                      svn_wc_context_t *wc_ctx,
+                                      const char *dir_abspath,
+                                      apr_pool_t *result_pool,
+                                      apr_pool_t *scratch_pool);
 
 /**
  * Fetch the repository information for the working version
@@ -520,26 +514,6 @@ svn_wc__node_get_origin(svn_boolean_t *i
                         apr_pool_t *scratch_pool);
 
 /**
- * Set @a *deleted_ancestor_abspath to the root of the delete operation
- * that deleted @a local_abspath. If @a local_abspath itself was deleted
- * and has no deleted ancestor, @a *deleted_ancestor_abspath will equal
- * @a local_abspath. If @a local_abspath was not deleted,
- * set @a *deleted_ancestor_abspath to @c NULL.
- *
- * A node is considered 'deleted' if it is deleted or moved-away, and is
- * not replaced.
- *
- * @a *deleted_ancestor_abspath is allocated in @a result_pool.
- * Use @a scratch_pool for all temporary allocations.
- */
-svn_error_t *
-svn_wc__node_get_deleted_ancestor(const char **deleted_ancestor_abspath,
-                                  svn_wc_context_t *wc_ctx,
-                                  const char *local_abspath,
-                                  apr_pool_t *result_pool,
-                                  apr_pool_t *scratch_pool);
-
-/**
  * Set @a *not_present to TRUE when @a local_abspath has status
  * svn_wc__db_status_not_present. Set @a *user_excluded to TRUE when
  * @a local_abspath has status svn_wc__db_status_excluded. Set

Modified: subversion/branches/move-tracking-2/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/svn_client.h?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/svn_client.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/svn_client.h Sun Feb 22 16:52:05 2015
@@ -4492,6 +4492,12 @@ typedef struct svn_client_copy_source_t
  * If @a ignore_externals is set, don't process externals definitions
  * as part of this operation.
  *
+ * If @a metadata_only is @c TRUE and copying a file in a working copy,
+ * everything in the metadata is updated as if the node is moved, but the
+ * actual disk copy operation is not performed. This feature is useful for
+ * clients that want to keep the working copy in sync while the actual working
+ * copy is updated by some other task.
+ *
  * If @a pin_externals is set, pin URLs in copied externals definitions
  * to their current revision unless they were already pinned to a
  * particular revision. A pinned external uses a URL which points at a
@@ -4547,6 +4553,7 @@ svn_client_copy7(const apr_array_header_
                  svn_boolean_t copy_as_child,
                  svn_boolean_t make_parents,
                  svn_boolean_t ignore_externals,
+                 svn_boolean_t metadata_only,
                  svn_boolean_t pin_externals,
                  const apr_hash_t *externals_to_pin,
                  const apr_hash_t *revprop_table,
@@ -4556,11 +4563,14 @@ svn_client_copy7(const apr_array_header_
                  apr_pool_t *pool);
 
 /**
- * Similar to svn_client_copy7(), but cannot pin externals.
+ * Similar to svn_client_copy7(), but doesn't support meta_data_only
+ * and cannot pin externals.
+ * 
  *
  * @since New in 1.7.
  * @deprecated Provided for backward compatibility with the 1.8 API.
  */
+SVN_DEPRECATED
 svn_error_t *
 svn_client_copy6(const apr_array_header_t *sources,
                  const char *dst_path,

Modified: subversion/branches/move-tracking-2/subversion/include/svn_version.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/include/svn_version.h?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/include/svn_version.h (original)
+++ subversion/branches/move-tracking-2/subversion/include/svn_version.h Sun Feb 22 16:52:05 2015
@@ -61,7 +61,7 @@ extern "C" {
  * Modify when new functionality is added or new interfaces are
  * defined, but all changes are backward compatible.
  */
-#define SVN_VER_MINOR      9
+#define SVN_VER_MINOR      10
 
 /**
  * Patch number.

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/add.c
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/add.c?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/add.c (original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/add.c Sun Feb 22 16:52:05 2015
@@ -768,59 +768,6 @@ svn_client__get_all_auto_props(apr_hash_
   return SVN_NO_ERROR;
 }
 
-svn_error_t *svn_client__get_inherited_ignores(apr_array_header_t **ignores,
-                                               const char *path_or_url,
-                                               svn_client_ctx_t *ctx,
-                                               apr_pool_t *result_pool,
-                                               apr_pool_t *scratch_pool)
-{
-  svn_opt_revision_t rev;
-  apr_hash_t *explicit_ignores;
-  apr_array_header_t *inherited_ignores;
-  svn_boolean_t target_is_url = svn_path_is_url(path_or_url);
-  svn_string_t *explicit_prop;
-  int i;
-
-  if (target_is_url)
-    rev.kind = svn_opt_revision_head;
-  else
-    rev.kind = svn_opt_revision_working;
-
-  SVN_ERR(svn_client_propget5(&explicit_ignores, &inherited_ignores,
-                              SVN_PROP_INHERITABLE_IGNORES, path_or_url,
-                              &rev, &rev, NULL, svn_depth_empty, NULL, ctx,
-                              scratch_pool, scratch_pool));
-
-  explicit_prop = svn_hash_gets(explicit_ignores, path_or_url);
-
-  if (explicit_prop)
-    {
-      svn_prop_inherited_item_t *new_iprop =
-        apr_palloc(scratch_pool, sizeof(*new_iprop));
-      new_iprop->path_or_url = path_or_url;
-      new_iprop->prop_hash = apr_hash_make(scratch_pool);
-      svn_hash_sets(new_iprop->prop_hash, SVN_PROP_INHERITABLE_IGNORES,
-                    explicit_prop);
-      APR_ARRAY_PUSH(inherited_ignores,
-                     svn_prop_inherited_item_t *) = new_iprop;
-    }
-
-  *ignores = apr_array_make(result_pool, 16, sizeof(const char *));
-
-  for (i = 0; i < inherited_ignores->nelts; i++)
-    {
-      svn_prop_inherited_item_t *elt = APR_ARRAY_IDX(
-        inherited_ignores, i, svn_prop_inherited_item_t *);
-      svn_string_t *ignore_val = svn_hash_gets(elt->prop_hash,
-                                               SVN_PROP_INHERITABLE_IGNORES);
-      if (ignore_val)
-        svn_cstring_split_append(*ignores, ignore_val->data, "\n\r\t\v ",
-                                 FALSE, result_pool);
-    }
-
-  return SVN_NO_ERROR;
-}
-
 /* The main logic of the public svn_client_add5.
  *
  * EXISTING_PARENT_ABSPATH is the absolute path to the first existing

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/blame.c
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/blame.c?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/blame.c (original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/blame.c Sun Feb 22 16:52:05 2015
@@ -34,6 +34,7 @@
 #include "svn_dirent_uri.h"
 #include "svn_path.h"
 #include "svn_props.h"
+#include "svn_hash.h"
 #include "svn_sorts.h"
 
 #include "private/svn_wc_private.h"
@@ -76,6 +77,7 @@ struct diff_baton {
 /* The baton used for a file revision. Lives the entire operation */
 struct file_rev_baton {
   svn_revnum_t start_rev, end_rev;
+  svn_boolean_t backwards;
   const char *target;
   svn_client_ctx_t *ctx;
   const svn_diff_file_options_t *diff_options;
@@ -96,6 +98,14 @@ struct file_rev_baton {
   /* pools for files which may need to persist for more than one rev. */
   apr_pool_t *filepool;
   apr_pool_t *prevfilepool;
+
+  svn_boolean_t check_mime_type;
+
+  /* When blaming backwards we have to use the changes
+     on the *next* revision, as the interesting change
+     happens when we move to the previous revision */
+  svn_revnum_t last_revnum;
+  apr_hash_t *last_props;
 };
 
 /* The baton used by the txdelta window handler. Allocated per revision */
@@ -431,6 +441,26 @@ file_rev_handler(void *baton, const char
   /* Clear the current pool. */
   svn_pool_clear(frb->currpool);
 
+  if (frb->check_mime_type)
+    {
+      apr_hash_t *props = svn_prop_array_to_hash(prop_diffs, frb->currpool);
+      const char *value;
+
+      frb->check_mime_type = FALSE; /* Only check first */
+
+      value = svn_prop_get_value(props, SVN_PROP_MIME_TYPE);
+
+      if (value && svn_mime_type_is_binary(value))
+        {
+          return svn_error_createf(
+              SVN_ERR_CLIENT_IS_BINARY_FILE, NULL,
+              _("Cannot calculate blame information for binary file '%s'"),
+               (svn_path_is_url(frb->target)
+                      ? frb->target 
+                      : svn_dirent_local_style(frb->target, pool)));
+        }
+    }
+
   if (frb->ctx->notify_func2)
     {
       svn_wc_notify_t *notify
@@ -489,18 +519,24 @@ file_rev_handler(void *baton, const char
   /* Create the rev structure. */
   delta_baton->rev = apr_pcalloc(frb->mainpool, sizeof(struct rev));
 
-  if (revnum < MIN(frb->start_rev, frb->end_rev))
+  if (frb->backwards)
     {
-      /* We shouldn't get more than one revision before the starting
-         revision (unless of including merged revisions). */
-      SVN_ERR_ASSERT((frb->last_filename == NULL)
-                     || frb->include_merged_revisions);
+      /* Use from last round...
+         SVN_INVALID_REVNUM on first, which is exactly
+         what we want */
+      delta_baton->rev->revision = frb->last_revnum;
+      delta_baton->rev->rev_props = frb->last_props;
 
-      /* The file existed before start_rev; generate no blame info for
-         lines from this revision (or before). */
-      delta_baton->rev->revision = SVN_INVALID_REVNUM;
+      /* Store for next delta */
+      if (revnum >= MIN(frb->start_rev, frb->end_rev))
+        {
+          frb->last_revnum = revnum;
+          frb->last_props = svn_prop_hash_dup(rev_props, frb->mainpool);
+        }
+      /* Else: Not needed on last rev */
     }
-  else
+  else if (merged_revision
+           || (revnum >= MIN(frb->start_rev, frb->end_rev)))
     {
       /* 1+ for the "youngest to oldest" blame */
       SVN_ERR_ASSERT(revnum <= 1 + MAX(frb->end_rev, frb->start_rev));
@@ -509,6 +545,20 @@ file_rev_handler(void *baton, const char
       delta_baton->rev->revision = revnum;
       delta_baton->rev->rev_props = svn_prop_hash_dup(rev_props, frb->mainpool);
     }
+  else
+    {
+      /* We shouldn't get more than one revision outside the
+         specified range (unless we alsoe receive merged revisions) */
+      SVN_ERR_ASSERT((frb->last_filename == NULL)
+                     || frb->include_merged_revisions);
+
+      /* The file existed before start_rev; generate no blame info for
+         lines from this revision (or before). 
+
+         This revision specifies the state as it was at the start revision */
+
+      delta_baton->rev->revision = SVN_INVALID_REVNUM;
+    }
 
   if (frb->include_merged_revisions)
     delta_baton->rev->path = apr_pstrdup(frb->mainpool, path);
@@ -626,7 +676,6 @@ svn_client_blame5(const char *target,
   svn_stream_t *last_stream;
   svn_stream_t *stream;
   const char *target_abspath_or_url;
-  svn_revnum_t youngest;
 
   if (start->kind == svn_opt_revision_unspecified
       || end->kind == svn_opt_revision_unspecified)
@@ -669,28 +718,47 @@ svn_client_blame5(const char *target,
 
   /* We check the mime-type of the yougest revision before getting all
      the older revisions. */
-  if (!ignore_mime_type)
+  if (!ignore_mime_type
+      && start_revnum < end_revnum)
     {
       apr_hash_t *props;
-      apr_hash_index_t *hi;
+      const char *mime_type = NULL;
+
+      if (svn_path_is_url(target)
+          || start_revnum > end_revnum
+          || (end->kind != svn_opt_revision_working
+              && end->kind != svn_opt_revision_base))
+        {
+          SVN_ERR(svn_ra_get_file(ra_session, "", end_revnum, NULL, NULL,
+                                  &props, pool));
 
-      SVN_ERR(svn_client_propget5(&props, NULL, SVN_PROP_MIME_TYPE,
-                                  target_abspath_or_url,  peg_revision,
-                                  end, NULL, svn_depth_empty, NULL, ctx,
-                                  pool, pool));
-
-      /* props could be keyed on URLs or paths depending on the
-         peg_revision and end values so avoid using the key. */
-      hi = apr_hash_first(pool, props);
-      if (hi)
+          mime_type = svn_prop_get_value(props, SVN_PROP_MIME_TYPE);
+        }
+      else 
         {
-          svn_string_t *value;
+          const svn_string_t *value;
+
+          if (end->kind == svn_opt_revision_working)
+            SVN_ERR(svn_wc_prop_get2(&value, ctx->wc_ctx,
+                                     target_abspath_or_url,
+                                     SVN_PROP_MIME_TYPE,
+                                     pool, pool));
+          else
+            {
+              SVN_ERR(svn_wc_get_pristine_props(&props, ctx->wc_ctx,
+                                                target_abspath_or_url,
+                                                pool, pool));
+
+              value = props ? svn_hash_gets(props, SVN_PROP_MIME_TYPE)
+                            : NULL;
+            }
 
-          /* Should only be one value */
-          SVN_ERR_ASSERT(apr_hash_count(props) == 1);
+          mime_type = value ? value->data : NULL;
+        }
 
-          value = apr_hash_this_val(hi);
-          if (value && svn_mime_type_is_binary(value->data))
+      if (mime_type)
+        {
+          if (svn_mime_type_is_binary(mime_type))
             return svn_error_createf
               (SVN_ERR_CLIENT_IS_BINARY_FILE, 0,
                _("Cannot calculate blame information for binary file '%s'"),
@@ -719,6 +787,10 @@ svn_client_blame5(const char *target,
       frb.merged_chain->avail = NULL;
       frb.merged_chain->pool = pool;
     }
+  frb.backwards = (frb.start_rev > frb.end_rev);
+  frb.last_revnum = SVN_INVALID_REVNUM;
+  frb.last_props = NULL;
+  frb.check_mime_type = (frb.backwards && !ignore_mime_type);
 
   SVN_ERR(svn_ra_get_repos_root2(ra_session, &frb.repos_root_url, pool));
 
@@ -738,12 +810,11 @@ svn_client_blame5(const char *target,
      We need to ensure that we get one revision before the start_rev,
      if available so that we can know what was actually changed in the start
      revision. */
-  SVN_ERR(svn_ra_get_latest_revnum(ra_session, &youngest, frb.currpool));
   SVN_ERR(svn_ra_get_file_revs2(ra_session, "",
-                                start_revnum
-                                - (0 < start_revnum && start_revnum <= end_revnum ? 1 : 0)
-                                + (youngest > start_revnum && start_revnum > end_revnum ? 1 : 0),
-                                end_revnum, include_merged_revisions,
+                                frb.backwards ? start_revnum
+                                              : MAX(0, start_revnum-1),
+                                end_revnum,
+                                include_merged_revisions,
                                 file_rev_handler, &frb, pool));
 
   if (end->kind == svn_opt_revision_working)

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/client.h
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/client.h?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/client.h (original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/client.h Sun Feb 22 16:52:05 2015
@@ -455,17 +455,6 @@ svn_error_t *svn_client__get_all_auto_pr
                                             apr_pool_t *result_pool,
                                             apr_pool_t *scratch_pool);
 
-/* Get a list of ignore patterns defined by the svn:global-ignores
-   properties set on, or inherited by, PATH_OR_URL.  Store the collected
-   patterns as const char * elements in the array *IGNORES.  Allocate
-   *IGNORES and its contents in RESULT_POOL.  Use  SCRATCH_POOL for
-   temporary allocations. */
-svn_error_t *svn_client__get_inherited_ignores(apr_array_header_t **ignores,
-                                               const char *path_or_url,
-                                               svn_client_ctx_t *ctx,
-                                               apr_pool_t *result_pool,
-                                               apr_pool_t *scratch_pool);
-
 /* The main logic for client deletion from a working copy. Deletes PATH
    from CTX->WC_CTX.  If PATH (or any item below a directory PATH) is
    modified the delete will fail and return an error unless FORCE or KEEP_LOCAL
@@ -959,11 +948,6 @@ svn_client__get_copy_committables(svn_cl
                                   apr_pool_t *result_pool,
                                   apr_pool_t *scratch_pool);
 
-/* A qsort()-compatible sort routine for sorting an array of
-   svn_client_commit_item_t *'s by their URL member. */
-int svn_client__sort_commit_item_urls(const void *a, const void *b);
-
-
 /* Rewrite the COMMIT_ITEMS array to be sorted by URL.  Also, discover
    a common *BASE_URL for the items in the array, and rewrite those
    items' URLs to be relative to that *BASE_URL.

Modified: subversion/branches/move-tracking-2/subversion/libsvn_client/commit.c
URL: http://svn.apache.org/viewvc/subversion/branches/move-tracking-2/subversion/libsvn_client/commit.c?rev=1661492&r1=1661491&r2=1661492&view=diff
==============================================================================
--- subversion/branches/move-tracking-2/subversion/libsvn_client/commit.c (original)
+++ subversion/branches/move-tracking-2/subversion/libsvn_client/commit.c Sun Feb 22 16:52:05 2015
@@ -240,7 +240,9 @@ post_process_commit_item(svn_wc_committe
     loop_recurse = TRUE;
 
   remove_lock = (! keep_locks && (item->state_flags
-                                       & SVN_CLIENT_COMMIT_ITEM_LOCK_TOKEN));
+                                       & (SVN_CLIENT_COMMIT_ITEM_LOCK_TOKEN
+                                          | SVN_CLIENT_COMMIT_ITEM_ADD
+                                          | SVN_CLIENT_COMMIT_ITEM_DELETE)));
 
   /* When the node was deleted (or replaced), we need to always remove the
      locks, as they're invalidated on the server. We cannot honor the
@@ -537,6 +539,7 @@ svn_client_commit6(const apr_array_heade
   const char *current_abspath;
   const char *notify_prefix;
   int depth_empty_after = -1;
+  apr_hash_t *move_youngest = NULL;
   int i;
 
   SVN_ERR_ASSERT(depth != svn_depth_unknown && depth != svn_depth_exclude);
@@ -707,62 +710,12 @@ svn_client_commit6(const apr_array_heade
           if (cmt_err)
             goto cleanup;
 
-          if (moved_from_abspath && delete_op_root_abspath &&
-              strcmp(moved_from_abspath, delete_op_root_abspath) == 0)
-
+          if (moved_from_abspath && delete_op_root_abspath)
             {
-              svn_boolean_t found_delete_half =
-                (svn_hash_gets(committables->by_path, delete_op_root_abspath)
-                 != NULL);
+              svn_client_commit_item3_t *delete_half =
+                svn_hash_gets(committables->by_path, delete_op_root_abspath);
 
-              if (!found_delete_half)
-                {
-                  const char *delete_half_parent_abspath;
-
-                  /* The delete-half isn't in the commit target list.
-                   * However, it might itself be the child of a deleted node,
-                   * either because of another move or a deletion.
-                   *
-                   * For example, consider: mv A/B B; mv B/C C; commit;
-                   * C's moved-from A/B/C is a child of the deleted A/B.
-                   * A/B/C does not appear in the commit target list, but
-                   * A/B does appear.
-                   * (Note that moved-from information is always stored
-                   * relative to the BASE tree, so we have 'C moved-from
-                   * A/B/C', not 'C moved-from B/C'.)
-                   *
-                   * An example involving a move and a delete would be:
-                   * mv A/B C; rm A; commit;
-                   * Now C is moved-from A/B which does not appear in the
-                   * commit target list, but A does appear.
-                   */
-
-                  /* Scan upwards for a deletion op-root from the
-                   * delete-half's parent directory. */
-                  delete_half_parent_abspath =
-                    svn_dirent_dirname(delete_op_root_abspath, iterpool);
-                  if (strcmp(delete_op_root_abspath,
-                             delete_half_parent_abspath) != 0)
-                    {
-                      const char *parent_delete_op_root_abspath;
-
-                      cmt_err = svn_error_trace(
-                                  svn_wc__node_get_deleted_ancestor(
-                                    &parent_delete_op_root_abspath,
-                                    ctx->wc_ctx, delete_half_parent_abspath,
-                                    iterpool, iterpool));
-                      if (cmt_err)
-                        goto cleanup;
-
-                      if (parent_delete_op_root_abspath)
-                        found_delete_half =
-                          (svn_hash_gets(committables->by_path,
-                                         parent_delete_op_root_abspath)
-                           != NULL);
-                    }
-                }
-
-              if (!found_delete_half)
+              if (!delete_half)
                 {
                   cmt_err = svn_error_createf(
                               SVN_ERR_ILLEGAL_TARGET, NULL,
@@ -787,6 +740,17 @@ svn_client_commit6(const apr_array_heade
 
                   goto cleanup;
                 }
+              else if (delete_half->revision == item->copyfrom_rev)
+                {
+                  /* Ok, now we know that we perform an out-of-date check
+                     on the copyfrom location. Remember this for a fixup
+                     round right before committing. */
+
+                  if (!move_youngest)
+                    move_youngest = apr_hash_make(pool);
+
+                  svn_hash_sets(move_youngest, item->path, item);
+                }
             }
         }
 
@@ -885,6 +849,37 @@ svn_client_commit6(const apr_array_heade
   if (cmt_err)
     goto cleanup;
 
+  if (move_youngest != NULL)
+    {
+      apr_hash_index_t *hi;
+      svn_revnum_t youngest;
+
+      SVN_ERR(svn_ra_get_latest_revnum(ra_session, &youngest, pool));
+
+      for (hi = apr_hash_first(iterpool, move_youngest);
+           hi;
+           hi = apr_hash_next(hi))
+        {
+          svn_client_commit_item3_t *item = apr_hash_this_val(hi);
+
+          /* We delete the original side with its original revision and will
+             receive an out-of-date error if that node changed since that
+             revision.
+
+             The copy is of that same revision and we know that this revision
+             didn't change between this revision and youngest. So we can just
+             as well commit a copy from youngest.
+
+            Note that it is still possible to see gaps between the delete and
+            copy revisions as the repository might handle multiple commits
+            at the same time (or when an out of date proxy is involved), but
+            in general it should decrease the number of gaps. */
+
+          if (item->copyfrom_rev < youngest)
+            item->copyfrom_rev = youngest;
+        }
+    }
+
   cmt_err = svn_error_trace(
               get_ra_editor(&editor, &edit_baton, ra_session, ctx,
                             log_msg, commit_items, revprop_table,



Mime
View raw message