Subversion版本控制
简介
SVN是一款版本控制软件。
可以管理文件、文件夹以及记录他们的修改情况。
将需要管理的源代码跟文档导入到版本库中,版本库类似于文件服务器。
通常用来管理软件开发源代码。
原理
两个用户从版本库中下载文件副本到本地。
如果两个用户修改的是版本库中不同文件或同一文件的不同地方,可以使用更新命令同步到版本库。
如果修改的是同一文件相同地方,则更新会失败,需要人工判断修改内容有效性,最后上传到版本库中。
访问
客户端访问服务器有四种方法
svnserve访问、svnserve+SSH访问、Apache间接访问、本地访问
svnserve访问
服务器启动svnserve服务,客户端可通过Subversion专用协议进行访问,特点简单、轻便、快。
svnserve+SSH访问
在svnserve服务基础上提供ssh加密传输,特点简单,快,安全。
Apache间接访问
可通过mod_dav_svn模块访问版本库,可直接通过浏览器访问版本库,特点复杂、安全、慢。
本地访问
不需要联网,对服务器直接进行操作,在实际工作中应用较少。
安装
yum -y install subversion #创建服务器版本库 mkdir /var/svn svnadmin create /var/svn/web_project svnadmin hotcopy /var/svn/web_project /var/svn/web_project_copy /* svnadmin命令可以创建服务器版本库 create 创建一个版本库 hotcopy 版本库热备 lslocks 大约所有的锁描述 */ #使用svn命令将本地web_code目录下的资料导入版本库中 #-m 选项为描述 svn import /var/web_code/ file:///var/svn/web_project/ -m "Initial DaTA" #列出版本库中的资料列表 svn list file:///var/svn/web_project/
认证与授权
#修改配置文件,定义认证与授权策略 cat /var/svn/web_project/conf/svnserve.conf [general] anon-access = none #拒绝匿名账户访问,可设置为none,read,write auth-access = write #通过认证的用户权限可写 password-db = passwd #指定用户名称与密码存放文件名,该文件在conf目录下 authz-db = authz #指定基于路径的访问控制文件名(可以对文件或目录设置权限) realm = My First Repository #设置版本库域,如果两个版本库的认证域相同,则他们使用相同的密码数据。 #查看passwd文件内容 cat /var/svn/web_project/conf/passwd [users] tom = 123456 #用户名为tom,密码为123456 tz = 123456 #查看authz文件内容 cat /var/svn/web_project/conf/authz [groups] admins = tom,tz #定义组,组成员有tom跟tz [/] #对版本库根路径设置权限 @admins = rw #admins组中的用户可读、可写权限 * = r #其他所有人可读权限
启动svnserve服务
svnserve -d /* -d 以守护进程方式运行svnserve,后台运行持续监听客户端访问 --listen-port=port 指定监听端口,默认为3690端口 -r /var/svn/ 发布个别版本库给用户 */
今天的学习是为了以后的工作更加的轻松!