Sergey Raevskiy <>

Found Patch
r1579588 r1811992, r1659314, r1659217, r1659212, r1658482, r1657893, r1657525, r1584576

r1811992 | julianfoad | 2017-10-12 11:14:05 -0500 (Thu, 12 Oct 2017)

Add '--include' and '--exclude' options to 'svnadmin dump'.

* include/svn_repos.h
  (svn_repos_dump_filter_func_t): New.
  (svn_repos_dump_fs4): Update function signature and comment.
  (svn_repos_dump_fs3): Update comment.

* libsvn_repos/deprecated.c
  (svn_repos_dump_fs3): Update caller.

* libsvn_repos/dump.c
  (write_revision_record): Call to svn_repos_fs_revision_proplist() (with
   AUTHZ_FUNC) instead of svn_fs_revision_proplist2() to filter revision
   properties as well as revisions. Update comment.
   dump_filter_authz_func): New.
  (svn_repos_dump_fs4): Initialize and pass AUTHZ_FUNC and AUTHZ_BATON to
   the repos layer API if FILTER_FUNC is specified by caller.

* subversion/svnadmin/svnadmin.c
  (svnadmin__cmdline_options_t): Add enum values for new options.
  (options_table): Add new options.
  (cmd_table): Add new options to 'dump' subcommand.
  (svnadmin_opt_state): Add new fields to represent new options.
  (ary_prefix_match): New. Copied from svndumpfilter.
   dump_filter_func): New.
  (subcommand_dump): Initialize FILTER_BATON.  Pass DUMP_FILTER_FUNC and a
   pointer to FILTER_BATON to svn_repos_dump_fs() if any filtering prefixes
  (sub_main): Handle new options.

* subversion/tests/cmdline/
   dump_invalid_filtering_option): New.
  (test_list): Add new tests to table.

* subversion/tests/libsvn_repos/dump-load-test.c
  (test_dump_bad_props): Update caller.

Patch by: sergey.raevskiy{_AT_}

r1659314 | philip | 2015-02-12 10:48:46 -0600 (Thu, 12 Feb 2015)

* subversion/libsvn_fs_fs/lock.c
  (lock_body): Call apr_pstrdup() when initializing svn_lock_t fields.

Patch by: sergey.raevskiy{_AT_}

r1659217 | philip | 2015-02-12 04:42:45 -0600 (Thu, 12 Feb 2015)

Follow-up to r1658482: Refactor walk_locks() function: remove the redundant
complexity of walk_digest_files() / walk_digests_callback_t.

* subversion/libsvn_fs_fs/lock.c
  (lock_expired): New helper function.
  (get_lock): Use the new function.
  (struct walk_locks_baton,
   walk_digest_files): Remove.
  (walk_locks): Inline code from locks_walker() and walk_digest_files() with
    use of new helper function.

Patch by: sergey.raevskiy{_AT_}

r1659212 | philip | 2015-02-12 04:38:48 -0600 (Thu, 12 Feb 2015)

Simplify implementation of svn_fs_fs__lock() / svn_fs_fs__unlock().

* subversion/libsvn_fs_fs/lock.c
  (schedule_index_update): New helper function.
  (struct lock_info_t,
   struct unlock_info_t): Drop the unused fields.
   unlock_body): Rework the algorithm.

Patch by: sergey.raevskiy{_AT_}

r1658482 | philip | 2015-02-09 11:44:43 -0600 (Mon, 09 Feb 2015)

Fix multiple reporting of the same lock in FSFS.

In some unusual (but not impossible) scenarios this function could report the
same lock multiple times: there should be the path with lock, and one of its
children should be locked as well.

* subversion/libsvn_fs_fs/lock.c
  (walk_digests_callback_t): Remove unused argument and update comment.
  (locks_walker): Update callback.
  (walk_digest_files): Don't walk digest files recursively.

* subversion/tests/libsvn_fs/locks-test.c
  (get_locks_callback): Check if a lock was already reported.
  (parent_and_child_lock): New.
  (test_funcs): Add new test.

Patch by: sergey.raevskiy{_AT_}

r1657893 | philip | 2015-02-06 10:43:12 -0600 (Fri, 06 Feb 2015)

Fix SEGV in libsvn_repos due to legacy lock API when executing
pre-commit hook.

* subversion/subversion/libsvn_repos/hooks.c
  (lock_token_content): Add special handling for 'magic' value
   ((const char *) 1).

* subversion/subversion/tests/libsvn_repos/repos-test.c
  (deprecated_access_context_api): New.
  (test_funcs): Add new test.

Patch by: sergey.raevskiy{_AT_}

r1657525 | philip | 2015-02-05 04:41:26 -0600 (Thu, 05 Feb 2015)

Fix unitialized memory use in svn_fs_fs__lock() / svn_fs_fs__unlock().

Patch by: sergey.raevskiy{_AT_}

* subversion/subversion/libsvn_fs_fs/lock.c
  (lock_body): Move allocation from here ...
  (svn_fs_fs__lock): ... to here.
  (unlock_body): Move allocation from here ...
  (unlock_single, svn_fs_fs__unlock): ... to here.

* subversion/subversion/tests/libsvn_fs/locks-test.c
  (obtain_write_lock_failure_test): New.
  (test_funcs): Add new test.

r1584576 | philip | 2014-04-04 04:25:03 -0500 (Fri, 04 Apr 2014)

Add an XFAIL regression test for issue 3515, a DAV client cannot
refresh a lock using a LOCK request with an If: header.

Patch by: Sergey Raevskiy <sergey.raevskiy{_AT_}>

r1579588 | rhuijben | 2014-03-20 05:59:21 -0500 (Thu, 20 Mar 2014)

Make ra serf properly parse lock timeouts installed by generic dav clients.

* subversion/libsvn_ra_serf/get_lock.c
  (locks_closed): Properly parse timout format. This is the actual fix.

* subversion/libsvn_ra_serf/lock.c
  (locks_closed): Properly parse timeout format from the server response of
    the LOCK requests.

* subversion/tests/cmdline/
  (dav_lock_timeout): New test, creating timeout lock via http request.
  (test_list): Add test.

This issue was
Found by: Sergey Raevskiy <sergey.raevskiy{_AT_}>
(but the patch from his mail doesn't fix the issue on trunk.
 It might have worked around the problem on 1.7.x and 1.8.x)