2011-08-13 21 views
1

SVNがバイナリファイルを処理する方法をよりよく理解するために、少し実験を試みました。私は、SVNが同じバイナリを異なる場所で認識し、同じファイルの複数のコピーを作成しないことを確認したいと考えていました。私が見つけたものは、それが答えた以上の疑問を投げかけた。私はSVNの専門家が私にこれを理解するのを手伝ってくれることを願っています。コミットされたバイナリファイルに対するSVNリポジトリのサイズ

注1:MyTest.dllは2108キロバイト

注2:私はSVNの舞台裏で、いくつかの圧縮を行っていることを認識し、それはまだ結果を説明していません。ここで

は実験だ:私は&を犯しトランクにMyTest.dllを追加

2)新しいレポを作成し

1) - >レポサイズ= 66 K

3)/1 /及び/1/MyTest.dll &を添加コミット - >レポサイズ= 2メガバイト

- >レポサイズ= 735 K

4.)/ 2 /及び/2/MyTest.dll &コミットを添加しました>レポサイズ= 2.1メガバイト/ 4 /及び/4/MyTest.dll &コミット追加され

6) - - >レポサイズ

5.)/ 3 /と/3/MyTest.dll &コミットを追加しました= 3.4 mb

コミットの実際の内容に比べて、各コミットでのレポサイズの変化がランダムに表示される理由を説明できる人はいますか?

ありがとうございます!

答えて

0

Repoは、各コミットのすべての変更が保存されるため、いつでも古いファイルにいつでも戻すことができるので、(たとえ少数のファイルで作業しても)かなり大きくなります。 SVNや関連するツールは、ファイルのハウスキーピングとキャッシング/インデックス作成のために多くの情報があり、スペースを取る傾向があります。コミットごとに変更されるファイルの数に応じて、これらのコミット「パッチ」ファイルが内部で作成されるため、リポジトリのサイズの増加は通常どんなものになりますか?SVNは、私がgitを大部分の時間使い、gitが時にはより小さなリポジトリを持つ傾向があるが、それはちょうど内部のものかもしれないが、使用されている残りのスペースの多くが満たされている場所を実際に説明するのは難しいSVNがその機能性のために使用するもの。これがいくつかのことをクリアするのに役立つことを願っています

+0

返信いただきありがとうございます。間違いなく、SVNはすべてのバージョン管理機能をサポートするために多くのことを行っています。各コミットでのリポジトリの成長は、コミットの実際の内容に比べてややランダムに見えました。 –

1

いいえ、ファイルがすでにコミットされているかどうかを確認するためにリポジトリ全体(ギガバイトかもしれません)を検索することはありません。

リポジトリ内のファイルがsvn copyの場合のみ、新しいコピーは導入されません。

+0

答えをありがとう。 SVN Copyのようなサウンドは、私が必要とすることをするでしょう。 –

関連する問題