トランクから 1 年以上別々に維持されてきた 2 つのブランチ (ブランチ A と B など) があります。現在、一方を他方にマージする必要があります。私が望むのは、両方の変更を比較し、マージされたブランチに入る新しい変更があれば何でも比較することです。
過去にSVNマージを使用したことがありますが、私が理解した方法は、あるブランチの「差分」を別のブランチに適用することです。すべての差分は必要ありません-それだけが新しいです。
SVNでこれを行うことは可能ですか?
ありがとう。
トランクから 1 年以上別々に維持されてきた 2 つのブランチ (ブランチ A と B など) があります。現在、一方を他方にマージする必要があります。私が望むのは、両方の変更を比較し、マージされたブランチに入る新しい変更があれば何でも比較することです。
過去にSVNマージを使用したことがありますが、私が理解した方法は、あるブランチの「差分」を別のブランチに適用することです。すべての差分は必要ありません-それだけが新しいです。
SVNでこれを行うことは可能ですか?
ありがとう。
Merge は 3 者間マージを行います。これは標準的なアルゴリズムで、次のように機能します。
したがって、これは両方のブランチからのすべての変更を適用します。同じ変更が両側で行われた場合は、それが適用されます。同じコードが異なる方法で変更された場合、それは競合であり、解決する必要があります。また、それがどのリビジョンから来たのかはわかりません。それらはすべて一緒にロールアップされています。
それが望ましくない場合は、マージするリビジョンを手動でリストするという別のオプションがあります。それは、それらの特定のリビジョンで行われた変更のみを、一度に各連続範囲に適用します(アルゴリズムは実際には同じですが、ベースは選択された範囲の開始前のリビジョンです)。つまり、必要な変更を手動で選択する必要があります。このアプローチには 2 つの問題があります。それは多くの作業が必要になることと、後の変更を機能させるために必要なすべての変更を慎重に選択する必要があることです。
これで、すべての「新しい」変更が必要になります。コンピュータが理解できる方法で、意味するものを定義する必要があります。そして、上記の 2 番目の問題に注意する必要があります。変更は相互に依存している可能性があり、依存している変更も選択する必要があります。