From 09838ac626df739f0ab9852e3c7d862c7fd707e5 Mon Sep 17 00:00:00 2001 From: Douwe Maan Date: Wed, 31 May 2017 14:31:33 -0500 Subject: Update diff discussion position per discussion instead of per note --- app/models/diff_note.rb | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'app/models/diff_note.rb') diff --git a/app/models/diff_note.rb b/app/models/diff_note.rb index 2a4cff37566..6fbc6a9f58b 100644 --- a/app/models/diff_note.rb +++ b/app/models/diff_note.rb @@ -95,13 +95,21 @@ class DiffNote < Note return if active? - Notes::DiffPositionUpdateService.new( - self.project, - nil, + tracer = Gitlab::Diff::PositionTracer.new( + project: self.project, old_diff_refs: self.position.diff_refs, - new_diff_refs: noteable.diff_refs, + new_diff_refs: self.noteable.diff_refs, paths: self.position.paths - ).execute(self) + ) + + result = tracer.trace(self.position) + return unless result + + if result[:outdated] + self.change_position = result[:position] + else + self.position = result[:position] + end end def verify_supported -- cgit v1.2.1