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);