Answers:
这意味着当您对版本控制系统进行提交时,您想要提交的所有内容都会进入,或者什么都不会做。
在CVS中,当您尝试提交时,有可能在多个文件上成功提交,然后在其他几个文件上失败(因为它们已更改)。这将使存储库处于不幸的状态,因为一半的提交不存在,并且很可能您已将事物置于无法编译或更糟的状态。现在,您必须加快速度并整合所有更改,以便可以在其他人需要更新并获取破损的更改集之前提交其他文件。
在SVN中,这不会发生-SVN要么提交您所做的更改,要么会使整个更改集失败。因此,您永远不会由于提交问题而使存储库处于损坏状态。
例如,在再见CVS中对此进行了解释。我被安迪·莱斯特(Andy Lester)撰写的颠覆文章:
如果我尝试在Subversion中提交,但是其中一个文件有冲突或已过期,则不会提交任何文件。在CVS中,您必须立即修复一半提交的文件。
CVS迫使程序员立即修复合并的事实会适得其反。相比之下,延迟/取消/仔细合并更改的选项是一个很大的好处。
上一篇文章中解释了SVN相对于CVS的其他好处:
您所做的所有操作的本地版本
如果要使用diff,则必须能够连接到存储库。没有网络连接,没有差异。Subversion存储您正在处理的本地原始副本,因此svn diff可以正常工作。想重新开始吗?svn revert也可以不连接。修订的符号名称
HEAD是CVS中主干的尖端的名称,但是我一直希望能够说出“ -r-1”,就像我在PVCS时代回过头来一样。使用CVS,我必须在要编辑的内容上进行cvs日志记录,然后减去一个。没意思 使用Subversion,我可以说svn diff -r PREV。真实状态报告
在CVS中,查看服务器上是否有更新的唯一方法是cvs更新,并希望发生的任何情况都不会引起任何冲突。使用svn status命令,我可以获得真实状态,因此可以在进行更新之前查看是否存在冲突。有用的合并冲突处理
在CVS中,如果存在冲突,则文件中会出现冲突标记。在Subversion中,您将获得冲突标记,加上原始的,冲突前的文件的副本,再加上从服务器下载的版本,再加上最初编辑的版本。然后,您必须显式地使用svn resolve filename.txt来告诉Subversion您已解决了该问题。不再有冲突标记仍会继续提交到CVS。