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