在git中,如果每次更改字符都将以什么速率增加大小?

bab*_*irl 4 git big-o space-complexity

我试图了解Git的工作原理。

如果要更改(添加或删除)字符,请保存并提交更改,直到编写代码为止。随着文件变大,大小将如何增加?例如,即使提交1到10、1到100、1到1百万之间的大小增加差异是多少?

而且,随着时间的推移提交更改会变慢吗?在第n次提交时不可行?

cho*_*oba 6

您可以尝试一下:

#! /bin/bash
set -eu

chars=({a..z})

rm -rf git
mkdir git
cd git
git init
git config user.email name@example.com

for (( i = 0; i <= 10000 ; ++i )) ; do
    printf ${chars[RANDOM % 26]} >> a
    time git add a
    time git commit -m "Change $i"
    du -s .git
done
Run Code Online (Sandbox Code Playgroud)

如果速度太慢,请尝试运行git gcgit repack