2009-05-18 76 views

回答

7

不同的VCS使用不同的方法。例如,CVS將爲您提交的每個文件在服務器上創建一個文件。這本質上是RCS格式的文件; CVS只是RCS的一個包裝器,它通過目錄子樹中的許多文件運行RCS命令(RCS只能在單個文件上工作)。

RCS文件包含一系列更改(版本號,簽入消息和更改的數量)。之後,出現當前HEAD版本的副本。其餘文件是版本之間的差異(long explanation)。

通過這種方式,CVS可以快速返回HEAD版本(最經常要求的版本),並且可以計算其他版本。

CVS不做任何驗證;如果其中一個文件損壞,則需要備份。由於CVS基於RCS,因此它不能版本化目錄,也不能跟蹤重命名。 CVS和RCS使用標準的diff(1)命令來創建差異。

Subversion(SVN)的工作原理類似,但增加了對目錄和重命名的版本控制。此外,SVN使用更好的差異算法(xdelta),它提供了一個更小的存儲庫。

有關Git如何工作的說明,請參閱here

0

Darcs是非常不同的,恕我直言比其他SCM更直觀,甚至分佈式的。 初學者對於它的工作原理有一個很好的指導:Understanding Darcs