in lib/gitlab_git/diff_collection.rb [89:126]
def each_patch
@iterator.each_with_index do |raw, i|
if @array[i]
yield @array[i]
next
end
break if @overflow
if !@all_diffs && i >= @max_files
@overflow = true
break
end
collapse = !@all_diffs && !@no_collapse
diff = Gitlab::Git::Diff.new(raw, collapse: collapse)
if collapse && over_safe_limits?(i)
diff.prune_collapsed_diff!
end
@line_count += diff.line_count
@byte_count += diff.diff.bytesize
if !@all_diffs && (@line_count >= @max_lines || @byte_count >= @max_bytes)
@overflow = true
break
end
yield @array[i] = diff
end
end