Skip to content
Snippets Groups Projects
Commit b223a103 authored by Douwe Maan's avatar Douwe Maan Committed by GitLab Release Tools Bot
Browse files

Merge branch '59147-duplicate-match-line' into 'master'

Fix duplicated bottom match line

Closes #59147

See merge request gitlab-org/gitlab-ce!26402

(cherry picked from commit 7d3c5d88)

8723f292 Fix diff bottom expand button appears twice
parent 5c67aeaf
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -57,7 +57,7 @@ class DiffFileEntity < DiffFileBaseEntity
diff_file.diff_lines_for_serializer
end
 
expose :is_fully_expanded, if: -> (diff_file, _) { Feature.enabled?(:expand_diff_full_file) && diff_file.text? } do |diff_file|
expose :is_fully_expanded, if: -> (diff_file, _) { Feature.enabled?(:expand_diff_full_file, default_enabled: true) && diff_file.text? } do |diff_file|
diff_file.fully_expanded?
end
 
Loading
Loading
---
title: Fix duplicated bottom match line on merge request parallel diff view
merge_request: 26402
author:
type: fixed
Loading
Loading
@@ -158,7 +158,10 @@ module Gitlab
new_blob || old_blob
end
 
attr_writer :highlighted_diff_lines
def highlighted_diff_lines=(value)
clear_memoization(:diff_lines_for_serializer)
@highlighted_diff_lines = value
end
 
# Array of Gitlab::Diff::Line objects
def diff_lines
Loading
Loading
@@ -314,19 +317,21 @@ module Gitlab
# This adds the bottom match line to the array if needed. It contains
# the data to load more context lines.
def diff_lines_for_serializer
lines = highlighted_diff_lines
strong_memoize(:diff_lines_for_serializer) do
lines = highlighted_diff_lines
 
return if lines.empty?
return if blob.nil?
next if lines.empty?
next if blob.nil?
 
last_line = lines.last
last_line = lines.last
 
if last_line.new_pos < total_blob_lines(blob) && !deleted_file?
match_line = Gitlab::Diff::Line.new("", 'match', nil, last_line.old_pos, last_line.new_pos)
lines.push(match_line)
end
if last_line.new_pos < total_blob_lines(blob) && !deleted_file?
match_line = Gitlab::Diff::Line.new("", 'match', nil, last_line.old_pos, last_line.new_pos)
lines.push(match_line)
end
 
lines
lines
end
end
 
def fully_expanded?
Loading
Loading
Loading
Loading
@@ -72,6 +72,13 @@ describe Gitlab::Diff::File do
expect(diff_file.diff_lines_for_serializer.last.type).to eq('match')
end
 
context 'when called multiple times' do
it 'only adds bottom match line once' do
expect(diff_file.diff_lines_for_serializer.size).to eq(31)
expect(diff_file.diff_lines_for_serializer.size).to eq(31)
end
end
context 'when deleted' do
let(:commit) { project.commit('d59c60028b053793cecfb4022de34602e1a9218e') }
let(:diff_file) { commit.diffs.diff_file_with_old_path('files/js/commit.js.coffee') }
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment