Subversion:何が“ターゲットパスが存在しません”マージするときの意味は?
質問
subversion 1.5を使用すると、ブランチAから分岐したブランチBがあります。両方のブランチで作業を行った後、AからBへの変更をマージします( svn merge http:// path / to / A
をB)の作業ディレクトリに追加し、 svn:ターゲットパスが存在しません
を取得します。これはどういう意味ですか?
解決
これは、SubversionがブランチBにマージしようとしたブランチAのファイルに変更があったが、ファイルがブランチBに存在しないため、変更をマージする場所がないことを意味します。例:
- ブランチBを作成
- A / READMEを変更
- B / READMEを削除
- Aをマージ-> B
ファイルが削除されているため、ブランチBでREADMEの変更を適用できません。
編集:これにより、Subversion 1.6でツリーの競合が発生します。
他のヒント
互換性のない変更がない場合でも、svn 1.5.4でこのエラーが発生していました。 1.5.5にアップグレードすると修正されました。
トランクとブランチに奇妙な歴史があるため、この問題が発生しました。
これに似ています:
/---------\
trunk -------+---+ +---\
\-----------BOOM!
トランクの結合->ブランチは機能しませんでした。
ブランチのマージ->トランクは機能しました。
/---------\
trunk -------+---+ +---+-----
\---------/
おそらく、トランクには共有した最後の祖先に関するより良い情報があったからです。
私の場合、トランクにマージする準備ができていませんでしたが、トランクから新しいブランチを作成し、古いブランチをそこにマージすることができました。
/---------\
trunk -------+---+ +---+-------
\ \---+--
\-------------/
所属していません StackOverflow