引入
- 为什么使用版本控制工具
- ①、 协同合作
- 多人并行不悖的修改服务器中的同一个文件。
- ②、数据备份
- 如果本地文件发生丢失可以从服务器端进行恢复。
- ③、增量式的版本管理
- 服务器端保存每一个版本信息时只保存有修改的局部内容,节约服务器端资源 。
- ④、权限控制
- 对团队参与开发的人员进行权限控制。
- ⑤、历史记录
- 查看修改人、修改时间、修改内容、日志信息。
- 将本地文件恢复到某一个历史状态 。
- ①、 协同合作
1、卸载SVN服务
yum remove -y subversion
2、安装SVN服务器
- 打开安装好的CentOS系统的虚拟机,如果不会安装CentOS系统的,可以参考我上一篇文章,CentOS在VM12上的安装,打开终端,输入命令。
- 在输入命令之前,确保已经联网,可以访问外网。
yum install -y subversion
- 测试安装是否成功
查看版本信息:svn --version
查看安装位置:rpm -ql subversion
3、创建并配置版本库
- ①、创建版本库根目录
mkdir -p /var/svn/repository
- ②、在版本库根目录中创建具体项目目录
mkdir pro_e3mall
- ③、创建SVN版本库
svnadmin create /var/svn/repository/pro_e3mall
- ④、修改svnserve.conf文件,解除下面一行注释(注意一定要顶格),修改如下,开启匿名用户可读可写权限(测试用),关于此文件真正的配置等到下面讲解
- ⑤、编辑svn服务对应可执行脚本文件
进入脚本文件所在目录:cd /etc/rc.d/init.d/
编辑前先复制一份:cp svnserve svnserve.bak
编辑文件:vi svnserve
在该行中间插入--root /var/svn/repository 可以指定svn版本库根目录的路径,在连接的时候只需要输入具体项目名即可,默认端口号为3690,默认就好
也可修改端口号,先判断某个端口是否正在被占用:netstat -anp | grep :2255
在改行中间插入 --root /var/svn/repository --listen-port 2255 此时端口号为2255:
4、开启SVN服务
- ①、开放对外访问端口3690
/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/init.d/iptables save
service iptables restart
- ②、设置SVN服务开机自启
查看svn服务是否开机自启:chkconfig | grep svn
设置svn服务开机自启:chkconfig svnserve on
关闭svn服务开机自启:chkconfig svnserve off
- ③、开启SVN服务
查看svn服务状态,默认关闭:service svnserve status
开启svnserve服务:service svnserve start
关闭svn服务:service svnserve stop
查看某个端口是否被占用:netstat -anp | grep :3690
查看svn服务进程信息:ps -ef | grep svnserve | grep -v grep
- 出现如下画面表示svn已开启
5、验证
- ①、先在电脑安装一个SVN图形化客户端,这个是傻瓜式安装,只需要修改安装目录即可。
- TortoiseSVN下载地址
提取码:ed3o
- ②、安装完毕后,右键点击桌面在选项菜单中TortoiseSVN代表安装成功。
- ③、点击SVN Ckeckout,检出项目,从服务端把项目全部拉取到本地工作空间。
- ④、此时在桌面生成test文件夹。
- ⑤、在test文件夹新建一个test.txt文件,随便编辑一点内容,右击空白区域,点击SVN Commit。
- ⑥、提交成功,可以在SVN服务器中看到提交的文件代表SVN服务器的基本搭建已完成,接来下只要进行权限的配置即可。
命令:svn list svn://192.168.25.129/pro_e3mall
6、分配用户与用户权限配置
- 进入具体项目版本库/conf目录,配置账号密码和权限
- ①、分配账号密码,编辑passwd文件
vi passwd
- 进入文件后,按i键入插入模式
- 修改passwd文件,按Esc键可以进入命令行模式,此时输入:wq,按回车键就可以保存退出文件
- ②、配置用户权限,编辑authz文件
vi authz
- 进入文件后,按i键入插入模式
- 修改authz文件,在文件末尾加入以下内容,表示给账号赋予读写权限,保存退出
-
[groups] #用户组 = 用户,用户 kaifa = ll,jack [/] #用户组名 = 权限值(rw) @kaifa = rw #用户名 = 权限值 rose = r #除了上面已经授权的用户以外其他用户没有权限 \* =
- ③、配置svnserve.conf文件
- 解除以下几行的注解即可,修改匿名访问 = none。
- 解除以下几行的注解即可,修改匿名访问 = none。
- ④、配置完三个文件后,需要重启服务,使配置生效
service svnserve restart
- ⑤、测试权限配置,同样如上面的测试方法一样,使用ortoiseSVN测试
- ⑤-1、右键点击桌面在选项菜单中选择SVN Checkout。
- ⑤-2、点击SVN Ckeckout,检出项目,从服务端把项目全部拉取到本地工作空间。先使用rose登录,测试只读权限
- ⑤-3、此时桌面出现test文件夹,在里面新建一个hello.txt文件,提交到svn服务器,如果提交失败,则代表rose确实只具备只读权限。
- ⑤-4、删除桌面的test文件夹,重新执行第1、2两个步骤,在第二步使用jack登录,测试该组的用户具备读写权限。
- ⑤-5、清除前面保存的用户认证,不然下次检出项目时还时默认已该用户检出,所以需要清除。
- 右键->TortoiseSVN->Settings
- Saved Data->clear…->勾选要清除认证的用户
- 右键->TortoiseSVN->Settings
- ⑤-6、此时桌面出现test文件夹,在里面新建一个hello.txt文件,提交到svn服务器,如果提交成功,则代表改组用户确实具备读写权限,至此权限分配配置成功。
- ⑤-1、右键点击桌面在选项菜单中选择SVN Checkout。
!!!注意
- 此教程中的所有ip地址均为本人的,在搭建的时候需要改成自己的。
查看虚拟机ip地址:ifconfig