0

Subversion を使用すると、本質的に同じコンテンツを含む 2 つの異なるトランクがありますが、一方は他方よりも更新頻度が低くなります。簡単にするために、それらを「古いトランク」と「新しいトランク」と呼びましょう。

定期的に、「古いトランク」に存在するすべてのものを「新しいトランク」に置き換えたいと考えています。基本的に、私が望むのは、すべてを「コピー」して、存在するものを置き換えることです。

マージしようとすると、2 つのトランク間の実用的なマージとして、「新しいトランク」で削除されたファイルの一部になってしまいます。これは私が望むものではありません。

以前は、古いバージョンの不要なファイルを削除することから始めて、各サブフォルダーを手動でコピーして置き換えていました。これは骨の折れるプロセスであり、Clearcase で呼び出される「上書きマージ」に置き換える必要があります。

すべてのフォルダを手動で処理せずにこれを達成する方法はありますか?

編集:これは理想的な設定ではありませんが、私の手に負えない状況のため、そのままです。私の中心的な質問に対する答えを知りたいのですが、上書きマージを作成することは可能ですか?

4

2 に答える 2

0

答えはノーです。Subversion(1.6)は上書きマージ機能を提供していません。また、構成管理手順を変更することはできないと思います。可能であれば、推奨される方法のようにSubversionを使用する必要があります。リリースブランチはGoodThing(TM)です。

しかし、私はあなたのために2つのクレイジーなアイデアを持っています:

  1. ターゲットトランクの変更またはマージ履歴を保持する必要がない場合は、ターゲットトランクを削除して、ソーストランクをその場所にコピーするだけです。これはリリースブランチを持っているようなものですが、常にそれを再作成し続けます。これは価値がないと思います。

  2. レコードのみを誤用して、機能を再統合することを試みることができます。まず、ターゲットトランクをソーストランクに記録する(実際にはマージしない)ことから始めます。これにより、Subversionは、ブランチが正常にマージされ、最新であると見なします。その後、定期的にSubversionにソーストランクをターゲットトランクに再統合するように指示します。再統合は各ブランチの先端のみを確認するため、これは機能する可能性があります。試してみたら、結果を教えてください!

2番目のアイデアについては、SubversionブックのAdvancedMergingセクションを参照してください。

于 2013-01-11T16:19:29.690 に答える
0

SVN は集中型のバージョン管理システムです。トランクを 2 つ持つべきではありません。これは本来の使用方法ではありません。ブランチとタグを使用する必要があります。古いトランクはブランチになり、トランクをそれにマージします。複数のリポジトリが必要で、それらの間で同期する場合は、git などの分散バージョン管理システムを使用する必要があります。

于 2012-04-19T13:54:42.977 に答える