ご注意 すべての操作は、Mercurial 1.8.3、Python 2.6.6、およびx86アーキテクチャに関するものです。 Mercurialの他のバージョンについては、コンパイルされたバージョンのPythonを使用する必要があります(オフサイトMercurialを参照)。
設置
- Mercurialをダウンロードしてインストールします。
- Pythonをダウンロードしてインストールします。
- hgweb.cgiを取得します 。 2つの方法があります。
- Mercurialからソースをダウンロードする
- またはソースのコピーを取得する
hg clone http://selenic.com/repo/hg
- Mercurialが配置されるフォルダーを作成します。 私の場合、これは
C:\Inetpub\hg
です。 - library.zipファイルを、Mercurialがインストールされているディレクトリ(デフォルトでは
C:\Program Files\Mercurial\library.zip
)からこのフォルダーに解凍します。 - そこから、 テンプレートフォルダー(デフォルトでは
C:\Program Files\Mercurial\Templates
)をコピーします。 - 最後に、 hgweb.cgiファイルをこのディレクトリにコピーします。
カスタマイズ
ここで、Pythonを有効にして.cgiを実行する必要があります。
- インターネットインフォメーションサービスマネージャーを開く
- [Webサービスの新しい拡張を追加...]をクリックします。
- 開いたウィンドウで、拡張機能の名前を入力します。 私はそれをPythonと呼んだ。
- [追加]ボタンをクリックし、開いたウィンドウで実行可能ファイル
C:\Python26\python.exe -u "%s" "%s"
へのパスを入力しますC:\Python26\python.exe -u "%s" "%s"
; - 「拡張状態を「許可」に設定」チェックボックスを設定します。
- その結果、Python Web拡張機能があります
- [アプリケーション設定]セクションの[仮想ディレクトリ]タブにある仮想ディレクトリのプロパティで、[設定]ボタンをクリックします。
- 開いたウィンドウで、上部のボタン「追加...」をクリックします。
- 開いたウィンドウで、実行可能ファイル
C:\Python26\python.exe -u "%s" "%s"
へのパスを入力しますC:\Python26\python.exe -u "%s" "%s"
、拡張子名.cgi
、コマンドはGET,HEAD,POST
に短縮され、Script Script.cgi
インストールされていることを確認し.cgi
;
追加された.cgi
:
- すべてのオーケーをクリックします。
print 'Status: 200 OK' print 'Content-type: text/html' print print '<html><head><title>Python test</title></head>' print '<body><h1>!</h1></body>' print '</html>'
test.cgi ( C:\Inetpub\hg\test.cgi
)のように、Mercurialを使用してフォルダーに保存します。 ブラウザーを開いて、以下を見てください。
Mercurialの構成
次に、Mercurial自体を設定する必要があります。 hgweb.cgiがあるフォルダーで、hgweb.configファイルを作成します。
ご注意 hgweb.cgiは、ANSIエンコードhgweb.configでのみ機能しました。 UTF-8では、解析エラーがクラッシュしました。
次に、エディターでhgweb.cgiを開き、構成ファイルへのパスを指定します。
この場合、ファイルは近くにあり、次のように簡単に記述します。#リポジトリへのパスまたは提供するhgweb設定(「hg help hgweb」を参照) config = "/ path / to / repo /または/ config"
#リポジトリへのパスまたは提供するhgweb設定(「hg help hgweb」を参照) config = "hgweb.config"
発生する可能性のあるエラーを確認するには、次の行のコメントを解除できます。
#エラーが発生した場合、ブラウザーにPythonトレースバックを送信するためにコメントを外します。 cgitbをインポートします。 cgitb.enable()
エディターでhgweb.configを開き、次を追加します。
これらの行を使用して、 すべてのユーザーがsslを使用せずに変更を追加できるようにしました。[ウェブ] allow_push = * push_ssl = false
ブラウザーで確認します。
マーキュリアル作品! しかし、単一のリポジトリはありません...
リポジトリの追加
ここではすべてが簡単です。リポジトリが配置されるディスク上にディレクトリを作成し、その中の各リポジトリのディレクトリを作成する必要があります。 コマンドラインから実行します。
C:\ Documents and Settings \ admin> cd .. \ .. C:\> mkdirリポジトリ C:\> cdリポジトリ C:\ Repos> mkdirテスト C:\ Repos> hg init test
hgweb.configで 、リポジトリへのパスを指定する必要があります。 これを行うには、次を追加します。
ブラウザでF5キーを押して、リポジトリを確認します。[パス] テスト= C:\リポジトリ\テスト
リポジトリにパスを毎回手動で追加しないために、コレクションへのパスを指定できます。
その後、Reposディレクトリのすべてのリポジトリが自動的に表示されます。[コレクション] C:/リポジトリ= C:/リポジトリ
美しさのために、Webページのデザインを追加します。
Monoblueは、[ウェブ] スタイル=モノブルー allow_push = * push_ssl = false
C:\Inetpub\hg\Templates
フォルダにあるテンプレートの1つです。 最初は、フォルダには石炭、gitweb、monoblue、paperの4つのテンプレートしかありません。 ただし、独自に簡単に作成できます。 水銀テンプレートについてはこちらをご覧ください 。
少し甘やかし、あなたはすでに何かを見ることができます:
美しいURL
私はそれを認める、私は部分的にそれをやった...
http://localhost/hg/hgweb.cgi/Test/コーシャではないようです。 したがって、HeliconのISAPI Rewriter 3の無料バージョンをダウンロードし、インストールしてISAPI Rewriteマネージャーを開き、[編集]ボタンをクリックします。
ルール
RewriteRule /hg/(.*) /hg/hgweb.cgi/$1 [I,O]
を追加し
RewriteRule /hg/(.*) /hg/hgweb.cgi/$1 [I,O]
ルールは機能し、URLは美しくなりましたが、ページはHTMLコードで表示されました<link rel = "stylesheet" href = "/ hg / hgweb.cgi / Test / static / style-monoblue.css" type = "text / css">そして、それに応じて、スタイルは適用されませんでした...私はそれを克服しませんでした。
おわりに
その結果、内部Mercurialサーバーがあります。 しかし、数日間使用した後、別の質問が生じました-リポジトリの管理...現時点では、サーバーに登ってリポジトリのディレクトリを作成し、それらをhgweb.configに登録する必要があります 。これは当社にとって受け入れられますが、あまり便利ではありません。 理想的には、これはbitbucket.orgなどのWebクライアントです。
参照資料
1. WindowsでMercurialを実行する -シンプルですが、十分ではありません。 古い記事、2009年6月7日
2. Windows / IIS / Active Directory環境でのMercurialのセットアップと構成 -4つの記事の優れたしかしけちなコレクション:1)インストール、2)Urlの装飾、3)Active Directoryの固定、4)Webページテンプレートの変更。
3. Windows Server 2008 R2上のIIS7でMercurialサーバーをセットアップする -この記事はWindows Server 2008に関するものでしたが、非常に役立つことが判明しました。