diff --git a/app/assets/stylesheets/pages/merge_conflicts.scss b/app/assets/stylesheets/pages/merge_conflicts.scss
index 0e306c2654182d7be76dd22c2287ce8588e29db0..fe81ce2eb6733a535fe64ca6e3d4131de8586093 100644
--- a/app/assets/stylesheets/pages/merge_conflicts.scss
+++ b/app/assets/stylesheets/pages/merge_conflicts.scss
@@ -1,15 +1,15 @@
-$head_line:               #EFFDEB;
-$head_gutter:             #DAFACE;
-$selected_head_gutter:    #B2EE9E;
-$selected_head_line:      #D4F5C9;
-
-$origin_line:             #F2F9FF;
-$origin_gutter:           #E0F0FF;
-$selected_origin_gutter:  #A3D3FF;
-$selected_origin_line:    #CEE4F9;
-
-$unselected_gutter:       #EEEEEE;
-$unselected_line:         #F8F8F8;
+$head_line:               #effdeb;
+$head_gutter:             #daface;
+$selected_head_gutter:    #b2ee9e;
+$selected_head_line:      #d4f5c9;
+
+$origin_line:             #f2f9ff;
+$origin_gutter:           #e0f0ff;
+$selected_origin_gutter:  #a3d3ff;
+$selected_origin_line:    #cee4f9;
+
+$unselected_gutter:       #eeeeee;
+$unselected_line:         #f8f8f8;
 
 
 #conflicts {
diff --git a/lib/gitlab/conflict/file.rb b/lib/gitlab/conflict/file.rb
index 2c7f6628c2349952cb5409ff6bf0f188ed8d5c8a..7f10b8ea8fd208c54e2ae8adaa9e94f4c526f406 100644
--- a/lib/gitlab/conflict/file.rb
+++ b/lib/gitlab/conflict/file.rb
@@ -6,14 +6,12 @@ module Gitlab
 
       CONTEXT_LINES = 3
 
-      attr_reader :merge_file_result, :their_path, :their_ref, :our_path, :our_ref, :repository
+      attr_reader :merge_file_result, :their_path, :our_path, :repository
 
-      def initialize(merge_file_result, conflict, diff_refs:, repository:)
+      def initialize(merge_file_result, conflict, repository:)
         @merge_file_result = merge_file_result
         @their_path = conflict[:theirs][:path]
         @our_path = conflict[:ours][:path]
-        @their_ref = diff_refs.start_sha
-        @our_ref = diff_refs.head_sha
         @repository = repository
       end
 
@@ -22,7 +20,7 @@ module Gitlab
         @lines ||= Gitlab::Conflict::Parser.new.parse(merge_file_result[:data],
                                                       our_path: our_path,
                                                       their_path: their_path,
-                                                      parent: self)
+                                                      parent_file: self)
       end
 
       def resolve!(resolution, index:, rugged:)
@@ -62,14 +60,14 @@ module Gitlab
         their_file = lines.reject { |line| line.type == 'new' }.map(&:text).join("\n")
         our_file = lines.reject { |line| line.type == 'old' }.map(&:text).join("\n")
 
-        their_highlight = Gitlab::Highlight.highlight(their_path, their_file, repository: repository).lines.map(&:html_safe)
-        our_highlight = Gitlab::Highlight.highlight(our_path, our_file, repository: repository).lines.map(&:html_safe)
+        their_highlight = Gitlab::Highlight.highlight(their_path, their_file, repository: repository).lines
+        our_highlight = Gitlab::Highlight.highlight(our_path, our_file, repository: repository).lines
 
         lines.each do |line|
           if line.type == 'old'
-            line.rich_text = their_highlight[line.old_line - 1]
+            line.rich_text = their_highlight[line.old_line - 1].html_safe
           else
-            line.rich_text = our_highlight[line.new_line - 1]
+            line.rich_text = our_highlight[line.new_line - 1].html_safe
           end
         end
       end
@@ -82,8 +80,6 @@ module Gitlab
         end
 
         chunked_lines = lines.chunk { |line| line.type.nil? }
-        last_candidate_match_header = nil
-        match_line_header = nil
         match_line = nil
 
         @sections = chunked_lines.flat_map.with_index do |(no_conflict, lines), i|
diff --git a/lib/gitlab/conflict/file_collection.rb b/lib/gitlab/conflict/file_collection.rb
index 5122a5b2111bc8bdf18c3d137467178d5e56bc30..da9994a7405d46c1a0dda7bb6d3b5678841176bd 100644
--- a/lib/gitlab/conflict/file_collection.rb
+++ b/lib/gitlab/conflict/file_collection.rb
@@ -46,7 +46,6 @@ module Gitlab
 
           Gitlab::Conflict::File.new(merge_index.merge_file(conflict[:ours][:path]),
                                      conflict,
-                                     diff_refs: merge_request.diff_refs,
                                      repository: repository)
         end
       end
