module Gitlab module Git class Compare attr_accessor :commits, :commit, :diffs, :same def initialize(repository, from, to) @commits, @diffs = [], [] @commit = nil @same = false return unless from && to first = repository.commit(to.try(:strip)) last = repository.commit(from.try(:strip)) return unless first && last if first.id == last.id @same = true return end @commit = Commit.new(first) @commits = repository.commits_between(last.id, first.id) @commits = @commits.map { |c| Commit.new(c) } @diffs = if @commits.size > 100 [] else repository.repo.diff(last.id, first.id) rescue [] end end end end end