を使用して SVN リポジトリの一部を移行しようとしていますsvnadmin dump
。
提供されている svndumpfilter ツールは、エクスポートに含まれていないディレクトリからのコピー/移動/名前変更の依存関係を管理しません。
これらの依存関係を管理できるツールはありますか?
を使用して SVN リポジトリの一部を移行しようとしていますsvnadmin dump
。
提供されている svndumpfilter ツールは、エクスポートに含まれていないディレクトリからのコピー/移動/名前変更の依存関係を管理しません。
これらの依存関係を管理できるツールはありますか?
Simon Tatham による svndumpfilter2という Python スクリプトを見つけました。これは単純な依存関係に対処しようとします (ただし、いくつかの制限が見つかりました)。
彼の Subversion への移行とスクリプトの動機に関する記事も確認できます。
この問題を取り除くことはできません。ディレクトリ/ファイルをコピーした場合は、両方 (ソースと宛先) を svndumpfilter に含める必要があります。
ただし、いくつかのトリックを実行できます。
リビジョン 0 からではなく、たとえばリビジョン 100 からリポジトリをダンプすると、リビジョン 1 ~ 100 が消えた新しいリポジトリが作成されます。ただし、宛先リポジトリには、リビジョン 100 のソース リポジトリとしてリビジョン 1 のすべてのファイル/フォルダがあります。このようにして、HEAD-リビジョンを失うことなくバージョン管理されたデータを取り除くことができます。
最初のコピーが「フラット」リポジトリになるまで、ソース リポジトリのダンプ/ロードを試みてから、残りのダンプをそこに追加することができます。このようにして、ファイルは既に適切な (宛先) ディレクトリにあるため、面倒なコピー元のリビジョンをスキップできます。
依存関係とは、プロパティ svn:external? で指定されたものを意味します。
はいの場合は、svndumpfilter に、プロパティで参照されているパスも渡す必要があると思います。たとえば、プロジェクトがhttp://host/project
あり、svn:external プロパティが に設定されてhttp://host/dependencies
いる場合、次のようなことができます
svndumpfilter include http://host/project http://host/dependencies < total.dump > project.dump