in lib/rugged_adapter/git_layer_rugged.rb [361:393]
def commit_touches_path?(commit, path, follow, walker)
entry = tree_entry(commit, path)
if commit.parents.empty?
return entry != nil
end
num_treesame = 0
commit.parents.each do |parent|
parent_entry = tree_entry(parent, path)
if num_treesame > 0
walker.hide(parent.oid)
next
end
if entry.nil? && parent_entry.nil?
num_treesame += 1
elsif entry && parent_entry && entry[:oid] == parent_entry[:oid]
num_treesame += 1
end
end
case num_treesame
when 0
detect_rename(commit, commit.parents.first, path) if follow
true
else false
end
end