4

ブランチをメイン ツリーにマージするときに、一部のファイルを自動的にマージしないようにする (マージを管理するように強制する) 方法はありますか?

たとえば、開発システムと運用システムのどちらにいるかに基づいて、特定のパスを持つ web.config ファイルがあります。そのため、開発ブランチをメインにマージする必要がある場合、一部のタグを変更したくありませんが、他の情報を更新する必要がある場合があります。

問題は、同じままにしておく必要がある設定がマージによって自動的に更新される可能性があることです。元の設定に簡単に戻すことができますが、新しい設定はすべて失われます。これを処理する最も簡単な方法は、この場合、変更を手動でマージすることです。

私は Tortoise と SVN を初めて使用するので、間違った方向からこの問題に取り組んでいる可能性があります。

以下にいくつかの良い答えがある構成例に加えて。マージ中にすべてのファイルを強制的に手動で処理する方法はありますか? フラグが設定されたファイルに競合があるように見せ、それに応じてマージを処理するために、ファイルに適用できるフラグが必要なようです。

4

3 に答える 3

2

これが処理されるのを見た1つの方法は次のとおりです。

  1. 構成を別々のディレクトリ(dev、uat、prodなど)に保持します
  2. これらをSVNにチェックインします
  3. コマンドラインパラメーターに基づいて、適切な構成をbin/ディレクトリにコピーするようにビルドプロセスを変更します
于 2008-10-23T15:06:45.540 に答える
1

バージョン管理プロセスではなく、ビルドまたはデプロイメントプロセスの観点から質問を検討することをお勧めします。

個人的には、プラットフォーム/環境固有のプロパティでANTを使用して、ローカル環境でオーバーライドされるか、ビルド中にプラットフォーム/環境固有の値で置き換えられるプレースホルダーを持つSVN(またはその他のSCMS)の1つの構成ファイルを許可しました。

TortoiseSVNであなたが求めていることを簡単にまたは自動化できる方法があるとは思いません

于 2008-10-23T15:08:28.923 に答える
0

構成情報 (データベース アクセスなど) を共有することに関心がない場合は、dev/prod 固有のセクションを if->then で簡単にラップできます。

if (production) {
   db = prod
} else {
   db = dev
}

マシンの物理名 (コードの不正使用を制限するのに適しています) から、IP アドレス、ホスト名などに至るまで、環境を特定する方法をいくつか見てきました。

少しセキュリティを提供し、ビルド プロセスにあまり影響を与えない代替手段は、ブランチを使用することです。運用 web.config をディレクトリ構造が一致する独自のブランチに保持し、それを最新の運用準備完了コードを持つ 3 番目のブランチにマージします。それで:

/trunk <-- development (or its own branch)
/branches/
/branches/production-pre <-- latest stable
/branches/production-config <-- web.config and related only
/branches/production-post <-- final merged

はい、展開により多くの作業が必要になりますが、それが望ましい効果である場合、セキュリティは提供されます。

于 2008-10-23T15:26:15.940 に答える