# HG changeset patch # User Toshi MARUYAMA # Parent 480ccf55a6692bf5c59448f48468c2b38f387def #25563 diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -172,7 +172,7 @@ class RepositoriesController < Applicati return true if Redmine::MimeType.is_type?('text', path) # Ruby 1.8.6 has a bug of integer divisions. # http://apidock.com/ruby/v1_8_6_287/String/is_binary_data%3F - return false if ent.is_binary_data? + return false if Redmine::Scm::Adapters::ScmData.is_binary_data?(ent) true end private :is_entry_text_data? diff --git a/lib/redmine/core_ext/string.rb b/lib/redmine/core_ext/string.rb --- a/lib/redmine/core_ext/string.rb +++ b/lib/redmine/core_ext/string.rb @@ -4,8 +4,4 @@ require File.dirname(__FILE__) + '/strin class String #:nodoc: include Redmine::CoreExtensions::String::Conversions include Redmine::CoreExtensions::String::Inflections - - def is_binary_data? - ( self.count( "^ -~", "^\r\n" ).fdiv(self.size) > 0.3 || self.index( "\x00" ) ) unless empty? - end end diff --git a/lib/redmine/scm/adapters/abstract_adapter.rb b/lib/redmine/scm/adapters/abstract_adapter.rb --- a/lib/redmine/scm/adapters/abstract_adapter.rb +++ b/lib/redmine/scm/adapters/abstract_adapter.rb @@ -430,6 +430,14 @@ module Redmine class Branch < String attr_accessor :revision, :scmid end + + class ScmData + def self.is_binary_data?(data) + unless data.empty? + data.count( "^ -~", "^\r\n" ).fdiv(data.size) > 0.3 || data.index( "\x00" ) + end + end + end end end end diff --git a/lib/redmine/scm/adapters/git_adapter.rb b/lib/redmine/scm/adapters/git_adapter.rb --- a/lib/redmine/scm/adapters/git_adapter.rb +++ b/lib/redmine/scm/adapters/git_adapter.rb @@ -338,7 +338,7 @@ module Redmine content = nil git_cmd(cmd_args) { |io| io.binmode; content = io.read } # git annotates binary files - return nil if content.is_binary_data? + return nil if ScmData.is_binary_data?(content) identifier = '' # git shows commit author on the first occurrence only authors_by_commit = {}