版本管理系统Subversion(SVN)



版本管理系统Subversion

CvsSvnGit都是版本管理系统

基本概念:

版本库(Repository):Subersion是一种集中式的分享信息的系统,它的核心是版本库。

版本模型:版本控制兄台那个的核心任务是提供协作编辑和数据共享,但是不同的兄台那个使用不同的策略来达到目的。

文件共享问题

1.锁定-修改-解锁  (存在问题)

2.拷贝-修改-合并  (SubversionCVS版本系统就是采用这种方案)

备注:尽管cvssubversion一直主要是采用拷贝-修改-合并方案,但是它们也提供了锁定机制。

工作拷贝检出check out

版本url:

file:// 直接版本库访问(本地磁盘)

http:// 通过配置SubversionApache服务器的web协议访问

https:// http://相似,但是包括SSL加密

svn:// 通过svnserve服务自定义的协议访问

提交(commit):提交 checking in

更新(update):

修订版本(revision):

工作拷贝如何追踪版本库:对于工作拷贝的每一个文件,Subversion在管理区域.svn记录两项关键信息:

1.工作文件所作为基准的修订版本(文件的工作修订版本)

2.一个本地拷贝最后更新的时间戳

未修改且是当前的:文件在工作目录里没有修改,在工作修订版本之后没有修改提交到版本库。svn commit操作不做任何事情,svn update不做任何事情。

本地已修改且是当前的:在工作目录已经修改,从工作修订版本之后没有修改提交到版本库。本地修改没有提交,因此svn commit会提交成功,svn update 不做任何事情。

未修改且不是当前的了:这个文件在工作目录没有修改,但是在版本库中已经修改了。这个文件最终将更新到最新版本,成为当时的公共修订版本。Svn commit不做任何事情,svn update 将会取得最新的版本到工作拷贝。

本地已修改且不失最新的:这个文件在工作目录和版本库都得到修改。一个svn commit将会失败,这个文件必须首先更新,svn update命令会合并公共和本地修改,如果Subversion不可以自动完成,将会让用户解决冲突。

svn status命令可以告诉你工作拷贝文件的状态。

 

Subversion官网:http://subversion.apache.org/ 已经在apache了。

SubversionCVS一样,也是很典型的C/S系统(客户端/服务器),所以在使用之前我们需要下载相应的服务器端和客户端软件。

 

 

Subversion服务器安装,推荐安装最新版本1.8.10(傻瓜安装)

Subversion服务器安装完成之后,会默认在path环境变量中加入安装的bin目录。如果没有那么我们可以自己手动加入:例如增加D:\Subversion\install\binpath变量上。

注意:当修改了环境变量后一定要重新打开一个新的命令行窗口,修改才生效。

注意:SVN的命令是基于命令行的,所以我们不能直接双击bin目录下的命令来操作它们,我们需要到命令行窗口去执行它们。

SVN的服务器软件同样包含了客户端执行的一些命令,我们呢可以利用这些命令来完成我们的日常的版本控制管理工作。

首先我们要在服务器端建立仓库(repository)

常用Subversion命令

命令行窗口输入 svn 测试安装是否成功。svn help 查看帮助命令。

命令行创建仓库命令:svnadmin create 具体路径下的仓库名

命令行启动服务器命令:svnserve -d -r 具体路径下的仓库名

-d表示后台模式 -r指定服务器的仓库路径

importcheck out操作

命令行导入我们自己创建的项目:svn import svn://IP地址

命令行check out(检出)仓库的项目:svn check out svn://localhost/项目名称

commitupdate操作

命令行提交我们修改后的文件:svn commit 文件

update操作:注意update不是对服务器进行写操作,而是从服务器取文件,即读操作。

命令行update我们需要的文件:svn update 文件

备注:以上importcheck out commitupdate四个操作都是需要到对应的目录下操作

清除锁定命令:svn cleanup

查看svn帮助命令 svn help   

查看具体某个命令的帮助 svn help xxx。例如查看import具体详解 svn help import .

或这种格式svn import --help  注意是两个-(--)

 

高级操作:

在服务器端为客户端分配登入账号和密码:

在仓库下的conf下的svnserve.confpasswd配置。

anon-access=noneanon-access=readanon-access=write(匿名用户的访问权限)

password-db = passwd(开启用户登入)

 

TortoiseSVN:SVN客户端软件

实际上TortoiseSVN是对Windows操作系统的文件夹增加的一个外壳,方便大家使用鼠标右键点击时就会出现TortoiseSVN的操作快捷方式。

 

SVNApache整合的时候要注意版本匹配的问题。

 

Eclipse安装SVN插件方法:

1.在线安装:最准确但是可能会受网络影响比较慢

2.link安装:最为推荐,方便安装和卸载插件。最推荐

i. 建立一个.link文件里面存放path=插件路径  注意分隔符为/,不是\

ii. 插件路径下存放的是zip解压后的文件

3.使用zip压缩包离线安装,和第一种方式类似。推荐使用

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(版本管理系统)