diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index a03eb8513b..ae0660078f 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -85,6 +85,7 @@ class Projects::MergeRequestsController < Projects::ApplicationController noteable_id: @merge_request.id } + @use_legacy_diff_notes = !@merge_request.support_new_diff_notes? @grouped_diff_notes = @merge_request.notes.grouped_diff_notes Banzai::NoteRenderer.render( diff --git a/app/models/deployment.rb b/app/models/deployment.rb index e498ca96e3..520026c18d 100644 --- a/app/models/deployment.rb +++ b/app/models/deployment.rb @@ -11,6 +11,8 @@ class Deployment < ActiveRecord::Base delegate :name, to: :environment, prefix: true + after_save :keep_around_commit + def commit project.commit(sha) end @@ -26,4 +28,8 @@ class Deployment < ActiveRecord::Base def last? self == environment.last_deployment end + + def keep_around_commit + project.repository.keep_around(self.sha) + end end diff --git a/app/models/diff_note.rb b/app/models/diff_note.rb index 94c07cc535..70fbcb4c4e 100644 --- a/app/models/diff_note.rb +++ b/app/models/diff_note.rb @@ -74,7 +74,7 @@ class DiffNote < Note private def supported? - !self.for_merge_request? + !self.for_merge_request? || self.noteable.support_new_diff_notes? end def set_original_position diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 04ec6d369e..82e0f5a0b5 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -642,6 +642,10 @@ class MergeRequest < ActiveRecord::Base merge_commit end + def support_new_diff_notes? + diff_refs && diff_refs.complete? + end + def keep_around_commit project.repository.keep_around(self.merge_commit_sha) end