Madan U S <> (madanus)

Found Patch Review Suggested
r862830, r858398 r863497, r862905, r862904, r862903, r862891, r862849, r862395, r862205, r862193, r862178, r861657, r861626, r861571, r861101, r860813, r860803, r860801, r860797, r860787, r860728, r860657, r860589, r860537, r860532, r860507, r860305, r860231, r860160, r860096, r860079, r860056, r859959, r859930, r859874, r859808, r859775, r859672, r859671, r859668, r859667, r859418, r859412, r859390, r859384, r859207, r859186, r857615, r857408, r857386, r857349, r857290, r857282, r856771, r856172, r856004, r855768, r855722, r854852, r853939, r853676, r853443, r853177, r853129, r853101 r860997, r860967, r860304, r860221, r859749, r859727, r857196 r863021, r862789, r862104, r860995, r860883, r860788, r860221, r859868, r859859, r858400

r853101 | kfogel | 2005-02-15 16:16:31 +0000 (Tue, 15 Feb 2005)

Fix issue #601: Add some new regression tests for keyword expansion.

Patch by: Madan U Sreenivasan <>
(Tweaked by me.)

* subversion/tests/clients/cmdline/ Remove comment
    about things that have failed during hand-testing, since those
    tests are written now.
  (propset_commit_checkout_nocrash): New test for propset, commit,
    checkout into another wc.
  (propset_revert_noerror): New test for propset, revert.
  (test_list): Run the new tests.

r853129 | kfogel | 2005-02-18 15:11:38 +0000 (Fri, 18 Feb 2005)

Follow up to r13027: Make regression test more rigorous.  

Patch by: Madan U Sreenivasan <>

* subversion/tests/clients/cmdline/
  (propset_revert_noerror): Added status check after propset and revert.

r853177 | kfogel | 2005-02-22 04:45:34 +0000 (Tue, 22 Feb 2005)

Documentation fix:

* subversion/tests/clients/cmdline/README: Fixed lines about usage of
    URL with the test scripts.  The test case number should follow the
    --url option.

Patch by: Madan U Sreenivasan <>

r853443 | julianfoad | 2005-03-11 15:53:08 +0000 (Fri, 11 Mar 2005)

Fix issue #2219: Canonicalize values in svn:keywords.

Patch by: Madan U Sreenivasan <>
(Tweaked by me.)

* subversion/libsvn_wc/props.c
  (canonicalize_keywords): New function to canonicalize the input based
    on the canonical values defined for svn:keywords.
  (svn_wc_prop_set2): Changed function to call canonicalize_keywords().

* subversion/tests/clients/cmdline/
  (prop_value_conversions): Modified function to reflect output changes
    now caused by canonicalization.

* subversion/tests/clients/cmdline/
  (canonicalize_keywords_prop): New function for testing canonicalization
    of svn:keywords.
  (canonicalized_and_keywords_expanded): New function for testing
    canonicalization of svn:keywords and expansion of keywords.

r853676 | julianfoad | 2005-03-22 22:41:26 +0000 (Tue, 22 Mar 2005)

Fix issue #2214: poor error message when intermediate dir missing in copy.
Improve the error message, and also add a test for this behaviour.

Patch by: Madan U Sreenivasan <>

* subversion/libsvn_repos/commit.c
  (open_directory): Replace "out of date" error with "path not present" error.

* subversion/tests/clients/cmdline/
  (url_to_non_existent_url_path): New test to ensure that 'svn copy' fails when
    one of the destination URL path components does not exist.
  (test_list): Add the new test.

r853939 | julianfoad | 2005-04-03 01:07:41 +0000 (Sun, 03 Apr 2005)

Improve the test for issue #2214 (poor error message when intermediate dir
missing in copy), making it specifically a regression test for the issue as
opposed to a general test for the behaviour.

Patch by: Madan U. Sreenivasan <>
(Tweaked by me.)

* subversion/tests/clients/cmdline/
  (url_to_non_existent_url_path): Check for exact error message.

r854852 | lundblad | 2005-05-19 12:50:15 +0000 (Thu, 19 May 2005)

* tools/test-scripts/svntest/README
  (mod_dav_svn_shared.conf): Added authentication parameters for
  lock tests over ra_dav
  (ramdisk): Changed the ramdisk requirement to 700 MB because
  tests failing due to lack of disk space

Patch by: Madan US <>

r855722 | lundblad | 2005-08-09 09:46:11 +0000 (Tue, 09 Aug 2005)

Partial fix for Issue #443: post-commit hook script (error) output lost.

This is step 1 : Introduction of svn_client_commit_info2_t and its

Patch by: Madan U Sreenivasan <>

* subversion/include/svn_client.h
  (svn_client_commit_info2_t): New structure to take care of
  post-commit-hook's stderr.
  (svn_client_commit_info_t): Add a note that this will be deprecated soon.
  (svn_client_create_commit_info): New function. Constructor for

* subversion/libsvn_client/commit.c
  (svn_client_create_commit_info): New function.

r855768 | lundblad | 2005-08-12 09:35:05 +0000 (Fri, 12 Aug 2005)

Partial fix for Issue #443: post-commit hook script (error) output lost

This is step 2 : Use svn_client_commit_info2_t everywhere
and the svn_client_create_commit_info() constructor for
creating svn_client_commit_info2_t objects, deprecating
svn_client_commit_info_t and a lot of public svn_client APIs.  Stylistic
tweaks by me.

Patch by: Madan U Sreenivasan <>

