summaryrefslogtreecommitdiff
path: root/app/models/commit.rb
diff options
context:
space:
mode:
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)