使用CVS连接的Reviewboard帖子

时间:2013-07-01 20:31:40

标签: cvs review-board

要点:

当我执行post-review时,我会在reviewboard上创建新的评价,但我无法从我的diff项目中获取CVS。< / p>

新请求的post-review使用debug选项显示命令行的diff。在显示差异之后,审核后脚本会尝试将差异上传到服务器(它甚至会显示差异大小),在尝试上传后会显示差异文件为空的消息。

在服务器端,日志会抱怨要传播的CVS文件的绝对路径。

进行其他读取时,可以通过删除cvs根路径并使用相对路径而不是绝对路径来修复绝对路径问题。在我的项目的CVS目录中,Repository文件显示为相对路径。我认为需要更新的值存在于评论板服务器上,某处。从我所读到的内容来看,这听起来像是一个配置问题,但我不确定我需要更新什么。

设置详情:

审核委员会服务器:

Cent OS 6.0
Review Board 1.7.11

客户端:

Windows 7 
Python 2.7.3
RBTools 0.5.1
setuptools 0.7.7

更多详情:

我过去曾使用Reviewboard在不同服务器上使用perforce来帮助进行代码审核。我正在使用CVS作为源控件的另一家公司开展新项目。

我在与CVS服务器不同的盒子上设置了Reviewboard。 Reviewboard已设置并通过pserver连接到我的存储库。存储库从Reviewboard管理控制台正确连接。

为了获得连接到服务器的后期审核,我在项目目录中创建了一个.reviewboardrc文件,我试图发布评论。它看起来类似于:

REPOSITORY = "cvsroot"
REVIEWBOARD_URL = "http://10.100.10.231"
USERNAME = "user"
PASSWORD = "password"

差异看起来像它正常工作,就像我跑:post-review --output-diff我得到:

C:\path>post-review --output-diff
cvs diff: ignoring __history (CVS/Entries missing)
cvs diff: Diffing .
Index: blob.cpp
===================================================================
RCS file: /home/cvsroot/path/on/server/blob.cpp,v
retrieving revision 1.3
diff -u -r1.3 blob.cpp
--- blob.cpp    28 Jun 2013 23:28:55 -0000      1.3
+++ blob.cpp    1 Jul 2013 19:56:57 -0000
@@ -31,7 +31,12 @@
 __fastcall TformBlob::TformBlob(TComponent* Owner)
        : TForm(Owner)
 {
+<<<<<<< blob.cpp
+       // This is a test to see if I can get it into source control with review
 board.
+       // test 2 after clean check in.
+=======
        // jao: This is a test to see if I can get it into source control with r
eview board.
+>>>>>>> 1.3
 }
 //---------------------------------------------------------------------------
 void __fastcall TformBlob::btnSelectFileClick(TObject *Sender)
cvs diff: Diffing Debug
cvs diff: Diffing Reports

C:\path>

当我执行post-review -r 1 -d时,它会经历差异处理,但似乎在将差异上传到服务器时出现问题。以下包含错误消息:

