Author: julianfoad
Date: Tue Jan 2 09:47:16 2018
New Revision: 1819798
URL: http://svn.apache.org/viewvc?rev=1819798&view=rev
Log:
On the 'shelve-checkpoint' branch: catch up with trunk@1819797.
Added:
subversion/branches/shelve-checkpoint/notes/api-errata/1.10/ra001.txt
- copied unchanged from r1819797,
subversion/trunk/notes/api-errata/1.10/ra001.txt
subversion/branches/shelve-checkpoint/tools/dist/edit-N-log-messages
- copied unchanged from r1819797,
subversion/trunk/tools/dist/edit-N-log-messages
Removed:
subversion/branches/shelve-checkpoint/build/generator/util/executable.py
Modified:
subversion/branches/shelve-checkpoint/ (props changed)
subversion/branches/shelve-checkpoint/CHANGES
subversion/branches/shelve-checkpoint/INSTALL
subversion/branches/shelve-checkpoint/NOTICE
subversion/branches/shelve-checkpoint/build/ac-macros/lz4.m4
subversion/branches/shelve-checkpoint/build/ac-macros/utf8proc.m4
subversion/branches/shelve-checkpoint/build/generator/gen_base.py
subversion/branches/shelve-checkpoint/build/generator/swig/__init__.py
subversion/branches/shelve-checkpoint/build/generator/swig/checkout_swig_header.py
subversion/branches/shelve-checkpoint/build/generator/swig/external_runtime.py
subversion/branches/shelve-checkpoint/subversion/bindings/swig/perl/native/t/3client.t
subversion/branches/shelve-checkpoint/subversion/include/private/svn_subr_private.h
subversion/branches/shelve-checkpoint/subversion/include/svn_io.h
subversion/branches/shelve-checkpoint/subversion/include/svn_types.h
subversion/branches/shelve-checkpoint/subversion/libsvn_client/patch.c
subversion/branches/shelve-checkpoint/subversion/libsvn_fs_fs/low_level.c
subversion/branches/shelve-checkpoint/subversion/libsvn_fs_fs/pack.c
subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/ (props
changed)
subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/changes.c
subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/low_level.c
subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/pack.c
subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/transaction.c
subversion/branches/shelve-checkpoint/subversion/libsvn_ra_local/ra_plugin.c
subversion/branches/shelve-checkpoint/subversion/libsvn_ra_serf/list.c
subversion/branches/shelve-checkpoint/subversion/libsvn_ra_svn/protocol
subversion/branches/shelve-checkpoint/subversion/libsvn_repos/list.c
subversion/branches/shelve-checkpoint/subversion/libsvn_subr/compress_lz4.c
subversion/branches/shelve-checkpoint/subversion/libsvn_subr/config_file.c
subversion/branches/shelve-checkpoint/subversion/libsvn_subr/io.c
subversion/branches/shelve-checkpoint/subversion/libsvn_subr/object_pool.c
subversion/branches/shelve-checkpoint/subversion/libsvn_subr/stream.c
subversion/branches/shelve-checkpoint/subversion/libsvn_subr/sysinfo.c
subversion/branches/shelve-checkpoint/subversion/libsvn_subr/version.c
subversion/branches/shelve-checkpoint/subversion/libsvn_wc/wc_db.c
subversion/branches/shelve-checkpoint/subversion/svn/cl.h
subversion/branches/shelve-checkpoint/subversion/svn/conflict-callbacks.c
subversion/branches/shelve-checkpoint/subversion/svn/list-cmd.c
subversion/branches/shelve-checkpoint/subversion/svn/notify.c
subversion/branches/shelve-checkpoint/subversion/svn/svn.c
subversion/branches/shelve-checkpoint/subversion/svnbench/svnbench.c
subversion/branches/shelve-checkpoint/subversion/svnfsfs/load-index-cmd.c
subversion/branches/shelve-checkpoint/subversion/svnmucc/svnmucc.c
subversion/branches/shelve-checkpoint/subversion/svnrdump/svnrdump.c
subversion/branches/shelve-checkpoint/subversion/tests/cmdline/basic_tests.py
subversion/branches/shelve-checkpoint/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
subversion/branches/shelve-checkpoint/subversion/tests/cmdline/svntest/main.py
subversion/branches/shelve-checkpoint/subversion/tests/libsvn_client/conflicts-test.c
subversion/branches/shelve-checkpoint/subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c
subversion/branches/shelve-checkpoint/subversion/tests/libsvn_repos/authz-test.c
subversion/branches/shelve-checkpoint/subversion/tests/libsvn_repos/dump-load-test.c
subversion/branches/shelve-checkpoint/subversion/tests/libsvn_subr/config-test.c
subversion/branches/shelve-checkpoint/subversion/tests/libsvn_subr/config-test.cfg
subversion/branches/shelve-checkpoint/subversion/tests/libsvn_subr/mergeinfo-test.c
subversion/branches/shelve-checkpoint/subversion/tests/libsvn_subr/priority-queue-test.c
subversion/branches/shelve-checkpoint/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c
subversion/branches/shelve-checkpoint/tools/client-side/svnconflict/svnconflict.c
subversion/branches/shelve-checkpoint/tools/dev/svnmover/svnmover.c
subversion/branches/shelve-checkpoint/tools/dev/unix-build/Makefile.svn
subversion/branches/shelve-checkpoint/tools/dist/backport.pl
subversion/branches/shelve-checkpoint/tools/dist/release.py
Propchange: subversion/branches/shelve-checkpoint/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 2 09:47:16 2018
@@ -98,4 +98,4 @@
/subversion/branches/verify-at-commit:1462039-1462408
/subversion/branches/verify-keep-going:1439280-1546110
/subversion/branches/wc-collate-path:1402685-1480384
-/subversion/trunk:1801593-1818270
+/subversion/trunk:1801593-1819797
Modified: subversion/branches/shelve-checkpoint/CHANGES
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/CHANGES?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/CHANGES (original)
+++ subversion/branches/shelve-checkpoint/CHANGES Tue Jan 2 09:47:16 2018
@@ -14,11 +14,14 @@ the 1.9 release: https://subversion.apa
- Major new features:
* Better interactive conflict resolution for tree conflicts (r1687489 et
al)
* New and improved implementation of path-based authorization (r1776832)
+ * New experimental 'svn shelve' command (r1815228 et al)
- Minor new features and improvements:
* svnbench: Show wall-clock time when done (r1703383)
* svnbench: Show number of bytes transferred across the network (r1710586)
* svnbench: Actually evaluate the '--with-no-revprops' option (r1709593)
* New 'svnadmin dump' options to include/exclude paths (r1811992)
+ * New 'svnadmin load' options to include/exclude paths (r1811992 et al)
+ * New '--normalize-props` option for 'svnadmin dump'(r1807836 et al)
* New 'svnadmin load-revprops' subcommand (r1694191)
* New 'svnadmin dump-revprops' subcommand (r1694225)
* New '--no-flush-to-disk' option for 'svnadmin load' (r1736357, -7357)
@@ -36,6 +39,8 @@ the 1.9 release: https://subversion.apa
* diff3: Reduce processing time and memory usage (r1731659)
* ra_serf: Adjustments for serf versions with HTTP/2 support (r1716400)
* ra_serf: Send svndiff1 deltas during commit (r1704317, r1704613,
r1791290)
+ * ra_serf: Stream svndiff deltas w/o creating temporary files (r1803143 et
al)
+ * ra_serf: Don't necessarily request full MERGE reponses (r1806017 et al)
* 'svn patch': Parse binary diffs in git-style patches (r1703925)
* 'svnadmin info' now reports latest revision in the repository (r1697953)
* ra_svn: Various performance-related tweaks (r1694490)
@@ -63,6 +68,7 @@ the 1.9 release: https://subversion.apa
* FSFS: Warn if a possible rep-cache SHA1 collision is detected (r1674673)
* FSFS: Optimize revprop cache filling strategy under high load (r1795324)
* FSFS: New "verify-before-commit" fsfs.conf option (r1795351)
+ * FSFS: New format 8 with various performance improvements (r1801940 et al)
* FSFS/FSX: Chunked read support for changed paths lists (r1746026, -4987)
* FSFS/FSX: Several improvements made to cache implementation (r1694489)
* FSX: Add checksums to packed revprop manifests and files (r1713132,
-9717)
@@ -78,26 +84,34 @@ the 1.9 release: https://subversion.apa
* svnsync: Fix assertion failure with up-to-date repositories (r1727140)
* ra_serf: Parallel requests for text and property changes (r1716575)
* svnserve: Remove disk I/O to TMPDIR during first commit (r1716240)
- * 'svn blame': Optimize a bit on the server side (r1711666)
* Triple performance of URI escaping (r1710099, -103)
+ * 'svn blame': Optimize a bit on the server side (r1711666)
+ * 'svn cleanup': Add --vacuum-pristines option (r1802787 et al)
* 'svn diff --git': Show diffs of symlinks like git and hg (r1706372)
* 'svn patch': Capable of handling git-like symlink changes (r1706446)
* 'svn patch': Improve detection of additions and deletions (r1706623)
+ * 'svn patch': Handle zero-byte files vs deleted files (r1705856)
* 'svn diff --git': Produce 'rename from/to' headers (r1706855)
* 'svn diff --git': Produce proper mode headers (r1706041)
- * 'svn patch': Handle zero-byte files vs deleted files (r1705856)
+ * 'svn lock', 'svn unlock': Take the -q option (r1796288)
+ * 'svn help': improved wording and consistency (r1802989 et al)
+ * 'svn': Add a new '--accept recommended' option. (r1805623)
+ * 'svn': --non-interactive uses recommended tree conflict resolution
(r1805620)
* Evaluate 'old mode' and 'new mode' lines from git-syle diffs (r1705391)
* svnrdump, svndumpfilter: Enable buffered stdin (r1703074)
* ra_serf: Receive svndiff1 and gzip compressed deltas (r1781282, -3, -4)
- * 'svn lock', 'svn unlock': Take the -q option (r1796288)
* svnadmin: 'lock', 'unlock', 'rmlocks': Take the -q option (r1796406)
* New svndiff2 binary delta format using lz4 compression (r1801938, et al)
* gpg-agent: Support gpg â¥2.1.13 and unset GPG_AGENT_INFO (r1795087)
+ * Add 'http-compression=auto' client config option as default (r1803899 et
al)
+ * Speed up processing of mergeinfo (r1802470 et al)
+ * Check for invalid 'xt' fields in x509 certs (r1809290)
- Client-side bugfixes:
* ra_serf: Fix segfault when running over HTTP v1 (r1766089)
* ra_serf: Keep small svndiffs in memory during commit (r1724455)
* ra_serf: Improve error messages related to lock operations (r1716450)
* ra_serf: Work around a bug in serf bucket handling (r1714806)
+ * ra_serf: Fix lock token handling for file-path commits (r1815799 et al)
* Raise a malfunction instead of segfaulting with corrupt wc.db (r1749887)
* Fix check for unversioned obstructions blocking file externals (r1735932)
* 'svn patch' bugfixes:
@@ -124,6 +138,7 @@ the 1.9 release: https://subversion.apa
+ Fix problems with --git diffs applied in reverse (r1704854, -88)
+ Fix removal of EOL if final patch context line has no EOL (#4315)
* 'svn diff --git': Fix file permission modes to match git and hg
(r1695384)
+ * 'svn diff --git': added/deleted filenames are never /dev/null (issue
#4689)
* Fix a problem with relocating some externals (r1723385)
* Fix 'svn diff URL@REV WC' wrongly looks up URL@HEAD (issue #4597)
* Fix 'svn diff --no-diff-added' shows properties as added (issue #4596)
@@ -131,6 +146,7 @@ the 1.9 release: https://subversion.apa
* Fix 'svn diff' with local directories marked incomplete (r1674413 et al)
* ra_svn/ra_serf: Make negative log limits work as documented (r1665530)
* ra_svn: Eliminate unnecessary URL reparenting (r1779611, r1779611)
+ * ra_svn: Use svndiff2 deltas when supported on both ends (r1803269 et al)
* Handle invalid revision numbers consistently across RA layers (r1665328)
* Handle commits to revs > HEAD consistently across RA layers (r1664698)
* Eliminate one client/server roundtrip from checkouts of HEAD (r1779620)
@@ -153,6 +169,7 @@ the 1.9 release: https://subversion.apa
* FSFS: Fix false positive "Not a directory" error involving file moved and
replaced by dir (issue #4677)
* FSFS: Fix crash accessing revprops with --memory-cache-size=0 (r1795164)
+ * FSFS: Fix issue #4623 for FSFS. (r1813794 et al)
* mod_dav_svn: Omit Cache-Control HTTP header for HEAD URLs (issue #4514)
* mod_dav_svn: Reduced memory consumption for DAV merge responses
(r1727790)
* mod_dav_svn: Don't set a Last-Modified header in GET responses (r1724790)
@@ -161,13 +178,16 @@ the 1.9 release: https://subversion.apa
* Fix insertion of very large items into the membuffer cache (r1717337, -8)
* Fix capacity check of the membuffer cache's prefix pool (r1714356)
* Prevent paths containing newlines from being committed (r1662585)
+ * Fix for properties: Null updates break last-changed-revision (issue
#4700)
* 'svnfsfs stats': Fix false positive checksum errors reading old revisions
(r1785904)
+ * 'svnfsfs stats': Fix support for pre-v4 FSFS repositories. (r1816966)
* svnadmin, svnfsfs: Detect invalid arguments to -M (r1787023, r1787045)
* svnlook, svnserve: Detect invalid arguments to -M (r1787023, r1787045)
* svnadmin: Output locked paths in canonical form (r1796420)
* svnadmin: Output locked paths correctly encoded (r1797122)
* svn: propdel, propset: Transcode property names on output (r1797186)
+ * svnserve: Make use-sasl=true a fatal error in SASL-less builds.
(r1803188)
- Client-side and server-side bugfixes:
* Fix integer overflow check with >= 1G mergeinfo ranges per path
(r1714380)
* Fix integer overflow checks on WoW64 platforms (r1714372)
@@ -177,7 +197,9 @@ the 1.9 release: https://subversion.apa
* FSFS: Improve error messages when DAG lookup fails (r1795120)
* Transcode command-line arguments to UTF-8 (r1797190, r1797362, et al)
* Fix segfault on x509 certificate with empty name (r1798157)
- - Other tool improvements and bugfixes:
+ * Fix segfault with invalid URLs in svn:externals (r1803471)
+ * Windows: Failure to write files might remain undetected (r1806014)
+- Other tool improvements and bugfixes:
* New svn-mergeinfo-normalizer tool (r1695992 et al)
* Allow configuring mailer.py to use SMTP SSL (r1777846)
* svnmucc can now delete directories with deleted children (issue #4666)
@@ -187,6 +209,8 @@ the 1.9 release: https://subversion.apa
* bash_completion: Add 1.10 options (r1802196)
* fsfs-stats: Following rename to svnfsfs in r1594860, install a wrapper
for compatibility (r1802032)
+ * Drop support for upgrading working copies created with Subversion 1.7
+ (r1807584 et al)
Developer-visible changes:
- General:
@@ -197,11 +221,16 @@ the 1.9 release: https://subversion.apa
* get-deps.sh: download Googlemock and Googletest from GitHub (r1746303)
* windows: Add autodetection for 'zlibstat.lib' (r1783704)
* windows: Compile libsvn_fs_* as DLLs (r1696758, -83)
+ * windows: Allow building against OpenSSL 1.1.0 (r1814724 et al)
* OS X: Silence compile-time deprecation warnings with SASL (r1739649)
+ * OS X: Silence ranlib warnings about disabled WIN32 code (r1809792)
* 'make check GLOBAL_SCHEDULER=1' will run many tests in parallel
(r1716399)
* unix: New '--enable-apache-whitelist' configure script option (r1732294)
* OS X: Support 'configure --enable-runtime-module-search' (r1677273)
* tests: Allow tests to be run over HTTP/2 (r1710707)
+ * tests: httpd compile-time and run-time version may differ (r1808955 et
al)
+ * tests: Add pre-cooked repos for all FSFS versions. (r1816402 et al)
+ * tests: Add FSFS_DIR_DELTIFICATION option. (r1813897)
* Add basic tests for svn_xml_parser_t API (r1765214)
* Unbreak the test suite on Python 3 (r1743034, -81, et al)
* Make the test suite work when checked out of a git repository (r1771118)
@@ -216,12 +245,19 @@ the 1.9 release: https://subversion.apa
* gnome-keyring: Support libsecret in preference to libgnome-keyring
(r1798004)
* kwallet: Support KDE 5 in preference to KDE 4 (r1798731)
+ * kwallet: Fix KDE5 support with clang 3.8 (r1802536 et al)
+ * kwallet: Add --with-kwallet=INCDIR:LIBDIR build option (r1802646)
* Rename cxxhl bindings 'make tests' to avoid confusion with 'make test'
(r1800849)
* 'make check': Allow testing with FSFS compression (r1801936)
* svnserveautocheck.sh: Support out-of-tree builds when running a single
test file (r1802081)
* Distribution artifacts now prepared with swig 3.0.10 (r1802135)
+ * SQLite: Use https:// links to download amalgamation sources (r1817043)
+ * Create reproducible tarballs (r1804618 et al)
+ * Disable static builds of the apache and auth provider modules (r1802612)
+ * utf8proc: Update to version 2.1.0 (r1809090 et al)
+ * utf8proc: Build against the system library by default (r1803210 et al)
- API changes:
* New svn_client_conflict_* API functions for the new conflict resolver.
* New svn_repos_fs_get_mergeinfo2() with streamy access (r1780810 et al)
@@ -241,7 +277,10 @@ the 1.9 release: https://subversion.apa
* New svn_error_quick_wrapf() API function (r1662668)
* New svn_repos_path_change_t type (r1802114)
* New svn_repos_log_entry_t type (r1802114)
+ * New svn_cstring_join2() API (r1806041)
+ * New svn_txdelta_to_svndiff_stream() API (r1803140 et al)
* svn_repos_parse_dumpstream3() now accepts NULL pointers (r1700180)
+ * Return resettable streams from svn_stream_checksummed2(). (r1804807)
* Fix svnserveautocheck&davautocheck when time is only a built-in
(r1665652)
- Bindings:
* Configure the swig bindings only if swig has been enabled (r1751167)
@@ -254,6 +293,8 @@ the 1.9 release: https://subversion.apa
* Disable some swig wrappers that aren't working (r1700966)
* JavaHL: Make StringArray nullable (r1785429)
* JavaHL: Add missing exception checks (r1801108)
+ * Ruby: Fix handling of NULL MD5 digests (r1811786)
+ * Ruby: Detect versions up to 2.4 (r1806570)
Version 1.9.7
Modified: subversion/branches/shelve-checkpoint/INSTALL
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/INSTALL?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/INSTALL (original)
+++ subversion/branches/shelve-checkpoint/INSTALL Tue Jan 2 09:47:16 2018
@@ -527,6 +527,19 @@ I. INTRODUCTION
$ ./get-dep.sh gmock
+ 22. LZ4 (OPTIONAL)
+
+ Subversion uses LZ4 compression libary version r129 or above. Configure
+ will attempt to locate the system library by default using pkg-config
+ and known paths.
+
+ If it is installed in a non-standard location, then use:
+
+ --with-lz4=/path/to/liblz4
+
+ If configure should use the version bundled with the sources, use:
+ --with-lz4=internal
+
D. Documentation
The primary documentation for Subversion is the free book
Modified: subversion/branches/shelve-checkpoint/NOTICE
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/NOTICE?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/NOTICE (original)
+++ subversion/branches/shelve-checkpoint/NOTICE Tue Jan 2 09:47:16 2018
@@ -1,5 +1,5 @@
Apache Subversion
-Copyright 2017 The Apache Software Foundation
+Copyright 2018 The Apache Software Foundation
This product includes software developed by many people, and distributed
under Contributor License Agreements to The Apache Software Foundation
Modified: subversion/branches/shelve-checkpoint/build/ac-macros/lz4.m4
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/build/ac-macros/lz4.m4?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/build/ac-macros/lz4.m4 (original)
+++ subversion/branches/shelve-checkpoint/build/ac-macros/lz4.m4 Tue Jan 2
09:47:16 2018
@@ -28,7 +28,15 @@ AC_DEFUN(SVN_LZ4,
AC_ARG_WITH([lz4],
[AS_HELP_STRING([--with-lz4=PREFIX|internal],
[look for lz4 in PREFIX or use the internal code])],
- [lz4_prefix="$withval"],
+ [
+ if test "$withval" = internal; then
+ lz4_prefix=internal
+ elif test "$withval" = yes; then
+ lz4_prefix=std
+ else
+ lz4_prefix="$withval"
+ fi
+ ],
[lz4_prefix=std])
if test "$lz4_prefix" = "internal"; then
@@ -42,28 +50,36 @@ AC_DEFUN(SVN_LZ4,
SVN_LZ4_PREFIX
fi
if test "$lz4_found" != "yes"; then
- AC_MSG_ERROR([Subversion requires LZ4])
+ AC_MSG_ERROR([Subversion requires LZ4 >= r129, or use
--with-lz4=internal])
fi
fi
AC_SUBST(SVN_LZ4_INCLUDES)
AC_SUBST(SVN_LZ4_LIBS)
])
+dnl LZ4 changed versioning schemes after r131, the next version being 1.7.3, so
+dnl we need to check for both schemes. We can't use "--atleast-version=1.7.3"
+dnl because that will result in a >= 1 check for the older versioning scheme.
+dnl Instead, fallback to --max-version=3 if the old scheme fails. This gives a
+dnl little room for major version changes, but won't falsely identify old
+dnl versions as supported.
AC_DEFUN(SVN_LZ4_STD,
[
if test -n "$PKG_CONFIG"; then
AC_MSG_CHECKING([for lz4 library via pkg-config])
- if $PKG_CONFIG liblz4 --exists; then
+ if $PKG_CONFIG liblz4 --atleast-version=129 || $PKG_CONFIG liblz4
--max-version=3; then
AC_MSG_RESULT([yes])
lz4_found=yes
SVN_LZ4_INCLUDES=`$PKG_CONFIG liblz4 --cflags`
SVN_LZ4_LIBS=`$PKG_CONFIG liblz4 --libs`
SVN_LZ4_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS($SVN_LZ4_LIBS)`"
+ else
+ AC_MSG_RESULT([no])
fi
- else
+ fi
+ if test "$lz4_found" != "yes"; then
AC_MSG_NOTICE([lz4 configuration without pkg-config])
- AC_CHECK_LIB(lz4, LZ4_decompress_safe, [
- AC_MSG_RESULT([yes])
+ AC_CHECK_LIB(lz4, LZ4_compress_default, [
lz4_found=yes
SVN_LZ4_LIBS="-llz4"
])
@@ -77,8 +93,7 @@ AC_DEFUN(SVN_LZ4_PREFIX,
CPPFLAGS="$CPPFLAGS -I$lz4_prefix/include"
save_ldflags="$LDFLAGS"
LDFLAGS="$LDFLAGS -L$lz4_prefix/lib"
- AC_CHECK_LIB(lz4, LZ4_decompress_safe, [
- AC_MSG_RESULT([yes])
+ AC_CHECK_LIB(lz4, LZ4_compress_default, [
lz4_found=yes
SVN_LZ4_INCLUDES="-I$lz4_prefix/include"
SVN_LZ4_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS(-L$lz4_prefix/lib)` -llz4"
Modified: subversion/branches/shelve-checkpoint/build/ac-macros/utf8proc.m4
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/build/ac-macros/utf8proc.m4?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/build/ac-macros/utf8proc.m4 (original)
+++ subversion/branches/shelve-checkpoint/build/ac-macros/utf8proc.m4 Tue Jan
2 09:47:16 2018
@@ -28,7 +28,15 @@ AC_DEFUN(SVN_UTF8PROC,
AC_ARG_WITH([utf8proc],
[AS_HELP_STRING([--with-utf8proc=PREFIX|internal],
[look for utf8proc in PREFIX or use the internal code])],
- [utf8proc_prefix="$withval"],
+ [
+ if test "$withval" = internal; then
+ utf8proc_prefix=internal
+ elif test "$withval" = yes; then
+ utf8proc_prefix=std
+ else
+ utf8proc_prefix="$withval"
+ fi
+ ],
[utf8proc_prefix=std])
if test "$utf8proc_prefix" = "internal"; then
@@ -53,7 +61,6 @@ AC_DEFUN(SVN_UTF8PROC_STD,
[
AC_MSG_NOTICE([utf8proc configuration without pkg-config])
AC_CHECK_LIB(utf8proc, utf8proc_version, [
- AC_MSG_RESULT([yes])
utf8proc_found=yes
SVN_UTF8PROC_LIBS="-lutf8proc"
])
@@ -67,7 +74,6 @@ AC_DEFUN(SVN_UTF8PROC_PREFIX,
save_ldflags="$LDFLAGS"
LDFLAGS="$LDFLAGS -L$utf8proc_prefix/lib"
AC_CHECK_LIB(utf8proc, utf8proc_version, [
- AC_MSG_RESULT([yes])
utf8proc_found=yes
SVN_UTF8PROC_INCLUDES="-I$utf8proc_prefix/include"
SVN_UTF8PROC_LIBS="`SVN_REMOVE_STANDARD_LIB_DIRS(-L$utf8proc_prefix/lib)`
-lutf8proc"
Modified: subversion/branches/shelve-checkpoint/build/generator/gen_base.py
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/build/generator/gen_base.py?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/build/generator/gen_base.py (original)
+++ subversion/branches/shelve-checkpoint/build/generator/gen_base.py Tue Jan
2 09:47:16 2018
@@ -331,7 +331,8 @@ class GeneratorBase:
'\n'.join(lines))
def errno_filter(self, codes):
- return codes
+ # list() to force the generator under python3
+ return list(codes)
class FileSectionOptionEnum(object):
# These are accessed via getattr() later on
Modified: subversion/branches/shelve-checkpoint/build/generator/swig/__init__.py
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/build/generator/swig/__init__.py?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/build/generator/swig/__init__.py
(original)
+++ subversion/branches/shelve-checkpoint/build/generator/swig/__init__.py Tue
Jan 2 09:47:16 2018
@@ -25,7 +25,7 @@
import os
import re
import shutil
-import generator.util.executable as _exec
+import subprocess
from generator.gen_base import _collect_paths
try:
# Python >=3.0
@@ -59,14 +59,19 @@ class Generator:
# Calculate SWIG paths
self.swig_path = swig_path
- self.swig_libdir = _exec.output([self.swig_path, "-swiglib"], strip=1)
+ if os.access(self.swig_path, os.X_OK):
+ # ### TODO: What's the reason for this os.access() check? It was added
+ # ### in r873265 (== r33191).
+ self.swig_libdir = subprocess.check_output([self.swig_path,
"-swiglib"]).strip()
+ else:
+ self.swig_libdir = None
_swigVersion = None
def version(self):
"""Get the version number of SWIG"""
if not self._swigVersion:
- swig_version = _exec.output([self.swig_path, "-version"])
+ swig_version = subprocess.check_output([self.swig_path, "-version"])
m = re.search("Version (\d+).(\d+).(\d+)", swig_version)
if m:
self._swigVersion = tuple(map(int, m.groups()))
Modified:
subversion/branches/shelve-checkpoint/build/generator/swig/checkout_swig_header.py
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/build/generator/swig/checkout_swig_header.py?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
---
subversion/branches/shelve-checkpoint/build/generator/swig/checkout_swig_header.py
(original)
+++
subversion/branches/shelve-checkpoint/build/generator/swig/checkout_swig_header.py
Tue Jan 2 09:47:16 2018
@@ -23,13 +23,12 @@
# Checkout files from the SWIG library into Subversion's proxy directory
#
-import sys, os, re, fileinput, shutil
+import sys, os, re, fileinput, shutil, subprocess
if __name__ == "__main__":
parent_dir = os.path.dirname(os.path.abspath(os.path.dirname(sys.argv[0])))
sys.path[0:0] = [ parent_dir, os.path.dirname(parent_dir) ]
import generator.swig
from gen_base import build_path_splitfile, build_path_join
-from generator.util.executable import run
class Generator(generator.swig.Generator):
@@ -63,7 +62,7 @@ class Generator(generator.swig.Generator
elif self.version() == (1, 3, 24):
shutil.copy(build_path_join(self.swig_libdir, path), out)
else:
- run("%s -o %s -co %s" % (self.swig_path, out, path))
+ subprocess.check_call([self.swig_path, "-o", out, "-co", path])
def _skip_checkout(self, path):
"""Should we skip this checkout?"""
Modified:
subversion/branches/shelve-checkpoint/build/generator/swig/external_runtime.py
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/build/generator/swig/external_runtime.py?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
---
subversion/branches/shelve-checkpoint/build/generator/swig/external_runtime.py
(original)
+++
subversion/branches/shelve-checkpoint/build/generator/swig/external_runtime.py
Tue Jan 2 09:47:16 2018
@@ -29,13 +29,12 @@ import os
import re
import fileinput
import filecmp
+import subprocess
if __name__ == "__main__":
parent_dir = os.path.dirname(os.path.abspath(os.path.dirname(sys.argv[0])))
sys.path[0:0] = [ parent_dir, os.path.dirname(parent_dir) ]
import generator.swig
-import generator.util.executable
-_exec = generator.util.executable
class Generator(generator.swig.Generator):
"""Generate external runtime files for SWIG"""
@@ -82,7 +81,7 @@ class Generator(generator.swig.Generator
out_file.write(open("%s/runtime.swg" % self.proxy_dir).read())
out_file.close()
else:
- _exec.run("%s -%s -external-runtime %s" % (self.swig_path, lang, out))
+ subprocess.check_call([self.swig_path, "-"+lang, "-external-runtime",
out])
# SWIG 1.3.24-27 should include rubyhead.swg in their
# external runtime, but they don't.
Modified:
subversion/branches/shelve-checkpoint/subversion/bindings/swig/perl/native/t/3client.t
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/bindings/swig/perl/native/t/3client.t?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
---
subversion/branches/shelve-checkpoint/subversion/bindings/swig/perl/native/t/3client.t
(original)
+++
subversion/branches/shelve-checkpoint/subversion/bindings/swig/perl/native/t/3client.t
Tue Jan 2 09:47:16 2018
@@ -1091,8 +1091,8 @@ isa_ok($dirents->{'dir1'},'_p_svn_dirent
is($dirents->{'dir1'}->kind(),$SVN::Core::node_dir,
'kind() returns a dir node');
# TEST
-is($dirents->{'dir1'}->size(),0,
- 'size() returns 0 for a directory');
+is($dirents->{'dir1'}->size(), -1,
+ 'size() returns -1 for a directory');
# TEST
is($dirents->{'dir1'}->has_props(),1,
'has_props() returns true');
Modified:
subversion/branches/shelve-checkpoint/subversion/include/private/svn_subr_private.h
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/include/private/svn_subr_private.h?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
---
subversion/branches/shelve-checkpoint/subversion/include/private/svn_subr_private.h
(original)
+++
subversion/branches/shelve-checkpoint/subversion/include/private/svn_subr_private.h
Tue Jan 2 09:47:16 2018
@@ -738,6 +738,14 @@ const char *svn_zlib__compiled_version(v
/* Return the zlib version we run against. */
const char *svn_zlib__runtime_version(void);
+/* Return the lz4 version we compiled against. */
+const char *svn_lz4__compiled_version(void);
+
+/* Return the lz4 version we run against as a composed value:
+ * major * 100 * 100 + minor * 100 + release
+ */
+int svn_lz4__runtime_version(void);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/branches/shelve-checkpoint/subversion/include/svn_io.h
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/include/svn_io.h?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/include/svn_io.h (original)
+++ subversion/branches/shelve-checkpoint/subversion/include/svn_io.h Tue Jan
2 09:47:16 2018
@@ -2633,6 +2633,15 @@ svn_io_file_readline(apr_file_t *file,
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
+/** Reads a string from stdin until a newline or EOF is found
+ *
+ * @since New in 1.10.
+ */
+svn_error_t *
+svn_io_stdin_readline(const char **result,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
/** @} */
#ifdef __cplusplus
Modified: subversion/branches/shelve-checkpoint/subversion/include/svn_types.h
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/include/svn_types.h?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/include/svn_types.h
(original)
+++ subversion/branches/shelve-checkpoint/subversion/include/svn_types.h Tue
Jan 2 09:47:16 2018
@@ -652,7 +652,7 @@ typedef struct svn_dirent_t
/** node kind */
svn_node_kind_t kind;
- /** length of file text, or 0 for directories */
+ /** length of file text, otherwise SVN_INVALID_FILESIZE */
svn_filesize_t size;
/** does the node have props? */
Modified: subversion/branches/shelve-checkpoint/subversion/libsvn_client/patch.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_client/patch.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_client/patch.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_client/patch.c Tue
Jan 2 09:47:16 2018
@@ -2145,8 +2145,8 @@ reject_hunk(patch_target_t *target, targ
if (prop_name)
{
/* ### Print 'Added', 'Deleted' or 'Modified' instead of 'Property'. */
- svn_stream_printf(target->reject_stream,
- pool, "Property: %s" APR_EOL_STR, prop_name);
+ SVN_ERR(svn_stream_printf(target->reject_stream,
+ pool, "Property: %s" APR_EOL_STR, prop_name));
atat = prop_atat;
}
else
Modified:
subversion/branches/shelve-checkpoint/subversion/libsvn_fs_fs/low_level.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_fs_fs/low_level.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_fs_fs/low_level.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_fs_fs/low_level.c
Tue Jan 2 09:47:16 2018
@@ -670,7 +670,7 @@ svn_fs_fs__write_changes(svn_stream_t *s
}
if (terminate_list)
- svn_stream_puts(stream, "\n");
+ SVN_ERR(svn_stream_puts(stream, "\n"));
svn_pool_destroy(iterpool);
Modified: subversion/branches/shelve-checkpoint/subversion/libsvn_fs_fs/pack.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_fs_fs/pack.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_fs_fs/pack.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_fs_fs/pack.c Tue
Jan 2 09:47:16 2018
@@ -2067,9 +2067,9 @@ pack_body(void *baton,
if (fully_packed)
{
if (pb->notify_func)
- (*pb->notify_func)(pb->notify_baton,
- ffd->min_unpacked_rev / ffd->max_files_per_dir,
- svn_fs_pack_notify_noop, pool);
+ SVN_ERR(pb->notify_func(pb->notify_baton,
+ ffd->min_unpacked_rev / ffd->max_files_per_dir,
+ svn_fs_pack_notify_noop, pool));
return SVN_NO_ERROR;
}
@@ -2122,7 +2122,7 @@ svn_fs_fs__pack(svn_fs_t *fs,
if (!ffd->max_files_per_dir)
{
if (notify_func)
- (*notify_func)(notify_baton, -1, svn_fs_pack_notify_noop, pool);
+ SVN_ERR(notify_func(notify_baton, -1, svn_fs_pack_notify_noop, pool));
return SVN_NO_ERROR;
}
@@ -2132,9 +2132,9 @@ svn_fs_fs__pack(svn_fs_t *fs,
if (fully_packed)
{
if (notify_func)
- (*notify_func)(notify_baton,
- ffd->min_unpacked_rev / ffd->max_files_per_dir,
- svn_fs_pack_notify_noop, pool);
+ SVN_ERR(notify_func(notify_baton,
+ ffd->min_unpacked_rev / ffd->max_files_per_dir,
+ svn_fs_pack_notify_noop, pool));
return SVN_NO_ERROR;
}
Propchange: subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jan 2 09:47:16 2018
@@ -96,4 +96,4 @@
/subversion/branches/verify-keep-going/subversion/libsvn_fs_x:1439280-1492639,1546002-1546110
/subversion/branches/wc-collate-path/subversion/libsvn_fs_x:1402685-1480384
/subversion/trunk/subversion/libsvn_fs_fs:1415133-1596500,1596567,1597414,1597989,1598273,1599140,1600872,1601633,1603485-1603487,1603499,1603605,1604128,1604188,1604413-1604414,1604416-1604417,1604421,1604442,1604700,1604717,1604720,1604726,1604755,1604794,1604802,1604824,1604836,1604844,1604902-1604903,1604911,1604925,1604933,1604947,1605059-1605060,1605064-1605065,1605068,1605071-1605073,1605075,1605123,1605188-1605189,1605191,1605197,1605444,1605633,1606132,1606142,1606144,1606514,1606526,1606528,1606551,1606554,1606564,1606598-1606599,1606656,1606658,1606662,1606744,1606840,1607085,1607572,1612407,1612810,1613339,1613872,1614611,1615348,1615351-1615352,1615356,1616338-1616339,1616613,1617586,1617688,1618138,1618151,1618153,1618226,1618641,1618653,1618662,1619068,1619358,1619413,1619769,1619774,1620602,1620909,1620912,1620928,1620930,1621275,1621635,1622931,1622937,1622942,1622946,1622959-1622960,1622963,1622987,1623007,1623368,1623373,1623377,1623379,1623381,1623398,1623402,162
4011,1624265,1624512,1626246,1626871,1626873,1626886,1627497-1627498,1627502,1627947-1627949,1627966,1628083,1628093,1628158-1628159,1628161,1628392-1628393,1628415,1628427,1628676,1628738,1628762,1628764,1629854-1629855,1629857,1629865,1629873,1629875,1629879,1630067,1630070,1631049-1631051,1631075,1631115,1631171,1631180,1631185-1631186,1631196-1631197,1631239-1631240,1631548,1631550,1631563,1631567,1631588,1631598,1632646,1632776,1632849,1632851-1632853,1632856-1632857,1632868,1632908,1632926,1633232,1633617-1633618,1634872,1634875,1634879-1634880,1634920,1636478,1636483,1636629,1636644,1637184,1637186,1637330,1637358,1637363,1637393,1639319,1639322,1639335,1639348,1639352,1639355,1639358,1639414,1639419,1639426,1639430,1639436,1639440,1639549,1640061-1640062,1640197,1640915,1640966,1641013,1643139,1643233,1645567,1646021,1646712,1646716,1647537,1647540-1647541,1647820,1647905,1648230,1648238,1648241-1648243,1648253,1648272,1648532,1648537-1648539,1648542,1648591,1648612,1649590,
1651567,1652068,1652076,1652441,1652451,1653608,1654932,1654934,1654937,1655635,1655649,1655651,1655664,1656176,1657525,1657972,1657978,1658482,1659212,1659217,1659314,1659509,1662668,1665318,1665854,1665894,1667090,1667101,1667538,1669743,1669746,1669749,1669945,1670139,1670953,1673170,1673197,1673202,1673204,1673445,1673454,1673685,1673689,1673875,1674165,1674341,1674400,1674404,1674631,1674669,1674673,1675396,1676667,1677431,1678149,1678151,1678718,1678725,1679169,1679907,1679920-1679924,1679926,1680347,1680460,1680464,1680476,1680819,1681949,1681966,1681974,1681994,1682008,1682076,1682086,1682093,1682259,1682265,1682739,1682864,1683311,1683330,1683378,1683544,1683553,1684047,1686232,1686542,1686546,1686554,1686557,1687061,1687064,1687070-1687071,1687074,1687078-1687079,1688270,1688425,1692650,1693886,1694489,1694848,1696171,1696185,1696627-1696628,1696630,1696758,1697372,1697381,1697387,1697393,1697403,1697405,1701017,1701053,1702600,1702922,1703069,1703142,1703237,1703240,17052
66,1705638,1705643,1705646,1705724,1705730,1705739,1706612,1706615,1706617,1706619,1706675-1706676,1706679,1706979-1706980,1707308,1707971-1707973,1707986,1707988-1707989,1708004,1709388,1709799,1710017,1710359,1710368,1710370,1711507,1711582,1711672,1712927,1715793,1715947,1716047,1716067,1716784,1716973-1716974,1717332,1717334,1717864,1719269,1719336,1719413,1719730,1720015,1721285,1723715,1723720,1723834,1723839,1725179-1725180,1726004,1726099,1726116,1726897,1726995,1727006-1727007,1727028,1727040,1727707,1727822,1730491,1735916,1736357,1736359,1737355-1737356,1740721-1740722,1741096,1741200,1741206,1741214,1741224,1742540,1745055,1745107,1745852,1746006,1746012,1746026,1756258-1756266,1756364,1756377,1759117,1759122-1759126,1759135,1759404-1759405,1759686,1764340,1764481,1764676,1766352,1780810,1781655,1781694,1785053,1785737-1785738,1785741,1785754,1785904,1786445-1786446,1786515
-/subversion/trunk/subversion/libsvn_fs_x:1414756-1509914,1815225-1815228
+/subversion/trunk/subversion/libsvn_fs_x:1414756-1509914,1801593-1819797
Modified: subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/changes.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/changes.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/changes.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/changes.c Tue
Jan 2 09:47:16 2018
@@ -184,7 +184,7 @@ svn_fs_x__changes_append_list(apr_size_t
/* simply append the list and all changes */
for (i = 0; i < list->nelts; ++i)
- append_change(changes, APR_ARRAY_IDX(list, i, svn_fs_x__change_t *));
+ SVN_ERR(append_change(changes, APR_ARRAY_IDX(list, i, svn_fs_x__change_t
*)));
/* terminate the list by storing the next changes offset */
APR_ARRAY_PUSH(changes->offsets, int) = changes->changes->nelts;
Modified:
subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/low_level.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/low_level.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/low_level.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/low_level.c
Tue Jan 2 09:47:16 2018
@@ -1131,7 +1131,7 @@ svn_fs_x__write_changes(svn_stream_t *st
}
if (terminate_list)
- svn_stream_puts(stream, "\n");
+ SVN_ERR(svn_stream_puts(stream, "\n"));
svn_pool_destroy(iterpool);
Modified: subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/pack.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/pack.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/pack.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/pack.c Tue Jan
2 09:47:16 2018
@@ -2204,9 +2204,9 @@ pack_body(void *baton,
if (fully_packed)
{
if (pb->notify_func)
- (*pb->notify_func)(pb->notify_baton,
- ffd->min_unpacked_rev / ffd->max_files_per_dir,
- svn_fs_pack_notify_noop, scratch_pool);
+ SVN_ERR(pb->notify_func(pb->notify_baton,
+ ffd->min_unpacked_rev / ffd->max_files_per_dir,
+ svn_fs_pack_notify_noop, scratch_pool));
return SVN_NO_ERROR;
}
@@ -2258,9 +2258,9 @@ svn_fs_x__pack(svn_fs_t *fs,
svn_fs_x__data_t *ffd = fs->fsap_data;
if (notify_func)
- (*notify_func)(notify_baton,
- ffd->min_unpacked_rev / ffd->max_files_per_dir,
- svn_fs_pack_notify_noop, scratch_pool);
+ SVN_ERR(notify_func(notify_baton,
+ ffd->min_unpacked_rev / ffd->max_files_per_dir,
+ svn_fs_pack_notify_noop, scratch_pool));
return SVN_NO_ERROR;
}
Modified:
subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/transaction.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/transaction.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/transaction.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_fs_x/transaction.c
Tue Jan 2 09:47:16 2018
@@ -1259,7 +1259,7 @@ get_and_increment_txn_key_body(void *bat
SVN_ERR(svn_io_check_path(txn_dir, &kind, iterpool));
if (kind == svn_node_none)
{
- svn_io_dir_make(txn_dir, APR_OS_DEFAULT, iterpool);
+ SVN_ERR(svn_io_dir_make(txn_dir, APR_OS_DEFAULT, iterpool));
break;
}
Modified:
subversion/branches/shelve-checkpoint/subversion/libsvn_ra_local/ra_plugin.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_ra_local/ra_plugin.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
---
subversion/branches/shelve-checkpoint/subversion/libsvn_ra_local/ra_plugin.c
(original)
+++
subversion/branches/shelve-checkpoint/subversion/libsvn_ra_local/ra_plugin.c
Tue Jan 2 09:47:16 2018
@@ -1387,7 +1387,7 @@ svn_ra_local__get_dir(svn_ra_session_t *
{
/* size */
if (fs_entry->kind == svn_node_dir)
- entry->size = 0;
+ entry->size = SVN_INVALID_FILESIZE;
else
SVN_ERR(svn_fs_file_length(&(entry->size), root,
fullpath, iterpool));
Modified: subversion/branches/shelve-checkpoint/subversion/libsvn_ra_serf/list.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_ra_serf/list.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_ra_serf/list.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_ra_serf/list.c Tue
Jan 2 09:47:16 2018
@@ -21,26 +21,13 @@
* ====================================================================
*/
-
-
-
-#include <apr_uri.h>
#include <serf.h>
#include "svn_hash.h"
-#include "svn_pools.h"
-#include "svn_ra.h"
-#include "svn_dav.h"
#include "svn_base64.h"
#include "svn_xml.h"
-#include "svn_config.h"
-#include "svn_path.h"
-#include "svn_props.h"
#include "svn_time.h"
-#include "private/svn_dav_protocol.h"
-#include "private/svn_string_private.h"
-#include "private/svn_subr_private.h"
#include "svn_private_config.h"
#include "ra_serf.h"
@@ -152,6 +139,8 @@ item_closed(svn_ra_serf__xml_estate_t *x
if (size)
SVN_ERR(svn_cstring_atoi64(&dirent.size, size));
+ else
+ dirent.size = SVN_INVALID_FILESIZE;
if (crev)
SVN_ERR(svn_revnum_parse(&dirent.created_rev, crev, NULL));
Modified:
subversion/branches/shelve-checkpoint/subversion/libsvn_ra_svn/protocol
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_ra_svn/protocol?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_ra_svn/protocol
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_ra_svn/protocol Tue
Jan 2 09:47:16 2018
@@ -342,7 +342,7 @@ second place for auth-request point as n
stat
params: ( path:string [ rev:number ] )
response: ( ? entry:dirent )
- dirent: ( name:string kind:node-kind size:number has-props:bool
+ dirent: ( kind:node-kind size:number has-props:bool
created-rev:number [ created-date:string ]
[ last-author:string ] )
New in svn 1.2. If path is non-existent, an empty response is returned.
Modified: subversion/branches/shelve-checkpoint/subversion/libsvn_repos/list.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_repos/list.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_repos/list.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_repos/list.c Tue
Jan 2 09:47:16 2018
@@ -50,6 +50,8 @@ fill_dirent(svn_dirent_t *dirent,
if (dirent->kind == svn_node_file)
SVN_ERR(svn_fs_file_length(&(dirent->size), root, path, scratch_pool));
+ else
+ dirent->size = SVN_INVALID_FILESIZE;
SVN_ERR(svn_fs_node_has_props(&dirent->has_props, root, path,
scratch_pool));
Modified:
subversion/branches/shelve-checkpoint/subversion/libsvn_subr/compress_lz4.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_subr/compress_lz4.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_subr/compress_lz4.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_subr/compress_lz4.c
Tue Jan 2 09:47:16 2018
@@ -126,3 +126,19 @@ svn__decompress_lz4(const void *data, ap
return SVN_NO_ERROR;
}
+
+const char *
+svn_lz4__compiled_version(void)
+{
+ static const char lz4_version_str[] = APR_STRINGIFY(LZ4_VERSION_MAJOR) "." \
+ APR_STRINGIFY(LZ4_VERSION_MINOR) "." \
+ APR_STRINGIFY(LZ4_VERSION_RELEASE);
+
+ return lz4_version_str;
+}
+
+int
+svn_lz4__runtime_version(void)
+{
+ return LZ4_versionNumber();
+}
Modified:
subversion/branches/shelve-checkpoint/subversion/libsvn_subr/config_file.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_subr/config_file.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_subr/config_file.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_subr/config_file.c
Tue Jan 2 09:47:16 2018
@@ -466,6 +466,7 @@ parse_value_continuation_lines(int *pch,
else
{
/* This is a continuation line. Read it. */
+ SVN_ERR(parser_ungetc(ctx, ch));
SVN_ERR(parser_get_line(ctx, ctx->line_read, &ch));
/* Trailing whitespace is ignored. */
Modified: subversion/branches/shelve-checkpoint/subversion/libsvn_subr/io.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_subr/io.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_subr/io.c (original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_subr/io.c Tue Jan
2 09:47:16 2018
@@ -5440,3 +5440,20 @@ svn_io_file_readline(apr_file_t *file,
return SVN_NO_ERROR;
}
+
+svn_error_t *
+svn_io_stdin_readline(const char **result,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool)
+{
+ svn_stringbuf_t *buf = NULL;
+ svn_stream_t *stdin_stream = NULL;
+ svn_boolean_t oob = FALSE;
+
+ SVN_ERR(svn_stream_for_stdin2(&stdin_stream, TRUE, scratch_pool));
+ SVN_ERR(svn_stream_readline(stdin_stream, &buf, APR_EOL_STR, &oob,
result_pool));
+
+ *result = buf->data;
+
+ return SVN_NO_ERROR;
+}
Modified:
subversion/branches/shelve-checkpoint/subversion/libsvn_subr/object_pool.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_subr/object_pool.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_subr/object_pool.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_subr/object_pool.c
Tue Jan 2 09:47:16 2018
@@ -172,9 +172,11 @@ add_object_ref(object_ref_t *object_ref,
if (svn_atomic_inc(&object_ref->ref_count) == 0)
svn_atomic_dec(&object_ref->object_pool->unused_count);
- /* make sure the reference gets released automatically */
- apr_pool_cleanup_register(pool, object_ref, object_ref_cleanup,
- apr_pool_cleanup_null);
+ /* Make sure the reference gets released automatically.
+ Since POOL might be a parent pool of OBJECT_REF->OBJECT_POOL,
+ to the reference counting update before destroing any of the
+ pool hierarchy. */
+ apr_pool_pre_cleanup_register(pool, object_ref, object_ref_cleanup);
}
/* Actual implementation of svn_object_pool__lookup.
Modified: subversion/branches/shelve-checkpoint/subversion/libsvn_subr/stream.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_subr/stream.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_subr/stream.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_subr/stream.c Tue
Jan 2 09:47:16 2018
@@ -1468,10 +1468,10 @@ seek_handler_checksum(void *baton, const
else
{
if (btn->read_ctx)
- svn_checksum_ctx_reset(btn->read_ctx);
+ SVN_ERR(svn_checksum_ctx_reset(btn->read_ctx));
if (btn->write_ctx)
- svn_checksum_ctx_reset(btn->write_ctx);
+ SVN_ERR(svn_checksum_ctx_reset(btn->write_ctx));
SVN_ERR(svn_stream_reset(btn->proxy));
}
Modified: subversion/branches/shelve-checkpoint/subversion/libsvn_subr/sysinfo.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_subr/sysinfo.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_subr/sysinfo.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_subr/sysinfo.c Tue
Jan 2 09:47:16 2018
@@ -127,7 +127,8 @@ const apr_array_header_t *
svn_sysinfo__linked_libs(apr_pool_t *pool)
{
svn_version_ext_linked_lib_t *lib;
- apr_array_header_t *array = apr_array_make(pool, 6, sizeof(*lib));
+ apr_array_header_t *array = apr_array_make(pool, 7, sizeof(*lib));
+ int lz4_version = svn_lz4__runtime_version();
lib = &APR_ARRAY_PUSH(array, svn_version_ext_linked_lib_t);
lib->name = "APR";
@@ -167,6 +168,15 @@ svn_sysinfo__linked_libs(apr_pool_t *poo
lib->compiled_version = apr_pstrdup(pool, svn_zlib__compiled_version());
lib->runtime_version = apr_pstrdup(pool, svn_zlib__runtime_version());
+ lib = &APR_ARRAY_PUSH(array, svn_version_ext_linked_lib_t);
+ lib->name = "LZ4";
+ lib->compiled_version = apr_pstrdup(pool, svn_lz4__compiled_version());
+
+ lib->runtime_version = apr_psprintf(pool, "%d.%d.%d",
+ lz4_version / 100 / 100,
+ (lz4_version / 100) % 100,
+ lz4_version % 100);
+
return array;
}
Modified: subversion/branches/shelve-checkpoint/subversion/libsvn_subr/version.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_subr/version.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_subr/version.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_subr/version.c Tue
Jan 2 09:47:16 2018
@@ -143,7 +143,7 @@ svn_version_extended(svn_boolean_t verbo
info->build_time = __TIME__;
info->build_host = SVN_BUILD_HOST;
info->copyright = apr_pstrdup
- (pool, _("Copyright (C) 2017 The Apache Software Foundation.\n"
+ (pool, _("Copyright (C) 2018 The Apache Software Foundation.\n"
"This software consists of contributions made by many people;\n"
"see the NOTICE file for more information.\n"
"Subversion is open source software, see "
Modified: subversion/branches/shelve-checkpoint/subversion/libsvn_wc/wc_db.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/libsvn_wc/wc_db.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/libsvn_wc/wc_db.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/libsvn_wc/wc_db.c Tue Jan
2 09:47:16 2018
@@ -16525,8 +16525,8 @@ db_process_commit_queue(svn_wc__db_t *db
iterpool),
iterpool, iterpool));
- lock_remove_txn(queue->wcroot, cqi->local_relpath, work_item,
- iterpool);
+ SVN_ERR(lock_remove_txn(queue->wcroot, cqi->local_relpath,
+ work_item, iterpool));
}
if (cqi->remove_changelist)
SVN_ERR(svn_wc__db_op_set_changelist(db,
Modified: subversion/branches/shelve-checkpoint/subversion/svn/cl.h
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/svn/cl.h?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/svn/cl.h (original)
+++ subversion/branches/shelve-checkpoint/subversion/svn/cl.h Tue Jan 2
09:47:16 2018
@@ -178,6 +178,7 @@ typedef struct svn_cl__opt_state_t
svn_boolean_t help; /* print usage message */
const char *auth_username; /* auth username */
const char *auth_password; /* auth password */
+ svn_boolean_t auth_password_from_stdin; /* read password from stdin */
const char *extensions; /* subprocess extension args */
apr_array_header_t *targets; /* target list from file */
svn_boolean_t xml; /* output in xml, e.g., "svn log --xml" */
Modified:
subversion/branches/shelve-checkpoint/subversion/svn/conflict-callbacks.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/svn/conflict-callbacks.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/svn/conflict-callbacks.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/svn/conflict-callbacks.c
Tue Jan 2 09:47:16 2018
@@ -1654,8 +1654,8 @@ prompt_move_target_path(int *preferred_m
{
char buf[1024];
- svn_cmdline_fprintf(stderr, iterpool, "%s\n",
- svn_err_best_message(err, buf, sizeof(buf)));
+ SVN_ERR(svn_cmdline_fprintf(stderr, iterpool, "%s\n",
+ svn_err_best_message(err, buf,
sizeof(buf))));
svn_error_clear(err);
continue;
}
Modified: subversion/branches/shelve-checkpoint/subversion/svn/list-cmd.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/svn/list-cmd.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/svn/list-cmd.c (original)
+++ subversion/branches/shelve-checkpoint/subversion/svn/list-cmd.c Tue Jan 2
09:47:16 2018
@@ -385,14 +385,20 @@ svn_cl__list(apr_getopt_t *os,
apr_array_header_t *pattern_group
= APR_ARRAY_IDX(opt_state->search_patterns, k,
apr_array_header_t *);
+ const char *pattern;
/* Should never fail but ... */
if (pattern_group->nelts != 1)
return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
_("'search-and' option is not supported"));
- APR_ARRAY_PUSH(patterns, const char *)
- = APR_ARRAY_IDX(pattern_group, 0, const char *);
+ pattern = APR_ARRAY_IDX(pattern_group, 0, const char *);
+#if defined(WIN32)
+ /* As we currently can't pass glob patterns via the Windows
+ CLI, fall back to sub-string search. */
+ pattern = apr_psprintf(subpool, "*%s*", pattern);
+#endif
+ APR_ARRAY_PUSH(patterns, const char *) = pattern;
}
}
Modified: subversion/branches/shelve-checkpoint/subversion/svn/notify.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/svn/notify.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/svn/notify.c (original)
+++ subversion/branches/shelve-checkpoint/subversion/svn/notify.c Tue Jan 2
09:47:16 2018
@@ -210,7 +210,7 @@ svn_cl__conflict_stats_get_paths(apr_arr
}
}
- svn_hash_keys(conflicted_paths, all_conflicts, result_pool);
+ SVN_ERR(svn_hash_keys(conflicted_paths, all_conflicts, result_pool));
svn_sort__array(*conflicted_paths, svn_sort_compare_paths);
return SVN_NO_ERROR;
Modified: subversion/branches/shelve-checkpoint/subversion/svn/svn.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/svn/svn.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/svn/svn.c (original)
+++ subversion/branches/shelve-checkpoint/subversion/svn/svn.c Tue Jan 2
09:47:16 2018
@@ -68,6 +68,7 @@
use the short option letter as identifier. */
typedef enum svn_cl__longopt_t {
opt_auth_password = SVN_OPT_FIRST_LONGOPT_ID,
+ opt_auth_password_from_stdin,
opt_auth_username,
opt_autoprops,
opt_changelist,
@@ -202,6 +203,9 @@ const apr_getopt_option_t svn_cl__option
N_("specify a password ARG (caution: on many operating\n"
" "
"systems, other users will be able to see this)")},
+ {"password-from-stdin",
+ opt_auth_password_from_stdin, 0,
+ N_("read password from stdin")},
{"extensions", 'x', 1,
N_("Specify differencing options for external diff or\n"
" "
@@ -502,7 +506,8 @@ const apr_getopt_option_t svn_cl__option
command to take these arguments allows scripts to just pass them
willy-nilly to every invocation of 'svn') . */
const int svn_cl__global_options[] =
-{ opt_auth_username, opt_auth_password, opt_no_auth_cache, opt_non_interactive,
+{ opt_auth_username, opt_auth_password, opt_auth_password_from_stdin,
+ opt_no_auth_cache, opt_non_interactive,
opt_force_interactive, opt_trust_server_cert,
opt_trust_server_cert_failures,
opt_config_dir, opt_config_options, 0
@@ -799,7 +804,34 @@ const svn_opt_subcommand_desc2_t svn_cl_
opt_changelist, opt_include_externals, opt_show_item, opt_no_newline}
},
- { "list", svn_cl__list, {"ls"}, N_
+ { "list", svn_cl__list, {"ls"},
+#if defined(WIN32)
+ N_
+ ("List directory entries in the repository.\n"
+ "usage: list [TARGET[@REV]...]\n"
+ "\n"
+ " List each TARGET file and the contents of each TARGET directory as\n"
+ " they exist in the repository. If TARGET is a working copy path, the\n"
+ " corresponding repository URL will be used. If specified, REV
determines\n"
+ " in which revision the target is first looked up.\n"
+ "\n"
+ " The default TARGET is '.', meaning the repository URL of the current\n"
+ " working directory.\n"
+ "\n"
+ " Multiple --search patterns may be specified and the output will be\n"
+ " reduced to those paths whose last segment - i.e. the file or
directory\n"
+ " name - contains a sub-string matching at least one of these patterns\n"
+ " (Windows only).\n"
+ "\n"
+ " With --verbose, the following fields will be shown for each item:\n"
+ "\n"
+ " Revision number of the last commit\n"
+ " Author of the last commit\n"
+ " If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
+ " Size (in bytes)\n"
+ " Date and time of the last commit\n"),
+#else
+ N_
("List directory entries in the repository.\n"
"usage: list [TARGET[@REV]...]\n"
"\n"
@@ -822,6 +854,7 @@ const svn_opt_subcommand_desc2_t svn_cl_
" If locked, the letter 'O'. (Use 'svn info URL' to see details)\n"
" Size (in bytes)\n"
" Date and time of the last commit\n"),
+#endif
{'r', 'v', 'R', opt_depth, opt_incremental, opt_xml,
opt_include_externals, opt_search}, },
@@ -2067,6 +2100,7 @@ sub_main(int *exit_code, int argc, const
apr_hash_t *changelists;
apr_hash_t *cfg_hash;
svn_membuf_t buf;
+ svn_boolean_t read_pass_from_stdin = FALSE;
received_opts = apr_array_make(pool, SVN_OPT_MAX_OPTIONS, sizeof(int));
@@ -2362,6 +2396,9 @@ sub_main(int *exit_code, int argc, const
SVN_ERR(svn_utf_cstring_to_utf8(&opt_state.auth_password,
opt_arg, pool));
break;
+ case opt_auth_password_from_stdin:
+ read_pass_from_stdin = TRUE;
+ break;
case opt_encoding:
opt_state.encoding = apr_pstrdup(pool, opt_arg);
break;
@@ -2857,6 +2894,14 @@ sub_main(int *exit_code, int argc, const
"--non-interactive"));
}
+ /* --password-from-stdin can only be used with --non-interactive */
+ if (read_pass_from_stdin && !opt_state.non_interactive)
+ {
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("--password-from-stdin requires "
+ "--non-interactive"));
+ }
+
/* Disallow simultaneous use of both --diff-cmd and
--internal-diff. */
if (opt_state.diff.diff_cmd && opt_state.diff.internal_diff)
@@ -3148,6 +3193,12 @@ sub_main(int *exit_code, int argc, const
conflict_stats, pool));
}
+ /* Get password from stdin if necessary */
+ if (read_pass_from_stdin)
+ {
+ SVN_ERR(svn_io_stdin_readline(&opt_state.auth_password, pool, pool));
+ }
+
/* Set up our cancellation support. */
svn_cl__check_cancel = svn_cmdline__setup_cancellation_handler();
ctx->cancel_func = svn_cl__check_cancel;
Modified: subversion/branches/shelve-checkpoint/subversion/svnbench/svnbench.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/svnbench/svnbench.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/svnbench/svnbench.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/svnbench/svnbench.c Tue
Jan 2 09:47:16 2018
@@ -53,6 +53,7 @@
use the short option letter as identifier. */
typedef enum svn_cl__longopt_t {
opt_auth_password = SVN_OPT_FIRST_LONGOPT_ID,
+ opt_auth_password_from_stdin,
opt_auth_username,
opt_config_dir,
opt_config_options,
@@ -112,6 +113,8 @@ const apr_getopt_option_t svn_cl__option
{"verbose", 'v', 0, N_("print extra information")},
{"username", opt_auth_username, 1, N_("specify a username ARG")},
{"password", opt_auth_password, 1, N_("specify a password ARG")},
+ {"password-from-stdin",
+ opt_auth_password_from_stdin, 0, N_("read password from
stdin")},
{"targets", opt_targets, 1,
N_("pass contents of file ARG as additional args")},
{"depth", opt_depth, 1,
@@ -197,7 +200,8 @@ const apr_getopt_option_t svn_cl__option
command to take these arguments allows scripts to just pass them
willy-nilly to every invocation of 'svn') . */
const int svn_cl__global_options[] =
-{ opt_auth_username, opt_auth_password, opt_no_auth_cache, opt_non_interactive,
+{ opt_auth_username, opt_auth_password, opt_auth_password_from_stdin,
+ opt_no_auth_cache, opt_non_interactive,
opt_trust_server_cert, opt_trust_server_cert_failures,
opt_config_dir, opt_config_options, 0
};
@@ -394,6 +398,7 @@ sub_main(int *exit_code, int argc, const
apr_time_t start_time, time_taken;
ra_progress_baton_t ra_progress_baton = {0};
svn_membuf_t buf;
+ svn_boolean_t read_pass_from_stdin = FALSE;
received_opts = apr_array_make(pool, SVN_OPT_MAX_OPTIONS, sizeof(int));
@@ -625,6 +630,9 @@ sub_main(int *exit_code, int argc, const
SVN_ERR(svn_utf_cstring_to_utf8(&opt_state.auth_password,
opt_arg, pool));
break;
+ case opt_auth_password_from_stdin:
+ read_pass_from_stdin = TRUE;
+ break;
case opt_stop_on_copy:
opt_state.stop_on_copy = TRUE;
break;
@@ -842,6 +850,14 @@ sub_main(int *exit_code, int argc, const
"--non-interactive"));
}
+ /* --password-from-stdin can only be used with --non-interactive */
+ if (read_pass_from_stdin && !opt_state.non_interactive)
+ {
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("--password-from-stdin requires "
+ "--non-interactive"));
+ }
+
/* Ensure that 'revision_ranges' has at least one item, and make
'start_revision' and 'end_revision' match that item. */
if (opt_state.revision_ranges->nelts == 0)
@@ -919,6 +935,12 @@ sub_main(int *exit_code, int argc, const
pool));
}
+ /* Get password from stdin if necessary */
+ if (read_pass_from_stdin)
+ {
+ SVN_ERR(svn_io_stdin_readline(&opt_state.auth_password, pool, pool));
+ }
+
/* Set up our cancellation support. */
svn_cl__check_cancel = svn_cmdline__setup_cancellation_handler();
ctx->cancel_func = svn_cl__check_cancel;
Modified:
subversion/branches/shelve-checkpoint/subversion/svnfsfs/load-index-cmd.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/svnfsfs/load-index-cmd.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/svnfsfs/load-index-cmd.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/svnfsfs/load-index-cmd.c
Tue Jan 2 09:47:16 2018
@@ -147,7 +147,7 @@ load_index(const char *path,
/* Get the next line from the input and stop if there is none. */
svn_pool_clear(iterpool);
- svn_stream_readline(input, &line, "\n", &eol, iterpool);
+ SVN_ERR(svn_stream_readline(input, &line, "\n", &eol, iterpool));
if (eol)
break;
Modified: subversion/branches/shelve-checkpoint/subversion/svnmucc/svnmucc.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/svnmucc/svnmucc.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/svnmucc/svnmucc.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/svnmucc/svnmucc.c Tue Jan
2 09:47:16 2018
@@ -297,6 +297,7 @@ help(FILE *stream, apr_pool_t *pool)
" -F [--file] ARG : read log message from file ARG\n"
" -u [--username] ARG : commit the changes as username ARG\n"
" -p [--password] ARG : use ARG as the password\n"
+ " --password-from-stdin : read password from stdin\n"
" -U [--root-url] ARG : interpret all action URLs relative to ARG\n"
" -r [--revision] ARG : use revision ARG as baseline for changes\n"
" --with-revprop ARG : set revision property in the following
format:\n"
@@ -480,13 +481,15 @@ sub_main(int *exit_code, int argc, const
non_interactive_opt,
force_interactive_opt,
trust_server_cert_opt,
- trust_server_cert_failures_opt
+ trust_server_cert_failures_opt,
+ password_from_stdin_opt
};
static const apr_getopt_option_t options[] = {
{"message", 'm', 1, ""},
{"file", 'F', 1, ""},
{"username", 'u', 1, ""},
{"password", 'p', 1, ""},
+ {"password-from-stdin", password_from_stdin_opt, 0, ""},
{"root-url", 'U', 1, ""},
{"revision", 'r', 1, ""},
{"with-revprop", with_revprop_opt, 1, ""},
@@ -527,6 +530,7 @@ sub_main(int *exit_code, int argc, const
svn_client_ctx_t *ctx;
struct log_message_baton lmb;
int i;
+ svn_boolean_t read_pass_from_stdin = FALSE;
/* Check library versions */
SVN_ERR(check_lib_versions());
@@ -572,6 +576,9 @@ sub_main(int *exit_code, int argc, const
case 'p':
password = apr_pstrdup(pool, arg);
break;
+ case password_from_stdin_opt:
+ read_pass_from_stdin = TRUE;
+ break;
case 'U':
SVN_ERR(svn_utf_cstring_to_utf8(&root_url, arg, pool));
if (! svn_path_is_url(root_url))
@@ -672,6 +679,15 @@ sub_main(int *exit_code, int argc, const
"--non-interactive"));
}
+ /* --password-from-stdin can only be used with --non-interactive */
+ if (read_pass_from_stdin && !non_interactive)
+ {
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("--password-from-stdin requires "
+ "--non-interactive"));
+ }
+
+
/* Copy the rest of our command-line arguments to an array,
UTF-8-ing them along the way. */
action_args = apr_array_make(pool, opts->argc, sizeof(const char *));
@@ -721,6 +737,12 @@ sub_main(int *exit_code, int argc, const
"svnmucc: ", "--config-option"));
}
+ /* Get password from stdin if necessary */
+ if (read_pass_from_stdin)
+ {
+ SVN_ERR(svn_io_stdin_readline(&password, pool, pool));
+ }
+
SVN_ERR(svn_client_create_context2(&ctx, cfg_hash, pool));
cfg_config = svn_hash_gets(cfg_hash, SVN_CONFIG_CATEGORY_CONFIG);
Modified: subversion/branches/shelve-checkpoint/subversion/svnrdump/svnrdump.c
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/svnrdump/svnrdump.c?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
--- subversion/branches/shelve-checkpoint/subversion/svnrdump/svnrdump.c
(original)
+++ subversion/branches/shelve-checkpoint/subversion/svnrdump/svnrdump.c Tue
Jan 2 09:47:16 2018
@@ -59,6 +59,7 @@ enum svn_svnrdump__longopt_t
opt_config_option,
opt_auth_username,
opt_auth_password,
+ opt_auth_password_from_stdin,
opt_auth_nocache,
opt_non_interactive,
opt_skip_revprop,
@@ -73,6 +74,7 @@ enum svn_svnrdump__longopt_t
opt_config_option, \
opt_auth_username, \
opt_auth_password, \
+ opt_auth_password_from_stdin, \
opt_auth_nocache, \
opt_trust_server_cert, \
opt_trust_server_cert_failures, \
@@ -114,6 +116,8 @@ static const apr_getopt_option_t svnrdum
N_("specify a username ARG")},
{"password", opt_auth_password, 1,
N_("specify a password ARG")},
+ {"password-from-stdin", opt_auth_password_from_stdin, 0,
+ N_("read password from stdin")},
{"non-interactive", opt_non_interactive, 0,
N_("do no interactive prompting (default is to prompt\n"
" "
@@ -154,6 +158,7 @@ static const apr_getopt_option_t svnrdum
"valid certificate) and 'other' (all other not\n"
" "
"separately classified certificate errors).")},
+ {"dumpfile", 'F', 1, N_("Read or write to a dumpfile instead of
stdin/stdout")},
{0, 0, 0, 0}
};
@@ -174,6 +179,7 @@ typedef struct opt_baton_t {
svn_client_ctx_t *ctx;
svn_ra_session_t *session;
const char *url;
+ const char *dumpfile;
svn_boolean_t help;
svn_boolean_t version;
svn_opt_revision_t start_revision;
@@ -463,31 +469,39 @@ replay_revisions(svn_ra_session_t *sessi
svn_revnum_t end_revision,
svn_boolean_t quiet,
svn_boolean_t incremental,
+ const char *dumpfile,
apr_pool_t *pool)
{
struct replay_baton *replay_baton;
const char *uuid;
- svn_stream_t *stdout_stream;
+ svn_stream_t *output_stream;
- SVN_ERR(svn_stream_for_stdout(&stdout_stream, pool));
+ if (dumpfile)
+ {
+ SVN_ERR(svn_stream_open_writable(&output_stream, dumpfile, pool, pool));
+ }
+ else
+ {
+ SVN_ERR(svn_stream_for_stdout(&output_stream, pool));
+ }
replay_baton = apr_pcalloc(pool, sizeof(*replay_baton));
- replay_baton->stdout_stream = stdout_stream;
+ replay_baton->stdout_stream = output_stream;
replay_baton->extra_ra_session = extra_ra_session;
replay_baton->quiet = quiet;
/* Write the magic header and UUID */
- SVN_ERR(svn_stream_printf(stdout_stream, pool,
+ SVN_ERR(svn_stream_printf(output_stream, pool,
SVN_REPOS_DUMPFILE_MAGIC_HEADER ": %d\n\n",
SVN_REPOS_DUMPFILE_FORMAT_VERSION));
SVN_ERR(svn_ra_get_uuid2(session, &uuid, pool));
- SVN_ERR(svn_stream_printf(stdout_stream, pool,
+ SVN_ERR(svn_stream_printf(output_stream, pool,
SVN_REPOS_DUMPFILE_UUID ": %s\n\n", uuid));
/* Fake revision 0 if necessary */
if (start_revision == 0)
{
- SVN_ERR(dump_revision_header(session, stdout_stream,
+ SVN_ERR(dump_revision_header(session, output_stream,
start_revision, pool));
/* Revision 0 has no tree changes, so we're done. */
@@ -506,7 +520,7 @@ replay_revisions(svn_ra_session_t *sessi
if (!incremental)
{
SVN_ERR(dump_initial_full_revision(session, extra_ra_session,
- stdout_stream, start_revision,
+ output_stream, start_revision,
quiet, pool));
start_revision++;
}
@@ -538,16 +552,23 @@ replay_revisions(svn_ra_session_t *sessi
static svn_error_t *
load_revisions(svn_ra_session_t *session,
svn_ra_session_t *aux_session,
- const char *url,
+ const char *dumpfile,
svn_boolean_t quiet,
apr_hash_t *skip_revprops,
apr_pool_t *pool)
{
- svn_stream_t *stdin_stream;
+ svn_stream_t *output_stream;
- SVN_ERR(svn_stream_for_stdin2(&stdin_stream, TRUE, pool));
+ if (dumpfile)
+ {
+ SVN_ERR(svn_stream_open_readonly(&output_stream, dumpfile, pool, pool));
+ }
+ else
+ {
+ SVN_ERR(svn_stream_for_stdin2(&output_stream, TRUE, pool));
+ }
- SVN_ERR(svn_rdump__load_dumpstream(stdin_stream, session, aux_session,
+ SVN_ERR(svn_rdump__load_dumpstream(output_stream, session, aux_session,
quiet, skip_revprops,
check_cancel, NULL, pool));
@@ -616,7 +637,8 @@ dump_cmd(apr_getopt_t *os,
return replay_revisions(opt_baton->session, extra_ra_session,
opt_baton->start_revision.value.number,
opt_baton->end_revision.value.number,
- opt_baton->quiet, opt_baton->incremental, pool);
+ opt_baton->quiet, opt_baton->incremental,
+ opt_baton->dumpfile, pool);
}
/* Handle the "load" subcommand. Implements `svn_opt_subcommand_t'. */
@@ -630,8 +652,9 @@ load_cmd(apr_getopt_t *os,
SVN_ERR(svn_client_open_ra_session2(&aux_session, opt_baton->url, NULL,
opt_baton->ctx, pool, pool));
- return load_revisions(opt_baton->session, aux_session, opt_baton->url,
- opt_baton->quiet, opt_baton->skip_revprops, pool);
+ return load_revisions(opt_baton->session, aux_session,
+ opt_baton->dumpfile, opt_baton->quiet,
+ opt_baton->skip_revprops, pool);
}
/* Handle the "help" subcommand. Implements `svn_opt_subcommand_t'. */
@@ -772,12 +795,14 @@ sub_main(int *exit_code, int argc, const
apr_getopt_t *os;
apr_array_header_t *received_opts;
int i;
+ svn_boolean_t read_pass_from_stdin = FALSE;
opt_baton = apr_pcalloc(pool, sizeof(*opt_baton));
opt_baton->start_revision.kind = svn_opt_revision_unspecified;
opt_baton->end_revision.kind = svn_opt_revision_unspecified;
opt_baton->url = NULL;
opt_baton->skip_revprops = apr_hash_make(pool);
+ opt_baton->dumpfile = NULL;
SVN_ERR(svn_cmdline__getopt_init(&os, argc, argv, pool));
@@ -850,6 +875,9 @@ sub_main(int *exit_code, int argc, const
case opt_auth_password:
SVN_ERR(svn_utf_cstring_to_utf8(&password, opt_arg, pool));
break;
+ case opt_auth_password_from_stdin:
+ read_pass_from_stdin = TRUE;
+ break;
case opt_auth_nocache:
no_auth_cache = TRUE;
break;
@@ -890,6 +918,11 @@ sub_main(int *exit_code, int argc, const
opt_arg,
"svnrdump: ",
pool));
+ break;
+ case 'F':
+ SVN_ERR(svn_utf_cstring_to_utf8(&opt_arg, opt_arg, pool));
+ opt_baton->dumpfile = opt_arg;
+ break;
}
}
@@ -1005,6 +1038,24 @@ sub_main(int *exit_code, int argc, const
"--non-interactive"));
}
+ if (read_pass_from_stdin && !non_interactive)
+ {
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("--password-from-stdin requires "
+ "--non-interactive"));
+ }
+
+ if (strcmp(subcommand->name, "load") == 0)
+ {
+ if (read_pass_from_stdin && opt_baton->dumpfile == NULL)
+ {
+ /* error here, since load cannot process a password over stdin */
+ return svn_error_create(SVN_ERR_CL_ARG_PARSING_ERROR, NULL,
+ _("load subcommand with "
+ "--password-from-stdin requires -F"));
+ }
+ }
+
/* Expect one more non-option argument: the repository URL. */
if (os->ind != os->argc - 1)
{
@@ -1039,6 +1090,12 @@ sub_main(int *exit_code, int argc, const
force_interactive = (username == NULL || password == NULL);
}
+ /* Get password from stdin if necessary */
+ if (read_pass_from_stdin)
+ {
+ SVN_ERR(svn_io_stdin_readline(&password, pool, pool));
+ }
+
non_interactive = !svn_cmdline__be_interactive(non_interactive,
force_interactive);
Modified:
subversion/branches/shelve-checkpoint/subversion/tests/cmdline/basic_tests.py
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/tests/cmdline/basic_tests.py?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
---
subversion/branches/shelve-checkpoint/subversion/tests/cmdline/basic_tests.py
(original)
+++
subversion/branches/shelve-checkpoint/subversion/tests/cmdline/basic_tests.py
Tue Jan 2 09:47:16 2018
@@ -3114,7 +3114,7 @@ def plaintext_password_storage_disabled(
f.close()
-
+@Skip(svntest.main.is_os_windows)
def filtered_ls(sbox):
"filtered 'svn ls'"
Modified:
subversion/branches/shelve-checkpoint/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
URL:
http://svn.apache.org/viewvc/subversion/branches/shelve-checkpoint/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout?rev=1819798&r1=1819797&r2=1819798&view=diff
==============================================================================
---
subversion/branches/shelve-checkpoint/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
(original)
+++
subversion/branches/shelve-checkpoint/subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
Tue Jan 2 09:47:16 2018
@@ -135,6 +135,7 @@ Global options:
--username ARG : specify a username ARG
--password ARG : specify a password ARG (caution: on many operating
systems, other users will be able to see this)
+ --password-from-stdin : read password from stdin
--no-auth-cache : do not cache authentication tokens
--non-interactive : do no interactive prompting (default is to prompt
only if standard input is a terminal device)
@@ -225,6 +226,7 @@ Global options:
--username ARG : specify a username ARG
--password ARG : specify a password ARG (caution: on many operating
systems, other users will be able to see this)
+ --password-from-stdin : read password from stdin
--no-auth-cache : do not cache authentication tokens
--non-interactive : do no interactive prompting (default is to prompt
only if standard input is a terminal device)