1517: Review Board needs a better error response when using short SHA1s with git diffs

sto***@gmai***** (Google Code) (Is this you? Claim this profile.)
Sept. 5, 2010
What version are you running?

Not sure - likely current beta.


What's the URL of the page containing the problem?

http://reviews.reviewboard.org

What steps will reproduce the problem?
1.Tried to create new review request
2.Selected patch to upload
3.Clicked "Create Review Request"

What is the expected output? What do you see instead?

I expected it to create a review request.

What operating system are you using? What browser?

Likely a Linux variant.

Please provide any additional information below.

I'm sure I'm doing something wrong. I cloned the git repository, modified
the svn post commit hook and generated a patch.

Environment:

Request Method: POST
Request URL: http://reviews.reviewboard.org/r/new/
Django Version: 1.1.1
Python Version: 2.5.2
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.markup',
 'django.contrib.sites',
 'django.contrib.sessions',
 'djblets.datagrid',
 'djblets.feedview',
 'djblets.log',
 'djblets.siteconfig',
 'djblets.util',
 'djblets.webapi',
 'reviewboard.accounts',
 'reviewboard.admin',
 'reviewboard.changedescs',
 'reviewboard.diffviewer',
 'reviewboard.iphone',
 'reviewboard.notifications',
 'reviewboard.reports',
 'reviewboard.reviews',
 'reviewboard.scmtools',
 'reviewboard.webapi',
 'django_evolution']
Installed Middleware:
('django.middleware.gzip.GZipMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.doc.XViewMiddleware',
 'django.middleware.http.ConditionalGetMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'djblets.siteconfig.middleware.SettingsMiddleware',
 'reviewboard.admin.middleware.LoadSettingsMiddleware',
 'djblets.log.middleware.LoggingMiddleware',
 'reviewboard.admin.middleware.CheckUpdatesRequiredMiddleware',
 'reviewboard.admin.middleware.X509AuthMiddleware')


Traceback:
File
"/usr/lib/python2.5/site-packages/Django-1.1.1-py2.5.egg/django/core/handlers/base.py"
in get_response
  92.                 response = callback(request, *callback_args,
**callback_kwargs)
File
"/usr/lib/python2.5/site-packages/Djblets-0.5.7-py2.5.egg/djblets/auth/util.py"
in _checklogin
  46.             return view_func(request, *args, **kwargs)
File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.5beta1-py2.5.egg/reviewboard/reviews/views.py"
in new_review_request
  69.                    
parent_diff_file=request.FILES.get('parent_diff_path'))
File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.5beta1-py2.5.egg/reviewboard/reviews/forms.py"
in create
  183.                              attach_to_history=True)
File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.5beta1-py2.5.egg/reviewboard/reviews/forms.py"
in create
  235.                                                      history)
File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.5beta1-py2.5.egg/reviewboard/diffviewer/forms.py"
in create
  63.             diff_file, basedir, check_existance=(not parent_diff_file)))
File
"/usr/lib/python2.5/site-packages/ReviewBoard-1.5beta1-py2.5.egg/reviewboard/diffviewer/forms.py"
in _process_files
  143.                 raise FileNotFoundError(filename, revision)

Exception Type: FileNotFoundError at /r/new/
Exception Value: The file 'contrib/tools/svn-hook-postcommit-review'
(r4612ebf) could not be found in the repository
chipx86
#1 chipx86
This is due to git diff using short SHA1s by default. You need to either pass
--full-index to git diff or, preferably, use post-review.

Repurposing the bug. We really should make it clear what the problem actually is.
  • +Confirmed
  • +Component-SCMTools
    +Milestone-Release1.5
  • +Review Board needs a better error response when using short SHA1s with git diffs
chipx86
#2 chipx86
Fixed on master (7eb6fcc)
  • -Confirmed
    +Fixed