概要:
を実行するpost-review
と、 で新しいレビューが作成されますが、プロジェクトからreviewboard
が取得されません。diff
CVS
新しいリクエストへのApost-review
は、デバッグ オプションを使用したコマンド ラインからの差分を示します。差分を表示した後、レビュー後スクリプトは差分をサーバーにアップロードしようとします (差分にサイズがあることも示します)。アップロードを試みた後、差分ファイルが空であるというメッセージが表示されます。
サーバー側では、CVS ファイルの絶対パスが差分化されているとログに記録されます。
他の読み取りを行うと、絶対パスの問題は、cvs ルート パスを削除し、絶対パスの代わりに相対パスを使用することで修正される場合があります。私のプロジェクトの CVS ディレクトリでは、Repository
ファイルは相対パスとして表示されています。更新する必要がある値は、reviewboard サーバーのどこかにあると思います。私が読んだところによると、これは構成の問題のように思えますが、何を更新する必要があるのか わかりません.
セットアップの詳細:
Reviewboard サーバー:
セント OS 6.0 審査委員会 1.7.11
クライアント:
ウィンドウズ7 パイソン 2.7.3 RBTools 0.5.1 セットアップツール 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 モジュール リファレンスも参照しています。ファイルへのパスは正当に見えます。
私が試したトラブルシューティング手順:
- サーバーのレビューボードが最新バージョンを実行していることを確認しました。
- クライアントの郵便番号が最新であることを確認しました。例えば
easy_install -U RBTools
- 「絶対モジュール参照が無効です」に関するエラーをグーグルで検索し、http://devnet.jetbrains.com/thread/158342の参照を見つけ、クライアントのリポジトリ ファイルに相対パスのみが表示されることを確認しました。
何が欠けている可能性がありますか?