Skip to content
代码片段 群组 项目
  • Yorick Peterse's avatar
    00367120
    Fix passing nil to protected_tag? · 00367120
    Yorick Peterse 创作于
    Previously this method would directly receive the output of tag_name().
    This method could either return a String or nil. In the previous setup
    this would somehow magically work but because Rugged::TagCollection#[]
    doesn't accept nil values it started to fail.
    
    To work around this the elsif in change_access_check() assigns the
    result of tag_name() to a local and then _only_ calls protected_tag?()
    if the tag name is not nil. The extra parenthesis are put in place to
    ensure that things are parsed correctly, without these the code would be
    parsed as follows:
    
        elsif tag_ref = (tag_name(ref) && protected_tag(tag_ref))
    
    During runtime this would basically resolve to:
    
        elsif tag_ref = (tag_name(ref) && protected_tag(nil))
    
    This is because when you refer to the variable you're assigning _in_ the
    assignment Ruby returns nil instead of raising an error.
    未验证
    00367120
    历史
    Fix passing nil to protected_tag?
    Yorick Peterse 创作于
    Previously this method would directly receive the output of tag_name().
    This method could either return a String or nil. In the previous setup
    this would somehow magically work but because Rugged::TagCollection#[]
    doesn't accept nil values it started to fail.
    
    To work around this the elsif in change_access_check() assigns the
    result of tag_name() to a local and then _only_ calls protected_tag?()
    if the tag name is not nil. The extra parenthesis are put in place to
    ensure that things are parsed correctly, without these the code would be
    parsed as follows:
    
        elsif tag_ref = (tag_name(ref) && protected_tag(tag_ref))
    
    During runtime this would basically resolve to:
    
        elsif tag_ref = (tag_name(ref) && protected_tag(nil))
    
    This is because when you refer to the variable you're assigning _in_ the
    assignment Ruby returns nil instead of raising an error.
代码所有者
将用户和群组指定为特定文件更改的核准人。 了解更多。
git_access.rb 5.54 KiB