[WIP] Add support for multi-commit review requests.

Review Request #6618 — Created Nov. 22, 2014 and discarded

brennie
Review Board
master
6642
reviewboard, students

Add the a diffviewer.Commit model. Each Commit belongs to a
DiffSet (which may have many commits) and may have many FileDiffs.
However, an old-fashioned review request (of squashed changes) will
not have any Commits associated with it.

Add a foreign key on the FileDiff model which links it to a
Commit. Every FileDiff still corresponds to a DiffSet, but they
now can optionally correspond to a Commit.

Add a RelationCounterField on the DiffSet model to keep track of
the number of Commits corresponding to the DiffSet. This way, the
DiffSet can easily be checked if it is a multi-commit review request
or not.

Add evolution (new_commit_fields.py) for new fields on FileDiff
and DiffSet.

TODO:
- Add an API endpoint so that multiple commits can be attached a review
request



  • 0
  • 0
  • 7
  • 0
  • 7
Description From Last Updated
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/diffviewer/models.py
        reviewboard/diffviewer/evolutions/add_commit_fields.py
        reviewboard/diffviewer/evolutions/__init__.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/diffviewer/models.py
        reviewboard/diffviewer/evolutions/add_commit_fields.py
        reviewboard/diffviewer/evolutions/__init__.py
    
    
  2. reviewboard/diffviewer/models.py (Diff revision 1)
     
     
    Col: 38
     W292 no newline at end of file
    
  3. 
      
brennie
reviewbot
  1. Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/diffviewer/models.py
        reviewboard/diffviewer/evolutions/add_commit_fields.py
        reviewboard/diffviewer/evolutions/__init__.py
    
    
    
    Tool: Pyflakes
    Processed Files:
        reviewboard/diffviewer/models.py
        reviewboard/diffviewer/evolutions/add_commit_fields.py
        reviewboard/diffviewer/evolutions/__init__.py
    
    
  2. 
      
chipx86
  1. 
      
  2. Two blank lines.

  3. reviewboard/diffviewer/models.py (Diff revision 2)
     
     

    We use whatever_count instead of num_whatevers for all other counter fields, so we should stick with that for this one.

  4. reviewboard/diffviewer/models.py (Diff revision 2)
     
     
     

    We usually swap this around to be named like COMMIT_TYPE_MERGE and COMMIT_TYPE_CHANGE.

  5. reviewboard/diffviewer/models.py (Diff revision 2)
     
     
     

    There are some crucial differences between how TEXT (TextField) and VARCHAR(x) (CharField(max_length=x)) columns are stored. If we ever want to do any queries on authors or committers (I can see us wanting to do that), then we're going to want to use a CharField for performance.

    I think it's safe to say that an author or committer will always be a reasonable size (< 256 chars, probably < 128 chars). Given that, I think we can use a CharField here.

  6. reviewboard/diffviewer/models.py (Diff revision 2)
     
     

    This should take a choices= argument that limits it to one of the commit types. It helps with validation and display in the admin UI.

  7. 
      
brennie
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/diffviewer/models.py
        reviewboard/diffviewer/evolutions/add_commit_fields.py
        reviewboard/diffviewer/evolutions/__init__.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/diffviewer/models.py
        reviewboard/diffviewer/evolutions/add_commit_fields.py
        reviewboard/diffviewer/evolutions/__init__.py
    
    
  2. 
      
brennie
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/diffviewer/models.py
        reviewboard/diffviewer/evolutions/add_commit_fields.py
        reviewboard/diffviewer/evolutions/__init__.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/diffviewer/models.py
        reviewboard/diffviewer/evolutions/add_commit_fields.py
        reviewboard/diffviewer/evolutions/__init__.py
    
    
  2. 
      
brennie
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/diffviewer/models.py
        reviewboard/diffviewer/evolutions/add_commit_fields.py
        reviewboard/diffviewer/evolutions/__init__.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/diffviewer/models.py
        reviewboard/diffviewer/evolutions/add_commit_fields.py
        reviewboard/diffviewer/evolutions/__init__.py
    
    
  2. 
      
brennie
reviewbot
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/diffviewer/models.py
        reviewboard/diffviewer/evolutions/add_commit_fields.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/diffviewer/evolutions/__init__.py
        reviewboard/webapi/resources/commit.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/diffviewer/models.py
        reviewboard/diffviewer/evolutions/add_commit_fields.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/diffviewer/evolutions/__init__.py
        reviewboard/webapi/resources/commit.py
    
    
  2. reviewboard/webapi/resources/commit.py (Diff revision 6)
     
     
    Col: 1
     E302 expected 2 blank lines, found 1
    
  3. 
      
brennie
Review request changed

Status: Discarded

Loading...