1

私は、3 つの SVN リポジトリを異なる構造の 1 つの新しいリポジトリに複雑に移行しようとしています。

リポジトリのうちの 2 つに、「これはパディング用の空のリビジョンです」という数千の空白のコミットがあることを発見しました。すべてルートに対して、すべて著者情報なしで。信じられない。

svnfiltereddump は svn:author を必要とするため、これらのコミットに失敗するため、この問題を回避するためのテクニックが必要です。

使えるか気になる

svndumptool.py transform-revprop svn:author SOMETHING gareth.hughes input.dump utput.dump

しかし、空の著者フィールドのみに一致する正規表現がどうなるかわかりません。

それ以外の場合は、順次ではなく、リポジトリ内の約 8000 件のコミットに svn:author を追加する方法を探しています。または、ダンプからそれらをフィルター処理できるツール。結局のところ、それらはすべてがらくたです。

どうもありがとう

4

2 に答える 2

0

答えは、通常の svndumpfilter が機能したことです

svndumpfilter --drop-empty-revs --renumber-revs include /somepath

しかし、さらにエラーが発生し、信じられないほど便利であることがわかりました

./svndumpfilter3 --untangle=/path/to/repo /somepath

それらのエラーに対処できます。

于 2012-05-01T13:34:33.477 に答える
0

良いニュースは、ダンプとロードのプロセス中に問題を処理しようとするのではなく、ダンプとロードを行う前にこれを処理できることです。リビジョン プロパティには、そのsvn:authorリビジョンをコミットした作成者が含まれます。これはリビジョン プロパティであるため、Subversion リポジトリに新しいリビジョンを作成しなくても変更できます。これを行うだけです:

$ svn propset --revprop -r$rev svn:author $default_author $repository_url

作成者を持たない各リビジョンで。これは簡単に行うことができます:

$ svn log -r1:LAST $repository_url

リビジョン内のすべてのログ エントリのリストを取得します。作成者のいないリビジョンを見つけた場合は、svn:authorその URL にリビジョン プロパティを設定できます。これを行うために作業ディレクトリが必要だとは思いません。

于 2012-05-01T16:29:06.610 に答える