0

次の構造を持つSVNリポジトリがあります。

 +-trunk
 |   |
 |   +-dir1
 |   |
 |   +-dir2
 | 
 +-branches
 |
 +-tags

dir1 にいくつかの重要な変更を加えようとしているので、新しいブランチを作成しました。dir2 は非常に重く、作成する新しいブランチごとにチェックアウトするのに長い時間がかかるためです。だから私はこれをしました:

$ svn copy http://server/svn/project/trunk/dir1 http://server/svn/project/branches/branch1 -m "creating a new branch"
$ svn co http://server/svn/project/branches/branch1

これまでのところ問題はありません。トランクを新しいブランチに再度マージしようとすると、常に問題が発生します。

$ cd branch1
$ svn merge http://server/svn/project/trunk/dir1

これを行うと、次のようなものが得られます。

C file1
C file2
[many C lines here]

Summary of conflicts:
  Tree conflicts: 114

重要な詳細は、ブランチを作成してチェックアウトした直後にマージしようとしているため、ブランチやトランクに変更はありません。

それで、私はここで何が間違っていますか?これらすべてのツリー競合が発生するのはなぜですか?

前もって感謝します!

4

2 に答える 2

1

私は結局問題を見つけました。

私のSVNサーバーは1.5未満で、ブランチマージ情報は1.5からのみサーバーに保存されます。

したがって、マージを行ったとき、マージが作成されたリビジョンからマージするのではなく、1 から始まるすべてのリビジョンをマージしていたため、非常に多くのツリー競合が発生しました。

于 2011-08-10T18:48:54.130 に答える
0

「Subversion によるバージョン管理」ブックで、リポジトリがマージトラッキングをサポートしていない場合にマージを処理する方法について簡単に説明します。本のこのセクションのサイドバー「マージ追跡なしでブランチを同期させる」を参照してください ( http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.branchemerge.basicmerging.stayinsync )

于 2013-03-11T22:07:26.883 に答える