❝
作为程序员的我们,还是应该多做做尝试的。在写rabbitmq时由于在虚拟机操作,截图不好截,为了给大家呈现更好的效果,所以就给大家写一份宿主机跟虚拟机之间使用svn的操作流程。
❞
本文主要围绕如下几个方面
- 安装svn
- 在宿主机连接虚拟机的svn
- 使用钩子同步到web目录
- 多项目使用svn
- svn用户权限设置
本文实现环境
- centos7.3
- 所有操作均在虚拟机
一、安装svn
执行命令:yum install subversion
执行svn --version查看版本号,检测是否安装成功
创建版本库公共目录,在/var/下创建一个svn的目录mkdir /var/svn
当然这个可以自定义目录,看个人习惯
接着来到var/svn目录下,创建一个版本库
执行命令svnadmin create /var/svn/kaka,此时你的svn目录下会存在一个blog的版本库(其余俩个文件不用管,是后边做svn管理多项目才会用到的)

kaka的版本库var/svn/kaka/conf可以看到三个文件
auth:控制权限的文件 passwd:控制密码的文件 svnserve.conf:为svn的配置信息 

passwd 


passwd和authz文件移到跟版本库一个目录下,执行命令mv passwd authz /var/svn 
二、宿主机连接虚拟机的svn
使用虚拟机的一定要注意ip地址 
开启svn服务,执行命令svnserve -d -r /var/svn/,并检测是否开启成功 



三、实现自动同步到web环境
由于是在虚拟机咔咔没有配置web目录,直接就在/usr/local/nginx/html下
将/var/svn/kaka/hooks下的post-commit.tmpl改为post-commit 
mv post-commit.tmpl post-commit并且权限给满 
post-commit文件里边的内容,但是打开文件后就是一堆注释,咔咔提示一个指令将这些全部删掉
执行100 dd即可,就是删除100行的意思 
#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
export LANG='zh_CN.UTF-8'
SVN_PATH=/usr/bin/svn WEB_PATH=/usr/local/nginx/html/kaka/ LOG_PATH=/tmp/svn_update.log $SVN_PATH update $WEB_PATH ~


/usr/local/nginx/html。
很是明显是没有这个文件的,别慌! 
/usr/local/nginx/html这个目录下在操作最后一步
执行指令:svn co --username admin --password 123456 svn://192.168.254.135/kaka,这个时候我们宿主机的文件就已经通过svn克隆到我们的虚拟机了。 
经过测试已经很ok了。
四、多项目使用svn
其实在上边的截图里都看到了我的版本库里存在一个blog的版本。
操作步骤跟kaka的版本库是一模一样的。只不过直接把blog/conf下的passwd和authz的文件直接删掉即可
也就是多个版本库使用同一个权限和账号密码 


五、用户权限设置
为什么需要设置这个用户权限区分。
例如你传代码到了svn,这时公司来了个新同事,他需要熟悉代码,但是他只可拉取代码不能提交代码。
这个时候就需要进行用户权限设置了。来整起
登录用户new 


