私はTortoiseSVN、svn、subclipseを使用していて、基本は理解していると思いますが、しばらくの間私を悩ませてきたことが1つあります。それは、マージによって不要なコードが導入されることです。手順は次のとおりです。
trunk/test.txt@r2
。テストファイルは「A」とリターンで作成されました:
A
[EOF]
branches/TRY-XX-Foo/test.txt@r3
。に分岐しましtrunk
たTRY-XX-Foo
:
A
[EOF]
branches/TRY-XX-Foo/test.txt@r4
。に不要な変更を加えTRY-XX-Foo
てコミットしました:
A
B (unwanted change)
[EOF]
branches/TRY-XX-Foo/test.txt@r5
。重要なバグ修正をTRY-XX-Foo
行い、それをコミットしました:
A
B (unwanted change)
C (important bug fix)
[EOF]
ここで、重要なバグ修正のみをトランクにマージしたいと思います。だから、私はリビジョンのためにマージを実行し4:5
ます。作業ディレクトリにたどり着くのは競合です。
trunk/test.txt
:
A
<<<<<<< .working
=======
B (unwanted change)
C (important bug fix)
>>>>>>> .merge-right.r5
[EOF]
私の意志に反して、Subversionはトランクコードに「不要な変更」を含めたので、手動でそれらを取り除く必要があります。ブランチで複数の連続した変更が行われたときに、指定されたリビジョンのみをマージする方法はありますか?
問題の一部は、B(不要な変更)が.merge-rightに含まれていて、それがどのリビジョンからのものであるかを区別できないことです。私は通常TortoiseMergeを使用しますが、次のようになります。