在hg clone中,"添加更改集","添加清单"和"添加文件更改"?

时间:2016-09-23 15:30:27

标签: mercurial clone dvcs changeset

来自Mercurial文档:

  

清单是描述特定变更集ID的存储库内容的文件   <子> https://www.mercurial-scm.org/wiki/Manifest

克隆Mercurial存储库时,我看到输出行说:

adding changesets
adding manifests
adding file changes

我不明白这些事情之间的区别。我以为我理解变更集是什么,但我不知道它与一组&#34;文件更改有什么不同&#34;。并且基于上面的描述,清单听起来像是同一件事。那么所有这些之间的区别是什么呢?

1 个答案:

答案 0 :(得分:4)

Mercurial将您在版本控制系统中跟踪所需的信息划分为几个级别:

  • 变更集 - 有关每个修订的元数据。谁(作者),何时(日期和时间),为什么(摘要文本)和什么(受影响的文件名)等都存储在这里。
  • 清单 - 每个清单列出给定修订版本的文件的文件修订版。这就像数据库中的链接表;文件内容不包含,只有给定文件的哪个版本是此修订版的一部分。
  • 文件更改 - 这些文件存储实际的文件数据。存储完全形成的给定文件的每个版本是低效的。相反,它以 delta压缩形式存储文件数据;存储版本之间的更改,偶尔使用完整副本以帮助更快地恢复到版本。

克隆时,需要将所有3个级别从远程服务器复制到存储库中。

有关详细信息,请参阅Mercurial Wiki Design page