Diff viewer demo

Review Request #2 — Created June 24, 2022 and updated

chipx86
Review Board
demo

The Review Board diff viewer is one of the best on the market. It has
many ways to help you look through a change and focus on what's
important.

Here's just a few of the features we provide:

  • Detailed file index

    The file index lists all the files modified in the diff, along with a
    graph showing the relative number of inserts, deletes, and replaces.

    The thickness of the ring shows how much of the file is modified (and
    will be a full red or green circle, if the file is deleted or added).

    The colored dots on the side link to the matching changed chunks for
    that file.

  • Multi-line commenting

    Click a line number, or click and drag down several lines to comment
    on those lines.

  • Syntax highlighting

    Every diff is syntax-highlighted, making it easier to see, for
    instance, what's a string and what's a reserved keyword.

    This supports highlighting file formats of all kinds.

  • Collapsable diffs

    Diffs are shown collapsed, only showing what changed and the
    immediate lines around it.

    A header is shown above each change, showing the nearest function or
    class. Clicking on the header will show all unchangedl ines up to
    that function or class.

    Alternatively, click the [+] 20 to show 20 more lines, or the [+]
    to show all the lines hidden behind that header.

  • Moved code detection

    Significant code changes that move around a file are specially shown
    with little move flags saying where they went to or where they came
    from. You can rely on these to know that you don't need to give that
    code another look.

    For example, see how the __init__ function was moved in /r/2/diff/

  • Indentation change indicators

    When code is indented or un-indented, we show it cleanly without
    showing a full line change. These are shown by >>>> and <<<<
    markers on lines, which you can see in /r/2/diff/ and in
    /r/2/diff/1-2/

    Unlike most diff viewers, you won't have to waste your time examining
    every line that was indented, looking for changes.

    This will even differentiate between spaces and tabs. If someone
    accidentally indents the wrong way, you'll know.

  • See changes made within a line

    When replacing just part of a line, we highlight the changes, making
    it much easier to see the addition of a word, renaming of a variable,
    or even the accidental removal of a semicolon.

  • Interdiffs

    When reviewing multiple iterations of a change, you can view an
    "interdiff," the diff between two diffs. It's easy to see what has
    actually changed. For example, see /r/2/diff/1-2/

  • Multi-commit diffs

    Whether one commit or a hundred, you can post it to Review Board.

    Reviewers can look at the entirety of your work as one change,
    dig into individual commits, or view any range of commits they want.

  • Download any file in the diff

    Simply click the little down arrow next to the "Revision" or "New
    Change" in the diff's header to download the full content of either
    the file on the left-hand side or right-hand side.

Click View Diff in the top-right to look at the diff for this review
request to play around with the diffs.



Description From Last Updated

zhegehaihao

guest7477guest7477

kkk

guest5820guest5820

Comments can be made across multiple lines. You might even want to suggest code, like: if value is not None: …

chipx86chipx86

We can then have a discussion on it. Maybe I think this code is better: if not (not value): ... …

chipx86chipx86
chipx86
  1. 
      
  2. reviewboard/reviews/fields.py (Diff revision 2)
     
     
     
     
     
     
     
     

    Comments can be made across multiple lines.

    You might even want to suggest code, like:

    if value is not None:
        # The rest of the code would go here...
        value_html = ...
    

    Note also how this comment opens an issue. We can use this to track what work still needs to be done on the diff.

    1. We can then have a discussion on it. Maybe I think this code is better:

      if not (not value):
          ...
      

      (It's not.)

  3. 
      
guest4638
  1. Ship It!
  2. 
      
guest7477
  1. bucuo

  2. zhegehaihao

  3. 
      
guest5185
  1. Ship It!

  2. 
      
guest5185
  1. 
      
  2. 
      
guest1730
  1. 
      
  2. 
      
guest5820
  1. Ship It!
  2. 
      
guest5820
  1. 
      
  2. reviewboard/reviews/fields.py (Diff revision 2)
     
     
  3. 
      
Loading...