1、版本控制发展史
- 本地:在本地采用某种简单的数据库来记录文件的更改差异,不支持多人协作
- 集中式:通过单一的集中管理的服务器,保存所有文件的修订版本,支持多人协作
- 分布式:客户端并不是提取最新版本的文件快照 ,而是把原始的代码仓库完整地镜像下来。任何一处协同工作的服务器发生故障,可以用任何一个镜像出来的本地仓库进行恢复。
2、常用的版本控制系统
分类 | 版本控制系统 | 说明 |
集中式 | vss | VSS 的全称为 Visual Source Safe ,微软的版本控制系统。 |
cvs | 最早的开源、免费的CVCS,设计上有缺陷。 | |
svn | SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。 | |
分布式 | git | Git是一款免费、开源的分布式版本控制系统。Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 |
Mercurial | Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。 | |
Darcs | Darcs 是新一代轻量级分布式版本控制系统. 完全使用Haskell编写而成 |
3、SVN术语
- Repository:资源库,它是SVN的核心,运行于服务端,存储所有文件及其历史变化。
- Workspace:工作副本,运行于客户端,它是用户的工作空间。从Repository检出的文件都放在Workspace中。
- Tags:标签,它是只读的,用于对项目的特殊版本进行标记。比如一个release(发布的版本)
- Branches:分支,它是主版本的分支,可有多个,比如在trunk中发现严重的bug,或者想在项目中使用某种新技术,都可以在分支中进行。
- Trunk:主干,存放项目的主版本或者正在开发中的代码。
4、SVN服务器的搭建
- Subverion的体系结构:
- SVN服务端下载地址:http://subversion.apache.org/packages.html,根据自己的OS操作平台下载相应的平台进行安装就可以了
- SVN服务端配置环境变量:一般安装完SVN,系统变量中的PATH里就自动添加了
- SVN服务端配置分三步:(1)创建资源库:svnadmin create 本地路径/服务器路径(2)修改SVN配置文件:conf-svnserve.conf/passwd(3)启动SVN服务:svnserve -d -r 本地路径/服务器路径,SVN服务设为自动启动的命令:sc create MySVNServer binpath= ""C:Program FilesSubversionsvnservesvnserve" --service -r H:homerepos" displayname= "SVNService" depend= Tcpip start= auto pause
- SVN客户端的安装:http://subversion.apache.org/packages.html,根据自己的OS操作平台下载相应的平台进行安装就可以了