diff options
author | Dmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com> | 2011-11-29 20:06:37 +0200 |
---|---|---|
committer | Dmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com> | 2011-11-29 20:06:37 +0200 |
commit | 79b64ef4aced8c030b23b2b7c4aa9b1bea192e1b (patch) | |
tree | 5aa826fca9c92dfead1d9241967d673786c9cf1f /app | |
parent | 958497fecbc630297f2d0d5f7b64b484966ae907 (diff) | |
download | gitlab-ce-79b64ef4aced8c030b23b2b7c4aa9b1bea192e1b.tar.gz |
fixed merge request diff
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/merge_requests_controller.rb | 5 | ||||
-rw-r--r-- | app/models/commit.rb | 4 | ||||
-rw-r--r-- | 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 c83423edaa7..f3f082f71e2 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 0884e34225c..c97aec28c72 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 dc4c92a9c98..6f8b0cdfedd 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 |