l 什么是SVN?
再提SVN之前,不得先一下RCS以及CVS,它们三个都是版本控制系统,一个版本控制系统最基本的功能就是记录每次修改的地方,并且可以让使用者方便地存取各个版本、比较版本差异。更进一步的,是建立一个多人开发的环境,可以计录每个人的修改,解决版本冲突的问题。
三者之间的区别:
RCS(Revision Control System):是以个别档案为基础来进行版本控制。RCS 主要是偏个人使用的,没有像 CVS 有许多强大的功能,也不支持远程档案系统的存取。
CVS(Concurrent Versions System):它架构在 RCS 之上, 并且可以处理多个档案的送交。CVS是继RCS等传统的维护工具之后,新一代的程序开发与维护系统,现在网络上许许多多的 Open Source Project,几乎都是使用 CVS 来做版本控制的工具。
下面主要要说的就是SVN。
在目录版本控制中,在 CVS 中, 一个目录是没有版本历程的,也就是说如果你对一个目录进行了修改,这样新修改的档案提交到cvs系统,在修改成功的基础了,以前的目录也就是以前的档案就会遗失,也就是说无法再撤回到原点了。
但是SVN不一样,在 Subversion 中, 目录跟档案同样都是纳入版本控制之中. 也就是说, 我们可以随时要求 Subversion 将某个档案回复到某个时间点的状态, 也可以对目录进行更名的动作.
还有一个就是在多个档案进行提交的过程中, CVS 并不保证一次的送交是不可分割的. 也就是说, 如果我们同时对三个档案进行送交, 但是在第二个档案时发生意外状况 (例如档案有冲突, 或是网络断线), 此时 CVS 系统中会有送来的第一个档案的更动, 但是没有第二个与第三个的. CVS 系统里的档案就变成一个与我们预期不一致的状况!但是SVN的送交就没有上述的问题. 也就是说, 送交的结果, 不是全都进系统, 就是全都没有进系统, 不会只有一部份进系统的状况.
SVN工作模式
SVN的核心是配置库(Repository),工作模式, 是让各个工作的人取得工作副本(程序员从配置库拿到源代码,放在本地), 各自编辑后, 再于送交时进行合并. 工作模式如图:
工作模式分两种:
复制-修改-合并方案(Subversion默认的模式和锁定-修改-解锁方案(一段时间内只允许被一个人修改)
主要的功能
一个就是版本控制,另一个就是备份。(1)也就是说当你对于文件进行修改的时候,每修改一次就增加一次版本号,如果你觉得修改的哪一个更好,可以方便找回。(2)防止多人合作开发时修改一类文件导致文件覆盖或者被删除,也就是方便多人合作开发时使用。
初识到这里,学习仍在继续~