class Gitlab::Git::Compare

Attributes

commit[RW]
commits[RW]
diffs[RW]
same[RW]

Public Class Methods

new(repository, from, to) click to toggle source
# File lib/gitlab_git/compare.rb, line 6
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 = first
  @commits = repository.commits_between(last.id, first.id)

  @diffs = if @commits.size > 100
             []
           else
             repository.repo.diff(last.id, first.id) rescue []
           end
end