web-dev-qa-db-ja.com

SVNリポジトリを別のSVNリポジトリに移行するにはどうすればよいですか?

すべての履歴をコピーして、あるリポジトリから別のリポジトリにディレクトリをコピーする簡単な方法はありますか?

58
Jakub Arnold

最も簡単な方法は以下を使用することです:

svnadmin dump path/to/repos > repos.out

これにより、ファイルにリポジトリ(履歴付き)のポータブル形式が作成されますrepos.out。次に使用できます

svnadmin load path/to/newrepos < repos.out

「ダンプされた」リポジトリを新規または既存のリポジトリにロードします。

第5章リポジトリメンテナンス->他の場所でのリポジトリデータの移行 の使用に関する注意事項svnadmin dumpバージョン1.7以降:

Subversionリポジトリダンプ形式は、バージョン管理されたリポジトリの変更のみを記述します。コミットされていないトランザクション、ファイルシステムパスのユーザーロック、リポジトリまたはサーバー構成のカスタマイズ(フックスクリプトを含む)などに関する情報は含まれません。

79
Adam

Subversion book で提案されているとおり:

svnadmin dump path/to/repos_src \
    | svndumpfilter include path/inside/svn/to/directory \
    | svnadmin load path/to/repos_dst

例付き:

svnadmin dump /var/lib/svn/old_repo \
    | svndumpfilter include trunk/my_project/common_dir \
    | svnadmin load /var/lib/svn/new_repo
34
Steve Schnepp

履歴が必要ない場合は、svn exportフォルダーを使用せずに.svnフォルダーを取得してから、svn importを使用して他のリポジトリに入れることができます。

履歴では、svnadmin dumpを使用する必要があります。次に、 svndumpfilter を使用して、svnadmin loadを使用する前に、使用するパーツまたはパスのみをフィルタリングします。

読むべきトピック:

24
crashmstr

svnsync — Subversion Repository Mirroring コマンドを使用します。

svnsyncはSubversionリモートリポジトリミラーリングツールです。簡単に言えば、あるリポジトリのリビジョンを別のリポジトリにリプレイできます。

svnsyncコマンドのSubversionドキュメントには、次の警告(バージョン1.7以降)があり、他のSVNコマンドを使用してミラーリポジトリを変更すると、その特定のsvnsyncを使用しないでください。再度ミラーリングする:

svnsyncは、ミラーリング操作の一部として行われなかったミラーリポジトリで行われた変更に非常に敏感です。これを防ぐには、svnsyncプロセスがミラーリポジトリの変更を許可されている唯一のプロセスであることが最適です。

9
Tomas Andrle

Subversionバージョン1.7には新しいコマンドsvnrdumpがあり、これを使用してリモートリポジトリにアクセスし、svnadmin dumpコマンドで生成されるのと同じダンプ形式の出力を生成できます。これにより、svnrdumpsvnadmin loadとともに使用してSubversionリポジトリを転送できます。

svnrdump—リモートSubversionリポジトリデータ移行 を参照してください。これには新しいコマンドの説明があります。

レッドブックの第5章では、セクション Migrating Repository Data Elsewhere にサブセクションがあり、svnrdumpを使用したリポジトリデータの移行:

[svnrdumpsvnadmin dump]の主な違いは、リポジトリへの直接アクセスを必要とする代わりに、svnrdumpがリモートで動作することです。 Subversionクライアントはサポートします。そのため、認証資格情報を提供する必要がある場合があります。また、リモート相互作用[原文]は、Subversionサーバーで構成された許可制限の対象となります。

また、フックなどのサーバー構成のカスタマイズに関するsvnadmin dumpの制限が転送されない可能性があることも、svnrdumpに適用されると想定します。

5

svnadmin dumpを使用してダンプファイルを作成し、svnadmin loadを使用して新しいリポジトリにインポートできます。

4
tomoe

ダンプファイルは、

    svnadmin dump path/to/repos > dumpfile

コマンドを使用して作成することができます(svn 1.7以降)

   svnrdump dump url_to_repos > dumpfile

これは、サーバーではなくリモートコンピューターから実行する場合に便利です。

これが他の人を助ける場合、1つのSubversionリポジトリから別のリポジトリに変更セットを再生するsvn2svnがあります。

https://github.com/tonyduckles/svn2svn

1
user2387519