0

hgweb を使用してローカル リポジトリを公開しています。

/project_path/project_name/.hg/.hgrc には:

[hooks]
changegroup.bitbucket  =  hg push ssh://hg@bitbucket.org/user/repo

hg serveを使用すると、すべての changegroup フックが正常に動作しますが、nginx と fcgi を使用して hgweb を使用すると、まったく動作しません何らかのバックアップを行うには、これらの機能が必要です。

4

2 に答える 2

2

それは主にTrustのようなものです。

Mercurial は、解析/実行する前に hgrc ファイルを信頼する必要があります。あなたの/project_path/project_name/.hg/.hgrcファイルがあなたによって所有されている場合hg serve、Mercurial を実行して実行すると、解析/使用されます。ただし、nginx は独自のユーザーとして実行され、おそらくnginxあなたが所有するファイルを信頼しないため、Mercurial を呼び出すと、それらのファイルは無視されます (注を参照)。

その Mercurial 信頼リンクはより良い説明を提供し、「nginx は X を信頼する」と言う方法について説明しますが、それがシングルユーザー システムであるか、または全員に信頼してもらいたい場合は、system-global/etc/mercurial/hgrcファイルに信頼ブロックを投げて、全員を言うことができます。 X を信頼します。

注:実際にはこれらのファイルを無視するだけでなく、エラーログにあるSTDERRに警告が表示されますが、nginxランドでは誰もそれらの警告を見つけていないようなので、わかりませんnginxがそれらを置く場所。

于 2011-11-26T20:14:40.957 に答える
0

ここで何らかの認証の問題があると思います。コマンド ラインから実行する場合hg serve、ssh 資格情報はssh-agentバックグラウンドでの実行によって提供されます。

ただし、バックグラウンドで実行されている ssh-agent がないため、hgweb をサービスとして実行している場合、これは機能しません。を起動する場合ssh-agent、ssh キーのパスワードを入力する可能性はありません。

hg pushBitbucket は ssh キーを使用してユーザーを認証するため、上記のコマンドにパスワードを追加することはできません。

考えられる解決策の 1 つは、bitbucket をバックアップとして使用するのではなく、コマンド ラインで簡単なパスワードを指定できる別の Mercurial サーバーを使用することです。

申し訳ありませんが、これ以上お手伝いすることはできません。

于 2011-11-26T19:26:55.260 に答える