summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>2011-11-29 20:06:37 +0200
committerDmitriy Zaporozhets <dzaporozhets@sphereconsultinginc.com>2011-11-29 20:06:37 +0200
commit79b64ef4aced8c030b23b2b7c4aa9b1bea192e1b (patch)
tree5aa826fca9c92dfead1d9241967d673786c9cf1f /app
parent958497fecbc630297f2d0d5f7b64b484966ae907 (diff)
downloadgitlab-ce-79b64ef4aced8c030b23b2b7c4aa9b1bea192e1b.tar.gz
fixed merge request diff
Diffstat (limited to 'app')
-rw-r--r--app/controllers/merge_requests_controller.rb5
-rw-r--r--app/models/commit.rb4
-rw-r--r--app/models/merge_request.rb10
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