1

概要:

を実行するpost-reviewと、 で新しいレビューが作成されますが、プロジェクトからreviewboardが取得されません。diffCVS

新しいリクエストへの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の参照を見つけ、クライアントのリポジトリ ファイルに相対パスのみが表示されることを確認しました。

何が欠けている可能性がありますか?

4

1 に答える 1

0

Google グループを介してレビューボードの開発者と連絡を取りました。Christian は、問題をトラブルシューティングするためのコマンドを取得するのを手伝ってくれました。その後、reviewboard 管理コンソールで接続文字列を更新することができました。アップデートしたらちゃんと投稿できました。

トラブルシューティングの詳細に興味がある方は、https: //groups.google.com/forum/# !topic/reviewboard/Gps1F6HMuO8 で Google グループの回答をご覧ください。

クリスチャン、あなたは男です!

以下は私が持っていたものです:

名前: cvsroot このリポジトリがチェックされていることを示す ホスティング サービス: (なし - カスタム リポジトリ) リポジトリ タイプ: CVS パス: :pserver:reviewer:reviewerpassword@10.100.10.2:2401/home/cvsroot/ ミラー パス: ユーザー名: パスワード:

上記で、/home/cvsroot の前に「:」があると、接続文字列が正しく機能しないことに注意してください。最初に作成したときは、ポートがないと保存できなかったと思います... 言うまでもなく、上記のパスは、コマンド プロンプトで使用した接続文字列と実際には一致しないため、意味があります。うまくいきませんでした。

パスを次のように更新しました(ポートを削除し、「:」を追加し、末尾のスラッシュを削除したことに注意してください)、現在は機能しています:

:pserver:reviewer:reviewerpassword@10.100.10.2:/home/cvsroot

ありがとう!ジェームズ

2 番目の接続文字列の /home/cvsroot の前の「:」に注意してください。私が読んだところによると、2行目はcvsが望んでいるものと一致しているようです。これがコマンド ライン経由では機能するのに、reviewboard 管理コンソールからは接続できない理由について何か考えはありますか? pserver 接続文字列のユーザー名とパスワードが混乱していませんか?

助けてくれてありがとう、ジェームズ

于 2013-07-02T21:46:41.167 に答える