From 4cc169d3cacea7e4325bb5632cc8878a7c3f41fe Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Fri, 21 Sep 2012 11:22:53 +0300 Subject: Improve commits compare. Added tags to autocomplete. Dont look for commits if from & to are empty --- app/models/commit.rb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'app/models/commit.rb') 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) -- cgit v1.2.1