From fed10766e533fcef2a6840deeb8d7ea1747f0c72 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rub=C3=A9n=20D=C3=A1vila?= <rdavila84@gmail.com>
Date: Sat, 9 Jan 2016 01:55:31 -0500
Subject: [PATCH] Fix broken spec for submodule commit. #3945

---
 lib/gitlab/diff/highlight.rb | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/lib/gitlab/diff/highlight.rb b/lib/gitlab/diff/highlight.rb
index caeefe5bbdd..3c44abff3fb 100644
--- a/lib/gitlab/diff/highlight.rb
+++ b/lib/gitlab/diff/highlight.rb
@@ -85,10 +85,14 @@ module Gitlab
 
           case diff_line.type
           when 'new', nil
-            diff_line.text = new_lines[diff_line.new_pos - 1].try(:gsub!, /\A\s/, line_prefix)
+            line = new_lines[diff_line.new_pos - 1]
           when 'old'
-            diff_line.text = old_lines[diff_line.old_pos - 1].try(:gsub!, /\A\s/, line_prefix)
+            line = old_lines[diff_line.old_pos - 1]
           end
+
+          # Only update text if line is found. This will prevent
+          # issues with submodules given the line only exists in diff content.
+          diff_line.text = line.gsub!(/\A\s/, line_prefix) if line
         end
 
         @lines
@@ -121,6 +125,10 @@ module Gitlab
           lines.map! { |line| " #{line}" }
         end
       end
+
+      def submodules
+        @submodules ||= diff_repository.raw_repository.submodules(diff_new_ref).keys
+      end
     end
   end
 end
-- 
GitLab