I followed these instructions, and it appears to do what is intended.
It will create a post-review exe that will run on this machine (the
machine I used py2exe on), and will even work on other machines to
some extent. You can view the help, and post reviews as long as you
don't supply any information to the review. If you attempt to use --
summary, --description --branch, etc, it will fail when trying to save
the review.
WITHOUT --SUMMARY:
C:\Documents and Settings\user\Desktop\post-review dist>post-
review.exe --server="
http://site.com:80" --username="review_poster" --
password="password" --submit-as="rrivard" --repository-url="
http://svn-
server.com/repos/MMSDevelopment" --revision-range="HEAD:HEAD" -d
>>> svn info
http://svn-server.com/repos/MMSDevelopment
>>> repository info: Path:
http://svn-server.com/repos/MMSDevelopment,
Base path: /, Supports changesets: False
>>> svn diff --diff-cmd=diff
http://svn-server.com/repos/MMSDevelopment
/@HEAD
http://svn-server.com/repos/MMSDevelopment/@HEAD
>>> Looking for '
site.com /' cookie in C:\Documents and Settin
gs\seagleMA\Local Settings\Application Data\.post-review-cookies.txt
>>> Loaded valid cookie -- no login required
>>> Attempting to create review request for None
>>> HTTP GETting /api/json/repositories/
>>> HTTP GETting /api/json/repositories/1/info/
>>> repository info: Path:
http://svn-server.com/repos/MMSDevelopment,
Base path: /, Supports changesets: False
>>> Submitting the review request as rrivard
>>> HTTP POSTing to
http://site.com:80/api/json/reviewrequests
/new/: {'repository_path': u'
http://svn-server.com/repos/
MMSDevelopment
', 'submit_as': 'rrivard'}
>>> Review request created
>>> Uploading diff, size: 0
>>> HTTP POSTing to
http://site.com:80/api/json/reviewrequests
/52/diff/new/: {'basedir': '/'}
Error uploading diff: You don't have permission for this (101)
>>> {u'stat': u'fail', u'err': {u'msg': u"You don't have permission for this", u
'code': 101}}
Your review request still exists, but the diff is not attached.
WITH --SUMMARY:
C:\Documents and Settings\user\Desktop\post-review dist>post-
review.exe --se
rver="
http://site.com:80" --username="review_poster" --passwor
d="reviewboard" --submit-as="rrivard" --repository-url="http://
ssourcepn01.paych
ex.com/repos/MMSDevelopment" --revision-range="HEAD:HEAD" --
summary="test" -d
>>> svn info
http://svn-server.com/repos/MMSDevelopment
>>> repository info: Path:
http://svn-server.com/repos/MMSDevelopment,
Base path: /, Supports changesets: False
>>> svn diff --diff-cmd=diff
http://svn-server.com/repos/MMSDevelopment
/@HEAD
http://svn-server.com/repos/MMSDevelopment/@HEAD
>>> Looking for '
site.com /' cookie in C:\Documents and Settin
gs\seagleMA\Local Settings\Application Data\.post-review-cookies.txt
>>> Loaded valid cookie -- no login required
>>> Attempting to create review request for None
>>> HTTP GETting /api/json/repositories/
>>> HTTP GETting /api/json/repositories/1/info/
>>> repository info: Path:
http://svn-server.com/repos/MMSDevelopment,
Base path: /, Supports changesets: False
>>> Submitting the review request as rrivard
>>> HTTP POSTing to
http://site.com:80/api/json/reviewrequests
/new/: {'repository_path': u'
http://svn-server.com/repos/
MMSDevelopment
', 'submit_as': 'rrivard'}
>>> Review request created
>>> Attempting to set field 'summary' to 'test' for review request '54'
>>> HTTP POSTing to
http://site.com:80/api/json/reviewrequests
/54/draft/set/: {'summary': 'test'}
>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="
http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>500 - Internal Server Error | Review Board</title>
</head>
<body>
<h1>Something broke! (Error 500)</h1>
<p>
It appears something broke when you tried to go to here. This is
either
a bug in Review Board or a server configuration error. Please
report
this to your administrator.
</p>
</body>
</title>
Unable to access
http://site.com:80/api/json/reviewrequests/54
/draft/set/. The host path may be invalid
HTTP Error 500: Internal Server Error
Along with this, I get an email printing out a stack trace:
Traceback (most recent call last):
File "/usr/lib/python2.5/site-packages/Django-1.0.2_final-py2.5.egg/
django/core/handlers/base.py", line 86, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.5/site-packages/Django-1.0.2_final-py2.5.egg/
django/views/decorators/cache.py", line 44, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/Djblets-0.5beta1-py2.5.egg/
djblets/webapi/decorators.py", line 32, in _checklogin
response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/Django-1.0.2_final-py2.5.egg/
django/views/decorators/http.py", line 31, in inner
return func(request, *args, **kwargs)
File "/usr/lib/python2.5/site-packages/ReviewBoard-1.0beta2-
py2.5.egg/reviewboard/webapi/json.py", line 848, in
review_request_draft_set
draft.save()
AttributeError: 'WebAPIResponseError' object has no attribute 'save'
<ModPythonRequest
path:/api/json/reviewrequests/54/draft/set/,
GET:<QueryDict: {}>,
POST:<QueryDict: {u'summary': [u'test']}>,
COOKIES:{'rbsessionid': 'c0c7b9fcdd0dd3d090f8dcb83c04bbf6'},
META:{'AUTH_TYPE': None,
'CONTENT_LENGTH': 0L,
'CONTENT_TYPE': None,
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT_ENCODING': 'identity',
'HTTP_CONNECTION': 'close',
'HTTP_CONTENT_LENGTH': '140',
'HTTP_CONTENT_TYPE': 'multipart/form-data;
boundary=10.2.181.182.1.2184.1240844648.174.2',
'HTTP_COOKIE': 'rbsessionid=c0c7b9fcdd0dd3d090f8dcb83c04bbf6',
'HTTP_HOST': '
site.com:80',
'HTTP_USER_AGENT': 'post-review/0.8',
'PATH_INFO': u'/api/json/reviewrequests/54/draft/set/',
'PATH_TRANSLATED': None,
'QUERY_STRING': None,
'REMOTE_ADDR': '5.5.5.5.5',
'REMOTE_HOST': None,
'REMOTE_IDENT': None,
'REMOTE_USER': None,
'REQUEST_METHOD': 'POST',
'SCRIPT_NAME': '',
'SERVER_NAME': '
site.com',
'SERVER_PORT': 0,
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'mod_python'}>
Any suggestions?
> "diffutils-2.8.7-1.exe" fromhttp://
gnuwin32.sourceforge.net/packages/diffutils.htm
>
> 8) Run the diffutils installer. Accept the default options except
> where prompted for documentation, which should be deselected as not
> required.
>
> 9) Copy the following files from C:\Program Files\GnuWin32\bin to the
> post-review dist/ subdirectory:
> diff.exe
> libiconv2.dll
> libintl3.dll
>
> 10) Rename the dist/ folder to something descriptive, then ZIP it up
> and distribute to users - alternatively, I was able to build a simple
> Windows installer at no cost using NSIS and HM NIS Edit.
>
> David
>