Checkout Tools
  • last updated 6 hours ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1851268 is being indexed.

Move misplaced parameters out of the blame callback.

Part 2 of a commit started in r1851265.

* subversion/include/svn_client.h,


(svn_client_blame6): Move the start/end parameters from

svn_client_blame_receiver4_t to svn_client_blame6().

* subversion/libsvn_client/deprecated.c



svn_client_blame5): Adjust the compatibility wrapper.

Move misplaced parameters out of the blame callback.

The svn_client_blame_receiver4_t parameters "start_revnum" and "end_revnum"

do not really belong here because they are not per-line data. They are the

"resolved" versions of the input revnums to svn_client_blame6(). This patch

moves them to svn_client_blame6() output parameters.

* subversion/bindings/javahl/native/BlameCallback.h,



singleLine): Drop the start/end parameters.

* subversion/bindings/javahl/native/SVNClient.cpp

(blame): Adjust the call to svn_client_blame6(). Don't provide access to

the start/end parameters here, as we weren't providing access to them

through the callback. We could add them later.

* subversion/svn/blame-cmd.c


blame_receiver): Don't expect and process start/end revnums here.

(svn_cl__blame): Handle them here instead.

Update callers to use the newly revved svn_client_blame6() API.

* subversion/bindings/javahl/native/BlameCallback.h,



singleLine): Expect 'svn_string_t *' instead of 'char *'.

* subversion/bindings/javahl/native/SVNClient.cpp

(blame): Update the call to use svn_client_blame6.

* subversion/svn/blame-cmd.c


blame_receiver): Expect 'line' to be an svn_string_t.

(svn_cl__blame): Update to use svn_client_blame6 and


* subversion/include/svn_client.h

(svn_client_blame_receiver4_t): Improve doc string.

* subversion/include/svn_client.h

(svn_client_blame_receiver4_t): improve the doc string

Programming style fixes; no functional change.

* subversion/libsvn_client/upgrade.c (upgrade_externals_from_properties):

- Rename 'iterpool2' to 'inner_iterpool' to give readers a bit of a semantic

nudge about its intended use. Also destroy it before the outer iterpool.

- Move the initialization of externals_parent_url to the point where

we actually need it, avoiding potentially misleading identical conditional


Found by: David Binderman


* COMMITERS: Add myself as a partial commiter (swig-py3 branch)

* publish/docs/release-notes/index.html

(upcoming-patch-release): Tiny wording tweaks.

* publish/docs/release-notes/index.html

(upcoming-patch-release): Improve the description. Link to the generator script.

Announce Subversion 1.9.10, 1.10.4, 1.11.1.
* upcoming.part.html: Automatically regenerated
* COMMITTERS: Move myself to the full committer section.

* subversion/libsvn_client/util.c

(svn_client__pathrev_create_with_session): Assert that the session

matches the URL.

Follow-up to r1850913:

* staging/docs/community-guide/releasing.part.html

(#tarball-signing): Track URL change.

* staging/docs/community-guide/releasing.part.html

(tarball-signing): Fix public key list url.

* tools/dev/unix-build/Makefile.svn: Stop compiling httpd in maintainer mode

for now. APR gets some _FMT_T constants for 64 bit types wrong on OpenBSD,

and this leads to many format string warnings which make httpd 2.4's build

fail due to -Werror. Non-maintainer mode builds don't force -Werror, so this

works around the problem until the underlying APR issue has been addressed.

* tools/dev/unix-build/Makefile.svn: Remove mod-proxy diff during httpd-clean.

* tools/dev/unix-build/Makefile.svn: Apply a patch to make mod_proxy build

without APR threads in httpd 2.4.

* tools/dev/unix-build/Makefile.svn: OpenBSD's JDK no longer supports dlopen()

of shared objects which do not end in '.so' because a local patch to load

objects with versioned names was dropped from OpenBSD's ports tree during an

update of the JDK. Work around this by manually symlinking

* upcoming.part.html: Automatically regenerated
* subversion/bindings/cxx/src/client_status.cpp

(status, async::status): Move closer to the almost-always-auto style.

* subversion/bindings/cxx/include/svnxx/client/status.hpp

(client::async::status): Tweak wording in the docstring.

* subversion/bindings/cxx/include/svnxx/detail/future.hpp


future::future): Fix -Wshadow warning from gcc.

