mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-09 12:46:07 +10:00
Correctly find last known blob for file deleted in MR. Fixes #3092. When building a new MR, `@merge_request.commits.last` would fail because this delegates to `merge_request_diff` which is still `nil` at that point. I fixed that, and changed some of the logic because showing deleted blob contents didn't previously work for the Compare page, and the UI would show the wrong commit sha for "View File @...". See merge request !1647
33 lines
894 B
Ruby
33 lines
894 B
Ruby
require 'addressable/uri'
|
|
|
|
class Projects::CompareController < Projects::ApplicationController
|
|
# Authorize
|
|
before_action :require_non_empty_project
|
|
before_action :authorize_download_code!
|
|
|
|
def index
|
|
@ref = Addressable::URI.unescape(params[:to])
|
|
end
|
|
|
|
def show
|
|
base_ref = Addressable::URI.unescape(params[:from])
|
|
@ref = head_ref = Addressable::URI.unescape(params[:to])
|
|
|
|
compare_result = CompareService.new.
|
|
execute(@project, head_ref, @project, base_ref)
|
|
|
|
if compare_result
|
|
@commits = Commit.decorate(compare_result.commits, @project)
|
|
@diffs = compare_result.diffs
|
|
@commit = @commits.last
|
|
@first_commit = @commits.first
|
|
@line_notes = []
|
|
end
|
|
end
|
|
|
|
def create
|
|
redirect_to namespace_project_compare_path(@project.namespace, @project,
|
|
params[:from], params[:to])
|
|
end
|
|
end
|