Detect MarkerRanges for word-diff mode
What does this MR do?
Contributes to #323763 (closed)
Follow-up for !55105 (merged)
Extend to Gitlab::WordDiff::ChunkCollection
class to generate
marker_ranges
based on chunks received from git diff --word-diff=porcelain
output.
Each chunk can be an unchanged string (starts with
), a new
string (starts with +
) or a removed string (starts with -
).
While parsing we collect chunks until we receive a newline
delimiter. Then we are combining them together to generate
Gitlab::Diff::Line
object and assign MarkerRanges
for changed parts of
the diff line.
WordDiff parser code is not used anywhere yet, so we don't need to include a feature flag.
Screenshots (strongly suggested)
Does this MR meet the acceptance criteria?
Conformity
-
📋 Does this MR need a changelog?-
I have included a changelog entry. -
I have not included a changelog entry because it is unreleased feature. I updated the code that we don't use yet.
-
-
Documentation (if required) -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers -
Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team