版本控制如何工作?

shi*_*eta 11 version-control

版本控制通常如何工作?它是否将差异文件保存为带有哈希的跟踪来验证路径?

Dar*_*mas 9

查看Eric Sinks关于版本控制的博客系列.

此外,Joel Spolsky编写了Hg Init:Mercurial教程,最终让我"得到"了分布式源代码控制的全部内容.

皮肤猫的方法不止一种......


Aar*_*lla 7

不同的VCS使用不同的方法.例如,CVS将在服务器上为您提交的每个文件创建一个文件.这本质上是一个RCS格式的文件; CVS只是RCS的一个包装器,它在目录子树中的许多文件上运行RCS命令(RCS只能处理单个文件).

RCS文件包含更改列表(版本号,签入消息以及更改的数量).之后是当前HEAD版本的副本.其余的文件是版本之间的差异(长解释).

这样,CVS可以快速返回HEAD版本(最常请求),并且可以计算其他版本.

CVS不做任何验证; 如果您的某个文件损坏,则需要备份.由于CVS基于RCS,因此它不能对版本目录进行版本控制,也不能跟踪重命名.CVS和RCS使用标准diff(1)命令来创建差异.

Subversion(SVN)类似地工作但添加了目录和重命名的版本.此外,SVN使用更好的diff算法(xdelta),它提供了更小的存储库.

有关Git如何工作的解释,请参阅此处.