68

Subversion コード ベースをホストするサーバーがあります。そのサーバーは現在Windows Server 2003ボックスであり、IT 管理者はそれをWindows Server 2008に更新したいと考えています。

これは、サーバーが構築されている間に Subversion リポジトリを移動する必要があることを意味し、リポジトリを新しいサーバーに移動するためのベスト プラクティスは何かを考えていました。

オンラインで見ると、推奨される方法は次のようです。

svnadmin dump /path/to/repository > repository-name.dmp

そして、次を使用します。

svnadmin create repository-name
svnadmin load repository-name< repository-name.dmp

リポジトリをインポートします。

上記の方法は最良のアプローチのように思えますか?

4

6 に答える 6

59

はい、リポジトリをダンプしてロードすることは道のりです。リポジトリ フォルダを直接コピーすることは、コピー プロセスの進行中に誰もリポジトリにアクセスしないことが確実な場合にのみ実行可能なオプションです (または、これらのケースを処理できるリポジトリの「ホット コピー」を実行できます)。安全な方法で)。

また、すべての作業コピーを再チェックアウトするか、単に URL を書き換えるだけのsvn switchコマンドを使用する必要があります。より便利な方法は、TortoiseSVN のRelocateコマンドを使用することです。これにより、再配置プロセス中に間違いを犯すリスクが軽減されます。

于 2008-12-11T20:50:12.737 に答える
27

私の復元スクリプトは次のようなものです:

svnadmin create repository-name --fs-type fsfs
svnadmin load   repository-name --force-uuid < repository-name.dmp

最初の行は、リポジトリがFSFSバックエンドを使用することを保証します (これは、これを含む多くのソースで推奨されています: How FSFS is Better、および Subversion の新しいバージョンではデフォルトとして使用されています)。FSFSは、Subversion ファイルシステムの実装の名前です。

2 行目は、移行を容易にするために、リポジトリの UUID を保持します (--force-uuid切り替えがないと、作業コピーの再配置は失敗します)。

いくつかのリンク:

于 2008-12-11T21:06:57.900 に答える
9

svnsyncを使用してリポジトリを移動することもできます。そうすれば、「古い」リポジトリを停止する必要なく、すべてのデータを転送できます。これは、シェルへのアクセスやリポジトリのダンプへのアクセスを持たないホスト環境からデータを取得する唯一の方法でもあります。

于 2008-12-12T12:31:11.080 に答える
5

別の方法:

svnrdump を使用します。 http://www.crowbarsolutions.com/backing-up-restoring-a-remote-svn-repository/

「svnrdump というツールが必要になります。Apache で説明されているように、svnrdump は svnadmin ダンプと svnadmin ロードの機能を複製しますが、ソースまたはターゲット リポジトリへの管理者 (ローカル ファイルシステム) アクセスを必要とせずに、リモート リポジトリで動作します。 .」</p>

于 2013-10-27T07:48:19.953 に答える
4

ファイル システム タイプのリポジトリを使用している場合は、文字通りリポジトリを含むフォルダを取得して移動できます。サーバーを変更する場合は、'Relocate' コマンドを使用して、ローカル作業ディレクトリがリポジトリを探す場所を変更する必要がある可能性があります。

于 2008-12-11T20:37:47.210 に答える
2

最も簡単な方法は、次を使用することです。

svnadmin hotcopy path/to/your_current_directory /path/to/your_destination_directory
于 2014-04-16T06:35:39.350 に答える