CVSプロジェクトをSubversionに変換したいのですが、CVS2SVNを使用しています。それにはメイントランク(HEAD)があり、トランクからいくつかの一時的な開発ブランチが作成されています。cvs2svnとマージインフォメーション
変換する前に、トランクの最新の変更をすべてのdevブランチにマージします。しかし、彼らはまた、まだトランクに合併されていない変更を持っています。
プロジェクトをSVNに変換すると、マージ履歴のプロパティが1つもありません。だから私はどのようにそれらのプロパティを初期化することができますので、私はその後、ブランチとの間でマージできますか?
つまり、変換後、トランクと任意のブランチとの間にいくつかの違いがあります。次にトランクからブランチにマージするときに、その違いをマージする必要のある変更と見なしたくありません。しかし、私が枝から幹に合流するとき、私はそうします。これは可能ですか?
UPDATE:私はmhaggerの提案を取って、枝がすべての変更は、すでにトランクからマージされていたことをSVNに次のように語った。
svn co [branch URL] .
svn merge --record-only [trunk URL]
svn commit -m ''
をこの作品、私はトランクからマージしようと、次回ブランチに入ると、それは新しい変化を示さない。
しかし、私はまだブランチからトランクへの--reintegrateマージに問題があります。それは、 "R" eplacedファイルがたくさんあることを示しています。つまり、トランクにはファイルXがあり、ブランチにはファイルXがありますが、それらは同じファイルと見なされません。これは合併の種類を乱雑にしますが、それは正しい結果に終わるようです。
- 支店(CVSで)作成されたファイルXが
- Xがマージされました(CVSでの)トランクに追加された
- :
私はこれが原因で次の一連のイベントの発生したと思います
- プロジェクトはSubversionに変換されました
- Subversionはブランチ/ Xがtrunk/Xからコピーされたことを知らなかった。だから だと思います。
SVNの歴史は、このようなものになりますので、
r100: create branch (copied from trunk)
r200: add trunk/X
r300: add branch/X (because of a CVS merge, but it's not a SVN copy)
を、私は--reintegrateマージを行う際に、ファイル 祖先を無視するようにSubversionを伝えるための方法はありますか?またはこれらのファイルを変換するためのより良い方法は?