svn 学习笔记(一)
简介
subversion(简称svn)是近年来崛起的版本管理软件系统,是 cvs 的接班人。目前,绝大多数开源软件都使用 svn 作为代码版本管理软件。
Subversion是一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversion。
Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。因为修改不再是单线进行(单线进行也就是必须一个一个进行),开发进度会进展迅速。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果出现不正确的更改,只要撤销那一次更改操作即可。某些版本控制系统本身也是软件配置管理系统(SCM),这种系统经过精巧的设计,专门用来管理源代码树,并且具备许多与软件开发有关的特性—比如,对编程语言的持,或者提供程序构建工具。不过Subversion并不是这样的系统。它是一个通用系统,可以管理任何类型的文件集。
库和工作副本
![](http://images0.cnblogs.com/i/548432/201407/211730017136334.png)
SVN 的核心是配置库,储存所有的数据,配置库按照文件树形式储存数据-包括文件和目录,任意数量的客户端可以连接到配置库,读写这些文件。通过写数据,别人可以看到这些信息;通过读数据,可以看到别人的修改。最特别的是 Subversion 会记录配置库中的每一次更改,不仅针对文件也包括目录本身,包括增加、删除和重新组织文件和目录.
库: 库是svn的核心.所有的更改都会记录在库中.
工作副本: 与位于中央配置库相对应的是每个人的工作空间,它是每个程序员工作的地方,程序员从配置库拿到源代码,放在本地作为工作副本,在工作副本上进行查看、修改、编译、运行、测试等操作,并把新版本的代码从这里提交回配置库库中。
![](http://images0.cnblogs.com/i/548432/201407/211735554635928.png)
subversion的工作原理简化为上图.
subversion的工作模式
- 复制-修改-合并方案 :Subversion 默认的模式 ,在这种模型里,每一个客户读取项目配置库建立一个私有 工作副本 ——版本库中文件和目录的本地映射。
用户并行工作,修改各自的工作副本,最终,各个私有的复制合并在一起,成为最终的版本,这种系统通常可以辅助合并操作,但是最终要
靠人工去确定正误。
- 锁定-修改-解锁方案:在这样的模型里,在一个时间段里配置库的一个文件只允许被一个人修改。 此模式不适合软件开发这种工作。
ok,那么关于svn的初步简介就到这儿.