19

SVN の長年のユーザーですが、分岐/タグ付けの経験がかなり浅く、実際に正しく使用していないか、その可能性を十分に発揮していないのではないかと疑っています。

新しい機能の追加などに取り組んでいるトランクがあります。このコード ベースは複数の Web サイトで使用されており、プロジェクトごとにトランクからブランチを作成しています。

通常、各ブランチにはそのプロジェクトに固有の変更があり、再利用可能と思われるものはすべてトランクに追加され、さまざまなプロジェクトでその機能のオンとオフを切り替えられるようになっています。

現在、トランクに変更を加え、それらの変更を以前のブランチに追加したい場合、特定のリビジョンを手動でブランチにマージして再コミットする必要があります。理想的ではなく、見逃しやすいものです。

それで、私の質問...トランクからのすべての変更でブランチを更新し、競合のある標準のトランク更新であるかのようにそれらを処理する方法はありますか?

ブランチをトランクに再統合する方法を見てきましたが、この場合のブランチの使用方法が原因で、実際にはやりたいことではありません。

4

1 に答える 1

22

はい、可能です。svn merge基本的に、ブランチのクリーンな作業コピー (ローカルで変更されていないもの)から実行する必要があります。

$ pwd
/home/user/mybranch
$ svn status # Does not display anything
$ svn update # Make sure your local copy is up to date.
Updating '.':
At revision X.
$ svn merge url/to/repository/trunk
Updates, additions, deletions and conflicts.
$ #handle conflicts.
$ svn commit -m "Merging changes from the trunk".

SVN book のKeeping a Branch in Syncを参照してください。

特にブランチがかなり前に分岐した場合、最初のマージは多くの競合を引き起こす可能性がありますが、特に頻繁にマージする場合は、後者のマージはスムーズに進みます。

于 2013-03-23T14:51:52.903 に答える