0

我用了很长一段时间的老版本,现在我想升级到最新版本。在开发分支中,我发现大块类属性有问题,例如: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 ?

4

1 回答 1

1

是的,看起来这些实例变量的访问器丢失了。您是否介意在 Github 问题跟踪器上为崎岖不平打开一张票:https ://github.com/libgit2/rugged/issues

于 2014-04-22T22:29:44.910 回答