summaryrefslogtreecommitdiff
path: root/lib/gitlab/diff/position.rb
diff options
context:
space:
mode:
authorOswaldo Ferreira <oswaldo@gitlab.com>2018-10-16 13:21:16 -0300
committerOswaldo Ferreira <oswaldo@gitlab.com>2018-11-09 16:56:48 -0200
commitf9b4130bb75adf33fbf2f74fb2662f09d073bd6f (patch)
treee6734e431b82d518b271218e620c6efec1b4c9bf /lib/gitlab/diff/position.rb
parent5b270431399ca14198d7684c1855de04ee8aec5e (diff)
downloadgitlab-ce-f9b4130bb75adf33fbf2f74fb2662f09d073bd6f.tar.gz
Comment on any expanded diff line on MRsosw-comment-on-any-line-on-diffs-w-feature-flag
Diffstat (limited to 'lib/gitlab/diff/position.rb')
-rw-r--r--lib/gitlab/diff/position.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/gitlab/diff/position.rb b/lib/gitlab/diff/position.rb
index f967494199e..7bfab2d808f 100644
--- a/lib/gitlab/diff/position.rb
+++ b/lib/gitlab/diff/position.rb
@@ -101,6 +101,10 @@ module Gitlab
@diff_refs ||= DiffRefs.new(base_sha: base_sha, start_sha: start_sha, head_sha: head_sha)
end
+ def unfolded_diff?(repository)
+ diff_file(repository)&.unfolded?
+ end
+
def diff_file(repository)
return @diff_file if defined?(@diff_file)
@@ -134,7 +138,13 @@ module Gitlab
return unless diff_refs.complete?
return unless comparison = diff_refs.compare_in(repository.project)
- comparison.diffs(diff_options).diff_files.first
+ file = comparison.diffs(diff_options).diff_files.first
+
+ # We need to unfold diff lines according to the position in order
+ # to correctly calculate the line code and trace position changes.
+ file&.unfold_diff_lines(self)
+
+ file
end
def get_formatter_class(type)