8

職場では、IIS と Subversion がインストールされた Windows Server 2003 を使用しています。これを使用して、ASP.NET Web サイトをローカルで公開およびテストしています。すべてのプログラマーは自分の PC に Tortoise をインストールしており、コンテンツをサーバーに更新/コミットできます。リポジトリのホスティングは正常に機能しています。ただし、これらのリポジトリに保持されているファイルは、ローカルの IIS (仮想ディレクトリ) にコピーする必要があります。

これらの Subversion リポジトリをローカル IIS に公開する簡単な方法は何ですか?

編集: puetzk
の おかげで、コミットが発生するたびに実行される単純なバット ファイルを追加しました (フックに関するSubversion のドキュメントを確認してください)。私のbatファイルには次のもののみが含まれています:

echo off
setlocal

:: Localize the working copy where IIS points)
pushd E:\wwwroot\yourapp\trunk
:: Update your working copy
svn update

endlocal
exit
4

4 に答える 4

12
  1. Web サーバーのファイル領域を作業コピーとして保持し、「公開」したいときはいつでもそこに svn up を実行してください。.svn フォルダーの内容が見づらい場合は、非表示にするように構成します (具体的な方法はわかりませんが、できると思います)。それらはすでにファイルシステムの隠しビットを持っているため、これを処理できます。

  2. 本当に自動にしたい (誰かがコミットするとすぐに更新する) 場合は、SVN サーバーでコミット後のフック スクリプトを使用して、最初のプロセスを開始します。

コメントの他の人は、チェックアウトの代わりにエクスポートを使用することを提案しています。これも機能し、.svn の乱雑さを回避できますが、2 つの欠点があります。1 つ目は、変更されたファイルだけでなく、コンテンツ全体を毎回再ダウンロードする必要があることです (内容を記憶するために .svn ディレクトリを保持していなかったため)。多くのファイルがある場合、これは非常に遅くなります。2 つ目は、update がファイルをアトミックに置き換えます (新しいバージョンを .svn/tmp に書き込み、それを所定の場所に移動します)。エクスポートは、ダウンロード時にファイルを宛先に徐々に書き込みます。つまり、export を実行すると、不完全なファイルが誤ったタイミングでブラウジングされたユーザーに配信される可能性があります。

于 2008-09-22T23:39:46.147 に答える
6

SVN は IIS をサポートしていません。ただし、スタンドアロンの svnserve サーバーを Windows サービスとして実行することはできます。

それに関するSVN FAQ エントリがあり、 Vertigo Software ブログのこのブログ投稿も役立つ場合があります。

更新:あなたの明確化の後、あなたが探しているのは、チェックイン後にサーバー上のコードを自動的に更新する方法であることがわかりました.CruiseControl.NETを調べてください.subversion統合チュートリアルを見た後、それは何をすべきかあなたがしたい。

更新 2: このチュートリアルでは、Subversion、CruiseControl.NET、および Nant の統合について説明します。

于 2008-09-22T23:31:24.390 に答える
2

多分SVNIsapiは問題を解決することができます(http://www.svnisapi.com)。IISインストールのみを利用するため、APACHEサーバーやSVNSERVERサービスは必要ありません。次に、ASP.NET ISAPIプラグインをSVNISAPIの処理にスタックして、リポジトリから読み取った後にASP.NET(.aspx)ページが解釈されるようにする必要があります。

乾杯パオロ

于 2009-12-14T10:32:17.690 に答える
1

無料のVisual-SVN Serverを使用して、Subversion と Apache フロント エンドをすばやくインストールできます。また、サーバーとリポジトリを管理するための優れた MMC スナップインも備えています。

HTTP または HTTPS を使用して Subversion にアクセスできますが、ポート番号はローカル IIS が使用するものとは異なる必要があります (Visual-SVN サーバーのデフォルト ポートは 8080 です)。

ローカルの IIS ポート 80 を使用してリポジトリにアクセスする必要がある場合は、IIS と Apache 間のブリッジとして機能するSVN-IISを試すことができます。私はこれを自分で試したことはありません。

于 2008-09-22T23:56:07.093 に答える