IIS で hgweb を動作させる方法に関する適切な手順を探していましたが、あまり価値がありませんでした。
Mercurial wikiにこの「ステップバイステップ」がありますが、あまり良くありません。thisとthisもありますが、繰り返しになりますが、それらを開始するための適切な手順が見つかりません。
昨日、新しい Mercurial インスタンスをインストールする必要がありました。1.7 の更新された手順は次のとおりです。
hg clone https://www.mercurial-scm.org/repo/hg/
Web アプリケーション フォルダーとなるフォルダーを作成します。このフォルダに次の 3 つをコピーする必要があります。
IIS で Python がセットアップされていることを確認する必要があります。
また、以下のような内容の「hgweb.config」という名前のファイルを作成する必要があります。ファイル内のパスは、Mercurial リポジトリを保存するドライブ上の場所である必要があります。
[コレクション]
c:\Mercurial\repos = c:\Mercurial\repos
hgweb.cgi ファイルを編集し、hgweb.config へのパスを設定する行を次のように変更します (hgweb.config ファイルがある場合):
config = "C:\Mercurial\hgweb.config"
また、Jeremy Skinners のブログ投稿もご覧ください。少し古くなっていますが、よりクリーンな URL の URL 書き換えを設定するなど、いくつかの特別な手順があります。
Mercurial 1.5.2 がリリースされて以来、これらのチュートリアルは正しく動作しないようです。まず、hgwebdir.cgi が削除され、hgweb.cgi に置き換えられました。
私にとって最も効果的な手順は、eworldui.netにあります。
これらの手順は、IIS 7 以降を対象としています。IIS 6 でこれをセットアップしている場合は、Win2k3 および IIS 6.0 向けの同様の手順を書きました。
http://partialclass.blogspot.com/2010/05/setting-up-mercurial-server-on-win2k3.html
更新: これが機能するようになって間もなく、BitBucket が料金体系を変更して、無料で無制限のプライベート ホスティングを提供するようになったことを知りました: https://bitbucket.org/ . 私が最初にこのプロジェクトに取り組んでいたとき、私はハートビートでそれを選んだでしょう.
Vampire Basicでのブログ投稿は良い出発点であることがわかりましたが、私が求めていたものについて十分に詳細に説明することはできませんでした。
これについては、Active Directory の統合、プッシュ/プルのセキュリティ権限の設定、テンプレートのカスタマイズなど、IIS をゼロから起動して実行するための 4 部構成のブログ投稿を行いました。 Mercurial が実際には Linux/Apache でホストされるように設計されていたということは、長い間話が逸れてしまいました。
http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html
ここにはかなり優れた包括的なチュートリアルがあります: http://vampirebasic.blogspot.com/2009/06/running-mercurial-on-windows.html
以下は、IIS6 で hgwebdir.cgi をセットアップするためにかなりの量の調査を行った後に行ったことです。以下のサイトを参考にしています。
サーバーに次のものをインストールする必要があります。
私にとっての手順は次のとおりです。
ここで、Python が機能していることをテストします。新しい Hg フォルダーに test.cgi という名前のファイルを作成します。次の Python コードを貼り付けます。
print 'Status: 200 OK'
print 'Content-type: text/html'
print
print '<html><head>'
print ''
print '<h1>It works!</h1>'
print ''
print ''
たとえば、http://localhost/hg/test.cgiなどのサイトにブラウザーを開きます。
「うまくいきました!」と表示されるはずです。ブラウザで。
次に、hgwebdir を機能させましょう。
https://www.mercurial-scm.org/repo/hg/
application = hgwebdir('hgweb.config') wsgicgi.launch(application)
に
application = hgwebdir('c:\inetpub\wwwroot\hg\hgweb.config') wsgicgi.launch(application)
今こそ、それをテストする良い機会です。ブラウザーで次の URL に移動します。http://localhost/hg/hgwebdir.cgi
[collections] \\server\share$\Hg\ = \\server\share$\Hg\ [web] allow_push = * push_ssl = false
これらはすべて私の好みです。たとえば、\\server\share$\Hg のサブディレクトリにリポジトリがあります。Web アプリは、ブラウザーを介してログインしているユーザーのアクセス許可の下で実行されるため、共有に対する読み取り/書き込みアクセス許可が必要になります。
最後のステップは、最初にレポをクローンするときに発生する可能性がある長い接続を許可することです。次のコマンドを実行して、タイムアウトを 50 分に増やします。
cd \inetpub\AdminScripts\
cscript adsutil.vbs GET /W3SVC/CGITimeout
cscript adsutil.vbs SET /W3SVC/CGITimeout 3000
Mercurialを使用して、Mercurialリポジトリのクローンを作成します。
hg clone https://www.mercurial-scm.org/repo/hg/
トップレベルにhgwebdir.cgiがあります。他のcgiスクリプトと同じようにインストールする必要があります。
この 1 週間ほど、mercurial 1.7.2 のセットアップと格闘してきました。動作させるには、上記の記事とは少し異なる方法を取らなければなりませんでした。
グーグルが私をここに連れ戻し続けたので、ここに投稿します....
ここに投稿された完全な手順
主な違いは、mercurial の「純粋な python」インストールを行う必要があったことです。そうしないと、DLL が見つからないというエラーが表示され、pywin と isapi-wsgi に「python インストーラー」を使用することが重要であることがわかりました。(経験豊富な python 開発者にとっては明らかかもしれませんが、私は python 初心者なのでニュースでした)
これが誰かの助けになることを願っています。
「...モジュールを読み込めません...」というタイプのエラーが発生しました。しばらく読んだ後、MercurialフォルダーのLibrary.zipファイルを無視し、代わりにC:\のファイルを使用することが重要でした。プログラムファイル(x86)\TortoiseHgフォルダー。
このガイドで#6として見つけたヒント:
http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-mercurial-in.html
これが誰かを助けることを願っています...
hg red book には、私が他の場所で見たものよりもはるかに優れた一般的な指示が含まれています. これらは IIS 固有のものではありませんが、非常に優れています。
http://hgbook.red-bean.com/read/collaborating-with-other-people.html#sec:collab:cgi
HgLabを試すことができます。これは正確には hgwebdir ではありません。むしろ、プッシュおよびプル サーバーとリポジトリ ブラウザーを備えた純粋に管理された Mercurial 実装です。