6

そのため、Subversionリポジトリをクラウド(code.google.comなど)に保存していますが、さまざまな理由により、コードを非公開にする必要があります。

リポジトリ全体をダウンロードして、自分のsvnサーバーに移行する必要があると判断しました。

だから私は使い始めました:

svnsync init DEST SRC
svnsync sync DEST

そして、リポジトリの改訂ごとに約0.5秒かかりました!

幸いなことに、私のリポジトリには200のリビジョンしかありませんでした...それで数分待ってください。しかし、200,000または2,000,000のリビジョンがある成熟したプロジェクトはどうでしょうか。

... 2e6 * 0.5 / 60/60 / 24〜約11日!


クラウドからリポジトリをダウンロードするのに「svnsync」よりも速いものはありますか?

4

4 に答える 4

1

何十万ものリビジョンがあるリポジトリのコレクションでも、これと同じ問題が発生します。これが私がそれを回避する方法です:

  1. ミラー上に空のリポジトリを作成します。
  2. リポジトリのgzipされたダンプファイルを作成します。(私のバックアップシステムはすでにこれを行っています)(注:このステップは、大陸全体に私の巨大なリポジトリを送信するのに一晩かかりました)
  3. scp(またはお気に入りのリモートファイルコピー技術)、ミラーサーバーへのダンプファイル。
  4. リポジトリをロードします。必ず指定して--force-uuidください。
  5. リビジョン0でrevpropsを設定します。通常構成されている空のリポジトリを取得し、そのrev0を確認しました。

これで、マスターサーバーでsvnsyncを実行する準備が整いました。これは、ダンプが中断された場所から続行されます。

于 2011-04-11T14:36:39.760 に答える
1

はいあります。VisualSVN分散ファイルシステム(VDFS)によって実行されるレプリケーションは、を介したレプリケーションよりも少なくとも10倍高速ですsvnsync。さらに、ミラーリングされたVDFSリポジトリは書き込み可能です

このテクノロジーにより、分散したチームは、すべてが同じローカルネットワークにあるかのように同じ速度でSubversionリポジトリを操作できます。VDFSテクノロジーを採用することで、メインリポジトリを複数のサイトや場所に複製できるため、読み取り操作が最大1000%高速化されます。たとえば、50Gbの作業コピーはわずか10分でチェックアウトできます。通常のインターネット接続で実行される同じタスクは、少なくとも1時間かかります。

于 2020-03-23T15:54:20.687 に答える
0

OPの場合、svnサーバーへのコンソールアクセスがありませんsvnsync(これは基本的にURL1svn checkoutからURL2に結合さsvn commitれます)。

ただし、サーバーにアクセスできる場合は、よりも高速な方法がありますsvnsync。ミラーを構築する良い方法の1つsvnadmin hotcopyは、リポジトリの初期コピーを作成し、Subversion1.7で追加されsvnsync init --allow-non-emptyたオプションを使用してそれをミラーに変えることです。これにより、svnsyncが他の方法では実行しないフックなどのバックアップも提供されます。

hooksディレクトリをhooks-originalミラーで使用されないように、または何かに移動する必要があることに注意してください---特に、元のリポジトリにsvnsync sync!を呼び出すコミット後のフックがある場合はそうです。

于 2012-11-17T03:32:36.417 に答える
0

もちろん、サーバーに自分でバックアップしてから、zipしてダウンロードすることもできます。または、すべての履歴をダウンロードできませんでした。

しかし、この質問のポイントは何ですか?あなたの問題が解決されるので、それは少し学術的です。

于 2010-02-08T03:50:22.213 に答える