1

私は現在、複数のSubversionリポジトリをホストするサーバーを維持しています。他のサーバーでは、 svnsyncを使用して本番リポジトリをミラーリングします。ミラーサーバーには100を超えるリポジトリが同期されます。それらのほとんどは、両方のサーバーで同じサイズ(ディスク上のサイズではありません)です。

私の懸念は、それらのいくつかについて、本番サーバーとミラーサーバーのサイズが同じではないことです(それらのいくつかでは100mb以上の違いがあります)。

皆さんへの私の質問は、それは正常なのか、なぜそれが起こるのかということです。

私の状況をよりよく理解するためのいくつかの追加情報:

  • どちらのサーバーもWindowsServer2003です。
  • 本番サーバーはSubversion1.6.6を使用します。
  • ミラーサーバーはSubversion1.6.13を使用します。

また、次のテストを実行しました。

  1. 本番環境とミラー(最新リビジョン)から壊れたリポジトリをチェックアウトし、ログとサイズを比較しましたが、どちらも同じです。この時点では、これは実際には決定的なものではありませんが、少なくとも両方とも機能しているようです。

  2. Subversion 1.6.6を使用してサーバーからsvnsyncコマンドを使用して、同期されたリポジトリのサイズを確認すると、Subversion1.6.13を使用してミラーサーバーから同期した場合と同じ結果が得られます。

  3. リポジトリからの両方のフォーマット(Subversion 1.6.6を使用して本番サーバーで作成されたものとsvnsyncコマンド用に作成されたもの)を比較しました。両方とも同じで、フォーマット5のfsfs4レイアウトシャーディング1000を使用しています。

ご協力ありがとうございました。

編集:明確にするためのフォーマット。

4

1 に答える 1

1

svnsyncされたリポジトリを異なるサイズにする方法はいくつかあります。これらには以下が含まれます:

リポジトリの1つは、を使用してパックされている可能性がありますsvnadmin pack。これにより、サイズが大幅に変更される可能性があります。

各リビジョンのバージョン管理されていないリビジョンプロパティは、リビジョンが同期されるときにコピーされますが、同期後に1つのリポジトリのリビジョンのプロパティが変更/追加/削除される可能性があります。(100MBはありそうにないように聞こえますが、可能です。)

担当者共有(fsfs.confを参照)は、一方のFSFSリポジトリで有効にできますが、もう一方では有効にできません。担当者の共有は、リポジトリのサイズを増減する可能性があります。これは、保存を共有するよりもインデックスが多くのスペースを占めるかどうかによって異なります。

Subversionの排他的ファイルロックが使用されている場合、これらはマスターリポジトリのスペースを取ります。それらはsvnsyncによってコピーされません。解放された後、ロックがスペースを占有する原因となる長年のバグがありました。問題3667を参照してください。

ディスク上では、リポジトリはファイルの単なるディレクトリツリーです。リポジトリディレクトリツリー内に、任意の非リポジトリファイルを配置することができます。このようなファイルは、svnsyncによってコピーされることはありません。

于 2011-04-20T17:54:02.927 に答える