Kouhei Sutou <kou@cozmixng.org> (kou)

Found Patch Review Suggested
r30101, r24094, r18531 r30159, r27179, r26331, r24543, r22891, r20078, r17227, r15356, r15078, r15069, r15028 r27900, r27823, r27592, r27591, r26389, r26319, r26314, r25019, r24771, r24753, r24070, r20042, r19957, r16885 r28111, r28018, r24062, r24054, r24051, r20248, r16752, r16741, r16735, r16408, r12719

r30159 | lgo | 2008-04-01 14:08:36 -0500 (Tue, 01 Apr 2008)

Avoid crash on opening an ra_serf session when no 'servers' configuration 
settings are available.

Patch by: kou

* subversion/libsvn_ra_serf/serf.c
  (load_config): check first if servers configuration exists.

r30101 | kfogel | 2008-03-28 09:19:44 -0500 (Fri, 28 Mar 2008)

* subversion/libsvn_client/diff.c
  (set_up_diff_cmd_and_options): Really allow config to be null,
    following up to r30053.

Found by: kou

r28111 | joeswatosh | 2007-11-28 01:26:39 -0600 (Wed, 28 Nov 2007)

Make the default values for optional arguments be in only one place.

* subversion/bindings/swig/ruby/test/test_wc.rb
  (SvnWcTest#test_update_editor, SvnWcTest#test_switch_editor,
   SvnWcTest#test_update_editor_options): Use the previous api, since that
   will forward to the new api to get better coverage.

* subversion/bindings/swig/ruby/svn/wc.rb
   Remove nil values from the arguments Hash before merging in defaults.
   Make each optional argument default to nil.

Suggested by: kou

r28018 | joeswatosh | 2007-11-25 18:20:47 -0600 (Sun, 25 Nov 2007)

Duplication reduction by using Svn::Wc::AdmAccess#update_editor2 to implement
update_editor, and Svn::Wc::AdmAccess#switch_editor2 to implement

* subversion/bindings/swig/ruby/svn/wc.rb
  (Svn::Wc::AdmAccess#update_editor): Implement with update_editor2.
  (Svn::Wc::AdmAccess#switch_editor): Implement with switch_editor2.

Suggested by: kou

r27900 | joeswatosh | 2007-11-17 02:10:53 -0600 (Sat, 17 Nov 2007)

Reduce duplication by eliminating the OPTIONAL_*_EDITOR_KEYS and some
renaming to improve clarity.

* subversion/bindings/swig/ruby/svn/wc.rb
   rename argument and local variables to improve clarity.

Review by: kou

r27823 | joeswatosh | 2007-11-14 23:19:39 -0600 (Wed, 14 Nov 2007)

Use a hash to simulate named arguments instead of a long list of optional

* subversion/bindings/swig/ruby/test/test_wc.rb
  (SvnWcTest#test_update_editor_options): New test

* subversion/bindings/swig/ruby/svn/wc.rb
   Use a hash of optional arguments instead of a very long argument list.

* subversion/bindings/swig/ruby/svn/util.rb
  (Svn::Util.validate_options): New method to ensure hash arguments
   are understood.

Reviewed by: kou

r27592 | joeswatosh | 2007-11-05 08:25:01 -0600 (Mon, 05 Nov 2007)

New tests to show that the depth (or recurse) arguments to propset, propget,
and proplist on Svn::Client::Context are handled correctly.  Plus handling
them correctly.

* subversion/bindings/swig/ruby/test/test_client.rb
  (SvnClientTest#recurse_and_depth_choices, SvnClientTest#test_file_prop,
  SvnClientTest#test_dir_prop): New methods.

* subversion/bindings/swig/ruby/svn/client.rb
  (Svn::Client::Context#depth_from_depth_or_recurse): New private method.
  (Svn::Client::Context#propset, Svn::Client::Context#propget,
  Svn::Client::Context#proplist): Change the argument name to depth_or_recurse
  and calculate the depth from the argument.

Reviewed by: kou

r27591 | joeswatosh | 2007-11-05 08:21:52 -0600 (Mon, 05 Nov 2007)

Provide a simple way for test writers to create a Greek tree for testing, plus
some helper methods to access the files and directories in the working copy
and the repository.

* subversion/bindings/swig/ruby/test/util.rb
  (SvnTestUtil#setup_basic): Define constants for the greek tree.
  (SvnTestUtil::GreekTree): New constant
  (SvnTestUtil#setup_greek_tree, SvnTestUtil.greek_constants_defined?,
  SvnTestUtil.define_greek_constants, SvnTestUtil#wc_path_for,
  SvnTestUtil#uri_for): New methods

Reviewed by: kou

r27179 | joeswatosh | 2007-10-14 13:33:56 -0500 (Sun, 14 Oct 2007)

Follow on to r27133 "Implement Issue #2818: Provide an API which allows for 
merging of arbitrary revision ranges as well as the command line enhancements 
to support the same."   This specifically is in response to the change to the
change to the svn_client_merge_peg3 API.

* subversion/bindings/swig/ruby/svn/client.rb
  (Svn::Client::Context#merge_peg2): New method to match the new API in 
  (Svn::Client::Context#merge_peg): Implement in terms of merge_peg2.

* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h
  (svn_swig_rb_array_to_apr_array_revision_range): New function to convert a 
  Ruby array of two element arrays into an apr_array_header_t of 

* subversion/bindings/swig/include/svn_containers.swg
  (typemap(in) apr_array_header_t *REVISION_RANGE_LIST): New typemap.

* subversion/bindings/swig/svn_client.i
  (apply apr_array_header_t *REVISION_RANGE_LIST): New apply.

Patch by: kou

r26389 | joeswatosh | 2007-08-30 08:56:32 -0500 (Thu, 30 Aug 2007)

Finish up the follow on to r26229 for the Ruby bindings.  r26228 added support
for non-inheritable mergeinfo revision ranges.

* subversion/bindings/swig/core.i
  (Svn::Ext::Core::Svn_merge_range_t#initialize): Add a new svn_boolean_t
  inheritable argument and use it to set the new inheritable member of

* subversion/bindings/swig/ruby/svn/core.rb
  (Svn::Core::MergeRange#to_a): Add the new inhertitable member to the
  returned array.

* subversion/bindings/swig/ruby/test/test_client.rb
  (SvnClientTest#test_merge, SvnClientTest#test_merge_peg): Update the
  expected results that are representations of svn_merge_range_t structs so
  they include the new inheritable member.

* subversion/bindings/swig/ruby/test/test_core.rb
  (SvnCoreTest#test_mergeinfo_parse): Update the expected results that are
  representations of svn_merge_range_t structs so they include the new
  inheritable member.  New assertions to demonstrate "non-inheritable" ranges.

  (SvnCoreTest#test_mergeinfo_diff, SvnCoreTest#test_mergeinfo_merge,
  SvnCoreTest#test_mergeinfo_remove, SvnCoreTest#test_mergeinfo_sort): Update
  the expected results that are representations of svn_merge_range_t structs
  so they include the new inheritable member.

  (SvnCoreTest#test_mergeinfo_to_s): New assertions to demonstrate "non-
  inheritable" ranges.

  (SvnCoreTest#test_range_list_diff, SvnCoreTest#test_range_list_merge,
  SvnCoreTest#test_range_list_remove, SvnCoreTest#test_range_list_intersect,
  SvnCoreTest#test_range_list_reverse, SvnCoreTest#test_range_list_to_s):
  Update the invocations of Svn::Core::RangeList.new to include the new
  inheritable argument. Update the expected results that are representations
  of svn_merge_range_t structs so they include the new inheritable member.

* subversion/bindings/swig/ruby/test/test_ra.rb
  (SvnRaTest#test_mergeinfo): Update the expected results that are
  representations of svn_merge_range_t structs so they include the new
  inheritable member.

Review by: kou

r26331 | joeswatosh | 2007-08-26 23:49:26 -0500 (Sun, 26 Aug 2007)

Fixup filenames so they are safe for windows.

* subversion/bindings/swig/ruby/test/test-unit-ext/priority.rb
  (Test::Unit::TestCase#escaped_method_name): New method.

Patch by: kou

r26319 | joeswatosh | 2007-08-25 22:04:40 -0500 (Sat, 25 Aug 2007)

Follow on to r26229 which added support for non-inheritable mergeinfo revision

* subversion/bindings/swig/core.i
  (svn_swig_rb_mergeinfo_merge and svn_swig_rb_rangelist_merge): Add new
  svn_merge_range_inheritance_t argument and forward to svn_mergeinfo_merge
  and svn_rangelist_merge respectively.

* subversion/bindings/swig/include/svn_types.swg
  (%typemap(in) svn_merge_range_inheritance_t): New typemap.

* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c,
  (svn_swig_rb_to_merge_range_inheritance): New conversion function.

* subversion/bindings/swig/ruby/svn/core.rb
  (Svn::Core::MergeInfo#diff, Svn::Core::MergeInfo#merge,
  Svn::Core::RangeList#diff, Svn::Core::RangeList#merge,
  Svn::Core::RangeList#remove): Add a new argument consider_inheritance
  which is defaulted to nil.

* subversion/bindings/swig/ruby/test/test_core.rb
  (SvnCoreTest#test_merge_info_to_s): Make more self-describing.

Review by: kou

r26314 | joeswatosh | 2007-08-25 16:20:09 -0500 (Sat, 25 Aug 2007)

Follow on to r26222 which added a depth argument to svn_repos_begin_report2.

* subversion/bindings/swig/ruby/svn/repos.rb:
  (Svn::Repos::ReposCore#report2) forwarded the already existing depth argument
  to Svn::Repos#begin_report_2.

Review by: kou

r25019 | joeswatosh | 2007-05-15 01:13:50 -0500 (Tue, 15 May 2007)

Follow on to r25007 which added depth support to svn_client_proplist3.

* subversion/bindings/swig/ruby/svn/client.rb
  (Svn::Client::Context#proplist) changed argument name and default to
  reflect the use of depth instead of recurse in the core API.

Reviewed by: kou

r24771 | joeswatosh | 2007-04-24 23:30:20 -0500 (Tue, 24 Apr 2007)

Show that the repository is hosed before hotcopy fixes it.

* subversion/bindings/swig/ruby/test/test_fs.rb
 (assert_hotcopy) assert log_message raises when the repository is hosed

Reviewed by: kou

r24753 | joeswatosh | 2007-04-24 10:03:01 -0500 (Tue, 24 Apr 2007)

Make the Ruby bindings distribution stand alone by requiring the libdbXX.dll,
sqlite3.dll and optionally requiring intl3_svn.dll.

* build/win32/make_dist.py
 (_disttree) added libdbXX.dll, sqlite3.dll and intl3_svn.dll

Reviewed by: djh

r24543 | joeswatosh | 2007-04-11 19:59:26 -0500 (Wed, 11 Apr 2007)

Accept NULL as changelist name argument of svn_client_commit4().

* subversion/bindings/swig/svn_client.i
  (%ignore svn_client_commit4,
   %apply const char *MAY_BE_NULL,
   _svn_client_remove_from_changelist): Accept NULL as changelist
  name argument of svn_client_commit4().

Patch by: kou

r24094 | kfogel | 2007-03-24 14:18:09 -0500 (Sat, 24 Mar 2007)

* subversion/include/svn_repos.h 
  (svn_repos_begin_report): Fix documentation of recurse vs depth.

Found by: kou

r24070 | dlr | 2007-03-23 22:01:46 -0500 (Fri, 23 Mar 2007)

SWIG/Ruby: Handle Merge Tracking-related test failures due tochanges
to the behavior of 'merge' (which now avoids repeated merges).

* subversion/bindings/swig/ruby/test/test_client.rb
  (test_merge, test_merge_peg): Delete "svn:mergeinfo" property on the
   target of our merge to allow subsequent merge operations which
   include the same revision range.

Review by: kou

r24062 | dlr | 2007-03-23 17:07:42 -0500 (Fri, 23 Mar 2007)

SWIG: Move Merge Tracking-related typemaps to a more appropriate
mapping include file.

* subversion/bindings/swig/include/svn_types.swg
  (RANGELIST, MERGEINFO, MERGEHASH): Move typemaps from here...

* subversion/bindings/swig/include/svn_containers.swg
  (RANGELIST, MERGEINFO, MERGEHASH): ...to here, fixing formatting and
   adding basic doc strings.

Suggested by: kou

r24054 | dlr | 2007-03-23 13:51:21 -0500 (Fri, 23 Mar 2007)

SWIG: Remove the MERGEHASHHASH typemap in favor of the identical
MERGEHASH typemap.

* subversion/bindings/swig/include/svn_types.swg
  (MERGEHASHHASH): Remove typemap.

* subversion/bindings/swig/svn_ra.i
  Use MERGEHASH typemap in lieu of (now removed) MERGEHASHHASH typemap.

Suggested by: kou

r24051 | dlr | 2007-03-23 12:52:48 -0500 (Fri, 23 Mar 2007)

Rename the svn_range_dup() API to svn_merge_range_dup(), for
consistency with our existing method naming conventions (which
benefits SWIG).

* subversion/include/svn_types.h
  (svn_merge_range_dup): Rename from svn_range_dup().

* subversion/libsvn_client/merge.c
  (calculate_merge_ranges): Adjust for API rename.

* subversion/libsvn_subr/mergeinfo.c
  (combine_with_lastrange, rangelist_intersect_or_remove): Adjust for
   API rename.
  (svn_merge_range_dup): Rename from svn_range_dup().

Suggested by: kou

r22891 | dlr | 2007-01-03 17:29:45 -0600 (Wed, 03 Jan 2007)

ra_svn: Make SASL auth's behavior like simple auth.

* subversion/libsvn_ra_svn/sasl_auth.c
  Bump copyright year.
  (handle_interact): Check that CREDS is available before using it.

Patch by: kou

r20248 | nori | 2006-06-26 06:37:15 -0500 (Mon, 26 Jun 2006)

Make a method name more Rubyish in the SWIG/Ruby bindings.

* subversion/bindings/swig/ruby/svn/core.rb
  (Svn::Core::Dirent#have_props?): A new alias to
  (Svn::Core::Dirent): Replace a descripsion for
  Svn::Core::Dirent#has_props by one for Svn::Core::Dirent#have_props?
  in the RDoc comment.

* subversion/bindings/swig/ruby/test/test_client.rb
  (SvnClientTest#test_list): Add assertions for

Suggested by: kou
Approved by: kou

r20078 | nori | 2006-06-13 11:02:20 -0500 (Tue, 13 Jun 2006)

Improve usability for Svn::Core::LogChangedPath in the SWIG/Ruby
bindings by adding a method.  Also, add a missing test case for the

* subversion/bindings/swig/ruby/svn/core.rb
  (Svn::Core::LogChangedPath#copied?): A new method for determining
  whether the path was copied or not.

* subversion/bindings/swig/ruby/test/test_client.rb
  (SvnClientTest#test_log_message): Rename from SvnClientTest#test_log
  since it tests Svn::Client::Context#log_message.
  (SvnClientTest#test_log): A new test case for Svn::Client::Context#log
  and Svn::Core::LogChangedPath.

* subversion/bindings/swig/ruby/test/my-assertions.rb
  (Test::Unit::Assertions#assert_nested_sorted_array): A new method for
  asserting nested sorted arrays.

Patch by: me
Approved by: kou

r20042 | nori | 2006-06-11 21:45:16 -0500 (Sun, 11 Jun 2006)

Improve usability for Svn::Core::Dirent#time in the SWIG/Ruby bindings
by converting its returned value from a Integer to a Time.

* subversion/bindings/swig/ruby/svn/core.rb
  (Svn::Core::Dirent#time): Return a Time instead of an Integer.

Patch by: me
Review by: kou
Approved by: kou

r19957 | nori | 2006-06-05 21:00:02 -0500 (Mon, 05 Jun 2006)

Remove duplication of directories searched for include files, which may
not be harmful but makes build messages ugly.  Problem scenario:
   SWIG_RB_COMPILE includes SWIG_RB_INCLUDES, which includes

Patch by: me
Review by: kou

* Makefile.in
  (COMPILE_PY_WRAPPER): Remove SWIG_INCLUDES, which is included in
  (COMPILE_RB_WRAPPER): Remove SWIG_INCLUDES, which is included in
* build/ac-macros/swig.m4 (SVN_FIND_SWIG): Remove SWIG_RB_INCLUDES from

r18531 | lundblad | 2006-02-20 12:52:56 -0600 (Mon, 20 Feb 2006)

Fix a minor API bug that caused the notification callback to be called with an
absolute path where it could use a relative path.

Found by: kou

* subversion/libsvn_client/commit_util.c
  (svn_client__do_commit): Give the notifier a relative path when sending
  postfix text deltas, if possible.

r17227 | rooneg | 2005-11-06 22:30:41 -0600 (Sun, 06 Nov 2005)

* subversion/libsvn_client/compat_providers.c
  (svn_client_get_username_provider): Actually call the new underlying
   implementation in libsvn_auth, instead of recursing infinitely.

Patch by: kou

r16885 | djames | 2005-10-20 20:32:26 -0500 (Thu, 20 Oct 2005)

Update tools/examples/svnlook.rb to use Subversion 1.3 APIs.
(The Ruby bindings do not support the Subversion 1.2 APIs any
 more, so all scripts need to be updated.)

Patch by: nori
Review by: kou

* tools/examples/svnlook.rb
  (SvnLook#cmd_date): Use Time#strftime directly instead of via

  (SvnLook#print_tree): Change arguments passed to

  (SvnLook#str_to_time): Removed.

  Inherit not Svn::Delta::Editor but Svn::Delta::BaseEditor.

  (SvnLook::DiffEditor#apply_textdelta): Change arguments passed to

r16752 | djames | 2005-10-16 09:09:21 -0500 (Sun, 16 Oct 2005)

* subversion/libsvn_subr/constructors.c
  (svn_string_hash_dup): Assign copied key/values to new_hash, as documented.
  Change type of variables to avoid unnecessary casts.

Suggested by: kou

r16741 | djames | 2005-10-16 00:53:10 -0500 (Sun, 16 Oct 2005)

* subversion/libsvn_subr/constructors.c
  (svn_client_commit_item2_dup): Duplicate copyfrom_url. Followup to r16735.

Suggested by: kou

r16735 | djames | 2005-10-15 12:24:04 -0500 (Sat, 15 Oct 2005)

Create deep copy utility functions for svn_wc_external_item_t,
svn_client_proplist_item_t, and svn_client_commit_item2_t.
(These deep copy functions are needed by the Ruby bindings).

Suggested by: kou

* subversion/include/svn_wc.h,
  (svn_wc_external_item_dup): New function.
* subversion/include/svn_client.h
  (svn_client_proplist_item_dup, svn_client_commit_item2_dup): New functions.
* subversion/libsvn_subr/constructors.c
  (svn_prop_member_dup, svn_string_hash_dup, svn_client_proplist_item_dup,
   svn_prop_array_dup, svn_client_commit_item2_dup): New functions.
  (svn_prop_dup): Use svn_prop_member_dup.

r16408 | maxb | 2005-10-02 07:39:54 -0500 (Sun, 02 Oct 2005)

Fix bug (use of uninitialized variable) introduced in r16388.
Many apologies for committing such a stupid thing in the first place - it turns
out gcc's -Wuninitialized is disabled if optimization is not enabled!

Suggested by: kou

* subversion/libsvn_fs/fs-loader.c (svn_fs_hotcopy)
  Remove path variable, use src_path and dest_path appropriately.

r15356 | brane | 2005-07-18 04:58:18 -0500 (Mon, 18 Jul 2005)

Fix Windows build -- include necessary header files.

Patch by: Kouhei Sutou <kou@cozmixng.org>

* subversion/libsvn_subr/cmdline.c: Move
  '#include "arch/win32/apr_arch_utf8.h"' to

* subversion/libsvn_subr/nls.c: Include svn_path.h and

r15078 | kou | 2005-06-17 02:39:49 -0500 (Fri, 17 Jun 2005)

Cleanup svnshell.rb.

Patch by: David James <james82@gmail.com>

* tools/examples/svnshell.rb
  (SvnShell#initialize): Split into SvnShell#youngest_rev.
  - Guard against empty input.
  - Split into SvnShell#setup_root.
  - Adjust current path on each dispatch.
  (SvnShell#prompt): Use SvnShell#rev_mode? instead of @in_rev_mode.
  (SvnShell#dispatch): Improve messages.
  (SvnShell#do_cat): Improve variable and method names.
  (SvnShell#do_cd): Ditto.
  (SvnShell#do_ls): Ditto.
  (SvnShell#do_setrev): Use SvnShell#rev= instead of '@rev ='.
  (SvnShell#do_settxn): Use SvnShell#txn= instead of '@txn ='.
  (SvnShell#youngest_rev): Add.
  (SvnShell#rev=): Add.
  (SvnShell#txn=): Add.
  (SvnShell#rev_mode?): Add this instead of @in_rev_mode.
  (SvnShell#reset_root): Add.
  (SvnShell#setup_root): Add.
  (SvnShell#normalize_path): Rename from parent_path.
  (SvnShell#parent_path): Add.
  (SvnShell#find_available_path): Rename from path_landing and cleanup.

r15069 | kou | 2005-06-16 01:15:53 -0500 (Thu, 16 Jun 2005)

Add lots of documentation.

Patch by: David James <james82@gmail.com>

* tools/examples/svnlook.rb: Add documentation.

r15028 | kou | 2005-06-10 20:43:29 -0500 (Fri, 10 Jun 2005)

Support Ruby bindings test in build directory which is different from
source directory.

Patch by: David James <james82@gmail.com>

* Makefile.in
  (check-swig-rb): Switch check-swig-rb to look in the source directory
  instead of the build directory for the test scripts.

r12719 | maxb | 2005-01-13 20:11:01 -0600 (Thu, 13 Jan 2005)

Followup to r12717 - fix typo

Suggested by: Kouhei Sutou <kou@cozmixng.org>

* build/ac-macros/swig.m4: Fix missing parenthesis.