2011-12-27 4 views
1

私は、アクティブなサーバーとローカルのテスト環境の2つの場所で動作するプロジェクトに取り組んでいます。 2つのコピーは、いくつかの設定ファイル(名前、URL、データベース情報などが格納されているもの)が複数の場所でのみ異なります。同じプロジェクトの2つのコピーをsvnする最良の方法は何ですか?

今、私はこのように動作:

  1. は、ローカルコピーにいくつかの編集を行うすべてがうまくている場合は、ローカルテスト環境で新しいバージョンをテストし、SVNコミット。

  2. サーバには、svn updateで手動で競合を解決しますが、多くの設定項目が2つのコピーで異なるため、多くの編集が行われています...そして、そこからmcを受け入れたくありません設定ファイルでいくつかの変更可能性が...

今、「私は私のローカルコピーに前後にファイル名を切り替えて、レポで設定ファイルの両方のコピーを維持するために考えていたので、私はドンサーバーのコピーを更新するときに競合に対処する必要はありません。これを行うよりスマートな方法はありますか?

+1

設定ファイルを2つに分割できますか? 1つのファイルは純粋にサーバー固有のものを含み、もう1つは両方のサーバーに共通するもののためのものです。 –

+0

はい!私がすることができます!これはたくさんの作業を必要としますが、これは一度だけです。次回は、特定のconfigs、良いアイデアを削除するためにmcを受け入れることができます! Oli Charlesworthに感謝します。 – user1117589

答えて

1

3つの設定ファイルを作成します。

  • 共通
  • テスト
  • 生産

変更、それは複数のファイルを読むことができるように構成リーダー(後のファイルのオプションが上書きされ、以前のものを)。

これにより、設定を分割することができます(また、開発マシンでプロダクション設定を準備することも、そこでテストすることもできます)。

これでオプションのコマンドラインオプションを追加するだけで済みます。このオプションが存在する場合は、common + productionの設定が読み込まれます。それが見つからない場合(開発中)、common + testの設定が使用されます。

+0

アロンに感謝します。あまりにも良いアイデアです。今私はすべての3つのオプションが良いように見える...しかし、どれが最高ですか? – user1117589

+0

Mine、もちろん;-)シンボリックリンクは、チェックインしない限り動作します(無視するようにSVNを設定します)。しかし、あなたはおそらく多くの共通の設定オプションを持っているでしょう。 –

2

2つの異なるファイルを保存し、そのうちの1つにシンボリックリンクを使用できます。

project 
    |-configuration 
    | |-development.cfg 
    | \-production.cfg 
    \-config.cfg < symbolic link to configuration/development.cfg 

あなたがチェックアウト初めて、あなたはこれらのファイルのいずれかにシンボリックリンクを作成する必要があります。

+0

シンボリックリンクを無視リストに入れてください! – codeling

+0

これも良いアイデアです:)私はconfigsの両方のコピーを保持するのと似ていますが、今回はファイル名を切り替える必要はありません。 Yossiに感謝します。どちらが良いですか、私はオリーのアプローチかこれを意味しますか? – user1117589

+0

サーバを走らせたときにスイッチを使うのを忘れてしまったので、私のプロダクションサーバが誤って開発環境を使って実行されるかもしれないという考えが嫌いです。それ以外の場合は、両方の提案を使用できます。 – Yossi

0

JNDI名前付きリソースと同数のリソースを維持する必要があります。同じJNDI名を異なる値の前に使用して、テストサーバとプロードサーバをコンフィグレーションできます。あなたのアプリはそのように変更する必要はありません。

環境変数またはフラグを使用して、使用する設定のバージョンをアプリに伝えます。あなたは、両方のサーバーに対して1つのリポジトリロケーションを使用する場合は、単一のレポ内の2(枝)に分割を考えると支店での設定、ファイルの枝

  • の間、後で変更をマージすることができます

  • 0
    1. あなたは(考えることができますか?)SVNでパス)別のディレクトリにコンフィグの移動について、親レポのための外観として、このディレクトリを定義し、相対的な(絶対的ではないを使用する:外観またはは外観
    の共通URLに異なるPEG-リビジョン(調製)を指定
    関連する問題