From 79b64ef4aced8c030b23b2b7c4aa9b1bea192e1b Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Tue, 29 Nov 2011 20:06:37 +0200 Subject: [PATCH] fixed merge request diff --- app/controllers/merge_requests_controller.rb | 5 +++-- app/models/commit.rb | 4 ++++ app/models/merge_request.rb | 10 ++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb index c83423ed..f3f082f7 100644 --- a/app/controllers/merge_requests_controller.rb +++ b/app/controllers/merge_requests_controller.rb @@ -34,8 +34,9 @@ class MergeRequestsController < ApplicationController end def diffs - @commit = @project.commit(@merge_request.source_branch) - @diffs = @project.repo.diff(@merge_request.target_branch, @merge_request.source_branch) + @diffs = @merge_request.diffs + @commit = @merge_request.last_commit + render :template => "merge_requests/_diffs", :layout => false end diff --git a/app/models/commit.rb b/app/models/commit.rb index 0884e342..c97aec28 100644 --- a/app/models/commit.rb +++ b/app/models/commit.rb @@ -36,4 +36,8 @@ class Commit def author_name encode(author.name) end + + def prev_commit + parents.first + end end diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index dc4c92a9..6f8b0cdf 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -33,4 +33,14 @@ class MergeRequest < ActiveRecord::Base def new? today? && created_at == updated_at end + + def diffs + commit = project.commit(source_branch) + commits = project.repo.commits_between(target_branch, source_branch).map {|c| Commit.new(c)} + diffs = project.repo.diff(commits.first.prev_commit.id, commits.last.id) + end + + def last_commit + project.commit(source_branch) + end end