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 ©Sources, 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 ©So
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 ©Sources, 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,