You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by tr...@apache.org on 2018/01/31 04:16:44 UTC
svn commit: r1822736 [1/3] - in /subversion/branches/swig-py3: ./ build/
build/generator/ build/generator/swig/ build/generator/util/
subversion/bindings/javahl/native/
subversion/bindings/swig/python/libsvn_swig_py/ subversion/include/
subversion/incl...
Author: troycurtisjr
Date: Wed Jan 31 04:16:43 2018
New Revision: 1822736
URL: http://svn.apache.org/viewvc?rev=1822736&view=rev
Log:
On branch swig-py3: Catchup to trunk @r1822734.
Added:
subversion/branches/swig-py3/subversion/libsvn_client/shelf.c
- copied unchanged from r1822734, subversion/trunk/subversion/libsvn_client/shelf.c
subversion/branches/swig-py3/subversion/svn/shelf-cmd.c
- copied unchanged from r1822734, subversion/trunk/subversion/svn/shelf-cmd.c
subversion/branches/swig-py3/subversion/tests/cmdline/shelf_tests.py
- copied unchanged from r1822734, subversion/trunk/subversion/tests/cmdline/shelf_tests.py
subversion/branches/swig-py3/tools/dist/edit-N-log-messages
- copied unchanged from r1822734, subversion/trunk/tools/dist/edit-N-log-messages
Removed:
subversion/branches/swig-py3/build/generator/util/executable.py
subversion/branches/swig-py3/subversion/tests/cmdline/shelve_tests.py
Modified:
subversion/branches/swig-py3/ (props changed)
subversion/branches/swig-py3/CHANGES
subversion/branches/swig-py3/Makefile.in
subversion/branches/swig-py3/NOTICE
subversion/branches/swig-py3/build/generator/gen_base.py
subversion/branches/swig-py3/build/generator/swig/__init__.py
subversion/branches/swig-py3/build/generator/swig/checkout_swig_header.py
subversion/branches/swig-py3/build/generator/swig/external_runtime.py
subversion/branches/swig-py3/build/run_tests.py
subversion/branches/swig-py3/subversion/bindings/javahl/native/Prompter.cpp
subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
subversion/branches/swig-py3/subversion/include/private/svn_cmdline_private.h
subversion/branches/swig-py3/subversion/include/svn_base64.h
subversion/branches/swig-py3/subversion/include/svn_client.h
subversion/branches/swig-py3/subversion/include/svn_io.h
subversion/branches/swig-py3/subversion/include/svn_ra.h
subversion/branches/swig-py3/subversion/include/svn_ra_svn.h
subversion/branches/swig-py3/subversion/include/svn_repos.h
subversion/branches/swig-py3/subversion/include/svn_string.h
subversion/branches/swig-py3/subversion/include/svn_wc.h
subversion/branches/swig-py3/subversion/include/svn_xml.h
subversion/branches/swig-py3/subversion/libsvn_client/client.h
subversion/branches/swig-py3/subversion/libsvn_client/conflicts.c
subversion/branches/swig-py3/subversion/libsvn_client/deprecated.c
subversion/branches/swig-py3/subversion/libsvn_client/diff.c
subversion/branches/swig-py3/subversion/libsvn_client/revert.c
subversion/branches/swig-py3/subversion/libsvn_client/shelve.c
subversion/branches/swig-py3/subversion/libsvn_diff/parse-diff.c
subversion/branches/swig-py3/subversion/libsvn_subr/cmdline.c
subversion/branches/swig-py3/subversion/libsvn_subr/config_file.c
subversion/branches/swig-py3/subversion/libsvn_subr/io.c
subversion/branches/swig-py3/subversion/libsvn_subr/version.c
subversion/branches/swig-py3/subversion/libsvn_wc/deprecated.c
subversion/branches/swig-py3/subversion/libsvn_wc/revert.c
subversion/branches/swig-py3/subversion/libsvn_wc/wc.h
subversion/branches/swig-py3/subversion/mod_dav_svn/dav_svn.h
subversion/branches/swig-py3/subversion/mod_dav_svn/mod_dav_svn.c
subversion/branches/swig-py3/subversion/mod_dav_svn/version.c
subversion/branches/swig-py3/subversion/svn/cl.h
subversion/branches/swig-py3/subversion/svn/diff-cmd.c
subversion/branches/swig-py3/subversion/svn/log-cmd.c
subversion/branches/swig-py3/subversion/svn/revert-cmd.c
subversion/branches/swig-py3/subversion/svn/shelve-cmd.c
subversion/branches/swig-py3/subversion/svn/svn.c
subversion/branches/swig-py3/subversion/svnbench/svnbench.c
subversion/branches/swig-py3/subversion/svnmucc/svnmucc.c
subversion/branches/swig-py3/subversion/svnrdump/svnrdump.c
subversion/branches/swig-py3/subversion/tests/cmdline/davautocheck.sh
subversion/branches/swig-py3/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout
subversion/branches/swig-py3/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout
subversion/branches/swig-py3/subversion/tests/cmdline/patch_tests.py
subversion/branches/swig-py3/subversion/tests/cmdline/svntest/main.py
subversion/branches/swig-py3/subversion/tests/cmdline/svntest/verify.py
subversion/branches/swig-py3/subversion/tests/libsvn_subr/config-test.c
subversion/branches/swig-py3/subversion/tests/libsvn_subr/config-test.cfg
subversion/branches/swig-py3/tools/buildbot/slaves/bb-openbsd/svnbuild.sh
subversion/branches/swig-py3/tools/buildbot/slaves/bb-openbsd/svncheck-bindings.sh
subversion/branches/swig-py3/tools/buildbot/slaves/bb-openbsd/svncheck.sh
subversion/branches/swig-py3/tools/buildbot/slaves/bb-openbsd/svnclean.sh
subversion/branches/swig-py3/tools/client-side/bash_completion
subversion/branches/swig-py3/tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c
subversion/branches/swig-py3/tools/client-side/svnconflict/svnconflict.c
subversion/branches/swig-py3/tools/dev/svnmover/svnmover.c
subversion/branches/swig-py3/tools/dev/unix-build/Makefile.svn
subversion/branches/swig-py3/tools/dev/unix-build/README
subversion/branches/swig-py3/tools/dist/backport.pl
subversion/branches/swig-py3/tools/examples/ExampleAuthn.java
Propchange: subversion/branches/swig-py3/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Jan 31 04:16:43 2018
@@ -99,4 +99,4 @@
/subversion/branches/verify-at-commit:1462039-1462408
/subversion/branches/verify-keep-going:1439280-1546110
/subversion/branches/wc-collate-path:1402685-1480384
-/subversion/trunk:1813660-1819202
+/subversion/trunk:1813660-1822734
Modified: subversion/branches/swig-py3/CHANGES
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/CHANGES?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/CHANGES (original)
+++ subversion/branches/swig-py3/CHANGES Wed Jan 31 04:16:43 2018
@@ -13,29 +13,28 @@ the 1.9 release: https://subversion.apa
User-visible changes:
- Major new features:
* Better interactive conflict resolution for tree conflicts (r1687489 et al)
- * New and improved implementation of path-based authorization (r1776832)
+ * Wilcards and improved performance in path-based authorization (r1776832)
+ * New experimental 'svn shelve' command (issue #3625)
- 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-revprops' subcommand (r1694191)
- * New 'svnadmin dump-revprops' subcommand (r1694225)
+ * svnbench: Show time taken & bytes transferred (r1703383, r1710586)
+ * New 'svnadmin dump' options to include/exclude paths (r1811992 et al)
+ * New '--normalize-props' option for 'svnadmin dump' (r1807836 et al)
+ * New 'svnadmin 'load-revprops', 'dump-revprops' subcommands (r1694191, -225)
* New '--no-flush-to-disk' option for 'svnadmin load' (r1736357, -7357)
* New '--file' option for several svnadmin subcommands (r1738021)
- * New '--max-request-size' option for svnserve (r1714330)
- * New '--max-response-size' option for svnserve (r1714333)
+ * New '--max-request-size', '--max-response-size' options for svnserve (r1714330, -333)
* New '-rN' option for 'svnadmin lstxns' (r1703699)
* New '--search' option for fast 'svn ls' searches (r1767186 et al)
* Add '--search' option support to 'svnbench null-list' (r1767202)
* New '-M' option for 'svnlook tree' (r1708222)
* New '--skip-unchanged' option for 'svnsync copy-revprops' (r1692655)
- * 'svn log --search' is now case-insensitive (r1731300)
- * 'svn log --search' now ignores diacriticals when matching words (r1735614)
+ * 'svn log --search' now ignores case and diacriticals (r1731300, r1735614)
* Improved performance of server-side log processing (r1732768, r1731656)
* 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,8 +62,9 @@ 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)
+ * FSFS/FSX: Improvements to cache implementation (r1694489)
* FSX: Add checksums to packed revprop manifests and files (r1713132, -9717)
* FSX: Significantly reduce size of packed revprop manifest data (r1713109)
* FSX: Improved on-disk representation of property lists (r1717427)
@@ -78,26 +78,35 @@ 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)
+ * ra_serf: Receive svndiff1 and gzip compressed deltas (r1791282, -3, -4)
* 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:
+ * svnbench: Honour the '--with-no-revprops' option (r1709593)
* 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 +133,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 +141,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 +164,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 +173,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,16 +192,18 @@ 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)
+ * 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)
* svn-vendor.py: Minor enhancements, mostly in treating symlinks (r1732669)
- * bash_completion: Implement much better URL completion (r1701494)
+ * bash_completion: Better URL completion (r1701494)
* bash_completion: Complete arguments to 'svn info --show-item' (r1698276)
- * bash_completion: Add 1.10 options (r1802196)
- * fsfs-stats: Following rename to svnfsfs in r1594860, install a wrapper
- for compatibility (r1802032)
+ * fsfs-stats: New 1.8-compatible wrapper for 'svnfsfs stats' (r1802032)
+ * Drop support for upgrading working copies created with Subversion 1.7
+ (r1807584 et al)
Developer-visible changes:
- General:
@@ -197,11 +214,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 +238,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 +270,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 +286,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
@@ -2969,7 +3003,7 @@ the 1.6 release: http://subversion.apac
* fixed: ra_serf doesn't support http-auth-types config (issue #3435)
* fixed: merge sets incorrect mergeinfo on skipped paths (issue #3440)
* fixed: ra_serf inconsistent handling of cached authn creds (issue #3450)
- * fixed: ra_serf sefault with using NTLM or Negotiate auth (r876910)
+ * fixed: ra_serf segfault with using NTLM or Negotiate auth (r876910)
* fixed: excluded subtrees are not detected by svnversion (issue #3461)
* fixed: submitting a changelist while obstructed item exists (issue #3484)
* fixed: crash when changing an external's URL (issue #3530)
Modified: subversion/branches/swig-py3/Makefile.in
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/Makefile.in?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/Makefile.in (original)
+++ subversion/branches/swig-py3/Makefile.in Wed Jan 31 04:16:43 2018
@@ -602,6 +602,9 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $
if test "$(FSFS_DIR_DELTIFICATION)" != ""; then \
flags="--fsfs-dir-deltification $(FSFS_DIR_DELTIFICATION) $$flags";\
fi; \
+ if test "$(SVN_BIN_DIR)" != ""; then \
+ flags="--bin $(SVN_BIN_DIR) $$flags"; \
+ fi; \
LD_LIBRARY_PATH='$(auth_plugin_dirs):$(LD_LIBRARY_PATH)' \
$(PYTHON) $(top_srcdir)/build/run_tests.py \
--config-file $(top_srcdir)/subversion/tests/tests.conf \
Modified: subversion/branches/swig-py3/NOTICE
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/NOTICE?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/NOTICE (original)
+++ subversion/branches/swig-py3/NOTICE Wed Jan 31 04:16:43 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/swig-py3/build/generator/gen_base.py
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/generator/gen_base.py?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/generator/gen_base.py (original)
+++ subversion/branches/swig-py3/build/generator/gen_base.py Wed Jan 31 04:16:43 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/swig-py3/build/generator/swig/__init__.py
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/generator/swig/__init__.py?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/generator/swig/__init__.py (original)
+++ subversion/branches/swig-py3/build/generator/swig/__init__.py Wed Jan 31 04:16:43 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/swig-py3/build/generator/swig/checkout_swig_header.py
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/generator/swig/checkout_swig_header.py?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/generator/swig/checkout_swig_header.py (original)
+++ subversion/branches/swig-py3/build/generator/swig/checkout_swig_header.py Wed Jan 31 04:16:43 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/swig-py3/build/generator/swig/external_runtime.py
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/generator/swig/external_runtime.py?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/generator/swig/external_runtime.py (original)
+++ subversion/branches/swig-py3/build/generator/swig/external_runtime.py Wed Jan 31 04:16:43 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/swig-py3/build/run_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/build/run_tests.py?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/build/run_tests.py (original)
+++ subversion/branches/swig-py3/build/run_tests.py Wed Jan 31 04:16:43 2018
@@ -24,7 +24,7 @@
#
'''usage: python run_tests.py
- [--verbose] [--log-to-stdout] [--cleanup]
+ [--verbose] [--log-to-stdout] [--cleanup] [--bin=<path>]
[--parallel | --parallel=<n>] [--global-scheduler]
[--url=<base-url>] [--http-library=<http-library>] [--enable-sasl]
[--fs-type=<fs-type>] [--fsfs-packing] [--fsfs-sharding=<n>]
Modified: subversion/branches/swig-py3/subversion/bindings/javahl/native/Prompter.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/javahl/native/Prompter.cpp?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/javahl/native/Prompter.cpp (original)
+++ subversion/branches/swig-py3/subversion/bindings/javahl/native/Prompter.cpp Wed Jan 31 04:16:43 2018
@@ -342,8 +342,7 @@ svn_error_t *Prompter::dispatch_ssl_serv
svn_auth_cred_ssl_server_trust_t *cred =
static_cast<svn_auth_cred_ssl_server_trust_t*>(apr_pcalloc(pool, sizeof(*cred)));
cred->may_save = save;
- if (save)
- cred->accepted_failures = failures;
+ cred->accepted_failures = failures;
*cred_p = cred;
return SVN_NO_ERROR;
Modified: subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (original)
+++ subversion/branches/swig-py3/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c Wed Jan 31 04:16:43 2018
@@ -2659,8 +2659,7 @@ svn_swig_py_make_stream(PyObject *py_io,
svn_stream_t *stream;
stream = svn_stream_create(py_io, pool);
- svn_stream_set_read2(stream, NULL /* only full read support */,
- read_handler_pyio);
+ svn_stream_set_read2(stream, read_handler_pyio, NULL);
svn_stream_set_write(stream, write_handler_pyio);
svn_stream_set_close(stream, close_handler_pyio);
apr_pool_cleanup_register(pool, py_io, svn_swig_py_stream_destroy,
Modified: subversion/branches/swig-py3/subversion/include/private/svn_cmdline_private.h
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/include/private/svn_cmdline_private.h?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/include/private/svn_cmdline_private.h (original)
+++ subversion/branches/swig-py3/subversion/include/private/svn_cmdline_private.h Wed Jan 31 04:16:43 2018
@@ -269,6 +269,15 @@ svn_cmdline__disable_cancellation_handle
void
svn_cmdline__cancellation_exit(void);
+/** Reads a string from stdin until a newline or EOF is found
+ *
+ * @since New in 1.10.
+ */
+svn_error_t *
+svn_cmdline__stdin_readline(const char **result,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/branches/swig-py3/subversion/include/svn_base64.h
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/include/svn_base64.h?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/include/svn_base64.h (original)
+++ subversion/branches/swig-py3/subversion/include/svn_base64.h Wed Jan 31 04:16:43 2018
@@ -51,6 +51,8 @@ extern "C" {
* stream will only consist of base64 encoding characters. Be sure to close
* the stream when done writing in order to squeeze out the last bit of
* encoded data. The stream is allocated in @a pool.
+ *
+ * @since New in 1.10.
*/
svn_stream_t *
svn_base64_encode2(svn_stream_t *output,
Modified: subversion/branches/swig-py3/subversion/include/svn_client.h
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/include/svn_client.h?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/include/svn_client.h (original)
+++ subversion/branches/swig-py3/subversion/include/svn_client.h Wed Jan 31 04:16:43 2018
@@ -3060,6 +3060,11 @@ svn_client_blame(const char *path_or_url
* The above two options are mutually exclusive. It is an error to set
* both to TRUE.
*
+ * If @a pretty_print_mergeinfo is true, then describe 'svn:mergeinfo'
+ * property changes in a human-readable form that says what changes were
+ * merged or reverse merged; otherwise (or if the mergeinfo property values
+ * don't parse correctly) display them just like any other property.
+ *
* Generated headers are encoded using @a header_encoding.
*
* Diff output will not be generated for binary files, unless @a
@@ -3090,8 +3095,39 @@ svn_client_blame(const char *path_or_url
* @note @a relative_to_dir doesn't affect the path index generated by
* external diff programs.
*
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_diff7(const apr_array_header_t *diff_options,
+ const char *path_or_url1,
+ const svn_opt_revision_t *revision1,
+ const char *path_or_url2,
+ const svn_opt_revision_t *revision2,
+ const char *relative_to_dir,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ const apr_array_header_t *changelists,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/** Similar to svn_client_diff7(), but with @a pretty_print_mergeinfo
+ * always passed as @c TRUE.
+ *
+ * @deprecated Provided for backward compatibility with the 1.10 API.
* @since New in 1.8.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_diff6(const apr_array_header_t *diff_options,
const char *path_or_url1,
@@ -3249,14 +3285,45 @@ svn_client_diff(const apr_array_header_t
* be either a working-copy path or URL.
*
* If @a peg_revision is #svn_opt_revision_unspecified, behave
- * identically to svn_client_diff6(), using @a path_or_url for both of that
+ * identically to svn_client_diff7(), using @a path_or_url for both of that
* function's @a path_or_url1 and @a path_or_url2 arguments.
*
- * All other options are handled identically to svn_client_diff6().
+ * All other options are handled identically to svn_client_diff7().
*
* @since New in 1.8.
*/
svn_error_t *
+svn_client_diff_peg7(const apr_array_header_t *diff_options,
+ const char *path_or_url,
+ const svn_opt_revision_t *peg_revision,
+ const svn_opt_revision_t *start_revision,
+ const svn_opt_revision_t *end_revision,
+ const char *relative_to_dir,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ const apr_array_header_t *changelists,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool);
+
+/** Similar to svn_client_diff_peg7(), but with @a pretty_print_mergeinfo
+ * always passed as @c TRUE.
+ *
+ * @deprecated Provided for backward compatibility with the 1.7 API.
+ * @since New in 1.7.
+ */
+SVN_DEPRECATED
+svn_error_t *
svn_client_diff_peg6(const apr_array_header_t *diff_options,
const char *path_or_url,
const svn_opt_revision_t *peg_revision,
@@ -3419,7 +3486,7 @@ svn_client_diff_peg(const apr_array_head
* Calls @a summarize_func with @a summarize_baton for each difference
* with a #svn_client_diff_summarize_t structure describing the difference.
*
- * See svn_client_diff6() for a description of the other parameters.
+ * See svn_client_diff7() for a description of the other parameters.
*
* @since New in 1.5.
*/
@@ -4274,17 +4341,23 @@ svn_client_relocate(const char *dir,
/**
* Restore the pristine version of working copy @a paths,
- * effectively undoing any local mods. For each path in @a paths,
- * revert it if it is a file. Else if it is a directory, revert
- * according to @a depth:
+ * effectively undoing any local mods. This means returning each
+ * path's versioned status to 'unmodified' and changing its on-disk
+ * state to match that.
+ *
+ * If an item was in a state of conflict, reverting also marks the
+ * conflict as resolved. If there are conflict marker files attached
+ * to the item, these are removed.
*
* @a paths is an array of (const char *) local WC paths.
*
- * If @a depth is #svn_depth_empty, revert just the properties on
- * the directory; else if #svn_depth_files, revert the properties
+ * For each path in @a paths, revert it if it is a file. Else if it is
+ * a directory, revert according to @a depth:
+ * If @a depth is #svn_depth_empty, revert just
+ * the directory; else if #svn_depth_files, revert the directory
* and any files immediately under the directory; else if
* #svn_depth_immediates, revert all of the preceding plus
- * properties on immediate subdirectories; else if #svn_depth_infinity,
+ * immediate subdirectories; else if #svn_depth_infinity,
* revert path and everything under it fully recursively.
*
* @a changelists is an array of <tt>const char *</tt> changelist
@@ -4296,9 +4369,14 @@ svn_client_relocate(const char *dir,
* If @a clear_changelists is TRUE, then changelist information for the
* paths is cleared while reverting.
*
- * If @a metadata_only is TRUE, the files and directories aren't changed
- * by the operation. If there are conflict marker files attached to the
- * targets these are removed.
+ * The @a metadata_only and @a added_keep_local options control the
+ * extent of reverting. If @a metadata_only is TRUE, the working copy
+ * files are untouched, but if there are conflict marker files attached
+ * to these files these markers are removed. Otherwise, if
+ * @a added_keep_local is TRUE, then all items are reverted except an
+ * item that was scheduled as plain 'add' (not a copy) will not be
+ * removed from the working copy. Otherwise, all items are reverted and
+ * their on-disk state changed to match.
*
* If @a ctx->notify_func2 is non-NULL, then for each item reverted,
* call @a ctx->notify_func2 with @a ctx->notify_baton2 and the path of
@@ -4308,8 +4386,28 @@ svn_client_relocate(const char *dir,
* then do not error, just invoke @a ctx->notify_func2 with @a
* ctx->notify_baton2, using notification code #svn_wc_notify_skip.
*
+ * @warn The 'revert' command intentionally and permanently loses
+ * local modifications.
+ *
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_client_revert4(const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_boolean_t clear_changelists,
+ svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/** Similar to svn_client_revert4(), but with @a remove_added_from_disk set to
+ * FALSE.
+ *
* @since New in 1.9.
+ * @deprecated Provided for backwards compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_client_revert3(const apr_array_header_t *paths,
svn_depth_t depth,
@@ -4376,7 +4474,7 @@ typedef struct svn_client_conflict_t svn
typedef struct svn_client_conflict_option_t svn_client_conflict_option_t;
/**
- * A public enumuneration of conflict option IDs.
+ * A public enumeration of conflict option IDs.
*
* @since New in 1.10, unless noted otherwise.
*/
@@ -6506,7 +6604,7 @@ svn_client_list4(const char *path_or_url
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool);
-/** Similar to svn_client_list4(), but with @a patterm set to @c NULL.
+/** Similar to svn_client_list4(), but with @a patterns set to @c NULL.
*
* @since New in 1.8.
*
@@ -6715,7 +6813,262 @@ svn_client_cat(svn_stream_t *out,
-/** Shelving commands
+/** Shelving v2, with checkpoints
+ *
+ * @defgroup svn_client_shelves_checkpoints Shelves and checkpoints
+ * @{
+ */
+
+/** A shelf.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+typedef struct svn_client_shelf_t
+{
+ /* Public fields (read-only for public use) */
+ const char *name;
+ int max_version;
+
+ /* Private fields */
+ const char *wc_root_abspath;
+ const char *shelves_dir;
+ apr_hash_t *revprops; /* non-null; allocated in POOL */
+ svn_client_ctx_t *ctx;
+ apr_pool_t *pool;
+} svn_client_shelf_t;
+
+/** One version of a shelved change-set.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+typedef struct svn_client_shelf_version_t
+{
+ /* Public fields (read-only for public use) */
+ svn_client_shelf_t *shelf;
+ apr_time_t mtime; /** time-stamp of this version */
+
+ /* TODO: these should be Private fields */
+ const char *patch_abspath; /** abspath of the patch file */
+} svn_client_shelf_version_t;
+
+/** Open an existing shelf or create a new shelf.
+ *
+ * The shelf should be closed after use by calling svn_client_shelf_close().
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_open(svn_client_shelf_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool);
+
+/** Open an existing shelf or error if it doesn't exist.
+ *
+ * The shelf should be closed after use by calling svn_client_shelf_close().
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_open_existing(svn_client_shelf_t **shelf_p,
+ const char *name,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool);
+
+/** Close @a shelf.
+ *
+ * If @a shelf is NULL, do nothing; otherwise @a shelf must be an open shelf.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_close(svn_client_shelf_t *shelf,
+ apr_pool_t *scratch_pool);
+
+/** Delete a shelf, by name.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_delete(const char *name,
+ const char *local_abspath,
+ svn_boolean_t dry_run,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *scratch_pool);
+
+/** Save the local modifications found by @a paths, @a depth,
+ * @a changelists as a new version of @a shelf.
+ *
+ * @a paths are relative to the CWD, or absolute.
+ *
+ * If there are no local modifications in the specified locations, do not
+ * create a new version of @a shelf.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_save_new_version(svn_client_shelf_t *shelf,
+ const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ apr_pool_t *scratch_pool);
+
+/** Set the newest version of @a shelf to @a version.
+ *
+ * Delete all newer versions.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_set_current_version(svn_client_shelf_t *shelf,
+ int version,
+ apr_pool_t *scratch_pool);
+
+/** Open an existing shelf version.
+ *
+ * There is no need to "close" it after use.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_version_open(svn_client_shelf_version_t **shelf_version_p,
+ svn_client_shelf_t *shelf,
+ int version,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Apply version @a version of @a shelf to the WC.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_apply(svn_client_shelf_version_t *shelf_version,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool);
+
+/** Reverse-apply the current version of @a shelf to the WC.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_unapply(svn_client_shelf_version_t *shelf_version,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool);
+
+/** Set @a *patch_abspath to the patch file path of @a shelf_version.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_get_patch_abspath(const char **patch_abspath,
+ svn_client_shelf_version_t *shelf_version,
+ apr_pool_t *scratch_pool);
+
+/** Output version @a version of @a shelf as a patch to @a outstream.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_export_patch(svn_client_shelf_version_t *shelf_version,
+ svn_stream_t *outstream,
+ apr_pool_t *scratch_pool);
+
+/** Set @a *affected_paths to a hash with one entry for each path affected
+ * by the @a shelf @a version. The hash key is the old path and value is
+ * the new path, both relative to the WC root. The key and value are the
+ * same except when a path is moved or copied.
+ *
+ * @since New in 1.10, changed in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_paths_changed(apr_hash_t **affected_paths,
+ svn_client_shelf_version_t *shelf_version,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** Set the log message in @a shelf, using the log message callbacks in
+ * the client context, and set other revprops to @a revprop_table.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_set_log_message(svn_client_shelf_t *shelf,
+ apr_hash_t *revprop_table,
+ svn_boolean_t dry_run,
+ apr_pool_t *scratch_pool);
+
+/** Get the log message in @a shelf into @a *log_message.
+ *
+ * Set @a *log_message to NULL if there is no log message.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_get_log_message(char **log_message,
+ svn_client_shelf_t *shelf,
+ apr_pool_t *result_pool);
+
+/** Information about a shelf.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+typedef struct svn_client_shelf_info_t
+{
+ apr_time_t mtime; /* mtime of the latest change */
+} svn_client_shelf_info_t;
+
+/** Set @a *shelved_patch_infos to a hash, keyed by shelf name, of pointers to
+ * @c svn_client_shelf_info_t structures.
+ *
+ * @a local_abspath is any path in the WC and is used to find the WC root.
+ *
+ * @since New in 1.X.
+ * @warning EXPERIMENTAL.
+ */
+SVN_EXPERIMENTAL
+svn_error_t *
+svn_client_shelf_list(apr_hash_t **shelf_infos,
+ const char *local_abspath,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *result_pool,
+ apr_pool_t *scratch_pool);
+
+/** @} */
+
+/** Shelving v1
*
* @defgroup svn_client_shelve_funcs Client Shelving Functions
* @{
@@ -6808,26 +7161,6 @@ svn_client_shelves_list(apr_hash_t **she
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
-/** Set @a *any_shelved to indicate if there are any shelved changes in this WC.
- *
- * This shall provide the answer fast, regardless of how many changes
- * are stored, unlike svn_client_shelves_list().
- *
- * ### Initial implementation isn't O(1) fast -- it just calls
- * svn_client_shelves_list().
- *
- * @a local_abspath is any path in the WC and is used to find the WC root.
- *
- * @since New in 1.10.
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client_shelves_any(svn_boolean_t *any_shelved,
- const char *local_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool);
-
/** Set @a *affected_paths to a hash with one entry for each path affected
* by the shelf @a name. The hash key is the old path and value is
* the new path, both relative to the WC root. The key and value are the
@@ -6860,65 +7193,6 @@ svn_client_shelf_has_changes(svn_boolean
svn_client_ctx_t *ctx,
apr_pool_t *scratch_pool);
-/** Write local changes to a patch file for shelved change @a name.
- *
- * @a message: An optional log message.
- *
- * @a wc_root_abspath: The WC root dir.
- *
- * @a overwrite_existing: If a file at @a patch_abspath exists, overwrite it.
- *
- * @a paths, @a depth, @a changelists: The selection of local paths to diff.
- *
- * @since New in 1.10.
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client_shelf_write_patch(const char *name,
- const char *message,
- const char *wc_root_abspath,
- svn_boolean_t overwrite_existing,
- const apr_array_header_t *paths,
- svn_depth_t depth,
- const apr_array_header_t *changelists,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool);
-
-/** Apply the patch file for shelved change @a name to the WC.
- *
- * @a wc_root_abspath: The WC root dir.
- *
- * @a reverse: Apply the patch in reverse.
- *
- * @a dry_run: Don't really apply the changes, just notify what would be done.
- *
- * @since New in 1.10.
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client_shelf_apply_patch(const char *name,
- const char *wc_root_abspath,
- svn_boolean_t reverse,
- svn_boolean_t dry_run,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool);
-
-/** Delete the patch file for shelved change @a name.
- *
- * @a wc_root_abspath: The WC root dir.
- *
- * @since New in 1.10.
- * @warning EXPERIMENTAL.
- */
-SVN_EXPERIMENTAL
-svn_error_t *
-svn_client_shelf_delete_patch(const char *name,
- const char *wc_root_abspath,
- svn_client_ctx_t *ctx,
- apr_pool_t *scratch_pool);
-
/** @} */
/** Changelist commands
@@ -6927,15 +7201,6 @@ svn_client_shelf_delete_patch(const char
* @{
*/
-/** Implementation note:
- *
- * For now, changelists are implemented by scattering the
- * associations across multiple .svn/entries files in a working copy.
- * However, this client API was written so that we have the option of
- * changing the underlying implementation -- we may someday want to
- * store changelist definitions in a centralized database.
- */
-
/**
* Add each path in @a paths (recursing to @a depth as necessary) to
* @a changelist. If a path is already a member of another
Modified: subversion/branches/swig-py3/subversion/include/svn_io.h
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/include/svn_io.h?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/include/svn_io.h (original)
+++ subversion/branches/swig-py3/subversion/include/svn_io.h Wed Jan 31 04:16:43 2018
@@ -2410,10 +2410,12 @@ svn_io_write_atomic2(const char *final_p
apr_pool_t *scratch_pool);
/** Similar to svn_io_write_atomic2(), but with @a flush_to_disk set
-* to @c TRUE.
-*
-* @deprecated Provided for backward compatibility with the 1.9 API
-*/
+ * to @c TRUE.
+ *
+ * @since New in 1.9.
+ *
+ * @deprecated Provided for backward compatibility with the 1.9 API
+ */
SVN_DEPRECATED
svn_error_t *
svn_io_write_atomic(const char *final_path,
@@ -2633,15 +2635,6 @@ 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/swig-py3/subversion/include/svn_ra.h
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/include/svn_ra.h?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/include/svn_ra.h (original)
+++ subversion/branches/swig-py3/subversion/include/svn_ra.h Wed Jan 31 04:16:43 2018
@@ -1130,13 +1130,12 @@ svn_ra_get_dir(svn_ra_session_t *session
apr_pool_t *pool);
/**
- * Callback type to be used with @a svn_ra_list. It will be invoked for
+ * Callback type to be used with svn_ra_list(). It will be invoked for
* every directory entry found.
*
* The full path of the entry is given in @a rel_path and @a dirent contains
- * various additional information. If @a svn_repos_list has been called
- * with @c path_info_only set, only the @c kind element of this struct
- * will be valid.
+ * various additional information. Only the elements of @a dirent specified
+ * by the @a dirent_fields argument to svn_ra_list() will be valid.
*
* @a baton is the user-provided receiver baton. @a scratch_pool may be
* used for temporary allocations.
@@ -1155,21 +1154,21 @@ typedef svn_error_t *(* svn_ra_dirent_re
* In @a session, walk the sub-tree starting at @a path at @a revision down
* to the given @a depth. For each directory entry found, @a receiver will
* be called with @a receiver_baton. The starting @a path will be reported
- * as well. Because retrieving elements of a @c svn_dirent_t can be
+ * as well. Because retrieving elements of a #svn_dirent_t can be
* expensive, you need to select them individually via flags set in
* @a dirent_fields.
*
* @a patterns is an optional array of <tt>const char *</tt>. If it is
* not @c NULL, only those directory entries will be reported whose last
* path segment matches at least one of these patterns. This feature uses
- * @c apr_fnmatch for glob matching and requiring '.' to matched by dots
+ * apr_fnmatch() for glob matching and requiring '.' to matched by dots
* in the path.
*
* @a path must point to a directory and @a depth must be at least
- * @c svn_depth_empty.
+ * #svn_depth_empty.
*
* If the server doesn't support the 'list' command, return
- * @c SVN_ERR_UNSUPPORTED_FEATURE in preference to any other error that
+ * #SVN_ERR_UNSUPPORTED_FEATURE in preference to any other error that
* might otherwise be returned.
*
* Use @a scratch_pool for temporary memory allocation.
Modified: subversion/branches/swig-py3/subversion/include/svn_ra_svn.h
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/include/svn_ra_svn.h?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/include/svn_ra_svn.h (original)
+++ subversion/branches/swig-py3/subversion/include/svn_ra_svn.h Wed Jan 31 04:16:43 2018
@@ -144,7 +144,9 @@ typedef struct svn_ra_svn_cmd_entry_t
svn_boolean_t terminate;
} svn_ra_svn_cmd_entry_t;
-/** Data types defined by the svn:// protocol. */
+/** Data types defined by the svn:// protocol.
+ *
+ * @since The typedef name is new in 1.10; the enumerators are not. */
typedef enum
{
SVN_RA_SVN_NUMBER,
Modified: subversion/branches/swig-py3/subversion/include/svn_repos.h
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/include/svn_repos.h?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/include/svn_repos.h (original)
+++ subversion/branches/swig-py3/subversion/include/svn_repos.h Wed Jan 31 04:16:43 2018
@@ -1726,11 +1726,11 @@ svn_repos_stat(svn_dirent_t **dirent,
apr_pool_t *pool);
/**
- * Callback type to be used with @c svn_repos_list. It will be invoked for
+ * Callback type to be used with svn_repos_list(). It will be invoked for
* every directory entry found.
*
* The full path of the entry is given in @a path and @a dirent contains
- * various additional information. If @c svn_repos_list has been called
+ * various additional information. If svn_repos_list() has been called
* with @a path_info_only set, only the @a kind element of this struct
* will be valid.
*
@@ -1751,14 +1751,14 @@ typedef svn_error_t *(* svn_repos_dirent
* Walk the sub-tree starting at @a path under @a root up to the given
* @a depth. For each directory entry found, @a receiver will be called
* with @a receiver_baton. The starting @a path will be reported as well.
- * Because retrieving all elements of a @c svn_dirent_t can be expensive,
+ * Because retrieving all elements of a #svn_dirent_t can be expensive,
* you may set @a path_info_only to receive only the path name and the node
* kind. The entries will be reported ordered by their path.
*
* @a patterns is an optional array of <tt>const char *</tt>. If it is
* not @c NULL, only those directory entries will be reported whose last
* path segment matches at least one of these patterns. This feature uses
- * @c apr_fnmatch for glob matching and requiring '.' to matched by dots
+ * apr_fnmatch() for glob matching and requiring '.' to matched by dots
* in the path.
*
* If @a authz_read_func is not @c NULL, this function will neither report
@@ -1768,7 +1768,7 @@ typedef svn_error_t *(* svn_repos_dirent
* @a cancel_func and @a cancel_baton.
*
* @a path must point to a directory and @a depth must be at least
- * @c svn_depth_empty.
+ * #svn_depth_empty.
*
* Use @a scratch_pool for temporary memory allocation.
*
Modified: subversion/branches/swig-py3/subversion/include/svn_string.h
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/include/svn_string.h?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/include/svn_string.h (original)
+++ subversion/branches/swig-py3/subversion/include/svn_string.h Wed Jan 31 04:16:43 2018
@@ -530,8 +530,7 @@ svn_cstring_count_newlines(const char *m
/**
* Return a cstring which is the concatenation of @a strings (an array
- * of char *) each followed by @a separator (that is, @a separator
- * will also end the resulting string). Allocate the result in @a pool.
+ * of char *) joined by @a separator. Allocate the result in @a pool.
* If @a strings is empty, then return the empty string.
* If @a trailing_separator is non-zero, also append the separator
* after the last joined element.
Modified: subversion/branches/swig-py3/subversion/include/svn_wc.h
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/include/svn_wc.h?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/include/svn_wc.h (original)
+++ subversion/branches/swig-py3/subversion/include/svn_wc.h Wed Jan 31 04:16:43 2018
@@ -7602,9 +7602,14 @@ svn_wc_relocate(const char *path,
* If @a clear_changelists is TRUE, then changelist information for the
* paths is cleared.
*
- * If @a metadata_only is TRUE, the working copy files are untouched, but
- * if there are conflict marker files attached to these files these
- * markers are removed.
+ * The @a metadata_only and @a added_keep_local options control the
+ * extent of reverting. If @a metadata_only is TRUE, the working copy
+ * files are untouched, but if there are conflict marker files attached
+ * to these files these markers are removed. Otherwise, if
+ * @a added_keep_local is TRUE, then all items are reverted except an
+ * item that was scheduled as plain 'add' (not a copy) will not be
+ * removed from the working copy. Otherwise, all items are reverted and
+ * their on-disk state changed to match.
*
* If @a cancel_func is non-NULL, call it with @a cancel_baton at
* various points during the reversion process. If it returns an
@@ -7622,8 +7627,30 @@ svn_wc_relocate(const char *path,
* If @a path is not under version control, return the error
* #SVN_ERR_UNVERSIONED_RESOURCE.
*
+ * @since New in 1.11.
+ */
+svn_error_t *
+svn_wc_revert6(svn_wc_context_t *wc_ctx,
+ const char *local_abspath,
+ svn_depth_t depth,
+ svn_boolean_t use_commit_times,
+ const apr_array_header_t *changelist_filter,
+ svn_boolean_t clear_changelists,
+ svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
+ svn_cancel_func_t cancel_func,
+ void *cancel_baton,
+ svn_wc_notify_func2_t notify_func,
+ void *notify_baton,
+ apr_pool_t *scratch_pool);
+
+/** Similar to svn_wc_revert6() but with @a remove_added_from_disk always
+ * set to FALSE.
+ *
* @since New in 1.9.
+ * @deprecated Provided for backward compatibility with the 1.10 API.
*/
+SVN_DEPRECATED
svn_error_t *
svn_wc_revert5(svn_wc_context_t *wc_ctx,
const char *local_abspath,
Modified: subversion/branches/swig-py3/subversion/include/svn_xml.h
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/include/svn_xml.h?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/include/svn_xml.h (original)
+++ subversion/branches/swig-py3/subversion/include/svn_xml.h Wed Jan 31 04:16:43 2018
@@ -175,7 +175,7 @@ typedef void (*svn_xml_char_data)(void *
* but some internal structures may be allocated out of pool. Use
* svn_xml_free_parser() to free all memory used by the parser.
*
- * Since Subversion 1.10 parser will be freed automatically on pool
+ * @since Since Subversion 1.10 parser will be freed automatically on pool
* cleanup or by svn_xml_free_parser() call.
*/
svn_xml_parser_t *
Modified: subversion/branches/swig-py3/subversion/libsvn_client/client.h
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/libsvn_client/client.h?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/libsvn_client/client.h (original)
+++ subversion/branches/swig-py3/subversion/libsvn_client/client.h Wed Jan 31 04:16:43 2018
@@ -1267,6 +1267,39 @@ svn_client__merge_locked(svn_client__con
apr_pool_t *result_pool,
apr_pool_t *scratch_pool);
+/** Set @a shelf's revprop @a prop_name to @a prop_val.
+ *
+ * If @a prop_val is NULL, delete the property (if present).
+ */
+svn_error_t *
+svn_client__shelf_revprop_set(svn_client_shelf_t *shelf,
+ const char *prop_name,
+ const svn_string_t *prop_val,
+ apr_pool_t *scratch_pool);
+
+/** Get @a shelf's revprop @a prop_name into @a *prop_val.
+ *
+ * If the property is not present, set @a *prop_val to NULL.
+ *
+ * The lifetime of the result is limited to that of @a shelf and/or
+ * of @a result_pool.
+ */
+svn_error_t *
+svn_client__shelf_revprop_get(svn_string_t **prop_val,
+ svn_client_shelf_t *shelf,
+ const char *prop_name,
+ apr_pool_t *result_pool);
+
+/** Get @a shelf's revprops into @a props.
+ *
+ * The lifetime of the result is limited to that of @a shelf and/or
+ * of @a result_pool.
+ */
+svn_error_t *
+svn_client__shelf_revprop_list(apr_hash_t **props,
+ svn_client_shelf_t *shelf,
+ apr_pool_t *result_pool);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
Modified: subversion/branches/swig-py3/subversion/libsvn_client/conflicts.c
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/libsvn_client/conflicts.c?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/libsvn_client/conflicts.c (original)
+++ subversion/branches/swig-py3/subversion/libsvn_client/conflicts.c Wed Jan 31 04:16:43 2018
@@ -9841,12 +9841,6 @@ configure_option_incoming_move_file_merg
const char *incoming_new_repos_relpath;
svn_revnum_t incoming_new_pegrev;
svn_node_kind_t incoming_new_kind;
- struct conflict_tree_incoming_delete_details *details;
-
- details = conflict->tree_conflict_incoming_details;
- if (details == NULL || details->moves == NULL)
- return SVN_NO_ERROR;
-
incoming_change = svn_client_conflict_get_incoming_change(conflict);
victim_node_kind = svn_client_conflict_tree_get_victim_node_kind(conflict);
SVN_ERR(svn_client_conflict_get_incoming_old_repos_location(
@@ -9863,8 +9857,13 @@ configure_option_incoming_move_file_merg
incoming_new_kind == svn_node_none &&
incoming_change == svn_wc_conflict_action_delete)
{
+ struct conflict_tree_incoming_delete_details *details;
const char *description;
+ details = conflict->tree_conflict_incoming_details;
+ if (details == NULL || details->moves == NULL)
+ return SVN_NO_ERROR;
+
if (apr_hash_count(details->wc_move_targets) == 0)
return SVN_NO_ERROR;
@@ -9899,11 +9898,6 @@ configure_option_incoming_dir_merge(svn_
const char *incoming_new_repos_relpath;
svn_revnum_t incoming_new_pegrev;
svn_node_kind_t incoming_new_kind;
- struct conflict_tree_incoming_delete_details *details;
-
- details = conflict->tree_conflict_incoming_details;
- if (details == NULL || details->moves == NULL)
- return SVN_NO_ERROR;
incoming_change = svn_client_conflict_get_incoming_change(conflict);
victim_node_kind = svn_client_conflict_tree_get_victim_node_kind(conflict);
@@ -9921,8 +9915,13 @@ configure_option_incoming_dir_merge(svn_
incoming_new_kind == svn_node_none &&
incoming_change == svn_wc_conflict_action_delete)
{
+ struct conflict_tree_incoming_delete_details *details;
const char *description;
+ details = conflict->tree_conflict_incoming_details;
+ if (details == NULL || details->moves == NULL)
+ return SVN_NO_ERROR;
+
if (apr_hash_count(details->wc_move_targets) == 0)
return SVN_NO_ERROR;
Modified: subversion/branches/swig-py3/subversion/libsvn_client/deprecated.c
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/libsvn_client/deprecated.c?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/libsvn_client/deprecated.c (original)
+++ subversion/branches/swig-py3/subversion/libsvn_client/deprecated.c Wed Jan 31 04:16:43 2018
@@ -936,6 +936,42 @@ svn_client_delete(svn_client_commit_info
/*** From diff.c ***/
svn_error_t *
+svn_client_diff6(const apr_array_header_t *diff_options,
+ const char *path_or_url1,
+ const svn_opt_revision_t *revision1,
+ const char *path_or_url2,
+ const svn_opt_revision_t *revision2,
+ const char *relative_to_dir,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ const apr_array_header_t *changelists,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ return svn_client_diff7(diff_options,
+ path_or_url1, revision1,
+ path_or_url2, revision2,
+ relative_to_dir, depth,
+ ignore_ancestry, no_diff_added,
+ no_diff_deleted, show_copies_as_adds,
+ ignore_content_type, ignore_properties,
+ properties_only, use_git_diff_format,
+ TRUE /*pretty_print_mergeinfo*/,
+ header_encoding,
+ outstream, errstream, changelists, ctx, pool);
+}
+
+svn_error_t *
svn_client_diff5(const apr_array_header_t *diff_options,
const char *path1,
const svn_opt_revision_t *revision1,
@@ -1058,6 +1094,53 @@ svn_client_diff(const apr_array_header_t
}
svn_error_t *
+svn_client_diff_peg6(const apr_array_header_t *options,
+ const char *path_or_url,
+ const svn_opt_revision_t *peg_revision,
+ const svn_opt_revision_t *start_revision,
+ const svn_opt_revision_t *end_revision,
+ const char *relative_to_dir,
+ svn_depth_t depth,
+ svn_boolean_t ignore_ancestry,
+ svn_boolean_t no_diff_added,
+ svn_boolean_t no_diff_deleted,
+ svn_boolean_t show_copies_as_adds,
+ svn_boolean_t ignore_content_type,
+ svn_boolean_t ignore_properties,
+ svn_boolean_t properties_only,
+ svn_boolean_t use_git_diff_format,
+ const char *header_encoding,
+ svn_stream_t *outstream,
+ svn_stream_t *errstream,
+ const apr_array_header_t *changelists,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ return svn_client_diff_peg7(options,
+ path_or_url,
+ peg_revision,
+ start_revision,
+ end_revision,
+ relative_to_dir,
+ depth,
+ ignore_ancestry,
+ no_diff_added,
+ no_diff_deleted,
+ show_copies_as_adds,
+ ignore_content_type,
+ ignore_properties,
+ properties_only,
+ use_git_diff_format,
+ TRUE /*pretty_print_mergeinfo*/,
+ header_encoding,
+ outstream,
+ errstream,
+ changelists,
+ ctx,
+ pool);
+}
+
+svn_error_t *
svn_client_diff_peg5(const apr_array_header_t *diff_options,
const char *path,
const svn_opt_revision_t *peg_revision,
@@ -2853,6 +2936,22 @@ svn_client_resolved(const char *path,
}
/*** From revert.c ***/
svn_error_t *
+svn_client_revert3(const apr_array_header_t *paths,
+ svn_depth_t depth,
+ const apr_array_header_t *changelists,
+ svn_boolean_t clear_changelists,
+ svn_boolean_t metadata_only,
+ svn_client_ctx_t *ctx,
+ apr_pool_t *pool)
+{
+ SVN_ERR(svn_client_revert4(paths, depth, changelists,
+ clear_changelists, metadata_only,
+ TRUE /*added_keep_local*/,
+ ctx, pool));
+ return SVN_NO_ERROR;
+}
+
+svn_error_t *
svn_client_revert2(const apr_array_header_t *paths,
svn_depth_t depth,
const apr_array_header_t *changelists,
Modified: subversion/branches/swig-py3/subversion/libsvn_client/diff.c
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/libsvn_client/diff.c?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/libsvn_client/diff.c (original)
+++ subversion/branches/swig-py3/subversion/libsvn_client/diff.c Wed Jan 31 04:16:43 2018
@@ -489,7 +489,7 @@ print_git_diff_header(svn_stream_t *os,
/* A helper func that writes out verbal descriptions of property diffs
to OUTSTREAM. Of course, OUTSTREAM will probably be whatever was
- passed to svn_client_diff6(), which is probably stdout.
+ passed to svn_client_diff7(), which is probably stdout.
### FIXME needs proper docstring
@@ -498,6 +498,11 @@ print_git_diff_header(svn_stream_t *os,
needed to normalize paths relative the repository root, and are ignored
if USE_GIT_DIFF_FORMAT is FALSE.
+ If @a pretty_print_mergeinfo is true, then describe 'svn:mergeinfo'
+ property changes in a human-readable form that says what changes were
+ merged or reverse merged; otherwise (or if the mergeinfo property values
+ don't parse correctly) display them just like any other property.
+
ANCHOR is the local path where the diff editor is anchored. */
static svn_error_t *
display_prop_diffs(const apr_array_header_t *propchanges,
@@ -514,6 +519,7 @@ display_prop_diffs(const apr_array_heade
const char *relative_to_dir,
svn_boolean_t show_diff_header,
svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
const char *ra_session_relpath,
svn_cancel_func_t cancel_func,
void *cancel_baton,
@@ -588,7 +594,7 @@ display_prop_diffs(const apr_array_heade
SVN_ERR(svn_diff__display_prop_diffs(
outstream, encoding, propchanges, left_props,
- TRUE /* pretty_print_mergeinfo */,
+ pretty_print_mergeinfo,
-1 /* context_size */,
cancel_func, cancel_baton, scratch_pool));
@@ -668,6 +674,9 @@ typedef struct diff_writer_info_t
/* Whether to ignore copyfrom information when showing adds */
svn_boolean_t show_copies_as_adds;
+ /* Whether to show mergeinfo prop changes in human-readable form */
+ svn_boolean_t pretty_print_mergeinfo;
+
/* Empty files for creating diffs or NULL if not used yet */
const char *empty_file;
@@ -718,6 +727,7 @@ diff_props_changed(const char *diff_relp
dwi->relative_to_dir,
show_diff_header,
dwi->use_git_diff_format,
+ dwi->pretty_print_mergeinfo,
dwi->ddi.session_relpath,
dwi->cancel_func,
dwi->cancel_baton,
@@ -1766,8 +1776,8 @@ diff_prepare_repos_repos(const char **ur
/* A Theoretical Note From Ben, regarding do_diff().
- This function is really svn_client_diff6(). If you read the public
- API description for svn_client_diff6(), it sounds quite Grand. It
+ This function is really svn_client_diff7(). If you read the public
+ API description for svn_client_diff7(), it sounds quite Grand. It
sounds really generalized and abstract and beautiful: that it will
diff any two paths, be they working-copy paths or URLs, at any two
revisions.
@@ -1791,7 +1801,7 @@ diff_prepare_repos_repos(const char **ur
pigeonholed into one of these use-cases, we currently bail with a
friendly apology.
- Perhaps someday a brave soul will truly make svn_client_diff6()
+ Perhaps someday a brave soul will truly make svn_client_diff7()
perfectly general. For now, we live with the 90% case. Certainly,
the commandline client only calls this function in legal ways.
When there are other users of svn_client.h, maybe this will become
@@ -1804,7 +1814,7 @@ static svn_error_t *
unsupported_diff_error(svn_error_t *child_err)
{
return svn_error_create(SVN_ERR_INCORRECT_PARAMS, child_err,
- _("Sorry, svn_client_diff6 was called in a way "
+ _("Sorry, svn_client_diff7 was called in a way "
"that is not yet supported"));
}
@@ -1813,7 +1823,7 @@ unsupported_diff_error(svn_error_t *chil
PATH1 and PATH2 are both working copy paths. REVISION1 and
REVISION2 are their respective revisions.
- All other options are the same as those passed to svn_client_diff6(). */
+ All other options are the same as those passed to svn_client_diff7(). */
static svn_error_t *
diff_wc_wc(const char **root_relpath,
svn_boolean_t *root_is_dir,
@@ -1844,8 +1854,9 @@ diff_wc_wc(const char **root_relpath,
&& (revision2->kind == svn_opt_revision_working))))
return unsupported_diff_error(
svn_error_create(SVN_ERR_INCORRECT_PARAMS, NULL,
- _("Only diffs between a path's text-base "
- "and its working files are supported at this time"
+ _("A non-URL diff at this time must be either from "
+ "a path's base to the same path's working version "
+ "or between the working versions of two paths"
)));
if (ddi)
@@ -1878,7 +1889,7 @@ diff_wc_wc(const char **root_relpath,
and the actual two paths compared are determined by following copy
history from PATH_OR_URL2.
- All other options are the same as those passed to svn_client_diff6(). */
+ All other options are the same as those passed to svn_client_diff7(). */
static svn_error_t *
diff_repos_repos(const char **root_relpath,
svn_boolean_t *root_is_dir,
@@ -2048,7 +2059,7 @@ diff_repos_repos(const char **root_relpa
If REVERSE is TRUE, the diff will be reported in reverse.
- All other options are the same as those passed to svn_client_diff6(). */
+ All other options are the same as those passed to svn_client_diff7(). */
static svn_error_t *
diff_repos_wc(const char **root_relpath,
svn_boolean_t *root_is_dir,
@@ -2519,7 +2530,7 @@ create_diff_writer_info(diff_writer_info
* These cases require server communication.
*/
svn_error_t *
-svn_client_diff6(const apr_array_header_t *options,
+svn_client_diff7(const apr_array_header_t *options,
const char *path_or_url1,
const svn_opt_revision_t *revision1,
const char *path_or_url2,
@@ -2534,6 +2545,7 @@ svn_client_diff6(const apr_array_header_
svn_boolean_t ignore_properties,
svn_boolean_t properties_only,
svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
const char *header_encoding,
svn_stream_t *outstream,
svn_stream_t *errstream,
@@ -2573,6 +2585,7 @@ svn_client_diff6(const apr_array_header_
dwi.no_diff_added = no_diff_added;
dwi.no_diff_deleted = no_diff_deleted;
dwi.show_copies_as_adds = show_copies_as_adds;
+ dwi.pretty_print_mergeinfo = pretty_print_mergeinfo;
dwi.cancel_func = ctx->cancel_func;
dwi.cancel_baton = ctx->cancel_baton;
@@ -2607,7 +2620,7 @@ svn_client_diff6(const apr_array_header_
}
svn_error_t *
-svn_client_diff_peg6(const apr_array_header_t *options,
+svn_client_diff_peg7(const apr_array_header_t *options,
const char *path_or_url,
const svn_opt_revision_t *peg_revision,
const svn_opt_revision_t *start_revision,
@@ -2622,6 +2635,7 @@ svn_client_diff_peg6(const apr_array_hea
svn_boolean_t ignore_properties,
svn_boolean_t properties_only,
svn_boolean_t use_git_diff_format,
+ svn_boolean_t pretty_print_mergeinfo,
const char *header_encoding,
svn_stream_t *outstream,
svn_stream_t *errstream,
@@ -2657,6 +2671,7 @@ svn_client_diff_peg6(const apr_array_hea
dwi.no_diff_added = no_diff_added;
dwi.no_diff_deleted = no_diff_deleted;
dwi.show_copies_as_adds = show_copies_as_adds;
+ dwi.pretty_print_mergeinfo = pretty_print_mergeinfo;
dwi.cancel_func = ctx->cancel_func;
dwi.cancel_baton = ctx->cancel_baton;
Modified: subversion/branches/swig-py3/subversion/libsvn_client/revert.c
URL: http://svn.apache.org/viewvc/subversion/branches/swig-py3/subversion/libsvn_client/revert.c?rev=1822736&r1=1822735&r2=1822736&view=diff
==============================================================================
--- subversion/branches/swig-py3/subversion/libsvn_client/revert.c (original)
+++ subversion/branches/swig-py3/subversion/libsvn_client/revert.c Wed Jan 31 04:16:43 2018
@@ -51,6 +51,7 @@ struct revert_with_write_lock_baton {
const apr_array_header_t *changelists;
svn_boolean_t clear_changelists;
svn_boolean_t metadata_only;
+ svn_boolean_t added_keep_local;
svn_client_ctx_t *ctx;
};
@@ -80,13 +81,14 @@ revert(void *baton, apr_pool_t *result_p
struct revert_with_write_lock_baton *b = baton;
svn_error_t *err;
- err = svn_wc_revert5(b->ctx->wc_ctx,
+ err = svn_wc_revert6(b->ctx->wc_ctx,
b->local_abspath,
b->depth,
b->use_commit_times,
b->changelists,
b->clear_changelists,
b->metadata_only,
+ b->added_keep_local,
b->ctx->cancel_func, b->ctx->cancel_baton,
b->ctx->notify_func2, b->ctx->notify_baton2,
scratch_pool);
@@ -123,11 +125,12 @@ revert(void *baton, apr_pool_t *result_p
svn_error_t *
-svn_client_revert3(const apr_array_header_t *paths,
+svn_client_revert4(const apr_array_header_t *paths,
svn_depth_t depth,
const apr_array_header_t *changelists,
svn_boolean_t clear_changelists,
svn_boolean_t metadata_only,
+ svn_boolean_t added_keep_local,
svn_client_ctx_t *ctx,
apr_pool_t *pool)
{
@@ -183,6 +186,7 @@ svn_client_revert3(const apr_array_heade
baton.changelists = changelists;
baton.clear_changelists = clear_changelists;
baton.metadata_only = metadata_only;
+ baton.added_keep_local = added_keep_local;
baton.ctx = ctx;
err = svn_wc__is_wcroot(&wc_root, ctx->wc_ctx, local_abspath, iterpool);