版本控制通常如何工作?它是否将差异文件保存为带有哈希的跟踪以验证路径?
版本控制通常如何工作?它是否将差异文件保存为带有哈希的跟踪以验证路径?
不同的VCS使用不同的方法。例如,CVS将在服务器上为您提交的每个文件创建一个文件。这本质上是一个RCS格式的文件; CVS只是RCS的一个包装器,它在目录子树中的许多文件上运行RCS命令(RCS只能处理单个文件)。
RCS文件包含更改列表(版本号,签入消息以及更改的数量)。之后是当前HEAD版本的副本。其余的文件是版本之间的差异(很长的解释)。
这样,CVS可以快速返回HEAD版本(最常请求),并且可以计算其他版本。
CVS不做任何验证;如果您的某个文件损坏,则需要备份。由于CVS基于RCS,因此它无法对目录进行版本控制,也无法跟踪重命名。 CVS和RCS使用该标准 diff(1)
命令来创建差异。
颠覆 (SVN)类似地工作但添加了目录和重命名的版本。此外,SVN使用更好的diff算法(xdelta),它提供了一个更小的存储库。
此外,乔尔斯波尔斯基写道 Hg Init:一个Mercurial教程,这最终使我“得到”分布式源代码控制的全部内容。
皮肤猫的方法不止一种......