6

大きなsvnリポジトリ(100k以上の回転数)をいくつかの小さなリポジトリに分割しています。svndumpfilter(v1.7.2)を使用してダンプを分割し、svndumptool/sedを使用して大きなダンプをフィルター処理しています。

オプション「drop-empty-revs」を使用したにもかかわらず、フィルターされたダンプにまだいくつかの「パディングリビジョン」があることを除いて、すべてが正常に機能します。

役に立たない「パディングリビジョン」が10%未満の場合、これはそれほど問題にはなりませんが、新しいリポジトリには、3万以上の「パディングリビジョン」に埋め込まれている実際のリビジョンが数百しかない場合があります。

これが私が使用するコマンドと含まれているリビジョンです

svndumpfilter --drop-empty-revs --renumber-revs include /MyProj < MassiveOldRepo.dump > NewAllCleanRepo.dump

------------------------------------------------------------------------
r3453 | (no author) | 2005-09-29 17:27:54 +0200 (jeu., 29 sept. 2005) | 1 line

This is an empty revision for padding.
------------------------------------------------------------------------
r3454 | (no author) | 2005-09-29 17:28:27 +0200 (jeu., 29 sept. 2005) | 1 line

This is an empty revision for padding.
------------------------------------------------------------------------    

ダンプをフィルタリングしているときに(フィルタリングされたダンプから手動で削除せずに)これらのリビジョンを含めない方法があるかどうかを知りたいです。

編集:svndumpfilter私の使用は、いくつかの空のリビジョン、最初の「実際の」リビジョンの前のリビジョン、および最後の「実際の」リビジョンの後のリビジョンを削除することを追加します。

4

3 に答える 3

8

空のリビジョンがすでにリポジトリに含まれているという同じ問題がありました。Subversion 1.7 以降、すべての空のリビジョンをフィルタリングできる、まだ文書化されていないスイッチがあります。

svndumpfilter --drop-all-empty-revs include / < oldrepos.dump > newrepos.dump

詳細については、grokbaseを参照してください。

于 2013-10-08T13:30:01.187 に答える
4

何時間ものテストの後、svndumpfilter のソース コード (非常によくコメントされていて、よくできています!) を読んで、これらの空のリビジョンは私のフィルタリングによるものではないことに気付きました。

それらはすでに私の元のダンプにあり、2005 年からのものです。

結論:まずはデータをチェック!!

于 2012-03-21T08:49:47.307 に答える
2

あなたの状況については確信が持てませんが、私の場合、何千ものパディングメッセージがログに表示される原因となったのはフィルタリングでした. 次の2つのスイッチを含めることで解決しました:

--drop-empty-revs --renumber-revs

2 番目のスイッチは、たとえばフィルターに rev 1000-1200 が含まれていて、その後 1201-5000 が除外された場合、フィルターに含まれる次の rev の番号が 5001 ではなく 1201 になるようにします。 .

于 2013-02-05T23:12:37.017 に答える