Jon Foster <>

Found Patch Review Suggested
r884842 r910212, r884900, r850071 r927222 r943619

r943619 | cmpilato | 2010-05-12 13:28:19 -0500 (Wed, 12 May 2010)

Fix issue #3637.  This introduces a new syntax for 'svnsync sync' and
'svnsync copy-revprops', plus a new --revision (-r) option for use
with 'svnsync copy-revprops'.

* subversion/svnsync/main.c
  (svnsync_cmd_table): Update usage messages for 'sync' and
    'copy-revprops' subcommands.  Add support for '-r' to
  (svnsync_options): Add '--revision (-r)' option.
  (opt_baton_t): Add 'start_rev' and 'end_rev' parameters.
  (open_source_session): Now accept a 'from_url' parameter, which is
    the preferred URL to use to open from_session.
  (do_synchronize, do_copy_revprops): Update call to
    open_source_session(), using baton-provided 'from_url' (if any).
  (synchronize_cmd): Allow a second command-line argument, the source
    URL.  If we get one, validate it and pass it to
  (resolve_revnums): New, broken out from copy_revprops_cmd().
  (copy_revprops_cmd): Determine which syntax is in use: the one where
    the second command-line argument is the source URL, or the one where
    it's a revision/range.  If the former, validate the source URL and
    pass it to make_subcommand_baton().
  (main): Initialize new revision opt_baton members, and parse
    '--revision (-r)' options.

* subversion/tests/cmdline/
  (run_sync): Add 'source_url' optional parameter.  Callers updated.
  (run_copy_revprops): Add 'source_url' parameter.  Callers updated.
  (run_test): Pass 'repo_url' to run_sync() and run_copy_revprops().

Suggested by:  Jon Foster <Jon.Foster{_AT_}>

r927222 | rdonch | 2010-03-24 18:29:20 -0500 (Wed, 24 Mar 2010)

SWIG/Python: enable callback functions to return Subversion errors (by
throwing a SubversionException).

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c:
  (callback_exception_error): Extend to check for a SubversionException
   and attempt to translate it into an svn_error_t*.

* subversion/bindings/swig/python/tests/
  (SubversionRepositoryTestCase.test_cease_invocation): New test for
   the above functionality.

Patch by: Alexey Neyman <>
Review by: Jon Foster <>

r910212 | stsp | 2010-02-15 06:57:18 -0600 (Mon, 15 Feb 2010)

Add a --disable-locking option to svnsync.

The built-in locking of svnsync has a known race condition (see issue #3546).
This option allows those who'd rather use an external locking mechaninism
(such as tools like flock and lockfile) to disable svnsync's internal locking
entirely. This avoids associated network overhead, and stale locks in case the
network connection drops unexpectedly.

* subversion/svnsync/main.c
  (svnsync__opt): Add svnsync_opt_disable_locking.
  (svnsync_cm): Enable the new --disable-locking option for the
   init, sync, and copy-revprops subcommands.
  (svnsync_options): Document --disable-locking option.
  (opt_baton_t): New field 'disable_locking'.
  (initialize_cmd, synchronize_cmd, copy_revprops_cmd): Don't use
   locking if the --disable-locking option was passed.
  (main): Pass the --disable-locking option into the opt baton.

Patch by: Jon Foster <>

r884900 | julianfoad | 2009-11-27 09:58:52 -0600 (Fri, 27 Nov 2009)

* subversion/svnsync/main.c
  (svnsync_options): Remove stray newline after --config-option help text.

Patch by: Jon Foster <jon.foster{_AT_}>

r884842 | stsp | 2009-11-27 05:58:41 -0600 (Fri, 27 Nov 2009)

Fix a bug in svnsync causing stale sync-locks on mirror repositories.

* subversion/svnsync/main.c
  (get_lock): The lock attempt is done in iteration N, and success is
   checked in iteration N+1. Prevent the case where svnsync attempts
   to take the lock in the very last iteration, doesn't check for
   success, and ends up erroring out, leaving behind a stale lock.

Found by: Jon Foster <>
Based on patch by: philip

r850071 | sussman | 2004-06-14 23:14:53 -0500 (Mon, 14 Jun 2004)

Cleanup warnings in svn-push.c.  

Patch by: Mark Benedetto King <>
          Jon Foster <>

* contrib/client-side/svn-push/svn-push.c
  Add #include <svn_cmdline.h>
  (my_commit_callback): Replace %i with %SVN_REVNUM_T_FMT.
  (new_change_file_prop): Make static.
  (new_change_dir_prop): Make static.
  (do_job): Make delta_editor const, in order to respect
   the interface to ra->get_commit_editor().  Introduce
   new variable, "my_delta_editor", to hold the locally
   modified editor.  Conditionally compile the declaration
   of the authentication related local variables, since
   their references are only conditionally compiled.
  (main): Remove an unused local variable.