Formalize diff line-level metadata and prepare for new state.

Review Request #11902 — Created Jan. 4, 2022 and submitted

Information

Review Board
release-5.0.x

Reviewers

Lines in a rendered diff have a dictionary field for storing move
information, and we have a couple other fields for other interesting
state. What we don't have is a field for general metadata, and this will
be important soon.

It will also be important not to completely break anything consuming
this line information. So, the moved information field is being
repurposed for general metadata, preserving to and from as moved
to/from keys.

For the moment, this is mostly a documentation change within the chunk
generator. However, the diff_line template tag has also been updated
to prepare for some uses of this metadata field. This consists of
pulling out the field into a variable, and changing some processing to
avoid repeating logic (which will be important for the upcoming code
safety checks feature).

Unit tests passed.

Made use of this in the upcoming code safety checkers feature.

Summary ID
Formalize diff line-level metadata and prepare for new state.
Lines in a rendered diff have a dictionary field for storing move information, and we have a couple other fields for other interesting state. What we don't have is a field for general metadata, and this will be important soon. It will also be important not to completely break anything consuming this line information. So, the moved information field is being repurposed for general metadata, preserving `to` and `from` as moved to/from keys. For the moment, this is mostly a documentation change within the chunk generator. However, the `diff_line` template tag has also been updated to prepare for some uses of this metadata field. This consists of pulling out the field into a variable, and changing some processing to avoid repeating logic (which will be important for the upcoming code safety checks feature).
799199c194f9206b965e0766f929c2b1820b9905
Description From Last Updated

typo: i a line -> if a line

daviddavid

I feel like this could all be coalesced together. There's no need to reassign to line_html_sides if we don't do …

daviddavid
david
  1. 
      
  2. Show all issues

    typo: i a line -> if a line

  3. reviewboard/diffviewer/templatetags/difftags.py (Diff revision 1)
     
     
     
     
     
     
     
     
    Show all issues

    I feel like this could all be coalesced together. There's no need to reassign to line_html_sides if we don't do any processing:

    if line_html and len(line_html) < STYLED_MAX_LINE_LEN:
        line_html_sides[side_i] = showextrawhitespace(line_html)
    
  4. 
      
chipx86
david
  1. Ship It!
  2. 
      
chipx86
Review request changed
Status:
Completed
Change Summary:
Pushed to release-5.0.x (f738871)