从Mercurial文档中:


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


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

adding changesets
adding manifests
adding file changes


我不明白这些东西之间的区别。我以为我知道变更集是什么,但是我不知道它与一组“文件变更”有何不同。根据以上描述,清单听起来像是同一件事。那么所有这些之间有什么区别?

最佳答案

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


变更集-有关每个修订的元数据。此处存储了谁(作者),时间(日期和时间),原因(摘要文本)和内容(受影响的文件名)等。
清单-每个清单列出给定修订版本的文件的文件修订版本。这就像数据库中的链接表;文件内容不包含在内,只有给定文件的哪个版本是此修订版的一部分。
文件更改-这些文件存储实际的文件数据。存储给定文件完整形成的每个版本的效率很低。而是以增量压缩形式存储文件数据。存储版本之间的更改,偶尔使用完整副本以帮助更快地还原到版本。


克隆时,所有这三个级别都需要从远程服务器复制到您的存储库中。

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

08-27 20:47
查看更多