Initial backend support for review requests with commit history.

Review Request #6779 — Created Jan. 15, 2015 and discarded

brennie
Review Board
master
6766
reviewboard
chipx86, smacleod

Add the DiffCommitResource and DraftDiffCommitResource resources.
The DiffCommitResource is a resource for retrieving the information
about the Commits under a particular DiffSet. The
DraftDiffCommitResource inherits from the DiffCommitResource and
modifies it to allow for the creation of Commits and associated
FileDiffs. The DraftDiffCommitResource handles the uploading of
FileDiffs for Commits instead of the DiffSetResource.

Register the Commit model for both DiffCommitResource and
DraftDiffCommitResource in the API. They are item child resources of
the DiffSetResource and DraftDiffSetResource resources,
respectively.

The DiffSetResource.create method now takes an extra optional field,
create_empty, that determines if the DiffSet that is created is
created without uploading a .diff file. This is used in the creation
of review requests with commit histories.

The FileDiffResource and DraftFileDiffResource classes now filter
their results based on the commit query parameter. If no commit
query parameter is given, only those FileDiffs unattached to a
Commit will be return. This filtering is only applied to the list
API, not the item API.

Add a new form, the UploadCommitForm, for handling the processing of
data for creating new Commit instances. It is very similar to
diffviewer.forms.UploadDiffForm and may need to be refactored.

Refactor behaviour for uploading FileDiffs from the DiffSetManager
to a new class, the DiffProcessorMixin. This mix-in handles the
initial processing of .diff files, their comparison (for header vs
source files), generating file lists, and creating actual FileDiffs
from upload (it calls the child class's implementation of
create_from_data).

The DiffSetManager now has a create_empty method for creating
DiffSets without FileDiffs for usage with Commits.

Add the CommitManager model. It inherits from the
DiffProcessorMixin.

Update the validate_diff endpoint to use named parameters for
DiffSetManager.create_from_upload because of the refactoring.

Add a WebAPI capability to show that the server supports review
requests with commit histories.

TODO:
- Unit tests forthcoming.
- Manual testing information forthcoming.

Ran unit tests.
Able to create a review request with a single commit of history via
RBTools (see: https://reviews.reviewboard.org/r/6787/).

  • 0
  • 0
  • 14
  • 0
  • 14
Description From Last Updated
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
  2. reviewboard/diffviewer/forms.py (Diff revision 1)
     
     
    Col: 1
     W293 blank line contains whitespace
    
  3. reviewboard/diffviewer/forms.py (Diff revision 1)
     
     
    Col: 1
     E302 expected 2 blank lines, found 1
    
  4. reviewboard/diffviewer/managers.py (Diff revision 1)
     
     
    Col: 1
     W293 blank line contains whitespace
    
  5. reviewboard/diffviewer/managers.py (Diff revision 1)
     
     
    Col: 1
     W293 blank line contains whitespace
    
  6. reviewboard/diffviewer/managers.py (Diff revision 1)
     
     
    Col: 80
     E501 line too long (82 > 79 characters)
    
  7. reviewboard/diffviewer/managers.py (Diff revision 1)
     
     
    Col: 1
     E302 expected 2 blank lines, found 1
    
  8. Col: 25
     E131 continuation line unaligned for hanging indent
    
  9. Col: 29
     E131 continuation line unaligned for hanging indent
    
  10. Col: 80
     E501 line too long (80 > 79 characters)
    
  11. Col: 1
     E303 too many blank lines (3)
    
  12. 
      
brennie
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
  2. 
      
brennie
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
  2. reviewboard/diffviewer/forms.py (Diff revision 3)
     
     
    Col: 1
     W293 blank line contains whitespace
    
  3.  'datetime' imported but unused
    
  4.  'urlencode' imported but unused
    
  5.  'get_resource_for_object' imported but unused
    
  6. 
      
brennie
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/diffviewer/admin.py
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/diffviewer/evolutions/__init__.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/evolutions/add_commit_history_fields.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/diffviewer/admin.py
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/diffviewer/evolutions/__init__.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/evolutions/add_commit_history_fields.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
  2. 
      
brennie
brennie
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
  2. 
      
brennie
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/server_info.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
  2. 
      
  1. Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/server_info.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
  2. 
      
brennie
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/server_info.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/server_info.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
  2. 
      
brennie
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/server_info.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/server_info.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
  2. 
      
brennie
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/server_info.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/server_info.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
  2. 
      
brennie
  1. Tool: Pyflakes
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/server_info.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
    
    Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/server_info.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
  2. 
      
brennie
  1. Tool: PEP8 Style Checker
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/server_info.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
    
    Tool: Pyflakes
    Processed Files:
        reviewboard/webapi/resources/draft_diff.py
        reviewboard/webapi/resources/__init__.py
        reviewboard/webapi/resources/draft_diff_commit.py
        reviewboard/webapi/server_info.py
        reviewboard/diffviewer/models.py
        reviewboard/webapi/resources/filediff.py
        reviewboard/webapi/resources/diff.py
        reviewboard/webapi/resources/diff_commit.py
        reviewboard/diffviewer/forms.py
        reviewboard/diffviewer/managers.py
        reviewboard/webapi/resources/validate_diff.py
        reviewboard/webapi/resources/draft_filediff.py
    
    
  2. 
      
brennie
Review request changed

Status: Discarded

Change Summary:

Splitting this up more.

Loading...