summaryrefslogtreecommitdiff
path: root/app/models/diff_note.rb
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzegorz@gitlab.com>2017-06-01 14:00:00 +0000
committerGrzegorz Bizon <grzegorz@gitlab.com>2017-06-01 14:00:00 +0000
commit0218a0bd2308eaa1b968cc0e0c68fdb88788df56 (patch)
tree9c69bde0abe23fc0ac6a64726cdefac5fd0807ad /app/models/diff_note.rb
parentf07aee72bef4604312e11a43fce3a47865bce100 (diff)
parent09838ac626df739f0ab9852e3c7d862c7fd707e5 (diff)
downloadgitlab-ce-0218a0bd2308eaa1b968cc0e0c68fdb88788df56.tar.gz
Merge branch 'dm-update-discussion-diff-position' into 'master'
Update diff discussion position per discussion instead of per note Closes #33157 See merge request !11833
Diffstat (limited to 'app/models/diff_note.rb')
-rw-r--r--app/models/diff_note.rb18
1 files changed, 13 insertions, 5 deletions
diff --git a/app/models/diff_note.rb b/app/models/diff_note.rb
index 6cd0502069a..20ef1378500 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