Trent Nelson <>

Found Patch Suggested
r1235736 r1235736, r1235296, r1235264, r1229896 r1296868, r1241313, r1240856, r1235302

r1296868 | danielsh | 2012-03-04 14:14:01 -0600 (Sun, 04 Mar 2012)

* subversion/libsvn_fs_fs/rep-cache-db.sql
  (I_HASH): New index.

Suggested by: Trent Nelson <>

r1241313 | danielsh | 2012-02-06 19:29:47 -0600 (Mon, 06 Feb 2012)

Nominate the r1235264 group as approved (with gstein's voice via dev@).

Suggested by: Trent Nelson

r1240856 | danielsh | 2012-02-05 17:14:43 -0600 (Sun, 05 Feb 2012)

Teach post-commit hooks to receive the txn name.

The txn name is already passed to the pre-commit hook, so this allows the
pre-commit and post-commit hook to easily pass state.

(An svn_fs_* API to answer "What txn did a <given revision> originate in?"
would be easy to implement for FSFS f3 and newer and for BDB, but is beyond
the scope of this commit.)

Suggested by: Trent Nelson <>

* subversion/libsvn_repos/fs-wrap.c
  (svn_repos_fs_commit_txn): Pass TXN_NAME to the post-commit hook.

* subversion/libsvn_repos/load-fs-vtable.c
  (close_revision): Reorganize code to pass TXN_NAME to the post-commit hook.

* subversion/libsvn_repos/repos.c
  (create_hooks): Add the new paramater to the hook template.

* subversion/libsvn_repos/repos.h
  (svn_repos__hooks_post_commit): Grow TXN_NAME parameter.

* subversion/libsvn_repos/hooks.c
  (svn_repos__hooks_post_commit): Grow TXN_NAME parameter, and pass it
    to the child's argv.

r1235736 | danielsh | 2012-01-25 07:23:04 -0600 (Wed, 25 Jan 2012)

Follow-up to r1235296:

* subversion/bindings/swig/python/tests/
    Update docstring to reflect changes done prior to the commit.

Found by: Trent Nelson
Patch by: Trent Nelson

r1235302 | danielsh | 2012-01-24 09:38:00 -0600 (Tue, 24 Jan 2012)

* subversion/bindings/swig/python/tests/
  (itertools): Remove import.

Suggested by: Trent Nelson

r1235296 | danielsh | 2012-01-24 09:30:06 -0600 (Tue, 24 Jan 2012)

Follow-up to r1235264: add two new tests to aid in detecting memory leaks.
They essentially test the same thing in two different ways; if one fails,
the other *should* fail.  (Of course, if one fails and the other does not --
that's just as valuable, diagnostically, and points to an issue with the
'automatic pool memory management' logic.)

Patch by: Trent Nelson <>
Tested on: FreeBSD, OS X, Windows.
(split from r1235264 by me)

* subversion/bindings/swig/python/tests/
  (get_svn_merge_range_t_objects): New helper method that returns a list of
   any 'svn_merge_range_t' objects being tracked by the garbage collector.
    (test_mergeinfo_leakage__incorrect_range_t_refcounts): New test.  Verify
     svn_merge_range_t objects returned from svn_mergeinfo_parse() have the
     correct refcounts set.
    (test_mergeinfo_leakage__lingering_range_t_objects_after_del): New test.
     Verify that there are no lingering svn_merge_range_t objects after we
     explicitly delete the results returned from svn_mergeinfo_parse().

r1235264 | danielsh | 2012-01-24 08:28:06 -0600 (Tue, 24 Jan 2012)

Fix a memory leak in convert_rangelist by *always* Py_DECREF'ing the object
returned by convert_to_swigtype (a SWIG wrapper around svn_merge_range_t)
once we've established it's not NULL.

This is required because PyList_Append takes ownership of references passed
in (i.e. calls Py_INCREF).  Prior to this fix, the reference counts of any
svn_merge_range_t objects would always be off-by-one, preventing them from
ever being garbage collected, having dire effects on the memory usage of
long-running programs calling svn_mergeinfo_parse() on real-world data.

Patch by: Trent Nelson <>
Tested on: FreeBSD, OS X, Windows.
(this is part of a patch that also included a test suite portion)

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c:
  (convert_rangelist): Make sure we call Py_DECREF on the object returned
   from convert_to_swigtype.  PyList_New might return NULL; check for that.

r1229896 | danielsh | 2012-01-10 23:39:31 -0600 (Tue, 10 Jan 2012)

Improve docstrings for svn_delta_editor_t's absent_(file|directory) callbacks.

* subversion/include/svn_delta.h
  (svn_delta_editor_t): the absent_file() and absent_directory()
   callbacks will *only* be invoked due to authz
   restrictions; state this clearly in the docstrings.

Patch by: Trent Nelson <>