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に関するものでしたが、非常に役立つことが判明しました。



All Articles