BigW Consortium Gitlab
New diff notes Fixes #12732, #14731, #19375, #14783 Builds on https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/4110 To do: - [x] Get it mostly working - [x] Validate position validity - [x] Fix: Don’t link to `#` - [x] Fix: Base ref can be `nil`, potentially, when the MR has an oprhan source branch => Yep, doesn’t work. We need to store a `start_id` - [x] Optimize: Fewer duplicate `git diff` compares - [x] Optimize: Pass paths to `PositionTracer#diff` for faster diffs - [x] Refactor: Use `head_id` in `MergeRequest`/`MergeRequestDiff` instead of `source_sha` - [x] Refactor: Convert existing array-based diff refs to the DiffRefs model - [x] Tweak: Use `note_type` in `Autosave` key - [x] Tweak: Remove `line_code: note.line_code` from `link_to_reply_discussion` - [x] Update: `SentNotifications` and reply-by-email receiver - [x] Update: MR diff notification email - [x] Update: API (MR, Commit note creation and entity) - [x] Update: GitHub importer - [x] Address any other TODO comments - [x] Fix: Suppress "edited 4 minutes ago" - [x] Write tests - [x] `LineMapper` - [x] `PositionTracer` - [x] `Position` - [x] `DiffPositionUpdateService` - [x] `DiffNote` - [x] `MergeRequests::RefreshService` / `MergeRequest#update_diff_notes_positions` - [x] Make sure commits with diff notes don't get cleaned up, since this would prevent the diff notes from being rendered (https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5062) Future improvements: - Display unresolved comments on files outside the diff, if the comment was added when that file _was_ part of the diff - Allow commenting on sections between hunks, when expanding the diff using `...` - (We'd need to generate line code based on Position if we have it, even if it falls outside bounds of diff) - `diff_hunk` on diff note API entity - Show diff hunk in notification email - Resolved line notes would have a boolean, and be inactive through `notes.any? { !active? || resolved? }` - Multi line notes would store a number of positions, and do the right thing (™ ) in grouping and then rendering if the first item is multiline? => true - Image diff notes could store x,y,width,height instead of old_line,new_line for similar grouping. Does it need a reference to say if it's on old or new? These can't have line_codes, clearly. Rendering would be interesting. - Show commit line comments in the MR diff - Comment on specific selected words - Comment on file header - Unfold top of discussion diff note - New diff notes API for commits and MRs /cc @rspeicher See merge request !4101
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
auth | Loading commit data... | |
backend | Loading commit data... | |
badge | Loading commit data... | |
bitbucket_import | Loading commit data... | |
ci | Loading commit data... | |
database | Loading commit data... | |
diff | Loading commit data... | |
Loading commit data... | ||
fogbugz_import | Loading commit data... | |
gfm | Loading commit data... | |
git | Loading commit data... | |
github_import | Loading commit data... | |
gitlab_import | Loading commit data... | |
gitorious_import | Loading commit data... | |
google_code_import | Loading commit data... | |
graphs | Loading commit data... | |
import_export | Loading commit data... | |
ldap | Loading commit data... | |
lfs | Loading commit data... | |
markdown | Loading commit data... | |
metrics | Loading commit data... | |
middleware | Loading commit data... | |
o_auth | Loading commit data... | |
saml | Loading commit data... | |
sanitizers | Loading commit data... | |
sherlock | Loading commit data... | |
sidekiq_middleware | Loading commit data... | |
sql | Loading commit data... | |
template | Loading commit data... | |
access.rb | Loading commit data... | |
akismet_helper.rb | Loading commit data... | |
app_logger.rb | Loading commit data... | |
asciidoc.rb | Loading commit data... | |
auth.rb | Loading commit data... | |
award_emoji.rb | Loading commit data... | |
bitbucket_import.rb | Loading commit data... | |
blame.rb | Loading commit data... | |
build_data_builder.rb | Loading commit data... | |
closing_issue_extractor.rb | Loading commit data... | |
color_schemes.rb | Loading commit data... | |
config_helper.rb | Loading commit data... | |
contributions_calendar.rb | Loading commit data... | |
contributor.rb | Loading commit data... | |
current_settings.rb | Loading commit data... | |
database.rb | Loading commit data... | |
devise_failure.rb | Loading commit data... | |
emoji.rb | Loading commit data... | |
exclusive_lease.rb | Loading commit data... | |
force_push_check.rb | Loading commit data... | |
git.rb | Loading commit data... | |
git_access.rb | Loading commit data... | |
git_access_status.rb | Loading commit data... | |
git_access_wiki.rb | Loading commit data... | |
git_logger.rb | Loading commit data... | |
git_post_receive.rb | Loading commit data... | |
git_ref_validator.rb | Loading commit data... | |
gitorious_import.rb | Loading commit data... | |
gl_id.rb | Loading commit data... | |
gon_helper.rb | Loading commit data... | |
highlight.rb | Loading commit data... | |
identifier.rb | Loading commit data... | |
import_export.rb | Loading commit data... | |
import_formatter.rb | Loading commit data... | |
import_sources.rb | Loading commit data... | |
incoming_email.rb | Loading commit data... | |
issues_labels.rb | Loading commit data... | |
key_fingerprint.rb | Loading commit data... | |
lazy.rb | Loading commit data... | |
logger.rb | Loading commit data... | |
markup_helper.rb | Loading commit data... | |
metrics.rb | Loading commit data... | |
note_data_builder.rb | Loading commit data... | |
other_markup.rb | Loading commit data... | |
popen.rb | Loading commit data... | |
production_logger.rb | Loading commit data... | |
project_search_results.rb | Loading commit data... | |
protocol_access.rb | Loading commit data... | |
push_data_builder.rb | Loading commit data... | |
recaptcha.rb | Loading commit data... | |
redis.rb | Loading commit data... | |
reference_extractor.rb | Loading commit data... | |
regex.rb | Loading commit data... | |
repository_check_logger.rb | Loading commit data... | |
routing.rb | Loading commit data... | |
search_results.rb | Loading commit data... | |
seeder.rb | Loading commit data... | |
sherlock.rb | Loading commit data... | |
sidekiq_logger.rb | Loading commit data... | |
snippet_search_results.rb | Loading commit data... | |
themes.rb | Loading commit data... | |
timeless.rb | Loading commit data... | |
upgrader.rb | Loading commit data... | |
uploads_transfer.rb | Loading commit data... | |
url_builder.rb | Loading commit data... | |
url_sanitizer.rb | Loading commit data... | |
user_access.rb | Loading commit data... | |
utils.rb | Loading commit data... | |
version_info.rb | Loading commit data... | |
visibility_level.rb | Loading commit data... | |
workhorse.rb | Loading commit data... |