0

svn history からブランチを完全に削除する必要があります。通常、私は使用します

svnadmin dump /path/to/repo |svndumpfilter --drop-empty-revs --renumber-revs exclude /branches/bad_branch 

ただし、このブランチは作成されただけでなく、移動されてから削除され、ダンプ スクリプトはダウンストリーム情報の処理に失敗し、次のようなメッセージが表示されました: Invalid copy source path '/branches/bad_branch'

だから私は問題に対処する2つの方法を想像します

  1. 履歴の最後のいくつかのリビジョンのみを保持し、現在のリポジトリをアーカイブとして Web 上に置く

  2. 「bad_branch」が作成されたリビジョンまでダンプを作成し、残りの変更をパッチとして適用すると、最近のいくつかのコミットの履歴が失われます。

これに対処するためのより良い、よりクリーンな方法はありますか?

4

1 に答える 1

2

あなたの番号2の最初の部分が機能します。そうです、問題のあるブランチが導入された場所までのダンプを作成し、それを使用して新しいリポジトリを作成します。次に、引き続き svnadmin dump と --incremental オプションを使用して、悪いブランチ リビジョン間のすべての良いリビジョンをダンプします。以下は、インクリメンタル ダンプ コマンドの例です。

svnadmin dump /path/to/repo --incremental -r 1234:2345

これらの増分ダンプを新しいリポジトリに適用し続けます。これにより、問題のある悪いブランチの作成、移動、およびコミットのないリポジトリが生成され、パッチが提案したように、それらの適切なリビジョンのすべての履歴が保持されます。

不良ブランチのリビジョン数にもよりますが、これは大変な作業です。これは、現時点で 1.6.x バージョンまたはそれ以前の Subversion でこれを行う唯一の方法でもあります。

ここで注意点です。リビジョン番号への参照がある良いリビジョンにコミット メッセージがある場合、それらはオフになります。それらの数が限られている場合、これはそれほど悪くはありませんが、多数ある場合は修正するのが面倒になる可能性があります.

于 2010-03-31T15:46:06.383 に答える