Windows Server 2003上のMercurial

ヘッダーのこのような古風な数字に混乱するかもしれませんが、私の仕事でw2k3とmssql2000をまだ使用しているのは私だけではないと思います。 理由は簡単です。購入して動作するときに何かを購入する理由です。 w2k3とw2008の短所/長所の説明を省略することを提案します。 一方、私は進歩することを知らず、最近私の仕事で水銀を使用しています。 そして今、内部サーバーを上げる必要がありましたが、ヘッダーからも同じことがあります。 これについては、hg serveについてではなく、本格的なhgwebについて説明します。 この記事が登場したのは、それが機能するまで丸一日かかったからです。 しかし、ロシア語での段階的な指示は見つかりませんでした。 そして、英語は数十ドルではありません。

ご注意 すべての操作は、Mercurial 1.8.3、Python 2.6.6、およびx86アーキテクチャに関するものです。 Mercurialの他のバージョンについては、コンパイルされたバージョンのPythonを使用する必要があります(オフサイトMercurialを参照)。

設置

  1. Mercurialをダウンロードしてインストールします。
  2. Pythonをダウンロードしてインストールします。
  3. hgweb.cgiを取得します 。 2つの方法があります。
    • Mercurialからソースをダウンロードする
    • またはソースのコピーを取得する
        hg clone http://selenic.com/repo/hg 
    必要なファイルは、ディレクトリのルートにあります。
    場所hgweb.cgi

  4. Mercurialが配置されるフォルダーを作成します。 私の場合、これはC:\Inetpub\hgです。
  5. library.zipファイルを、Mercurialがインストールされているディレクトリ(デフォルトではC:\Program Files\Mercurial\library.zip )からこのフォルダーに解凍します。
  6. そこから、 テンプレートフォルダー(デフォルトではC:\Program Files\Mercurial\Templates )をコピーします。
  7. 最後に、 hgweb.cgiファイルをこのディレクトリにコピーします。

カスタマイズ


ここで、Pythonを有効にして.cgiを実行する必要があります。
  1. インターネットインフォメーションサービスマネージャーを開く
  2. [Webサービスの新しい拡張を追加...]をクリックします。
  3. 開いたウィンドウで、拡張機能の名前を入力します。 私はそれをPythonと呼んだ。
  4. [追加]ボタンをクリックし、開いたウィンドウで実行可能ファイルC:\Python26\python.exe -u "%s" "%s"へのパスを入力しますC:\Python26\python.exe -u "%s" "%s" ;
  5. 「拡張状態を「許可」に設定」チェックボックスを設定します。
    新しいWeb拡張機能の追加
  6. その結果、Python Web拡張機能があります
    Web拡張機能が追加されました
次に、Mercurialが置かれているフォルダーの仮想ディレクトリを作成し(「実行(ISAPIまたはCGIアプリケーションなど)daw」をインストールして)、. cgiスクリプトを実行できるようにする必要があります。 これを行うには、次のものが必要です。
  1. [アプリケーション設定]セクションの[仮想ディレクトリ]タブにある仮想ディレクトリのプロパティで、[設定]ボタンをクリックします。
    仮想ディレクトリ設定
  2. 開いたウィンドウで、上部のボタン「追加...」をクリックします。
  3. 開いたウィンドウで、実行可能ファイルC:\Python26\python.exe -u "%s" "%s"へのパスを入力しますC:\Python26\python.exe -u "%s" "%s" 、拡張子名.cgi 、コマンドはGET,HEAD,POSTに短縮され、Script Script .cgiインストールされていることを確認し.cgi ;
    .cgiを追加する
    追加された.cgi
    .Cgi拡張子が追加されました
  4. すべてのオーケーをクリックします。
これで、Pythonのパフォーマンスを確認できます。 スクリプトを作成します。
 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.cgiC:\Inetpub\hg\test.cgi )のように、Mercurialを使用してフォルダーに保存します。 ブラウザーを開いて、以下を見てください。
Pythonチェック

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を開き、次を追加します。
  [ウェブ]
 allow_push = *
 push_ssl = false 
これらの行を使用して、 すべてのユーザーがsslを使用せずに変更を追加できるようにしました。
ブラウザーで確認します。
hgweb.cgiを確認してください
マーキュリアル作品! しかし、単一のリポジトリはありません...

リポジトリの追加


ここではすべてが簡単です。リポジトリが配置されるディスク上にディレクトリを作成し、その中の各リポジトリのディレクトリを作成する必要があります。 コマンドラインから実行します。
  C:\ Documents and Settings \ admin> cd .. \ ..
 C:\> mkdirリポジトリ
 C:\> cdリポジトリ
 C:\ Repos> mkdirテスト
 C:\ Repos> hg init test 

hgweb.configで 、リポジトリへのパスを指定する必要があります。 これを行うには、次を追加します。
  [パス]
テスト= C:\リポジトリ\テスト 
ブラウザでF5キーを押して、リポジトリを確認します。
hgweb.cgiを確認してください

リポジトリにパスを毎回手動で追加しないために、コレクションへのパスを指定できます。
  [コレクション]
 C:/リポジトリ= C:/リポジトリ 
その後、Reposディレクトリのすべてのリポジトリが自動的に表示されます。

美しさのために、Webページのデザインを追加します。
  [ウェブ]
スタイル=モノブルー
 allow_push = *
 push_ssl = false 
Monoblueは、 C:\Inetpub\hg\Templatesフォルダにあるテンプレートの1つです。 最初は、フォルダには石炭、gitweb、monoblue、paperの4つのテンプレートしかありません。 ただし、独自に簡単に作成できます。 水銀テンプレートについてはこちらをご覧ください

少し甘やかし、あなたはすでに何かを見ることができます:
リポジトリリビジョングラフのテスト

美しいURL


私はそれを認める、私は部分的にそれをやった...
  http://localhost/hg/hgweb.cgi/Test/ 
コーシャではないようです。 したがって、HeliconのISAPI Rewriter 3の無料バージョンをダウンロードし、インストールしてISAPI Rewriteマネージャーを開き、[編集]ボタンをクリックします。
ISAPI書き換えマネージャー
ルール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に関するものでしたが、非常に役立つことが判明しました。

Source: https://habr.com/ru/post/J119330/


All Articles