2013-07-01 78 views
1

摘要:Reviewboard郵政與CVS連接

當我做一個post-review我得到reviewboard創造了新的評論,但我不從我CVS項目,它得到了diff

A post-review到一個新的請求顯示使用調試選項命令行的差異。在它顯示diff之後,post-review腳本嘗試上傳diff到服務器(它甚至顯示diff有大小),在它嘗試上傳之後顯示diff文件爲空的消息。

在服務器端,日誌抱怨被擴散的CVS文件的絕對路徑。

做其他閱讀,絕對路徑問題可以通過刪除cvs根路徑並使用相對路徑而不是絕對路徑來解決。在我的項目的CVS目錄中,Repository文件顯示爲相對路徑。我相信需要更新的值駐留在評論板服務器上。從我讀過的內容來看,這聽起來像是一個配置問題,但我不確定我需要更新什麼,所有想法/建議都很感謝。

設置詳細信息:

Reviewboard服務器:

 
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,它會通過差異的過程,但似乎有一個問題上傳diff到服務器。以下包含錯誤消息:

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. 

最終的結果是一個審查請求是在reviewboard創建的,但是不存在與請求沒有細節/ DIFF信息。

我轉身從reviewboard管理控制檯登錄,當我做了後,我得到:

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' 

這還引用了絕對模塊參考,除了客戶端的庫文件,有沒有別的地方我應該在看?該文件的路徑看起來合法。

故障排除步驟我已經試過:服務器

  • 我保證reviewboard運行最新版本。
  • 我確保客戶的郵政編碼是最新的。例如easy_install -U RBTools
  • 使用搜索關於「絕對模塊引用無效」的錯誤,找到http://devnet.jetbrains.com/thread/158342的引用並驗證我的客戶端上的存儲庫文件僅顯示相對路徑。

任何關於我可能會失蹤的建議/想法都會受到讚賞。

回答

0

通過他們的谷歌羣體與評論板的開發者取得了聯繫。 Christian幫助我得到命令來解決我的問題,然後我能夠在評論板管理控制檯中更新我的連接字符串。一旦更新,我能夠正確發佈。

任何有興趣在排除故障的詳細信息,您可以查看谷歌組迴應:https://groups.google.com/forum/#!topic/reviewboard/Gps1F6HMuO8

基督徒,你是男人!

以下是我有:

名稱:CVSROOT顯示該庫是檢查託管服務:(無 - 自定義庫)庫類型:CVS路徑: :PSERVER:審稿:[email protected] :2401 /家庭/ CVSROOT/ 鏡像路徑:用戶名:密碼:

注意在上面的連接字符串沒有得當 工作一 「:」 爲/ home/CVSROOT之前。當我們第一次創建它時,我認爲我們無法在沒有這個端口的情況下保存它......不必要的 可以這麼說,上面的路徑並不真正匹配我們通過命令提示符使用的連接字符串 ,所以它有道理,它不起作用。

我更新的路徑如下(注意去掉端口,增加了 「:」並取消了後面的斜線),它現在的作品:

:PSERVER:審稿:[email protected]:/home/cvsroot

謝謝! James

請注意第二個連接字符串中/ home/cvsroot之前的「:」。 從我讀過的內容來看,第二行看起來與CVS想要的匹配。任何 想法爲什麼這將通過命令行工作,但不是 連接從評論板管理控制檯?pserver連接字符串中的用戶名和密碼是否在搞亂?

感謝您的幫助,James