Roderich Schupp <>

Found Patch Suggested
r1387943 r1468487, r1446761, r1446753, r1445705, r1443813, r1443811, r1443783, r1161080, r1149572, r1103665, r935631, r933299 r1149240

r1468487 | philip | 2013-04-16 11:14:36 -0500 (Tue, 16 Apr 2013)

Add SWIG Perl support for svn_client_log3 and svn_client_log4.

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
  (svn_swig_pl_thunk_log_entry_receiver): New.

* subversion/bindings/swig/include/svn_types.swg:
  Add the Perl typemap for
  (svn_log_entry_receiver_t receiver, void *receiver_baton).
  Since we now have typemaps for Perl, Python and Ruby, consolidate
  them using the callback_typemap() macro. While we're at it,
  do the same for the
  (svn_log_message_receiver_t receiver, void *receiver_baton)

* subversion/bindings/swig/svn_client.i
  Drop three typemaps. The first two are obviously bogus as the
  types don't match, and the third is redundant as it's also in

* subversion/bindings/swig/include/svn_containers.swg
  Add Perl typemaps for PROPHASH and changed_paths2.
  Apply them for Perl (i.e. drop the restriction on Python or Ruby).
  Similar to Ruby, add a variant STRINGLIST_MAY_BE_NULL of
  STRINGLIST_MAY and apply it to the apr_array_header_t* revprops
  parameter of svn_client_log3 and others. All functions using
  this parameter explicitly allow the value to be NULL
  (meaning "retrieve all revprops").

* subversion/bindings/swig/perl/native/
  Add class magic to use Swig types _p_svn_log_changed_path2_t
  and _p_svn_log_entry_t and documents their methods.
  Add properly namespaced aliases for the values
  of enum svn_tristate_t.

* subversion/bindings/swig/perl/native/t/3client.t
  (test_log_message_receiver): New, code factored surrounding test. 
  Run the existing test for $client->log also for $client->log2.
  Add similar tests for $client->log3 and $client->log4
  especially exercise all getter methods of _p_svn_log_entry_t.
  Add a test for $client->log3 with a parameter targets
  that is a list of a URL and relative paths (instead of
  a single URL).

Patch by: Roderich Schupp <roderich.schupp{_AT_}>

r1446761 | breser | 2013-02-15 14:35:39 -0600 (Fri, 15 Feb 2013)

swig-pl: Add tests for using a _p_svn_opt_revision_t directly.

* subversion/bindings/swig/perl/native/t/3lient.t
  (log2): Add tests for log2 that compares the log output between
    a more perlish method of specificying the rev with a manually
    created _p_svn_opt_revision_t.

