私は最近、SVN 1.7.5 を使用している新しいチームに参加しましたが、彼らは私とは少し異なる方法で分岐とマージを処理する傾向があります。私は常に次のパターンに従います。
- 幹からの分岐
- 必要に応じてトランクをブランチにマージします
- トランクからブランチへの最終マージ
- -- ブランチからトランクへの再統合マージ
- ブランチを削除
なんらかの理由で、最初のコピー後にトランクをブランチにマージしてはいけないと彼らは確信しています。代わりに、終了時にブランチをトランクにマージし、そこですべての競合を解決するだけです。彼らが通常のマージを行うのか、それとも --reintegrate マージを行うのかはわかりません。彼らはまた、無関係な概念実証ブランチからのものをトランクに直接マージし、複数の「トランク」を持つというファンキーなことも行います(それがトランクの代わりにトランクの横に配置された長寿命のブランチ以上のものである場合、私は確信が持てませんブランチ ディレクトリ)。
私が直面している問題は、私が慣れ親しんだ方法で分岐とマージを処理するときはいつでも(これが一般的に「正しい」方法であると考えられていると信じています)、機能ブランチを再統合するときに大量のツリー競合が発生することです。私が今持っている 1 つの例は、トランクにマージされ、その後、機能ブランチにマージされた概念実証ブランチに由来するいくつかのファイルです。ファイルには触れていませんが、再統合すると、それらの一部(すべてではない)に対して「ローカル追加、マージ時の受信追加」が得られます。
チームの別の人も試してみることに決め、再統合の直前にトランクを機能ブランチにマージしました。彼の場合、大量のツリー競合が発生しました。そのうちの 1 つは、トランクに直接追加され、どのブランチでも変更されていないファイルにありました。彼は、ブランチをトランクに引き込む前のリビジョンにロールバックし、他の全員が行うように再統合を行うことで、それを解決しました。
破損したものがリポジトリにある可能性はありますか? 他の誰もが使用している分岐スキームが原因で SVN が混乱する可能性はありますか? 間違っているものを修復するためにできることはありますか?