Mercurial存储库如何随着时间的推移而增长?

Mda*_*daG 7 mercurial dvcs

假设我创建了一个存储库,向其添加x文件并提交.说的大小是一个 MB后的最初承诺.

  • 有没有办法估计一年内存储库的大小?

  • 如果代码行增加了10%,那么存储库是否会相应增长?

  • 提交,分支,标签等的数量如何影响存储库大小?

  • 同一年10000次提交会使存储库增长(显着)超过1000次提交吗?

  • 也许我的问题是错误的措辞?

Ant*_*Ant 5

对Mercurial存储库的更改将存储为完整文件或针对先前版本的压缩增量:

https://www.mercurial-scm.org/wiki/FAQ#FAQ.2BAC8-TechnicalDetails.How_does_Mercurial_store_its_data.3F

Mercurial根据所做的更改量决定是否存储完整文件与增量.

这意味着它不仅仅是添加将增加存储库总大小的代码行,而且还包括:

  1. 对现有代码所做的更改次数.
  2. 每次提交对每个文件所做的更改次数.
  3. 添加并随后删除的文件数.

Mercurial保留所有已删除的文件.您可以将1GB文件添加到存储库,然后将其删除; 行数没有增加,但由于文件保留在存储库中,因此存储库将大得多.

要依次回答您的问题:

  • 我想在x个月之后大致估计一个存储库的大小是可行的,假设你总是保持对存储库的稳定变化率(即你以相同的速率添加/删除/改变文件,改变大致相同的数字每次提交的行数).

  • 将代码行数增加10%并不能告诉我们删除/更改了多少行,因此代码行的增加不一定对应于repo大小的相同增加.

  • 标签不会影响Mercurial repo大小超过少数字节.在您开始研究分支之前,分支也不会分支,此时它们会增加与处理小费相同的开销.假设发生相同的变化率,提交次数应与回购规模成比例.

  • 通常提交10倍可能不会增加文件大小,因为它是对repo大小的主要影响的变化率,而不是提交的数量.