1

トランクから分岐した状況があり、ブランチで数日間の開発作業を行った後、他の誰かがトランクのプロジェクト ディレクトリの名前を変更しました。このようなもの: /Project/Directory/trunk/old_dir_name から /Project/Directory/trunk/new_dir_name へ

これは私に問題を引き起こしました(もちろん)。

彼がこれを行ったときのログ エントリを見ると、次のように表示されます。 Action Path Copy from path Revision Deleted /Project/Directory/trunk/old_dir_name added /Project/Directory/trunk/new_dir_name /Project/Directory/trunk/old_dir_name 12345

トランクをブランチにテストマージして最新の更新を取得しようとしたところ、1 つのファイルで競合エラーが発生しました。そのファイルだけの最新リビジョンのテスト マージを試みると、次のようになります。

必要に応じてブランチを最新の状態に保つために、これを修正するにはどうすればよいですか?

(問題がある場合は、TortoiseSVN フロントエンドを使用します)。

4

1 に答える 1

0

これは 2002 年以来よく知られている svn バグです。こちらを参照してください。

たとえば、ブランチのファイル/ディレクトリ (またはその下のファイル) の名前を変更し、ファイル/ディレクトリ (またはその下のファイル) がトランクで変更された場合、ブランチをトランクにマージする際に問題が発生します。

なぜこれが起こるのですか?それは簡単です - svn rename はファイルの削除 (a) と新しい名前での追加 (a') として実装されています。したがって、私の例の (a') ブランチと (a) は同じファイルから継承されません。ただし、svn は問題を最小限に抑えようとし、(a) に関する情報を (a') タグに追加します。したがって、svn log on (a') を実行すると、名前変更アクションと (a) の変更も表示されます。

于 2011-09-01T11:50:51.280 に答える