summaryrefslogtreecommitdiff
path: root/app/models/commit.rb
diff options
context:
space:
mode:
authorAlex Denisov <1101.debian@gmail.com>2012-09-26 16:14:47 +0300
committerAlex Denisov <1101.debian@gmail.com>2012-09-26 16:14:47 +0300
commitc09d233611e00328f0e8d493a106737f0638d9a2 (patch)
tree351383104571ab0fb536506918860c7eb50a0eeb /app/models/commit.rb
parente6ce47291b3f08ebe18c2450fc4f21a2a3a2b8a9 (diff)
parent3c132f2e6896c7c1aa787ddc61ae230d9a205700 (diff)
downloadgitlab-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.rb12
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)