0

Mercurial リポジトリとバグ トラッカー (Bugzilla 4.0.1) を統合するために、サーバー側のhgrcファイルを次のように設定しました。

[extensions]
hgext.bugzilla=

[hooks]
incoming.bugzilla=python:hgext.bugzilla.hook

[bugzilla]
bzurl=http://localhost/bugzilla
user=some.user@this.domain
password=password
version=xmlrpc
hgweb=http://this-server:65432/
template=Changeset {node|short} in {root|basename}.\nDetails siehe {hgweb}{webroot}?cmd=changeset;node={node|short}\nBeschreibung:\n\t{desc|tabindent}

[usermap]
committer_email=bugzilla_user_name

[web]
push_ssl=False
allow_push=*
baseurl=http://this-server:65432

Mercurial は、this-server、ポート65432でサービスを提供するように設定されています。

これで、起動後hg serve、最初のプッシュが問題なく処理されます。コミット メッセージで見つかったすべてのバグ リファレンスは、Bugzilla コメントを生成します。ただし、少なくとも 1 つのバグ リファレンスが存在する後続のプッシュごとに、次のエラー メッセージがユーザーに表示されます。

pushing to http://this-server:65432/
searching for changes
remote: adding changesets
remote: adding manifests
remote: adding file changes
remote: added 1 changesets with 1 changes to 1 files
remote: error: incoming.bugzilla hook failed: Bugzilla error:

何度か、次のメッセージが表示されました。

remote: error: incoming.bugzilla hook failed: Bugzilla error: [Errno 54] Connection reset by peer

bugzilla ではコメントは作成されません。hgを再起動すると、もう一度正確に機能するようになります。

-A ... -E ...また、アクセス ログとエラー ログを作成する引数を指定して Mercurial サーバーを起動しようとしました。アクセス ログには、成功したかどうかに関係なく、すべてのリクエストに対して同じ種類のやり取りが表示されます。

192.168.117.78 - - [20/Feb/2013 10:19:03] "GET /?cmd=capabilities HTTP/1.1" 200 -
192.168.117.78 - - [20/Feb/2013 10:19:03] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3Dc3ee38280c255a62c2742304622d8fcf29959863+b8cbc9948834a83b9a8f6dd9f1b96d5f39224324+54f5e40379910d6026b8656fe0982bb5b7e9e22b
192.168.117.78 - - [20/Feb/2013 10:19:03] "GET /?cmd=branchmap HTTP/1.1" 200 -
192.168.117.78 - - [20/Feb/2013 10:19:03] "GET /?cmd=branchmap HTTP/1.1" 200 -
192.168.117.78 - - [20/Feb/2013 10:19:04] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks
192.168.117.78 - - [20/Feb/2013 10:19:09] "POST /?cmd=unbundle HTTP/1.1" 200 - x-hgarg-1:heads=686173686564+be8d19f7ab04e73ad36715ec876b4dd74384a920
192.168.117.78 - - [20/Feb/2013 10:19:09] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases
192.168.117.78 - - [20/Feb/2013 10:19:09] "POST /?cmd=pushkey HTTP/1.1" 200 - x-hgarg-1:key=54f5e40379910d6026b8656fe0982bb5b7e9e22b&namespace=phases&new=0&old=1
192.168.117.78 - - [20/Feb/2013 10:19:10] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks
192.168.117.78 - - [20/Feb/2013 10:20:04] "GET /?cmd=capabilities HTTP/1.1" 200 -
192.168.117.78 - - [20/Feb/2013 10:20:05] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3Dc3ee38280c255a62c2742304622d8fcf29959863+b8cbc9948834a83b9a8f6dd9f1b96d5f39224324+7fbb4c09e39db549ed01532785e80eda480e8862
192.168.117.78 - - [20/Feb/2013 10:20:05] "GET /?cmd=branchmap HTTP/1.1" 200 -
192.168.117.78 - - [20/Feb/2013 10:20:05] "GET /?cmd=branchmap HTTP/1.1" 200 -
192.168.117.78 - - [20/Feb/2013 10:20:05] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks
192.168.117.78 - - [20/Feb/2013 10:20:05] "POST /?cmd=unbundle HTTP/1.1" 200 - x-hgarg-1:heads=686173686564+f71bb72e20c8f91b9d0ca3b5fbdef2aac667c265
192.168.117.78 - - [20/Feb/2013 10:20:05] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=phases
192.168.117.78 - - [20/Feb/2013 10:20:06] "POST /?cmd=pushkey HTTP/1.1" 200 - x-hgarg-1:key=7fbb4c09e39db549ed01532785e80eda480e8862&namespace=phases&new=0&old=1
192.168.117.78 - - [20/Feb/2013 10:20:06] "GET /?cmd=listkeys HTTP/1.1" 200 - x-hgarg-1:namespace=bookmarks

エラー ログが空です。

この問題をさらに診断するにはどうすればよいですか?

4

1 に答える 1

1

hg serve呼び出しは長期間使用するためのものではありません。これは、LAN 上の仲間の間で「ねえ、私が始めたものを複製する」ためのものです。Mercurial ウィキから

ラップトップから変更をプルするなど、リポジトリを数分間公開する必要がある一時的な状況を除いて、あまりお勧めしません。

実際の wsgi コンテナをスピンアップすればうまくいくと思います。私は bugzilla フックを使用していませんが、wsgi コンテナーまたはクリアされるコマンド ライン呼び出しにあると予想されるため、それ自体がクリーンアップされていないと推測しています。

于 2013-02-21T04:05:15.787 に答える