上記のuser619330のアドバイスに従って、私は自分自身をかなり徹底的にかろうじて管理しました。状況は次のとおりです。(1):最初のブランチであるbranch1で作業中にいくつかのファイルを追加しました。(2)さらなる開発のために新しいブランチbranch2を作成し、それをトランクから分岐し、ブランチ1からの変更をマージしました(3)同僚がブランチ1から自分のブランチにmodをコピーし、さらにmodを追加しました、そしてトランクにマージされました。(4)次に、trunkからの最新の変更を現在作業中のブランチであるbranch2にマージしたいと思いました。これはsvn 1.6.17です。
マージは新しいファイルとツリーの競合があり、それらが異なるトランクから新しいバージョンが必要だったので、branch2のクリーンコピーから、競合するファイルのsvn削除を行い、これらのbranch2の変更をコミットしました(したがって一時ファイルを作成します)問題のファイルのないbranch2のバージョン)、そしてトランクからマージを行いました。これを行ったのは、トランクのバージョンに履歴を合わせて、後でトランクにマージしようとするときに問題が発生しないようにするためです。マージはうまくいきました、私はファイルのトランクバージョンを取得し、svn stはすべてokを示し、変更をコミットしようとしたときに、以前に行った削除とマージからの追加との間で、ツリーの競合がさらに発生しました。svnが私の作業コピー(ファイルのトランクバージョンを含む)を優先して競合を解決し、コミットしました。
うーん、ダメ。Branch2の別のコピーを更新すると、古いバージョンのファイルが生成されました(トランク前のマージ)。したがって、私はbranch2の2つの異なる作業コピーを持っています。おそらく同じバージョンに更新され、2つの異なるバージョンのファイルがあり、どちらも完全に最新であると主張しています!ブランチ2のクリーンコピーをチェックアウトすると、ファイルの古い(トランク前)バージョンが生成されました。これらをトランクバージョンに手動で更新して変更をコミットし、最初に作業コピー(元々トランクの変更を送信したもの)に戻って更新しようとすると、問題のファイルでチェックサムエラーが発生します。問題のディレクトリを吹き飛ばし、更新によって新しいバージョンを取得します。最後に、トランクが変更された、branch2の適切なバージョンになるはずです。私は願います。警告の開発者。