2009-07-21 16 views
1

SVNリポジトリで一連のコミットを行い、それらを組み合わせるにはどうすればよいですか?SVNコミットを結合するには?

例えば、リビジョン4-10はリポジトリに存在し、前の4-10のすべての変更を含む新しいリビジョン4にそれらを結合したいと思います。

私はsvn copyで作成された既存のタグを壊したくありません。

これは以前はリポジトリがClearCaseにあったため、Polarionの移行ツールでは、クリーンアップする必要がある膨大な数の単一ファイルコミットが残っていたためです。

+6

なぜそれをしたいですか?あなたは何をしようとしているのですか?あなたが本当にやろうとしていることは何でも良い方法でしょう。 –

+0

この組み合わせの利点はどれですか? – Matthieu

+1

これは、以前はリポジトリがクリアケースであったため、polarionの移行ツールは、クリーンアップする必要がある膨大な数の単一ファイルコミットを残していたからです。 –

答えて

4

あなたが本当にこれを実行する必要がある場合は、手動で、その後のClearCaseから(ない単一ファイルのコミット)各リビジョンをチェックアウトし、枝

+0

おそらく多くの仕事が、それは唯一の多かれ少なかれクリーンな方法だ、私は恐れている – jeroenh

2

行間を読んで、svkを見てください。これはローカルリポジトリを実行させてから、一度に多くの変更をメインリポジトリにコミットさせるはずです。

1

新しいリポジトリを作成せずにそれを行うことはできませんので、上書きするだけです。

これを本当に行う必要がある場合は、おそらく "svnadmin dump"と "svnadmin load"で実行できます。

編集:コピー、old_trunkするトランクの名前を変更します。あなたはちょうどそのマヌーの提案に似た何かが実行可能なソリューションであるトランクの歴史のうち、コミットをプッシュするが、それらは、リポジトリ内の他の場所で残って罰金している場合トランジションにマージしたい範囲の前のリビジョンをマージし、範囲内のリビジョンをマージしてコミットします。

+0

IIRCでは、ダンプ内のコミットを結合する手段がないため、svnadmin dumpおよびloadでこれを行うことはできません。 –

1

に改訂4-10を改訂3でブランチを作成し、マージすることができますWinMergeのようなツールを使って新しいSVNチェックアウトにファイルをコピーして、すべてのファイルの追加と削除がコピーされ、変更されたことを確認してください。次に、SVNコミットを行います。

ClearCaseコミットの数が多すぎるため手動作業があまりにも困難な場合は(おそらくあまり問題なく自動化することはできますが)、手動でSVNの主要な改訂版を手動でコミットすることを検討してください。

これが実現できない場合は、ClearCaseの改訂履歴を持ち越さないようにしてください。ちょうどSVNで新しく開始してください。おそらく歴史的な目的のためにClearCaseの古い変更履歴を含むテキストファイルをコミットして、誰かが元のコードを入手する必要が生じた場合、どのリビジョンを探すべきかを知ることができます。

関連する問題