前言
之前研究docker时有接触禅道管理系统和devops,虽然SVN和他们差着十万八千里,不过觉得他们的本质都一样,都是为了提高开发效率、提高开发质量的东东。
是什么
是一个自由开源的版本控制系统。简单疑点来说就是版本控制+备份服务器。
为什么
1.及时了解团队中其他成员的进度,进而把控自己的进度。
2.轻松比较不同版本之间的细微差别。
3.记录每个文件成长的每步细节,利于成果的复用。
4.资料共享避免以往靠邮件发送文件造成的版本混乱。
5.所有成员维护的实际是同一个版本库,无需专人维护所有文件的最新版本。
6.系统工作,提高工作效率。
怎么做
配置库:存储数据,任意数量的客户都可连接到配置库,读写这些文件,从而进行查看和修改。
工作副本:与配置库对应的每个人的工作空间,是每个程序员工作的地方,程序员可以从配置库中拿到源代码,放在本地作为工作副本,在工作副本上进行查看、修改、编译、运行和测试,并把新版本的代码从这里提交回配置库中。
关系:用户通过checkout读取工作副本,通过commit将工作副本上传到配置库中。
与CVS、VSS的关系
之前自考科目软件工程管理中有提到CVS,其实他和SVN差不多,只不过SVN比CVS功能更强大。
工作方式:
CVS(ConcurrentVersionSystem)上一代的版本控制软件,版本控制的方式主要是“合并--修改--提交”,也就是说当系统版本和当前用户的版本不一样的时候,服务器会要求通过合并服务和客户端的版本,生成一个新的版本。提示用户版本冲突,用户修改了对应版本之后,就可以进行相应的提交了。
VSS(VisualSourceSafe)微软出的一款版本控制软件,它主要方式是通过"锁定--修改--解锁--提交"的方式进行版本控制的。也就说当一个用户修改一个版本的文件时,锁定该文件,使其他用户不能够进行修改。只有当此用户解除锁定,并且提交文件以后,其他用户才可以进行文件的修改。
SVN是他们的综合,就是说具有以上两种的功能。我们看一下SVN和CVS、VSS三者的优缺点。
优缺点:
CVS:它工作方式,可以使多个用户并行工作。这样对于正在编写软件的项目团体有利。但是版本控制某个项目下的一些核心文件比较困难,假如团队中的每个人都写文件的权限。这样往往会不小心的让核心代码被修改。
VSS:工作方式决定它就是一个文件只能由一个用户修改。其优点可以锁定核心代码,缺点则是工作效率比较低。所以适合小团队进行开发。
SVN:两者的综合,取两家之长。还有它具有自己统一的客户端,在windows环境下,通过鼠标右键就可以进行操作,易用性明显强于前面两者。