2012-04-13 4 views
0

いくつかの背景から始めて、私はASP.NETアプリケーションを開発している小さなチームのメンバーです。私たちに加えて、それに取り組んでいる他の2つのチームが、それぞれ異なる国から来ています。ソースコードは共有SVNサーバーでホストされていますが、中央のテスト環境はありません。各開発者はそれぞれのマシンでアプリケーションを実行し、チームごとにデータサービスが設定されます。マシン依存の設定にSVNとVS2010で取り組むには?

残念ながら、私たちのSVNワークフローにはいくつかのギャップがあります.SVNを更新する時間があるときに煩わしさが生じます。

これは主に、各開発者とチームがディスクのディレクトリ構造と構成(IISとアプリケーションの両方)に関してわずかに異なる環境を持っているためです。したがって、構成ファイルや他の場所でのコンフリクトは、実行時構成(XML)や* .suoの場合、まったく競合しません。

私たちの目的が、チェックアウト、アプリの設定、更新をできるだけ苦労しないようにするにはどうすればよいですか?

1つのオプションは明らかにマスターコピーです。もう1つは開発者環境の統一性を確立し、それを維持するものです。しかし、3番目の選択肢はどうですか?

+1

問題の具体例を教えてください。 –

答えて

1

IIS構成では、ビルドチーム全体で一貫した環境が必要です。

app.configファイルなどでは、プロジェクトのルートにある別の「cfg」ディレクトリにそれらを保存し、プロジェクトに応じて必要なものをコピーするためのビルド前イベントを使用する傾向があります。私が取り組んでいる環境。

ユーザ固有の設定で出力ディレクトリにコピーするための別のビルドタスクを持つことができます。あなたのルートプロジェクトに "user.config"という名前の新しいディレクトリを追加して空のままにして、プロジェクトビルドを設定してエントリをチェックし、出力ディレクトリにコピーしてください。あなたのソースコードリポジトリへのsvnadminアクセス権を持っているならば、あなたはそれを防ぐためにフックを設定することができます。 。それは今まで起こってから

はまた.suo、.user、_Resharperまたはあなたが適切だと思う他の拡張のために(再帰的に)あなたのルートディレクトリ上のパターンを無視し、すでに、まさにこのトピックに関するいくつかだから、質問があります。

は、

Best general SVN Ignore Pattern?

2

1つのことは、.suoファイルをSVNに入れないことです。これを行う理由はありません。

+0

異なる環境に異なるデータを含む**アプリケーション構成ファイル**もあります。私たちの主な問題は、お互いをあまりにも煩わせることなく、マシン依存の設定ファイルを同期させるための標準的で無駄な解決策があることです。 1つのオプションはマスターコピーですが、別の方法がありますか? – Saul

0

これは完璧な解決策ではありません(これらの特殊ファイルがあまりない場合にのみ使用する必要があります)が、それぞれのケースに偽のファイルを追加し、実際のファイルをローカルに切り替えます。 詳細:問題を作成するファイルfooがあります。私もfoo_1とfoo_2を作成し、ローカルにfooをfoo_1に切り替えます(私はtortoisesvnを使用していますので、実際にはコマンドラインを使って実行できません)。それから私は私のマシンでfooに取り組んでいますが、実際にfoo_1にコミットしています。他の当事者はfoo_2に切り替えることができます...

(これは基本的にあなたが提案したマスターファイルアプローチの変種ですが、実際にこれらのファイルに多くの変更がない場合、少なくともあなたが考えなければならない競合)

1

* .suoと* .userファイルはsvnで無視してください。容易いものだ。その後、Subversionに2種類の設定ファイルを作成します。開発とサーバー、使用している場合はテストも追加します。下記の例を参照してください。

ConnectionStringDevelopment.config 
ConnectionStringServer.config 

AppSettingsDevelopment.config 
AppSettingsServer.config 

サーバーファイルにはサーバー情報が含まれます。開発ファイルはsvnには含まれておらず、そこでは無視されます。新しい開発者はすべて、サーバーファイルをコピーし、自分の環境に応じて変更を加えることから始めます。ライン以下の例のサイト http://code.google.com/p/karkas/source/browse/trunk/Karkas.Ornek/WebSite/web.config

ルックは、関心あります。

<appSettings configSource="appSettingsDevelopment.config"/> 
<connectionStrings configSource="ConnectionStringsDevelopment.config" /> 

ConfigSourceしたがって、あなたはすべての開発者にすべての設定を変更することができますweb.configファイルでほとんどどこでも使用することができます。次の命名規則のみを使用してください。 Subversionの* Development.configを無視します。この方法では、開発者の設定はSubversionに追加されません。

関連する問題