0

Linux サーバーで hgweb.cgi cgi スクリプトを使用して http サーバーをセットアップしました。サーバーにMercurialリポジトリを配置しました。Windows マシンからリポジトリを問題なく複製できます。サーバーはどのブラウザーでも表示できます。localhost: (サーバー) からリポジトリのクローンを作成できます。

hg clone http:// localhost /hg/proj

完璧に動作します。しかし、別の Linux マシンでサーバーにアクセスしようとすると、次のエラー メッセージが表示されました。

hg clone http://myhgserver/hg/proj

中止: HTTP エラー 404: 条件が傍受されました

apache2 Web サーバーの error_log ファイルにエラー メッセージが見つかりませんでした。

まず、クライアント側で古いバージョンの hg (1.4) を使用しているのではないかと疑いました。私のサーバー側は hg 2.6.3 です。
次に、ホームディレクトリに最新のmercurialをインストールするように結びました(システムディレクトリへのアクセス許可はありません)

「make local」コマンドを使用して、mercurial パッケージをローカルにインストールしました。

./hg --version Mercurial 分散 SCM (バージョン 3.0+4-75aaae8ad660+20140613)

クローン作成コマンドで同じエラーが発生しました: abort: HTTP Error 404: Condition Intercepted

私はほぼ一日中過ごしましたが、今は真夜中ですが、まだ答えが見つかりません。

他の誰かがそのような問題を見たことがありますか?

ケミン

4

1 に答える 1

0

一晩寝た後、問題は解決しました。基本的に、hg プログラムには、ホスト名を IP アドレスに解決する機能がありません。私のサーバーとクライアント コンピューターは同じ LAN 上にあるため、接続やファイアウォールの問題はありません。

クライアントからサーバーに問題なく PING できます。host コマンドを実行できます: host myhgserver これにより、完全な IP アドレスと完全修飾ドメイン名が得られます。ホストの短い名前の代わりに IP アドレスを使用した場合、hg は正常に動作します。

私が必要だと思うのは、エイリアスからサーバーを見つけることができるように、hg クライアント プログラムに数行のコードを追加することです。

于 2014-06-14T14:23:40.390 に答える