我用了很长一段时间的老版本,现在我想升级到最新版本。在开发分支中,我发现大块类属性有问题,例如:old_start、new_start、old_lines、new_lines - 由于缺少访问器(如果我正确理解代码),我无法访问这些属性。早些时候,这些参数包含在 range 属性中,现在它们被移动到单独的变量中,但在 lib/rugged/diff/hunk.rb 中没有相应的访问器:
module Rugged
class Diff
class Hunk
include Enumerable
alias each each_line
attr_reader :line_count, :header, :range, :owner
在 ext/rugged/rugged/rugged_diff_hunk.c 中,我们有:
rb_iv_set(rb_hunk, "@old_start", INT2FIX(hunk->old_start));
rb_iv_set(rb_hunk, "@old_lines", INT2FIX(hunk->old_lines));
rb_iv_set(rb_hunk, "@new_start", INT2FIX(hunk->new_start));
rb_iv_set(rb_hunk, "@new_lines", INT2FIX(hunk->new_lines));
同样奇怪的是,属性“范围”有一个旧的访问器,但是不再创建这个变量(在检查方法中它总是打印为 nil)。
是否已经有一些计划来解决这个问题,或者它不是一个错误,我应该以其他方式访问大块的 new_start 和 old_start ?