IISでhgwebdirを動作させる方法についての適切な指示を探してずっと探していましたが、あまり価値のあるものは見つかりませんでした。
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がリリースされて以来、これらのチュートリアルは正確に機能しないようです。 1つには、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
UPDATE:これが機能してすぐに、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が機能していることをテストする良い機会です。test.cgiという新しいHgフォルダーにファイルを作成します。次の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 newbie)かもしれません)
「...モジュールをロードできません...」というタイプのエラーが発生し、いくつかの読み取りの後、MercurialフォルダーのLibrary.Zipファイルを無視して、代わりにC:\のファイルを使用することが重要でした。 Program Files(x86)\ TortoiseHgフォルダー。
このガイドで私が#6として見つけたヒント:
http://www.endswithsaurus.com/2010/05/setting-up-and-configuring-Mercurial-in.html
これが誰かを助けることを願っています...
Hg赤い本には、他の場所で見たよりもはるかに優れた一般的な説明が含まれています。 IIS具体的ではありませんが、非常に優れています:
http://hgbook.red-bean.com/read/collaborating-with-other-people.html#sec:collab:cgi