3044: plasticscm repository doesn't work
- Fixed
- Review Board
| abhi****@gmai***** (Google Code) (Is this you? Claim this profile.) | |
|
|
|
| Dec. 23, 2013 |
What version are you running? 1.7.12 What's the URL of the page containing the problem? - What steps will reproduce the problem? 1. Try to add a repository hosted by PlasticSCM server in review board. 2. 3. What is the expected output? What do you see instead? - PlasticSCM repository couldn't be added to reviewboard. What operating system are you using? What browser? Firefox, Linux(ubuntu) Please provide any additional information below. This issue is very easy to reproduce.
From the logs it seems that get_repositories function in the plastic plugin fails to fetch the repositories. - 2013-07-11 10:16:02,919 - DEBUG - - Plastic: get_repositories On the other note, I tried the dev build(1.8) of reviewboard from the github and it seems to add the PlasticScm repository. However, now 'post-review' fails to raise a review request. There was an error raised by plastic plugin something about '_options'. I don't have the exact exception trace at the moment. I'll try to reproduce the issue and paste the exact backtrace.
Traceback (most recent call last):
File "/usr/local/bin/post-review", line 9, in <module>
load_entry_point('RBTools==0.5.1.dev', 'console_scripts', 'post-review')()
File "/usr/local/lib/python2.7/dist-packages/RBTools-0.5.1.dev-py2.7.egg/rbtools/postreview.py", line 1332, in main
diff, parent_diff = tool.diff(args)
File "/usr/local/lib/python2.7/dist-packages/RBTools-0.5.1.dev-py2.7.egg/rbtools/clients/plastic.py", line 73, in diff
return self.branch_diff(args), None
File "/usr/local/lib/python2.7/dist-packages/RBTools-0.5.1.dev-py2.7.egg/rbtools/clients/plastic.py", line 92, in branch_diff
if not self._options.branch:
AttributeError: 'PlasticClient' object has no attribute '_options'
This is the error that I am getting when trying to submit a review through UI(1.8dev).
File "/home/abhiravk/workspace/rb-dev-env/local/lib/python2.7/site-packages/Django-1.4.5-py2.7.egg/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "/home/abhiravk/workspace/rb-dev-env/local/lib/python2.7/site-packages/Djblets-0.7.16-py2.7.egg/djblets/auth/util.py", line 47, in _checklogin
return view_func(request, *args, **kwargs)
File "/home/abhiravk/workspace/reviewboard/reviewboard/reviews/views.py", line 249, in new_review_request
local_site=local_site)
File "/home/abhiravk/workspace/reviewboard/reviewboard/reviews/forms.py", line 220, in create
changenum, local_site)
File "/home/abhiravk/workspace/reviewboard/reviewboard/reviews/managers.py", line 130, in create
review_request.update_from_commit_id(commit_id)
File "/home/abhiravk/workspace/reviewboard/reviewboard/reviews/models.py", line 411, in update_from_commit_id
raise NotImplementedError()
NotImplementedError
http://dpaste.com/hold/1326236/
Looks like two things: 1) Fallout from options restructuring on the RBTools side. 2) Fallout from commit ID changes on the Review Board side. (This is why we really need an actual Plastic maintainer, or some solid unit tests.)
-
- NeedInfo + Confirmed -
+ Component-RBTools + Component-SCMTools -
+ david
Hi I was testing this fix on 1.7.13 alpha 0 and found the encountered the following error while adding a plastic SCM repository. 09:19:56 DEBUG - Plastic: Checking repository op@127.0.0.1:8087 09:19:56 DEBUG - Plastic: get_repositories 127.0.0.1:8087 I'll test the fixes on the master branch and share the result.
It doesn't seem to be a debug log 'only'. I also see a red bar which contents are not readable because it is hidded behind some element. Plastic repository which I was trying to add is not visible in the reviewboard, so it seem like adding repository didn't work.
On the other node, I tried to do the same thing on the 'master' branch and there repository could be added on reviewboard site but creating a review by giving a changeset doesn't work from the site. A blank review is created but there is no file description or diff :(
Using 'post-review' encountered the following error when trying to post the review.
abhiravk@MrvServer:~/workspace/plastic$ post-review 447
Failed to execute command: ['cm', 'diff', '447', '--format={status} {path} rev:revid:{revid} rev:revid:{parentrevid} src:{srccmpath} dst:{dstcmpath}{newline}']
['Incorrect object specification 447\n']
abhiravk@MrvServer:~/workspace/plastic$ post-review cs:412 cs:443
==> HTTP Authentication Required
Enter authorization information for "Web API" at localhost:8888
Username: abhiravk
Password:
Error uploading diff
Your review request still exists, but the diff is not attached.
--
Web server log when posting review using 'post-review'
--
2013-08-07 01:41:21,024 - DEBUG - None - AnonymousUser - /api/review-requests/ - Attempting authentication on API for user abhiravk
[07/Aug/2013 01:41:22] "POST /api/review-requests/ HTTP/1.1" 201 1544
[07/Aug/2013 01:41:22] "PUT /api/review-requests/3/draft/ HTTP/1.1" 200 914
2013-08-07 01:41:22,978 - DEBUG - - DiffParser.parse: Beginning parse of diff, size = 45257
2013-08-07 01:41:22,987 - DEBUG - - DiffParser.parse: Finished parsing diff.
2013-08-07 01:41:22,987 - DEBUG - - Plastic: parse_diff_revision file "/home/abhiravk/workspace/plastic/config_ac.c" revision rev:revid:13356
2013-08-07 01:41:22,988 - DEBUG - - Plastic: file_exists "/home/abhiravk/workspace/plastic/config_ac.c" revision rev:revid:13356
2013-08-07 01:41:22,988 - DEBUG - - Plastic: get_file "/home/abhiravk/workspace/config_ac.c" rev rev:revid:13356
2013-08-07 01:41:23,528 - ERROR - None - abhiravk - /api/review-requests/3/diffs/ - Error uploading new diff: The specified revision was not found rev:revid:13356@rep:op@repserver:172.16.135.11:8087
Traceback (most recent call last):
File "/home/abhiravk/workspace/reviewboard/reviewboard/webapi/resources.py", line 2041, in create
request.FILES.get('parent_diff_path'))
File "/home/abhiravk/workspace/reviewboard/reviewboard/reviews/forms.py", line 310, in create
history)
File "/home/abhiravk/workspace/reviewboard/reviewboard/diffviewer/forms.py", line 54, in create
basedir, self.request)
File "/home/abhiravk/workspace/reviewboard/reviewboard/diffviewer/managers.py", line 80, in create_from_upload
save=save)
File "/home/abhiravk/workspace/reviewboard/reviewboard/diffviewer/managers.py", line 96, in create_from_data
check_existence=(not parent_diff_file_contents)))
File "/home/abhiravk/workspace/reviewboard/reviewboard/diffviewer/managers.py", line 202, in _process_files
not repository.get_file_exists(filename, revision, request))):
File "/home/abhiravk/workspace/reviewboard/reviewboard/scmtools/models.py", line 207, in get_file_exists
exists = self._get_file_exists_uncached(path, revision, request)
File "/home/abhiravk/workspace/reviewboard/reviewboard/scmtools/models.py", line 365, in _get_file_exists_uncached
exists = self.get_scmtool().file_exists(path, revision)
File "/home/abhiravk/workspace/reviewboard/reviewboard/scmtools/plastic.py", line 113, in file_exists
return self.client.get_file(path, revision)
File "/home/abhiravk/workspace/reviewboard/reviewboard/scmtools/plastic.py", line 246, in get_file
raise SCMError(errmsg)
SCMError: The specified revision was not found rev:revid:13356@rep:op@repserver:172.16.135.11:8087
[07/Aug/2013 01:41:23] "POST /api/review-requests/3/diffs/ HTTP/1.1" 400 198
---
My repository is using xLinks.
At this point, I think the regressions that we introduced have been fixed, and we need someone who knows about plastic to weigh in. I emailed the plastic maintainers with a link to this bug, so hopefully they'll take a look at some point.
-
- Fixed + New