4

解決方法がわからないSVNマージツリーの競合があり、皆さん(女の子)が助けてくれることを願っています。

状況は次のとおりです。トランクからブランチ A を作成して、開発を行いました。次に、ブランチ A からブランチ B を作成しました。両方のブランチが同時に進化しています。

ある時点で、ブランチ B で開発されたいくつかの機能を取得するために、ブランチ B からトランクにいくつかのリビジョンをチェリーピックしました。

ここで、ブランチ A をトランクと同期しました。

~/branch_a$ svn merge ^/trunk
~/branch_a$ svn commit

ここでは問題ありません。次のステップは、B を A と同期することです。

~/branch_b$ svn merge ^/trunk

ここで、マージ前にトランクに既に存在していたが、以前に行ったチェリーピックで変更されたファイル/ディレクトリで、いくつかのツリーの競合が発生します(それと関係があるかどうかはわかりません。言及しているだけです) ):

  C some_dir/other_dir/some_file.php
  >   local add, incoming add upon merge
  C some_other_dir/some_sub_dir
  >   local add, incoming add upon merge

基本的に、マージから入ってくるファイルのバージョンが必要で、現在のバージョンを破棄します。これを解決する最善の方法は何ですか?

前もって感謝します!

4

2 に答える 2

3

これは、マージを行う方法についてよく説明された回答を見つけることができるサイトです。

http://www.sepcot.com/blog/2007/04/SVN-Merge-Branch-Trunk

パラメータなしでマージを使用すると、ブランチ i に排他的に対応しないリビジョンを含むブランチ全体-rをマージしようとしています。それが実際に行うことは次のとおりです。リポジトリを作成したリビジョンから実際に現在のリビジョンまでを取得します。これには、このブランチがまだ存在していないリビジョンが含まれており、多くのツリーマージ競合が発生する可能性があります。将軍の対立。

ブランチを svn のトランクにマージする場合、ブランチを作成するコピーを作成した時点からトランクのヘッド リビジョンまで、選択するブランチからリビジョンを指定する必要があります。

于 2013-10-19T18:48:26.403 に答える