diff options
author | Dmitriy Zaporozhets <dzaporozhets@gitlab.com> | 2015-02-21 02:06:39 +0000 |
---|---|---|
committer | Dmitriy Zaporozhets <dzaporozhets@gitlab.com> | 2015-02-21 02:06:39 +0000 |
commit | a224a655d812d60fa8be45e36922049b313ecb2f (patch) | |
tree | 62ce86cdaca646f9d51b715da6dd4fb429d8e672 | |
parent | 5484acd99878a70e95bd5e1f22900b2fd6c612c1 (diff) | |
parent | 0632e85c82eeb76c9b61e497655c9cf2ef5dc262 (diff) | |
download | gitlab-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:

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-- | CHANGELOG | 1 | ||||
-rw-r--r-- | app/models/note.rb | 18 | ||||
-rw-r--r-- | lib/gitlab/diff/parser.rb | 2 |
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 |