昨日のサイズ比較と同じことを同一ファイルではなく、異なるファイルでやってみます。
ランダムな内容のファイルを追加した場合は、どのVCSも単純にサイズが増加しました。
ファイルの作成
内容の異なるファイルは、/dev/urandomで作成します。
条件を同じにするために予め100個のファイルを作成します。
$ mkdir data $ for i in $(seq 1 100) > do > dd if=/dev/urandom of=data/ur$i bs=1024 count=100 > done ...省略... $
初期サイズ
昨日と一緒ですが念のため…
$ du -sk svn-repo git/.git hg/.hg bzr/.bzr | sort -n 16 hg/.hg 84 bzr/.bzr 108 git/.git 148 svn-repo $
1MBのファイルを1つ追加
1MBのファイルを1つ追加したサイズです。
/dev/zeroで生成したファイルと比較して圧縮の効率が悪くサイズが大きくなっています。
$ for i in svn git hg bzr > do > ln data/ur1 $i > (cd $i; $i add ur1; $i commit -m "Add ur1") > done A (bin) ur1 追加しています (バイナリ) ur1 ファイルのデータを送信しています . リビジョン 1 をコミットしました。 [master (root-commit) 4d192d7] Add ur1 1 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 ur1 adding ur1 Committing to: /home/ksaito/work/vcs/size/bzr/ added ur1 Committed revision 1. $ du -sk svn-repo git/.git hg/.hg bzr/.bzr | sort -n 152 hg/.hg 208 bzr/.bzr 256 git/.git 256 svn-repo $
1MBのファイルを10個追加
$ for i in svn git hg bzr > do > for j in $(seq 2 10) > do > ln data/ur$j $i > (cd $i; $i add ur$j) > done > (cd $i; $i commit -m "Add ur[2-10]") > done A (bin) ur2 A (bin) ur3 A (bin) ur4 A (bin) ur5 A (bin) ur6 A (bin) ur7 A (bin) ur8 A (bin) ur9 A (bin) ur10 追加しています (バイナリ) ur10 追加しています (バイナリ) ur2 追加しています (バイナリ) ur3 追加しています (バイナリ) ur4 追加しています (バイナリ) ur5 追加しています (バイナリ) ur6 追加しています (バイナリ) ur7 追加しています (バイナリ) ur8 追加しています (バイナリ) ur9 ファイルのデータを送信しています ......... リビジョン 2 をコミットしました。 [master 8262839] Add ur[2-10] 9 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 ur10 create mode 100644 ur2 create mode 100644 ur3 create mode 100644 ur4 create mode 100644 ur5 create mode 100644 ur6 create mode 100644 ur7 create mode 100644 ur8 create mode 100644 ur9 adding ur2 adding ur3 adding ur4 adding ur5 adding ur6 adding ur7 adding ur8 adding ur9 adding ur10 Committing to: /home/ksaito/work/vcs/size/bzr/ added ur10 added ur2 added ur3 added ur4 added ur5 added ur6 added ur7 added ur8 added ur9 Committed revision 2. $
$ du -sk svn-repo git/.git hg/.hg bzr/.bzr | sort -n 1088 hg/.hg 1132 bzr/.bzr 1164 svn-repo 1244 git/.git $
さらに89個追加
$ for i in svn git hg bzr; do for j in $(seq 11 100); do ln data/ur$j $i; (cd $i; $i add ur$j); done; (cd $i; $i commit -m "Add ur[11-100]"); done
$ du -sk svn-repo git/.git hg/.hg bzr/.bzr | sort -n 10188 bzr/.bzr 10224 svn-repo 10448 hg/.hg 10916 git/.git $