each_patch

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