* subversion/include/svn_client.h
  (svn_client_commit_info_t, svn_client_mkdir, svn_client_delete,
  svn_client_commit2, (svn_client_copy, svn_client_move2): Deprecate.
  (svn_client_mkdir2, svn_client_delete2, svn_client_commit3,
  svn_client_copy2, svn_client_move3): New version declarations
  of the above deprecated functions.
  (svn_client_import2): Use svn_client_commit_info2_t.

* subversion/libsvn_client/delete.c
  (delete_urls): Use svn_client_commit_info2_t.
  (svn_client_delete2): New version of svn_client_delete. Now use
  (svn_client_delete): Wrap svn_client_delete2().

* subversion/libsvn_client/client.h
  (svn_client__commit_get_baton): Use svn_client_commit_info2_t.

* subversion/libsvn_client/copy.c
  (repos_to_repos_copy, wc_to_repos_copy, setup_copy):
  Use svn_client_commit_info2_t.
  (svn_client_copy): Wrap svn_client_copy2().
  (svn_client_move2): Wrap svn_client_move3().
  (svn_client_copy2): New version of svn_client_copy(). Now use
  (svn_client_move3): New version of svn_client_move2(). Now use
  (svn_client_move): Use modified setup_copy().

* subversion/libsvn_client/commit_util.c
  (commit_baton): Use svn_client_commit_info2_t.
  (svn_client__commit_get_baton): Use svn_client_commit_info2_t
  and the svn_client_create_commit_info() constructor.

* subversion/libsvn_client/add.c
  (mkdir_urls): Use svn_client_commit_info2_t.
  (svn_client_mkdir): Wrap svn_client_mkdir2().
  (svn_client_mkdir2): New version of svn_client_mkdir. Now use

* subversion/libsvn_client/commit.c
  (get_ra_editor): Use svn_client_commit_info2_t.
  (svn_client_import2): Now use svn_client_commit_info2_t
  and the svn_client_create_commit_info() constructor.
  (svn_client_import): Use a temporary svn_client_commit_info2_t while
  calling svn_client_import2().
  (svn_client_commit3): New version of svn_client_commit2(). Now use
  (svn_client_commit2): Wrap svn_client_commit3().

* subversion/clients/cmdline/cl.h
  (svn_cl__print_commit_info): Use svn_client_commit_info2_t.

* subversion/clients/cmdline/move-cmd.c (svn_cl__move):
* subversion/clients/cmdline/mkdir-cmd.c (svn_cl__mkdir):
* subversion/clients/cmdline/copy-cmd.c (svn_cl__copy):
* subversion/clients/cmdline/util.c (svn_cl__print_commit_info):
* subversion/clients/cmdline/commit-cmd.c (svn_cl__commit): 
* subversion/clients/cmdline/delete-cmd.c (svn_cl__delete):
* subversion/clients/cmdline/import-cmd.c(svn_cl__import):
  Don't use deprecated APIs.

r856004 | lundblad | 2005-08-26 19:43:57 +0000 (Fri, 26 Aug 2005)

Partial fix for Issue #443: post-commit hook script (error) output lost
This is step 3 : Introduce new type svn_commit_info_t that can hold
all data required about a commit. Create a constructor too.

Patch by: Madan U Sreenivasan <>

* subversion/include/svn_types.h
  (svn_commit_info_t): New type.
  (svn_create_commit_info): New function. Constructor for

* subversion/libsvn_subr/constructors.c: New file.
  (svn_create_commit_info): New helper function. Constructor for

r856172 | lundblad | 2005-09-09 11:33:40 +0000 (Fri, 09 Sep 2005)

Partial fix for Issue #443: post-commit hook script (error) output lost
This is step 4 : Replace all usage of svn_client_commit_info2_t with
Remove svn_client_commit_info2_t and svn_client_create_commit_info.

Patch by: Madan U Sreenivasan <>

* subversion/include/svn_client.h
  (svn_client_commit_info2_t, svn_client_create_commit_info): Removed.
  (svn_client_mkdir2, svn_client_delete2, svn_client_import2, 
   svn_client_commit3, svn_client_copy2, svn_client_move3):
   Use svn_commit_info_t instead of svn_client_commit_info2_t.

* subversion/libsvn_client/delete.c
  (delete_urls, svn_client_delete2),
* subversion/libsvn_client/client.h
* subversion/libsvn_client/copy.c
  (repos_to_repos_copy, wc_to_repos_copy, setup_copy,
   svn_client_copy2, svn_client_copy, svn_client_move3,
* subversion/libsvn_client/commit_util.c
  (commit_baton, svn_client__commit_get_baton,
* subversion/libsvn_client/add.c
  (mkdir_urls, svn_client_mkdir2, svn_client_mkdir),
* subversion/libsvn_client/commit.c
  (get_ra_editor, svn_client_import2, svn_client_import,
   svn_client_commit3, svn_client_commit2),
* subversion/clients/cmdline/cl.h (svn_cl__print_commit_info),
* subversion/clients/cmdline/move-cmd.c (svn_cl__move),
* subversion/clients/cmdline/mkdir-cmd.c (svn_cl__mkdir),
* subversion/clients/cmdline/copy-cmd.c (svn_cl__copy),
* subversion/clients/cmdline/util.c (svn_cl__print_commit_info),
* subversion/clients/cmdline/commit-cmd.c (svn_cl__commit),
* subversion/clients/cmdline/delete-cmd.c (svn_cl__delete),
* subversion/clients/cmdline/import-cmd.c (svn_cl__import),
   Use svn_commit_info_t instead of svn_client_commit_info2_t.

r856771 | lundblad | 2005-10-13 15:31:15 +0000 (Thu, 13 Oct 2005)

Partial fix for Issue #443: post-commit hook script (error) output lost
This is step 5 : Replace all usage of svn_commit_callback_t with

Patch by: Madan U Sreenivasan <>
(Tweaked by me.)

* subversion/libsvn_ra/wrapper_template.h
  (compat_get_commit_editor): Use svn_compat_wrap_commit_callback.

* subversion/libsvn_ra/ra_loader.c: Include svn_types.h.
  (svn_ra_get_commit_editor2): New function using svn_commit_callback2_t.
  (svn_ra_get_commit_editor): Wrap svn_ra_get_commit_editor2.

* subversion/libsvn_ra/ra_loader.h
  (svn_ra__vtable_t): Modified the get_commit_editor member to use
  svn_commit_callback2_t instead of svn_commit_callback_t.

* subversion/include/svn_repos.h
  (svn_repos_get_commit_editor4): New version of svn_repos_get_commit_editor3
  to use svn_commit_callback2_t.
  (svn_repos_get_commit_editor3): Deprecated.

* subversion/include/svn_types.h
  (svn_commit_info_dup): New API.
  (svn_commit_callback2_t): New callback similar to svn_commit_callback_t
   but using the svn_commit_info_t structure and with an new pol argument.
  (svn_commit_callback_t): Deprecated.
  (svn_compat_wrap_commit_callback): New API to wrap commit_baton
  and provide a svn_commit_callback_t type callback.

* subversion/include/svn_ra.h
  (svn_ra_get_commit_editor2): New version of svn_ra_get_commit_editor
   using svn_commit_callback2_t.
  (svn_ra_get_commit_editor): Deprecated.

* subversion/libsvn_subr/constructors.c
  (svn_commit_info_dup): New function.
* subversion/libsvn_subr/compat.c: New file to provide compatibility
  for deprecated callback types.

* subversion/libsvn_ra_local/ra_plugin.c
  (deltify_etc_baton): Use svn_commit_callback2_t.
  (deltify_etc): Now uses the svn_commit_callback2_t signature
   and callbacks.
  (svn_ra_local__get_commit_editor): Use svn_client_commit_callback2_t.

* subversion/libsvn_client/delete.c
  (delete_urls): Use svn_ra_get_commit_editor2 instead of

* subversion/libsvn_client/client.h
  (svn_client__commit_callback): Comply with new svn_commit_callback2_t

* subversion/libsvn_client/copy.c
  (repos_to_repos_copy, wc_to_repos_copy): Use svn_ra_get_commit_editor2 instead of

* subversion/libsvn_client/commit_util.c
  (svn_client__commit_callback): Modified function to use

* subversion/libsvn_client/add.c
  (mkdir_urls): Use svn_ra_get_commit_editor2 instead of

* subversion/libsvn_client/commit.c
  (get_ra_editor): Use svn_ra_get_commit_editor2.

* subversion/tests/libsvn_repos/repos-test.c
  (commit_editor_authz): Use svn_repos_get_commit_editor4.

* subversion/libsvn_repos/commit.c
  (edit_baton): Now uses svn_commit_callback2_t.
  (close_edit): Use svn_commit_callback2_t based callback.
  (svn_repos_get_commit_editor4): New function.
  (svn_repos_get_commit_editor3): Modified to wrap around the
   svn_repos_get_commit_editor4 function.
  (svn_repos_get_commit_editor2): Modified to wrap around the
   svn_repos_get_commit_editor3 function.
  (svn_repos_get_commit_editor): Modified to wrap around the
   svn_repos_get_commit_editor2 function.

* subversion/libsvn_ra_svn/client.c
  (ra_svn_commit_callback_baton_t): Now uses svn_commit_callback2_t.
  (ra_svn_end_commit): Add pool argument.  Use svn_commit_info_t.
  (ra_svn_commit): Use svn_commit_callback2_t.

* subversion/libsvn_ra_dav/ra_dav.h
  (svn_ra_dav__get_commit_editor): Use svn_commit_callback2_t.

* subversion/libsvn_ra_dav/commit.c
  (commit_ctx_t): Use svn_commit_callback2_t.
  (commit_close_edit): use svn_commit_info_t.
  (svn_ra_dav__get_commit_editor): Use svn_commit_callback2_t.

* subversion/svnserve/serve.c
  (commit_callback_baton_t): Add pool member.
  (commit_done): Use svn_commit_info_t.
  (commit): Use svn_repos_get_commit_editor4.
  Initialize ccb->pool

r857196 | dlr | 2005-11-01 00:47:03 +0000 (Tue, 01 Nov 2005)

Continuing investigation of issue #2306.  Strangely, the reproduction
recipe for a file's read-only-ness only fails the first time the trunk
is switched to a branch.  However, a subsequent switch back to trunk,
then back to the branch again works as expected!

* subversion/tests/clients/cmdline/
  (refresh_read_only_attribute): Removed stray TODO which snuck in.
   Improved error message.  Added additional WC switch operations
   which demonstrate the unexpected behavior (a work-in-progress).

Review by:

r857282 | rooneg | 2005-11-05 00:50:02 +0000 (Sat, 05 Nov 2005)

Partial fix for Issue #443: post-commit hook script (error) output lost
This is step 6 : Pass the post-commit error from the server to the client
over all three protocols.

Patch by: Madan U Sreenivasan <>

* subversion/libsvn_subr/constructors.c
  (svn_commit_info_dup): Modified to copy the post_commit_err member.

* subversion/mod_dav_svn/merge.c
  (global): included svn_xml.h.
  (dav_svn__merge_response): Modified to use the new post-commit
   error message parameter.

* subversion/mod_dav_svn/dav_svn.h
  (dav_svn__merge_response): Add new parameter - post_commit_err.

* subversion/mod_dav_svn/version.c
  (dav_svn_merge): Modified to extract the post-commit error message.

* subversion/clients/cmdline/util.c
  (svn_cl__print_commit_info): At last, we can print out the post-commit
   error messages! yoohoo!

* subversion/tests/clients/cmdline/
  (post_commit_hook_test): New function to test post-commit hook's error
  (test_list): Added post_commit_hook_test to list of tests.

* subversion/libsvn_repos/hooks.c
  (svn_repos__hooks_post_commit): Pass TRUE for the read_errstream
   parameter of run_hook_cmd.

* subversion/libsvn_repos/commit.c
  (close_edit): Fill the post_commit_err parameter if the child
   error message has one.

* subversion/libsvn_ra_svn/client.c
  (ra_svn_end_commit): Modified to read the extra post-commit error
   message sent out by the server.

* subversion/libsvn_ra_svn/protocol
  (commit_info): Added the optional parameter for post-commit error.

* subversion/libsvn_ra_dav/merge.c
  (merge_elements): Added new member for post-commit error processing.
  (merge_ctx_t): Added new member for post-commit error.
  (validate_element): Added test for the ELEM_post_commit_err.
  (end_element): Added post-commit error handling.
  (svn_ra_dav__merge_activity): Added the post_commit_err parameter
   and its handling.

* subversion/libsvn_ra_dav/ra_dav.h
  (enum): Added a new member ELEM_post_commit_err.
  (svn_ra_dav__merge_activity): Added new parameter for post-commit error

* subversion/libsvn_ra_dav/commit.c
  (commit_close_edit): Modified call to svn_ra_dav__merge_activity to
   pass the post-commit error message.

* subversion/svnserve/serve.c
  (commit_callback_baton_t): Add a new member to hold the post-commit
   error message.
  (commit_done): Modified to copy the over the post-commit error message
   to the callback baton.
  (commit): Write out the tuple with the post-commit error message.

r857290 | ehu | 2005-11-06 16:04:19 +0000 (Sun, 06 Nov 2005)

Fix issue #2419: 'svn rm' of schedule add leaves working props file.

Patch by: Madan U Sreenivasan <>
Tweaked by: me

* subversion/libsvn_wc/adm_ops.c
  (svn_wc_delete2): Handle properties on schedule-add files.

* subversion/tests/clients/cmdline/
  (removal_schedule_added_props): New test for testing prop-file
  removal on the removal of a schedule-add file.

r857349 | djames | 2005-11-09 19:28:13 +0000 (Wed, 09 Nov 2005)

Issue #443: Post-commit hook script (error) output lost.
Fix portability issues in commit_tests 34.

* subversion/tests/clients/cmdline/
  (post_commit_hook_test): Use the create_python_hook_script function
  for better portability.

* subversion/tests/clients/cmdline/svntest/
  (create_python_hook_script): New function. Creates a portable Python based
  hook script.

Patch by: Madan U Sreenivasan <>
(Tweaked by me.)

Review by: malcolm

r857386 | kfogel | 2005-11-12 07:09:53 +0000 (Sat, 12 Nov 2005)

Regression test for issue #2435: 'mv --force' should not lose local mods.

Patch by: Madan U Sreenivasan <>
(Tweaked very slightly by me.)

* subversion/tests/clients/cmdline/
  (force_move): New test.
  (test_list): Run it.

r857408 | rooneg | 2005-11-14 19:36:47 +0000 (Mon, 14 Nov 2005)

Follow up improvements to r17216 and r17217.

Patch by: Madan U Sreenivasan <>

* subversion/libsvn_wc/adm_ops.c
  (svn_wc_delete2): Cleaned up a bit and used a better variable name.

* subversion/tests/clients/cmdline/
  (removal_schedule_added_props): Modified to be more robust and verify
   that all preparatory steps have succeeded.

r857615 | kfogel | 2005-11-28 18:32:15 +0000 (Mon, 28 Nov 2005)

Make the Neon installation instructions clearer.

Patch by: Madan U S <>
(Tweaked by me.)

* INSTALL: Modify the Neon installation instructions to make a
  clear distinction between using Neon inline and using it outside
  the Subversion build.  Reorganize for clarity.

r858398 | dlr | 2006-02-03 21:09:46 +0000 (Fri, 03 Feb 2006)

* subversion/tests/README
  Fix stray reference to the old "subversion/tests/svn/" location.

Found by: Madan U S <>

r858400 | dlr | 2006-02-03 21:18:23 +0000 (Fri, 03 Feb 2006)

* subversion/tests/cmdline/README
  In an attempt to avoid test failures resulting from invocation of
  the cmdline test scripts from outside of their own directory (a
  fairly common pitfall), be much more obvious about which directory
  a test script must be invoked from.

Suggested by: Madan U S <>

r859186 | dlr | 2006-03-31 18:33:54 +0000 (Fri, 31 Mar 2006)

Use's error() function for all its error handling.

* contrib/client-side/
  (global, main, check_old_prop_version): Replace code to print error
   message and exit with call to error().

Patch by: Madan U S <>
(Tweaked by me.)

Review by: giovannibajo

r859207 | dlr | 2006-04-03 16:34:54 +0000 (Mon, 03 Apr 2006)

* contrib/client-side/
  (test_sorted): New function testing RevisionSet.sorted().

Patch by: Madan U S <>
Review by: me

r859384 | djames | 2006-04-11 18:28:48 +0000 (Tue, 11 Apr 2006)

* subversion/libsvn_wc/README: Be more consistent. Delimit sections with a
  series of hyphens. Don't end headings with periods, do delimit descriptions
  with colons.  

Patch by: Madan U S <>

r859390 | djames | 2006-04-11 23:43:24 +0000 (Tue, 11 Apr 2006)

Add check to init for an already initialized head.

* contrib/client-side/
  (action_init): Modified to print error message and exit, when the branch
  provided has already been initialized for the given head. This check is
  skipped on using the --force option.

Patch by: Madan U S <>

r859412 | dlr | 2006-04-13 00:09:03 +0000 (Thu, 13 Apr 2006)

Make's "multiple heads found" error message more

* contrib/client-side/
  (get_default_head): Change the error message printed when multiple
   source URLs are found by listing all available URLs.

Patch by: Madan U S <>
Review by: giovannibajo

r859418 | dlr | 2006-04-13 18:22:30 +0000 (Thu, 13 Apr 2006)

Remove unnecessary duplication of's sub-command names.

* contrib/client-side/
  (main): Compare the specified subcommand against the command_table
   keys, instead of a list of hard-coded values.

Patch by: Madan U S <>
Review by: dlr

r859667 | dlr | 2006-05-09 20:22:35 +0000 (Tue, 09 May 2006)

Stylistic change to  No functional change.

* contrib/client-side/
  (get_latestrev): Renamed to get_latest_rev().

  (analyze_head_revs): Modified to call get_latest_rev().

  (action_init): Modified to call get_latest_rev().

Patch by: Madan U Sreenivasan <>

r859668 | djames | 2006-05-09 21:07:44 +0000 (Tue, 09 May 2006)

Revert r19553's change for as it turned out to be unnecessary.

Patch by: Madan U Sreenivasan <>

* contrib/client-side/
  (my_getopt)       : Removed.
  (_extract_command): Modified to use getopt.getopt().

r859671 | dlr | 2006-05-09 22:08:56 +0000 (Tue, 09 May 2006)

Internal refactoring of in preparation for addition of a
'rollback' command.  No functional change.

* contrib/client-side/
  (get_created_rev): New method factored out of action_integrated()
   which looks up the revision at which the path identified by the
    provided URL was first created.

  (action_integrated): Leverage get_created_rev().

Patch by: Madan U Sreenivasan <>

r859672 | dlr | 2006-05-09 22:45:45 +0000 (Tue, 09 May 2006)

Tweak doxygen markup.

* subversion/include/svn_client.h
  (svn_client_add3, svn_client_import2, svn_client_blame3,
   svn_client_blame2, svn_client_export3, svn_client_lock): Markup
   boolean values with @c.

Patch by: Madan U Sreenivasan <>

r859727 | giovannibajo | 2006-05-16 12:19:43 +0000 (Tue, 16 May 2006)

Add the uninit command, which removes merge tracking information for a given
head URL, including blocked revision information. This is especially useful
if multiple heads are being tracked -- without uninit, this situation requires
the new property value to be manually set by the user via svn propset.

* Added uninit to command table.
  (action_uninit): New method for uninitialization of merge tracking info.

  (TestCase_TestRepo.testUninit): New test case, checking that uninit works.
  (TestCase_TestRepo.testUninitForce): New test case.
  (TestCase_TestRepo.getproperty): Prevent array index errors when
    retrieving a property with no value.
  (TestCase_TestRepo.getBlockedProperty): New method to get the value
    of the svnmerge blocked property.

Patch by: Raman Gupta <>
Review by: Daniel Rall <>
           Madan U Sreenivasan <>
           Giovanni Bajo <>

r859749 | rooneg | 2006-05-17 20:01:20 +0000 (Wed, 17 May 2006)

Fix issue 2550, a bug in 'svn log file@BASE'.

Reviewed by: Madan U Sreenivasan <>
Found by: Stefan K√ľng <>

* subversion/libsvn_client/log.c
  (svn_client_log3): Error out gracefully if a base, committed, or previous
   revision is passed along with a URL.  Use a path to root the ra session
   for those types of revisions instead of a url.

* subversion/tests/cmdline/
  (log_base_peg): New test for logging with a peg rev of BASE.
  (test_list): Add new test.

r859775 | dlr | 2006-05-18 01:52:54 +0000 (Thu, 18 May 2006)

Fix file header comment in JavaHL code.

* subversion/bindings/java/javahl/native/BlameCallback.cpp
* subversion/bindings/java/javahl/native/BlameCallback.h
  Fix header comment and adjust copyright year.

Patch by: Madan U Sreenivasan <>

r859808 | lundblad | 2006-05-22 06:25:42 +0000 (Mon, 22 May 2006)

* subversion/www/project_tasks.html
  (Summer of Code tasks): Fix typo.

Patch by: Madan U Sreenivasan <>

r859859 | rooneg | 2006-05-23 17:58:16 +0000 (Tue, 23 May 2006)

Follow up to r19760, verify that the propset actually worked before
we move on to running the diff.

Suggested by: lundblad
              Madan U Sreenivasan <>

* subversion/tests/cmdline/
  (diff_weird_author): Verify that our propset actually worked.

r859868 | dlr | 2006-05-23 22:06:10 +0000 (Tue, 23 May 2006)

A formatting follow-up to r19777.

* subversion/tests/cmdline/
  (examine_lock_encoded_recurse): De-tabify.  Break long line.

Suggested by: Madan U Sreenivasan <>

r859874 | djames | 2006-05-24 00:44:06 +0000 (Wed, 24 May 2006)

Implement `svnmerge rollback'.
The `rollback' sub-command can be used to rollback previously integrated

Patch by: Madan U Sreenivasan <>

Review by: David James <>
           Daniel Rall <>
           Giovanni Bajo <>

* contrib/client-side/
  (TestCase_TestRepo.testBlockMergeAndRollback): New tests for rollback

* contrib/client-side/
  (warn): New function to print warning message to stdout.
  (action_rollback): New function. Used to rollback the merges between
   the given revision numbers.
  (command_table): New entry for `rollback'.

r859930 | djames | 2006-05-30 16:35:18 +0000 (Tue, 30 May 2006)

* subversion/include/svn_string.h
  (svn_cstring_match_glob_list): Remove incorrect documentation for 'pool'
  parameter. This function doesn't accept a 'pool' parameter.

Patch by: Madan U Sreenivasan <>

r859959 | madanus | 2006-05-31 19:10:14 +0000 (Wed, 31 May 2006)

  (madanus): Add myself as partial committer for svnmerge.

r860056 | madanus | 2006-06-07 07:54:07 +0000 (Wed, 07 Jun 2006)

Fix verbose message for `avail --blocked'.

Review by: djames

* contrib/client-side/
  (action_avail): Modified to display an appropriate message, when
  `svnmerge avail --blocked -v' is invoked.

r860079 | madanus | 2006-06-08 17:57:51 +0000 (Thu, 08 Jun 2006)

Remove reference to the `design' directory and simplify
a sentence in doc/README.
Approved By: rooneg

* doc/README
  (design/): Remove section.
  (user/): Simplify sentence.

r860096 | madanus | 2006-06-09 09:18:01 +0000 (Fri, 09 Jun 2006)

Revert back part of r20005.

* doc/README
(user/): Revert back to original wording as per dlr's advice.

r860160 | rooneg | 2006-06-13 19:39:45 +0000 (Tue, 13 Jun 2006)

Factor out code for locking a path and validating the contents of
the lock.

Patch by: madanus
Suggested by: djames
Review by: lundblad

* subversion/tests/cmdline/svntest/
  (run_and_validate_lock): New function to lock a path, and
   validate the contents of the lock.

* subversion/tests/cmdline/
  (examine_lock, examine_lock_via_url,
   examine_lock_encoded_recurse): Modified to use

r860221 | dlr | 2006-06-16 16:58:55 +0000 (Fri, 16 Jun 2006)

Removed targets that refer to the `doc/design' directory.

  (doc-design, doc-design-html, doc-design-pdf, doc-design-ps): Deleted.
  (doc): Removed dependency on doc-design.
  (doc-all-html): Removed dependency on doc-design-html.
  (doc-all-pdf): Removed dependency on doc-design-pdf.
  (doc-all-ps): Removed dependency on doc-design-ps.

Patch by: Bhuvaneswaran Arumugam <>
Suggested by: madanus
Review by: madanus

r860231 | jrvernooij | 2006-06-17 22:34:55 +0000 (Sat, 17 Jun 2006)

Cleanup wc in the svn.wc python binding test script.

Patch by: madanus

 * subversion/bindings/swig/python/tests/
   (global): Import shutil.
   (setUp): Generate random name for wc directory instead of fixed location.
   (tearDown): Cleanup wc path after the tests.

r860304 | djames | 2006-06-23 18:23:47 +0000 (Fri, 23 Jun 2006)

Fix Python bindings for svn.wc.crawl_revisions2().

Patch by: jrvernooij
Review by: madanus

[ In subversion/bindings/swig ]

 * svn_ra.i: Add Python typemap for svn_ra_reporter2_t.

 * svn_wc.i: Add Python typemap for svn_wc_notify_func2_t.

 * tests/
   (setUp): Open working copy subdirectories.
   (test_crawl_revisions2): Add test for svn.wc.crawl_revisions2() and
    svn_ra_reporter2_t implementations.

 * python/libsvn_swig_py/swigutil_py.c
   (make_ob_wc_notify): Add function.
   (svn_swig_py_notify_func2): Add Python wrapper for svn_wc_notify_func2_t.
   (reporter_set_path): Add function.
   (reporter_delete_path): Add function.
   (reporter_link_path): Add function.
   (reporter_abort_report): Add function.
   (reporter_finish_report): Add function.
   (swig_py_ra_reporter2): Add Python wrapper for svn_ra_reporter2_t.

 * python/libsvn_swig_py/swigutil_py.h
   (swig_py_ra_reporter2): Add extern.
   (svn_swig_py_notify_func2): Add prototype.

r860305 | madanus | 2006-06-23 19:20:24 +0000 (Fri, 23 Jun 2006)

Rename the python bindings test case classes appropriately.

Patch by: me
Approved by: djames

* subversion/bindings/swig/python/tests/
  (SubversionRepositoryTestCase): Renamed to SubversionWorkingCopyTestCase.
  (suite): Pass SubversionWorkingCopyTestCase to unittest.makeSuite().

* subversion/bindings/swig/python/tests/
  (SubversionRepositoryTestCase): Renamed to
  (suite): Pass SubversionRepositoryAccessTestCase to unittest.makeSuite().

r860507 | lgo | 2006-07-05 20:01:33 +0000 (Wed, 05 Jul 2006)

Cleaning up a bit in the python update tests.

Patch by: madanus

* subversion/tests/cmdline/
   (conflict_markers_matching_eol): Move loop independent code
    outside the loop.

r860532 | dlr | 2006-07-06 16:57:19 +0000 (Thu, 06 Jul 2006)

On the merge-tracking branch: Correct footnote number in design spec.

* notes/merge-tracking.txt
  (As for what is stored): ASCII vs binary is discussed in footnote #2.

Patch by: madanus

r860537 | dlr | 2006-07-07 01:51:08 +0000 (Fri, 07 Jul 2006)

On the merge-tracking branch: Refactor some redundant code.

* subversion/libsvn_subr/mergeinfo.c:
  (rangelist_intersect_or_remove): Move a common code block outside
   an if-else construct.

Patch by: madanus

r860589 | dlr | 2006-07-10 20:41:05 +0000 (Mon, 10 Jul 2006)

On the merge-tracking branch: Avoid discarding any additional merge
info which entered the WC as the result of a property merge.

* subversion/libsvn_client/diff.c
  (do_merge, do_single_file_merge): Re-parse the merge info reflected
   by the WC before using it to update its merge info based on the
   revision ranges which were just merged in.

Patch by: dlr

r860657 | madanus | 2006-07-12 12:49:14 +0000 (Wed, 12 Jul 2006)

A follow-up to r20316.

Found by: Peter Samuelson <>

 * www/faq.html: Fix typo.

r860728 | dlr | 2006-07-13 23:24:17 +0000 (Thu, 13 Jul 2006)

On the merge-tracking branch: Remove the "svn_" prefix from a
module-static function.

* subversion/libsvn_subr/mergeinfo.c
  (combine_ranges): Renamed from svn_combine_ranges().  Improve doc string.

  (parse_revlist, svn_rangelist_merge, rangelist_intersect_or_remove):
   Update for API rename.

Patch by: madanus
(Tweaked by me.)

r860787 | dlr | 2006-07-17 21:51:51 +0000 (Mon, 17 Jul 2006)

On the merge-tracking branch: Fix the FS layer's merge info retrieval.
Merge info was being mis-handling after its retrieval from the index.

* subversion/libsvn_fs_fs/tree.c:
  (parse_mergeinfo_from_db): Set local variable "lastmergedfrom"
   before before looping so that we can detect new merge sources which
   need to be injected into the RESULT output hash.

Patch by: madanus
Review by: dberlin

r860788 | dlr | 2006-07-17 21:57:07 +0000 (Mon, 17 Jul 2006)

On the merge-tracking branch: Tweak formatting.  No functional change.

* subversion/libsvn_fs_fs/tree.c:
  (sqlite_tracer, parse_mergeinfo_from_db, append_component_to_paths,
   get_merge_info_for_path): Remove extraneous whitespace.

Suggested by: madanus
Review by: dberlin

r860797 | dlr | 2006-07-18 19:01:04 +0000 (Tue, 18 Jul 2006)

On the merge-tracking branch: A follow-up to r20712.  Reorder
parameters to the svn_fs_get_merge_info() API.

* subversion/libsvn_repos/fs-wrap.c
  (svn_repos_fs_get_merge_info): Reorder parameters to

* subversion/tests/libsvn_fs/fs-test.c
  (get_merge_info): Ditto.

Patch by: madanus
Review by: dberlin

r860801 | dlr | 2006-07-18 19:33:47 +0000 (Tue, 18 Jul 2006)

On the merge-tracking branch: Remove redundant code introduced in

* subversion/libsvn_fs_fs/tree.c
  (parse_mergeinfo_from_db): Remove redundant set of merge info into

Patch by: madanus
Review by: dlr

r860803 | madanus | 2006-07-18 19:55:39 +0000 (Tue, 18 Jul 2006)

Follow-up for r18146, correcting error handling.

* subversion/libsvn_repos/hooks.c
  (run_hook_cmd): Actually capture the return value of
   apr_file_inherit_unset() before testing for error.

Approved by: rooneg

r860813 | madanus | 2006-07-19 06:50:07 +0000 (Wed, 19 Jul 2006)

Fix typo in 'S:include_parents'. Must be 'S:include-parents'.

Approved by: dlr, dberlin

On the merge-tracking branch:

* subversion/libsvn_ra_dav/mergeinfo.c
  (svn_ra_dav__get_merge_info): Modify to use the 'S:include-parents'
   tag as used by dav_svn__get_merge_info_report().

r860883 | dlr | 2006-07-20 21:02:26 +0000 (Thu, 20 Jul 2006)

On the merge-tracking branch: Add more details/items for Phase 1.

  Attempt to clarify merge info inheritance/differences.  Record
  Madan's desire to handle the merge info propogation related to
  'copy', and Kamesh's desire to work on the BDB FS.  Add merge info
  index-related refactoring item.

Suggested by: madanus
              Kamesh Jayachandran <>

r860967 | dlr | 2006-07-28 21:08:44 +0000 (Fri, 28 Jul 2006)

On the merge-tracking branch: Refactor the merge info indexing code
into a single entry point.

* subversion/libsvn_fs_fs/fs_fs.c
  (index_merge_info): Add new function which cleans the merge info
   records for any earlier failed FSFS transactions, and adds the
   merge info.

  (commit_body): Leverage new index_merge_info() helper.

  (update_mergeinfo_index): Add brief doc string.

Patch by: Kamesh Jayachandran <>
(Tweaked by me.)
Review by: me

r860995 | dlr | 2006-07-31 19:59:26 +0000 (Mon, 31 Jul 2006)

On the merge-tracking branch: Refactor updating of merge info.

* subversion/libsvn_client/diff.c
  (update_wc_merge_info): Move call to parse_merge_info() inside this
   routine, since it's always necessary.  Update parameters and doc
   string accordingly.

  (do_merge, do_single_file_merge): Update for update_wc_merge_info()
   API change.

Suggested by: madanus

r860997 | dlr | 2006-07-31 21:32:31 +0000 (Mon, 31 Jul 2006)

On the merge-tracking branch: Cleanup any merge info index from a
previous, aborted commit with the same revision number as the current

* subversion/libsvn_fs_fs/fs_fs.c
 (index_path_merge_info): Renamed from generate_mergeinfo_sql().
  Tweaked doc string.

 (index_txn_merge_info): Renamed from update_mergeinfo_index(), and
  updated to call index_path_merge_info().

 (update_merge_info_index): Renamed from index_merge_info().  Added
  additional parameter TXN_CONTAINS_MERGE_INFO, which is used to add
  the index only if the commit has some merge info.

 (commit_body): Call update_merge_info_index() unconditionally, and
  pass in the new txn_contains_merge_info parameter.

Patch by: Kamesh Jayachandran <>
(Tweaked by me.)
Review by: me

r861101 | dlr | 2006-08-09 17:19:09 +0000 (Wed, 09 Aug 2006)

* subversion/libsvn_client/copy.c
  (repos_to_wc_copy): Reuse local "dst_parent" variable instead of
   re-allocating it from POOL unnecessarily.

Patch by: madanus
(With a formatting tweak by me.)

r861571 | dlr | 2006-09-14 17:03:16 +0000 (Thu, 14 Sep 2006)

Add a test case to assure that a copy of a directory (by URL) to a
pre-existing directory (within the WC) copies the source *under* the
target directory.

* subversion/tests/cmdline/
  (repos_to_wc): Add test case.

Patch by: madanus
Reviewed by: me

r861626 | madanus | 2006-09-19 11:49:23 +0000 (Tue, 19 Sep 2006)

Fix doc to reflect actual function parameter, as per the obvious fix rule.

* subversion/include/svn_ra.h
  (svn_ra_get_merge_info): Change mergeinfo to mergeoutput.

r861657 | dlr | 2006-09-21 01:41:48 +0000 (Thu, 21 Sep 2006)

On the merge-tracking branch: Step 1 of recording "copyfrom" history
as merge info on repos-to-repos copy.

* subversion/libsvn_client/copy.c
  (global): Include svn_props.h.
  (path_driver_cb_baton): Added mergeinfo parameter.
  (path_driver_cb_func): Set the mergeinfo property on the target.
  (repos_to_repos_copy): Fill the mergeinfo parameter of the
   path_driver_cb_baton with NULL for now.

Patch by: madanus

r862104 | dlr | 2006-10-19 00:23:07 +0000 (Thu, 19 Oct 2006)

On the merge-tracking branch: Add outcome of discussion with Branko
and Madan on WC -> WC copying.

  The Plan for WC -> WC 'copy'.

Suggested by: brane

r862178 | madanus | 2006-10-24 20:37:55 +0000 (Tue, 24 Oct 2006)

Update README.branch with thoughts on how incomplete directories would affect
the status and info commands.

* README.branch
  (User Interface): Add status and info to the list of affected commands, and
   explain how they could be handled.

Approved By: epg

r862193 | dlr | 2006-10-25 23:13:45 +0000 (Wed, 25 Oct 2006)

On the merge-tracking branch: Record implied merge info for copy
sources for repos to repos copy.

* subversion/libsvn_client/copy.c
  (copyfrom_revision_receiver): New log callback to obtain the
   copyfrom revision.
  (get_implied_mergeinfo): New function which gets the implied merge
   info of the specified path.
  (calculate_target_mergeinfo): New function which calls
   get_implied_mergeinfo() to obtain the copyfrom mergeinfo of the
   copy's source path.
  (repos_to_repos_copy): Modified to use calculate_target_mergeinfo() to get

* subversion/tests/cmdline/
  (delete_subdir): Add property update of A (from the copy of A to A2)
   when performing the switch.
  (refresh_read_only_attribute): Add property update of A (from the
   copy of A to A-branch) when performing the switch.

* subversion/tests/cmdline/
  (simple_property_merges, safe_property_merge,
   property_merge_from_branch): Update to account for copy's
   propogation of implied merge info from a copy source to target.
  (three_way_merge_add_of_existing_binary_file): Note why failure is
   now occurring.
  (test_list): Mark three_way_merge_add_of_existing_binary_file() as

Patch by: madanus
Review by: Kamesh Jayachandran <>

r862205 | dlr | 2006-10-26 22:38:10 +0000 (Thu, 26 Oct 2006)

On the merge-tracking branch: For repos to repos copy, record
inherited/direct merge info known to the repository for copy sources
on the copy destination.

* subversion/libsvn_client/copy.c
  (calculate_target_merge_info): Improved doc string.  Renamed local variable
   "copyfrom_mergeinfo" to "implied_mergeinfo".  Changed calculation of
   "copyfrom_path".  Implemented TODOs of retrieving and using merge info
   from the repository.

Patch by: madanus
(Tweaked by me.)
Review by: Kamesh Jayachandran <>

r862395 | kfogel | 2006-11-17 16:25:43 +0000 (Fri, 17 Nov 2006)

On the incomplete-directories branch:

Follow up to r22198 with some consistency fixes.

Patch by: madanus
(Tweaked by me.)

* README.branch: Use consistent names for the new depth field and option.

    The field is now always referred to as:

    And the command-line parameter is now always referred to as:

r862789 | dlr | 2006-12-14 23:28:51 +0000 (Thu, 14 Dec 2006)

Make use of the rev'd commit item structure made available in r22674
to provide a facility for sending extra property changes from client
to repository.

* subversion/include/svn_client.h
  (svn_client_commit_item3_t.incoming_prop_changes): Rename from
   wcprop_changes.  Clarify purpose in doc string.
  (svn_client_commit_item3_t.outgoing_prop_changes): New array for
   sending extra property changes from client -> repository as part of
   a commit.
   svn_client_commit_item_t.wcprop_changes): Trim down documentation,
   referring to svn_client_commit_item3_t.incoming_prop_changes.

* subversion/libsvn_client/util.c
  (svn_client_commit_item3_dup): Change use of wcprop_changes to
   incoming_prop_changes.  Add handling for outoing_prop_changes.

* subversion/libsvn_client/commit_util.c
  (add_committable, svn_client__get_log_msg): Change use of
   wcprop_changes to incoming_prop_changes.

* subversion/libsvn_client/commit.c
  (svn_client_commit4): Change use of wcprop_changes to

* subversion/libsvn_client/ra.c
  (push_wc_prop): Change use of wcprop_changes to
   incoming_prop_changes, and leverage the APR_ARRAY_PUSH() macro.

Suggested by: cmpilato

r862830 | dlr | 2006-12-19 20:47:29 +0000 (Tue, 19 Dec 2006)

On the merge-tracking branch: Fix the error introduced in r22732 which
causes get-merge-info REPORT requests to segfault on the client-side.

* subversion/libsvn_ra_dav/mergeinfo.c
  (svn_ra_dav__get_merge_info): Pass a 'svn_ra_dav__session_t *' to

Patch by: kameshj
Reviewed by: me
Found by: madanus

r862849 | dlr | 2006-12-20 21:59:21 +0000 (Wed, 20 Dec 2006)

Make use of the outgoing_prop_changes field on the commit item
structure.  A follow-up to r22715.

* subversion/libsvn_client/commit_util.c
  (do_item_commit): Take into account a commit item's list of
   outgoing_prop_changes when the item's state flag has

Patch by: madanus
(Tweaked by me.)

r862891 | madanus | 2006-12-28 05:37:51 +0000 (Thu, 28 Dec 2006)

Under the incomplete-directories branch. Simple fix in README.branch
under the 'obvious fix' rule.

* README.branch
  (Examples): Correct slip. When checking out with 'depth-files',
   the entries file will contain the this_dir with 'depth-files' - obviously.

r862903 | madanus | 2006-12-29 04:59:29 +0000 (Fri, 29 Dec 2006)

On the incomplete-directories branch. Fix the default depth for the ls command.

* subversion/svn/list-cmd.c
  (svn_cl__list): The default depth for the ls command is one, and not
   infinity as r21829 thought.

Approved by: jerenkrantz

r862904 | madanus | 2006-12-29 05:07:33 +0000 (Fri, 29 Dec 2006)

On the incomplete directories branch. Fix getopt_tests 7.

* subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
  Modify the help-text of the -N switch to match the expected value.
  Add help-text for the --depth parameter.

Approved by: jerenkrantz

r862905 | madanus | 2006-12-29 05:10:37 +0000 (Fri, 29 Dec 2006)

On the incomplete-directories branch: Fix default depth for the info command.

* subversion/svn/info-cmd.c
  (svn_cl__info): The default depth for the info command is one, and not
   infinity as r21829 thought.

Approved by: jerenkrantz

r863021 | malcolm | 2007-01-09 18:45:53 +0000 (Tue, 09 Jan 2007)

When executing commands as part of the test framework, if a command
fails due to a signal (coredump, etc), output the stdout and stderr
before raising the exception, to aid debugging.

* subversion/tests/cmdline/svntest/
  (run_command_stdin): Write stdout_lines and stderr_lines to stdout
    and stderr before raising an exception.

Suggested by: madanus
Patch by: djames

r863497 | dlr | 2007-02-17 02:25:53 +0000 (Sat, 17 Feb 2007)

On the merge-tracking branch: Checkpoint commit for handling of merge
info for WC -> repos 'copy'/'move' operations.

While this is mostly working, it introduces test failures over ra_dav
due to some path miscalculations (we're using a repository-relative
path, rather than the expected RA session root-relative path).

* subversion/libsvn_client/copy.c
  (get_implied_merge_info): Handle the case where a locally-added but
   uncommitted versioned resource which doesn't exist in the
   repository causes an error (see copy test #48).
  (calculate_target_merge_info): Add FIXME note about the cause of the
   ra_dav test failure.
  (wc_to_repos_copy): Acquire a relative path and revnum for each copy
   source.  Use it to calculate the merge info for each destination
   path, and stuff that into the outgoing_prop_changes list for the
   corresponding svn_client_commit_item3_t.

* subversion/libsvn_client/commit_util.c
  (do_item_commit): Take into account the item's outgoing_prop_changes
   value when the item's state flag has SVN_CLIENT_COMMIT_ITEM_PROP_MODS

* subversion/tests/cmdline/
  (copy_added_paths_to_URL): Assure that the merge info for a copied
   path which was copied from a versioned but uncommitted source is
   not set.
  (test_list): Unmark wc_to_repos (though it still fails over ra_dav).

Patch by: me