diff --git a/lib/gitlab/conflict/parser.rb b/lib/gitlab/conflict/parser.rb
index 9f27cba353acb66483ca050faf0206c2b8f10c04..6eccded7872791b5c6fab5ec2da4a1dc5e8f01fb 100644
--- a/lib/gitlab/conflict/parser.rb
+++ b/lib/gitlab/conflict/parser.rb
@@ -13,7 +13,7 @@ module Gitlab
       class UnmergeableFile < ParserError
       end
 
-      def parse(text, our_path:, their_path:, parent: nil)
+      def parse(text, our_path:, their_path:, parent_file: nil)
         raise UnmergeableFile if text.blank? # Typically a binary file
         raise UnmergeableFile if text.length > 102400
 
@@ -43,9 +43,9 @@ module Gitlab
             type = nil
           elsif line[0] == '\\'
             type = 'nonewline'
-            lines << Gitlab::Diff::Line.new(full_line, type, line_obj_index, line_old, line_new, parent: parent)
+            lines << Gitlab::Diff::Line.new(full_line, type, line_obj_index, line_old, line_new, parent_file: parent_file)
           else
-            lines << Gitlab::Diff::Line.new(full_line, type, line_obj_index, line_old, line_new, parent: parent)
+            lines << Gitlab::Diff::Line.new(full_line, type, line_obj_index, line_old, line_new, parent_file: parent_file)
             line_old += 1 if type != 'new'
             line_new += 1 if type != 'old'
 
diff --git a/lib/gitlab/diff/line.rb b/lib/gitlab/diff/line.rb
index 38400b48b5c27d6c59c8add859a9b8d2350e22f6..80a146b4a5a96f490b0252b5404232486ad8a4aa 100644
--- a/lib/gitlab/diff/line.rb
+++ b/lib/gitlab/diff/line.rb
@@ -5,10 +5,10 @@ module Gitlab
       attr_writer :rich_text
       attr_accessor :text
 
-      def initialize(text, type, index, old_pos, new_pos, parent: nil)
+      def initialize(text, type, index, old_pos, new_pos, parent_file: nil)
         @text, @type, @index = text, type, index
         @old_pos, @new_pos = old_pos, new_pos
-        @parent = parent
+        @parent_file = parent_file
       end
 
       def self.init_from_hash(hash)
@@ -46,7 +46,7 @@ module Gitlab
       end
 
       def rich_text
-        @parent.highlight_lines! if @parent && !@rich_text
+        @parent_file.highlight_lines! if @parent_file && !@rich_text
 
         @rich_text
       end
diff --git a/spec/lib/gitlab/conflict/file_spec.rb b/spec/lib/gitlab/conflict/file_spec.rb
index 735b5b34623a4e8d20540f65a101af09570085cf..dd3ddc70cf7744e6d7b8634df718d46478e8418c 100644
--- a/spec/lib/gitlab/conflict/file_spec.rb
+++ b/spec/lib/gitlab/conflict/file_spec.rb
@@ -5,12 +5,11 @@ describe Gitlab::Conflict::File, lib: true do
   let(:repository) { project.repository }
   let(:rugged) { repository.rugged }
   let(:their_commit) { rugged.branches['conflict-a'].target }
-  let(:diff_refs) { Gitlab::Diff::DiffRefs.new(base_sha: their_commit.oid, head_sha: our_commit.oid) }
   let(:our_commit) { rugged.branches['conflict-b'].target }
   let(:index) { rugged.merge_commits(our_commit, their_commit) }
   let(:conflict) { index.conflicts.last }
   let(:merge_file_result) { index.merge_file('files/ruby/regex.rb') }
-  let(:conflict_file) { Gitlab::Conflict::File.new(merge_file_result, conflict, diff_refs: diff_refs, repository: repository) }
+  let(:conflict_file) { Gitlab::Conflict::File.new(merge_file_result, conflict, repository: repository) }
 
   describe '#resolve_lines' do
     let(:section_keys) { conflict_file.sections.map { |section| section[:id] }.compact }
@@ -92,7 +91,7 @@ describe Gitlab::Conflict::File, lib: true do
 
       expect(section[:conflict]).to be_falsey
       expect(match_line.type).to eq('match')
-      expect(match_line.text).to eq('@@ -46,53 +46,53 @@')
+      expect(match_line.text).to eq('@@ -46,53 +46,53 @@ module Gitlab')
     end
 
     it 'does not return match lines when there is no gap between sections' do