diff options
author | Alex Denisov <1101.debian@gmail.com> | 2012-09-26 16:14:47 +0300 |
---|---|---|
committer | Alex Denisov <1101.debian@gmail.com> | 2012-09-26 16:14:47 +0300 |
commit | c09d233611e00328f0e8d493a106737f0638d9a2 (patch) | |
tree | 351383104571ab0fb536506918860c7eb50a0eeb /app/models/commit.rb | |
parent | e6ce47291b3f08ebe18c2450fc4f21a2a3a2b8a9 (diff) | |
parent | 3c132f2e6896c7c1aa787ddc61ae230d9a205700 (diff) | |
download | gitlab-ce-c09d233611e00328f0e8d493a106737f0638d9a2.tar.gz |
Merge branch 'master' into fix_project_access_notification
Diffstat (limited to 'app/models/commit.rb')
-rw-r--r-- | app/models/commit.rb | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/app/models/commit.rb b/app/models/commit.rb index 15afedcb101..73583e9e7b7 100644 --- a/app/models/commit.rb +++ b/app/models/commit.rb @@ -82,20 +82,24 @@ class Commit end def compare(project, from, to) - first = project.commit(to.try(:strip)) - last = project.commit(from.try(:strip)) - result = { commits: [], diffs: [], - commit: nil + commit: nil, + same: false } + return result unless from && to + + first = project.commit(to.try(:strip)) + last = project.commit(from.try(:strip)) + if first && last commits = [first, last].sort_by(&:created_at) younger = commits.first older = commits.last + result[:same] = (younger.id == older.id) result[:commits] = project.repo.commits_between(younger.id, older.id).map {|c| Commit.new(c)} result[:diffs] = project.repo.diff(younger.id, older.id) rescue [] result[:commit] = Commit.new(older) |