私は、(歴史的に) ではなく手動でマージされたコードベースを使用していsvn merge
ます。マージがいかに便利かをみんなに証明することで、それを変えようとしていますが、予行演習を行うと、次のようになります。
$ svn merge [[Repo URL]] . -c 21355,21358,21364,21370,21371,21373 --dry-run
--- Merging r21355 into '.':
U [[File 1]]
--- Merging r21355 into '[[dir]]':
U [[dir]]/[[File 2]]
U [[dir]]/[[File 3]]
--- Merging r21358 into '[[dir]]':
U [[dir]]/[[File 4]]
--- Merging r21364 into '[[dir]]':
U [[dir]]/[[File 2]]
C [[dir]]/[[File 4]]
--- Merging r21370 into '[[dir]]':
U [[dir]]/[[File 5]]
--- Merging r21371 into '[[dir]]':
U [[dir]]/[[File 5]]
--- Merging r21373 into '[[dir]]':
C [[dir]]/[[File 5]]
U [[dir]]/[[File 6]]
Summary of conflicts:
Text conflicts: 2
私は 2 つのファイル (それぞれ 4 と 5 としてリストされています) を持っていますが、それらは 1 回のマージで生き残り、最後のファイルと競合するだけです。私は今、その対立が何であるかを理解しようとしており、それを解決できるかどうかを確認しています. 競合する 2 つの変更の差分を svn に強制的に吐き出させることができればと思います。
最も狭いディレクトリの新しい作業コピーをチェックアウトし、dry run なしでマージを実行すると、次のようになりました。
--- Merging r21355 into '.':
U [[File 3]]
--- Merging r21358 into '.':
U [[File 4]]
--- Merging r21364 into '.':
G [[File 4]]
--- Merging r21370 into '.':
U [[File 5]]
--- Merging r21371 into '.':
G [[File 5]]
--- Merging r21373 into '.':
G [[File 5]]
(ファイル 1、2、および 6 は別の場所にあります)
だから、今私は特に混乱しています - ドライランは競合を報告しますが、マージが実際に実行されると成功しますか? これは意図した動作ですか?私は SVN ウィザードではないことを認めますが、かなり当惑しています。