summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dzaporozhets@gitlab.com>2015-02-21 02:06:39 +0000
committerDmitriy Zaporozhets <dzaporozhets@gitlab.com>2015-02-21 02:06:39 +0000
commita224a655d812d60fa8be45e36922049b313ecb2f (patch)
tree62ce86cdaca646f9d51b715da6dd4fb429d8e672
parent5484acd99878a70e95bd5e1f22900b2fd6c612c1 (diff)
parent0632e85c82eeb76c9b61e497655c9cf2ef5dc262 (diff)
downloadgitlab-ce-a224a655d812d60fa8be45e36922049b313ecb2f.tar.gz
Merge branch 'mr-commit-comment-diff-lines' into 'master'
Fix commit comments on first line of diff not rendering in Merge Request Discussion view. Example can be seen near the bottom on this MR: !1533. Before: ![Screen Shot 2015-02-20 at 10.24.34](https://dev.gitlab.org/uploads/gitlab/gitlabhq/35600b98b5/Screen_Shot_2015-02-20_at_10.24.34.png) After: the [note](https://dev.gitlab.org/gitlab/gitlabhq/merge_requests/1533/diffs#note_36449) is actually rendered. See merge request !1552
-rw-r--r--CHANGELOG1
-rw-r--r--app/models/note.rb18
-rw-r--r--lib/gitlab/diff/parser.rb2
3 files changed, 11 insertions, 10 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 4dfa01f6cb5..c4b5a847e12 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
v 7.9.0 (unreleased)
- Move labels/milestones tabs to sidebar
- Improve UI for commits, issues and merge request lists
+ - Fix commit comments on first line of diff not rendering in Merge Request Discussion view.
v 7.8.0 (unreleased)
- Fix access control and protection against XSS for note attachments and other uploads.
diff --git a/app/models/note.rb b/app/models/note.rb
index ccd9783e7d4..e6c258ffbe9 100644
--- a/app/models/note.rb
+++ b/app/models/note.rb
@@ -409,19 +409,19 @@ class Note < ActiveRecord::Base
prev_lines = []
diff_lines.each do |line|
- if generate_line_code(line) != self.line_code
- if line.type == "match"
- prev_lines.clear
- prev_match_line = line
- else
- prev_lines.push(line)
- prev_lines.shift if prev_lines.length >= max_number_of_lines
- end
+ if line.type == "match"
+ prev_lines.clear
+ prev_match_line = line
else
prev_lines << line
- return prev_lines
+
+ break if generate_line_code(line) == self.line_code
+
+ prev_lines.shift if prev_lines.length >= max_number_of_lines
end
end
+
+ prev_lines
end
def diff_lines
diff --git a/lib/gitlab/diff/parser.rb b/lib/gitlab/diff/parser.rb
index 887ed76b36c..c1d9520ddf1 100644
--- a/lib/gitlab/diff/parser.rb
+++ b/lib/gitlab/diff/parser.rb
@@ -27,7 +27,7 @@ module Gitlab
line_old = line.match(/\-[0-9]*/)[0].to_i.abs rescue 0
line_new = line.match(/\+[0-9]*/)[0].to_i.abs rescue 0
- next if line_old == 1 && line_new == 1 #top of file
+ next if line_old <= 1 && line_new <= 1 #top of file
lines_obj << Gitlab::Diff::Line.new(full_line, type, line_obj_index, line_old, line_new)
line_obj_index += 1
next