subversion/include/svn_client.h: use uppercase CR/LF in the doc string.
Extend the blame callback with a string length parameter.

* subversion/incluce/svn_client.h

* subversion/libsvn_client/blame.c

(svn_client_blame_receiver4_t): typedef for new callback

(svn_client_blame6): new API using the svn_client_blame_receiver4_t callback

* subversion/libsvn_client/deprecated.c

(svn_client_blame5): moved API there, calling svn_client_blame6 using a

callback shim

(blame_wrapper_receiver3): callback shim for svn_client_blame5

Invent a model of asynchronous operations in SVN++.

[in subversion/bindings/cxx]

* README: Document a warning about the current async op model.

* svnxx/client/context.hpp

(detail::context_ptr): Make this a shared pointer because asynchronous

operations have to hold on to a weak reference to the context.

(detail::weak_context_ptr): New.

* svnxx/client/status.hpp: Don't include <future>, use detail/future.hpp.

(client::status): Pass revision by const-reference. Update docstring.

(client::async::status): New.

* svnxx/detail/future.hpp: New. Provides std::future-like tools for SVN++.

* src/future.cpp,

src/private/future_private.hpp: New.

* src/private/client_context_private.hpp

(impl::unwrap): Return a shared pointer to the client context.

* src/private.hpp: Include private/future_private.hpp.

* src/client_status.cpp

(impl::(anon)::status_func): Moved here so that it can be used from

impl::status. Check that the wrapped callback functor is not null

before invoking it.

(impl::status): New; common implementation for the status operation.

(client::status): Use impl::status. Keep the client context alive.

(client::async::status): New.

* tests/test_client_status.cpp

(working_copy_root, status_callback): Move to anonymous scope.

(async_example): New test case.

    • ?
* subversion/bindings/cxx/src/aprwrap/pool.hpp

(apr::pool::get): Fix typo in comment. No functional change.

Keep the SVN++ global pool alive as long as there are any users.

[in subversion/bindings/cxx]

* include/svnxx/init.hpp

(detail::global_state): Renamed from detail::context.

(init): Derive directly from the global_state shared pointer.

(init::~init): Add explicit destructor (for debugging).

* src/private/init_private.hpp: Do not include svn_private_config.h.

(detail::global_state): Renamed from detail::context.

(detail::global_state::get): Don't try to translate the exception

message, because neither APR nor the localisation library are

likely to have been initialized.

* src/aprwrap/pool.hpp: Include init_private.hpp.

(apr::pool::pool): Add a constructor overload that uses the global

pool from a known global state reference.

* src/aprwrap/impl.cpp

(apr::pool::get_root_pool): Rename detail::context to detail::global_state.

* src/debug.cpp,

src/private/debug_private.hpp: New files.

* src/private/client_context_private.hpp: Include init_private.hpp.

(client::context::state): New member, keeps the global state alive as

long as the client context is viable.

(client::context::get_state): New accessor.

(client::context::get_ctx): Renamed from 'get'.

(impl::unwrap): Make the context_wrapper a final class.

* src/init.cpp:

Include debug_private.hpp and apr_pools.h instead of svn_pools.h.

(init::init): Use global_state and add pool debugging logs.

(init::~init): Implement, with pool debugging logs.

(notify_root_pool_cleanup): New; tracks the global pool's destruction.

(create_root_pool): Add pool debugging logs. Avoid leaking the root pool.

(detail::global_state): Add pool debugging logs.

* src/client_status.cpp

(client::status): use the client context's renamed get_ctx() accessor.

* tests/test_init.cpp: Rename detail::context to detail::global_state.

    • ?
* tools/dev/unix-build/Makefile.svn: Undo the APR configure script hack

introduced in r1849589. This hack should not be needed anymore.

* tools/dev/unix-build/Makefile.svn: Patch httpd 2.4.37 so that it will

compile with non-threaded APR (see r1663375).