Patch by: Roderich Schupp <roderich.schupp{_AT_}>
(I took Roderich's patch and moved it to 3client.t and created the
_p_svn_opt_revision_t values directly rather than via

r1446753 | breser | 2013-02-15 14:17:00 -0600 (Fri, 15 Feb 2013)

swig-pl: Add a specific rev and peg-rev to the parse_externals_description3() test.

* subversion/bindings/swig/perl/native/t/9wc.t:
  (external_desc): Adjust the second external to have a rev and peg-rev.
  (parse_externals_description3): Adjust tests for the second external to handle
    looking for the rev and peg-rev.

Patch by: Roderich Schupp <roderich.schupp{_AT_}>
(I took a portion of Roderich's patch and applied it and added a explicit rev)

r1445705 | breser | 2013-02-13 10:21:35 -0600 (Wed, 13 Feb 2013)

Cleaner solution to the problem fixed in r1445267.

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
  (svn_swig_pl_set_revision): Return a svn_opt_revision_t instead of using a
    pointer to a pointer.

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
  (svn_swig_pl_set_revision): Update declaration.

* subversion/bindings/swig/include/svn_types.swg
  (svn_opt_revision_t): Update typemap to match changes to

Patch by: Roderich Schupp <roderich.schupp{_AT_}>

r1443813 | breser | 2013-02-07 18:51:24 -0600 (Thu, 07 Feb 2013)

Documentation fix for SVN::Ra.

* subversion/bindings/swig/perl/native/
  Fix examples: the $path parameter for SVN::Ra::get_dir() and
  SVN::Ra::get_file() must not start with a slash.

Patch by: Roderich Schupp <roderich.schupp{_AT_}>

r1443811 | breser | 2013-02-07 18:36:05 -0600 (Thu, 07 Feb 2013)

Replace inline typemap with a function.

* subversion/bindings/swig/include/svn_types.swg:
  The bulky input typemap for svn_opt_revision_t is inlined by Swig for each
  use in the generated Perl bindings.  Move its body ...

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
  (svn_swig_pl_set_revision): ... to a new function here.  Also improve the
    error output when passing an invalid revision value.

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h:
  Add function prototype.

Patch by: Roderich Schupp <roderich.schupp{_AT_}>
(Tweaked by me.)

r1443783 | breser | 2013-02-07 17:37:59 -0600 (Thu, 07 Feb 2013)

Make svn_wc_parse_externals_description3 available from Perl bindings.

* subversion/bindings/swig/include/svn_containers.swg:
  Add output typemap for APR array of svn_wc_external_item2_t.

* subversion/bindings/swig/perl/native/
  Document function svn_wc_parse_externals_description3.
  Add the magic to access struct svn_wc_external_item2_t
  as an object and document its methods.

* subversion/bindings/swig/perl/native/
  Fix a typo that prevented the use of 
  _p_svn_opt_revision_value_t objects.

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
  Unintentionaly committed #undef _, removed in r1445277.  Was not part of the

Patch by: Roderich Schupp <roderich.schupp{_AT_}>

r1387943 | ivan | 2012-09-20 05:18:39 -0500 (Thu, 20 Sep 2012)

Fix unbounded memory usage in mod_authz_svn with short_circuit enabled.

Found by: Roderich Schupp <>

* subversion/mod_authz_svn/mod_authz_svn.c
  (): Include svn_pools.h.
  (get_access_conf, get_username_to_authorize): Add scratch_pool parameter 
   and use it for temporary data.
  (req_check_access): Pass r->pool as scratch_pool to
   get_username_to_authorize() and  get_access_conf().
  (subreq_bypass2): New. Implementation extracted from subreq_bypass.
  (subreq_bypass): Create scratch_pool and call subreq_bypass2.

r1161080 | philip | 2011-08-24 07:48:57 -0500 (Wed, 24 Aug 2011)

Make svnmucc honor option --config-dir for auth stuff.

* tools/client-side/svnmucc/svnmucc.c
  (create_ra_callbacks) Add parameter config_dir, pass it to
  (execute) Pass config_dir to create_ra_callbacks.

Patch by: Roderich Schupp <>

r1149572 | philip | 2011-07-22 06:33:14 -0500 (Fri, 22 Jul 2011)

Fix a server SEGV when AuthzForceUsernameCase is used without

* subversion/mod_authz_svn/mod_authz_svn.c
  (get_username_to_authorize): Allow NULL username.

Patch by: roderich.schupp{_AT_}

r1149240 | philip | 2011-07-21 10:53:44 -0500 (Thu, 21 Jul 2011)

Support APR 0.9.x.

* subversion/include/private/svn_dep_compat.h

* subversion/include/private/svn_string_private.h
  (svn__strtoff): New.

* subversion/libsvn_subr/svn_string.c
  (svn__strtoff): New.

* subversion/mod_dav_svn/util.c
  (request_body_to_string): Use svn__strtoff.

* subversion/tests/libsvn_wc/op-depth-test.c
  (): Include svn_dep_compat.h.

Suggested by: roderich.schupp{_AT_}

r1103665 | hwright | 2011-05-16 04:51:39 -0500 (Mon, 16 May 2011)

Fix a user-reported performance issue where we don't properly retrieve the
cached manifest offset value in FSFS.  See

Even though on trunk we are currently using apr_int64_t, danielsh tells me
that svn_revnum_t is a "more proper" type.

Patch by: Roderich Schupp <>

* subversion/libsvn_fs_fs/fs_fs.c
  (get_packed_offset): Use the proper type for the shard.

r935631 | cmpilato | 2010-04-19 10:46:35 -0500 (Mon, 19 Apr 2010)

Fix check in "merge --reintegrate" whether merge source and
working copy target belong to the same repository.

* subversion/libsvn_client/merge.c
  (merge_reintegrate_locked) Correctly compute the repos root URL for
    the merge source.  Add FIXME comment regarding possible
    unnecessary opening of an RA session at the repos root.

Patch by: Roderich Schupp <roderich.schupp{_AT_}>

r933299 | cmpilato | 2010-04-12 11:17:23 -0500 (Mon, 12 Apr 2010)

Fix another scenario related to issue #3242:

   - user has no access in repo root, only in /project
   - someone else renames some file below /project and commits
   - user tries to update his working copy of /project
     (that still has the old name)
   - update deletes the old name and then fails with
     "access to 'http://host/repo-root' forbidden"

* subversion/libsvn_client/update.c
  (struct ff_baton): Update comment.
  (file_fetcher): Open (or reparent, if already opened) auxiliary RA
    session at parent directory of to-be-fetched file instead of at
    the repository root.

* subversion/tests/cmdline/
  (authz_access_required_at_repo_root2): New test.
  (test_list): Add reference to new test.

Patch by: Roderich Schupp <roderich.schupp{_AT_}>
          (Tweaked by me.)