cvs diff: Diffing Debug
cvs diff: Diffing Reports
---
>>> HTTP GETting api/
>>> HTTP GETting http://10.100.10.231/api/info/
>>> Using the new web API
>>> HTTP GETting http://10.100.10.231/api/review-requests/1/
>>> Uploading diff, size: 883
>>> HTTP POSTing to http://10.100.10.231/api/review-requests/1/diffs/: {}
>>> Got API Error 105 (HTTP code 400): One or more fields had errors
>>> Error data: {u'fields': {u'path': [u"cvs [checkout aborted]: Absolute module
 reference invalid: `/home/cvsroot/path/on/server/blob.cpp'\n"
]}, u'stat': u'fail', u'err': {u'msg': u'One or more fields had errors', u'code'
: 105}}

Error uploading diff

Your review request still exists, but the diff is not attached.

最终结果是在审核板上创建了审核请求,但是请求中没有详细信息/差异信息。

我从评论板管理控制台打开了日志记录,当我发帖时,我得到:

None - user - /api/review-requests/1/diffs/ - Error uploading new diff: cvs [checkout aborted]: Absolute module reference invalid: `/home/cvsroot/path/on/server/blob.cpp'
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.11-py2.6.egg/reviewboard/webapi/resources.py", line 2040, in create
    request.FILES.get('parent_diff_path'))
  File "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.11-py2.6.egg/reviewboard/reviews/forms.py", line 308, in create
    history)
  File "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.11-py2.6.egg/reviewboard/diffviewer/forms.py", line 88, in create
    diff_file, basedir, check_existance=(not parent_diff_file)))
  File "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.11-py2.6.egg/reviewboard/diffviewer/forms.py", line 189, in _process_files
    self.request))):
  File "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.11-py2.6.egg/reviewboard/scmtools/models.py", line 187, in get_file_exists
    exists = self._get_file_exists_uncached(path, revision, request)
  File "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.11-py2.6.egg/reviewboard/scmtools/models.py", line 290, in _get_file_exists_uncached
    exists = self.get_scmtool().file_exists(path, revision)
  File "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.11-py2.6.egg/reviewboard/scmtools/core.py", line 81, in file_exists
    self.get_file(path, revision)
  File "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.11-py2.6.egg/reviewboard/scmtools/cvs.py", line 54, in get_file
    return self.client.cat_file(path, revision)
  File "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.11-py2.6.egg/reviewboard/scmtools/cvs.py", line 271, in cat_file
    return self._cat_specific_file(filename, revision)
  File "/usr/lib/python2.6/site-packages/ReviewBoard-1.7.11-py2.6.egg/reviewboard/scmtools/cvs.py", line 322, in _cat_specific_file
    raise SCMError(errmsg)
SCMError: cvs [checkout aborted]: Absolute module reference invalid: `/home/cvsroot/path/on/server/blob.cpp'

这也引用了Absolute模块引用,除了客户端的Repository文件之外,还有其他我应该看的地方吗?该文件的路径看起来合法。

排除故障的步骤

  • 我确保服务器上的审核程序正在运行最新版本。
  • 我确保客户邮政编码是最新的。例如easy_install -U RBTools
  • 搜索错误&#34;绝对模块引用无效&#34;,找到http://devnet.jetbrains.com/thread/158342的引用并验证我客户端上的存储库文件仅显示相对路径。

我能错过什么?

1 个答案:

答案 0 :(得分:0)

通过他们的google小组与reviewboard的开发者联系。 Christian帮助我获取解决问题的命令,然后我能够在reviewboard管理控制台中更新我的连接字符串。更新后,我能够正确发布。

对于对疑难解答详情感兴趣的任何人,您都可以在以下位置查看Google群组回复:https://groups.google.com/forum/#!topic/reviewboard/Gps1F6HMuO8

  

克里斯蒂安,你是男人!

     

以下是我所拥有的:

     

名称:cvsroot显示此存储库已选中托管服务:(无 -   自定义存储库)存储库类型:CVS路径:   :PSERVER:审稿:reviewerpassword@10.100.10.2:2401 /家庭/ CVSROOT /   镜像路径:用户名:密码:

     

请注意,上面的连接字符串无法正常工作   在/ home / cvsroot之前使用“:”。当我们第一次创建它时,我   相信如果没有港口,我们无法得到它......不用了   要说,上面的路径与我们的连接字符串并不匹配   通过命令提示符使用,所以它没有用。

     

我将路径更新为以下内容(注意删除了端口,添加了   “:”并删除尾部斜杠)现在可以正常工作:

     

<强>:PSERVER:评:reviewerpassword@10.100.10.2:/家庭/ CVSROOT

     

谢谢!   詹姆斯

     

注意第二个连接字符串中/ home / cvsroot之前的“:”。   根据我的阅读,第二行看起来与cvs想要的相匹配。任何   关于为什么这会通过命令行为我们工作的想法,但不是   从reviewboard管理控制台连接?是用户名和   pserver连接字符串中的密码弄乱了吗?

     

感谢你的帮助,詹姆斯