Index: subversion/bindings/swig/ruby/svn/ra.rb =================================================================== --- subversion/bindings/swig/ruby/svn/ra.rb (revision 25496) +++ subversion/bindings/swig/ruby/svn/ra.rb (working copy) @@ -244,10 +244,10 @@ Ra.reparent(self, url) end - def merge_info(paths, revision=nil, include_parents=true) + def merge_info(paths, revision=nil, inherit=nil) paths = [paths] unless paths.is_a?(Array) revision ||= Svn::Core::INVALID_REVNUM - info = Ra.get_mergeinfo(self, paths, revision, include_parents) + info = Ra.get_mergeinfo(self, paths, revision, inherit) unless info.nil? info.each_key do |key| info[key] = Core::MergeInfo.new(info[key]) Index: subversion/bindings/swig/ruby/svn/fs.rb =================================================================== --- subversion/bindings/swig/ruby/svn/fs.rb (revision 25496) +++ subversion/bindings/swig/ruby/svn/fs.rb (working copy) @@ -496,9 +496,9 @@ Fs.closest_copy(self, path) end - def merge_info(paths, include_parents=true) + def merge_info(paths, inherit=nil) paths = [paths] unless paths.is_a?(Array) - Fs.get_mergeinfo(self, paths, include_parents) + Fs.get_mergeinfo(self, paths, inherit) end alias_method :mergeinfo, :merge_info Index: subversion/bindings/swig/ruby/svn/repos.rb =================================================================== --- subversion/bindings/swig/ruby/svn/repos.rb (revision 25496) +++ subversion/bindings/swig/ruby/svn/repos.rb (working copy) @@ -359,7 +359,7 @@ editor.baton.node end - def merge_info(paths, revision=nil, include_parents=true, &authz_read_func) + def merge_info(paths, revision=nil, inherit=nil, &authz_read_func) path = nil unless paths.is_a?(Array) path = paths @@ -367,7 +367,7 @@ end revision ||= Svn::Core::INVALID_REVNUM results = Repos.fs_get_mergeinfo(self, paths, revision, - include_parents, authz_read_func) + inherit, authz_read_func) results = results[path] if path results end Index: subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h =================================================================== --- subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h (revision 25496) +++ subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h (working copy) @@ -71,6 +71,9 @@ svn_depth_t svn_swig_rb_to_depth(VALUE value); SVN_RB_SWIG_SWIGUTIL_EXPORT +svn_mergeinfo_inheritance_t svn_swig_rb_to_mergeinfo_inheritance(VALUE value); + +SVN_RB_SWIG_SWIGUTIL_EXPORT VALUE svn_swig_rb_svn_date_string_to_time(const char *date); SVN_RB_SWIG_SWIGUTIL_EXPORT Index: subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c =================================================================== --- subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c (revision 25496) +++ subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c (working copy) @@ -852,6 +852,25 @@ } } +svn_mergeinfo_inheritance_t +svn_swig_rb_to_mergeinfo_inheritance(VALUE value) +{ + if (NIL_P(value)) { + return svn_mergeinfo_inherited; + } else if (RTEST(rb_obj_is_kind_of(value, rb_cString)) || + RTEST(rb_obj_is_kind_of(value, rb_cSymbol))) { + value = rb_funcall(value, id_to_s, 0); + return svn_inheritance_from_word(StringValueCStr(value)); + } else if (RTEST(rb_obj_is_kind_of(value, rb_cInteger))) { + return NUM2INT(value); + } else { + rb_raise(rb_eArgError, + "'%s' must be MERGEINFO_STRING (e.g. \"explicit\" or :explicit) " + "or Svn::Core::MERGEINFO_*", + r2c_inspect(value)); + } +} + static VALUE c2r_string(void *value, void *ctx) { Index: subversion/bindings/swig/include/svn_types.swg =================================================================== --- subversion/bindings/swig/include/svn_types.swg (revision 25496) +++ subversion/bindings/swig/include/svn_types.swg (working copy) @@ -1143,6 +1143,17 @@ /* ----------------------------------------------------------------------- + useful convertors for svn_mergeinfo_inheritance_t +*/ + +#ifdef SWIGRUBY +%typemap(in) svn_mergeinfo_inheritance_t { + $1 = svn_swig_rb_to_mergeinfo_inheritance($input); +} +#endif + + +/* ----------------------------------------------------------------------- Special boolean mapping for ruby. */