快看,虚拟机跟宿主机之间竟然可以使用SVN

作为程序员的我们,还是应该多做做尝试的。在写rabbitmq时由于在虚拟机操作,截图不好截,为了给大家呈现更好的效果,所以就给大家写一份宿主机跟虚拟机之间使用svn的操作流程。

本文主要围绕如下几个方面

  • 安装svn
  • 在宿主机连接虚拟机的svn
  • 使用钩子同步到web目录
  • 多项目使用svn
  • svn用户权限设置

本文实现环境

  • centos7.3
  • 所有操作均在虚拟机

svn操作

  • 本文主要围绕如下几个方面
  • 本文实现环境
  • 一、安装svn
  • 二、宿主机连接虚拟机的svn
  • 三、实现自动同步到web环境
  • 四、多项目使用svn
  • 五、用户权限设置

一、安装svn

执行命令:yum install subversion

执行svn --version查看版本号,检测是否安装成功
快看,虚拟机跟宿主机之间竟然可以使用SVN_第1张图片
创建版本库公共目录,在/var/下创建一个svn的目录mkdir /var/svn

当然这个可以自定义目录,看个人习惯
快看,虚拟机跟宿主机之间竟然可以使用SVN_第2张图片
接着来到var/svn目录下,创建一个版本库

执行命令svnadmin create /var/svn/kaka,此时你的svn目录下会存在一个blog的版本库(其余俩个文件不用管,是后边做svn管理多项目才会用到的)

快看,虚拟机跟宿主机之间竟然可以使用SVN_第3张图片
进入到kaka的版本库var/svn/kaka/conf可以看到三个文件

auth:控制权限的文件
passwd:控制密码的文件
svnserve.conf:为svn的配置信息
快看,虚拟机跟宿主机之间竟然可以使用SVN_第4张图片
修改svnserve.conf配置信息,红色圈的都改就行。

接下来设置密码,打开文件passwd
快看,虚拟机跟宿主机之间竟然可以使用SVN_第5张图片
快看,虚拟机跟宿主机之间竟然可以使用SVN_第6张图片
设置权限,这里就是角色后边跟上用户设置的用户名

然后将刚刚修改的passwdauthz文件移到跟版本库一个目录下,执行命令mv passwd authz /var/svn
快看,虚拟机跟宿主机之间竟然可以使用SVN_第7张图片
到这一步就完成了svn的安装和配置,接下来说明宿主机连接虚拟机的svn

二、宿主机连接虚拟机的svn

使用虚拟机的一定要注意ip地址
快看,虚拟机跟宿主机之间竟然可以使用SVN_第8张图片
宿主机先得需要有svn客户端,这个安装就不说了,next到底就ok。

开启svn服务,执行命令svnserve -d -r /var/svn/,并检测是否开启成功
在这里插入图片描述
宿主机开始连接,地址就是虚拟机的ip地址,账号密码就是admin 123456 即可
快看,虚拟机跟宿主机之间竟然可以使用SVN_第9张图片
此时文件就已经克隆到本地了
快看,虚拟机跟宿主机之间竟然可以使用SVN_第10张图片
测试上传文件也成功
快看,虚拟机跟宿主机之间竟然可以使用SVN_第11张图片
到这里我们就svn在宿主机连接并且提交文件到svn就成功了。

三、实现自动同步到web环境

由于是在虚拟机咔咔没有配置web目录,直接就在/usr/local/nginx/html

/var/svn/kaka/hooks下的post-commit.tmpl改为post-commit
快看,虚拟机跟宿主机之间竟然可以使用SVN_第12张图片
执行指令mv post-commit.tmpl post-commit并且权限给满
快看,虚拟机跟宿主机之间竟然可以使用SVN_第13张图片
修改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
~                          

快看,虚拟机跟宿主机之间竟然可以使用SVN_第14张图片
保存退出,我们在本地在提交一个新文件,新建456.txt文件提交
快看,虚拟机跟宿主机之间竟然可以使用SVN_第15张图片
来到web目录看有没有文件/usr/local/nginx/html

很是明显是没有这个文件的,别慌!
快看,虚拟机跟宿主机之间竟然可以使用SVN_第16张图片
/usr/local/nginx/html这个目录下在操作最后一步

执行指令:svn co --username admin --password 123456 svn://192.168.254.135/kaka,这个时候我们宿主机的文件就已经通过svn克隆到我们的虚拟机了。
快看,虚拟机跟宿主机之间竟然可以使用SVN_第17张图片
再到本地上传一次,看是否可以直接到虚拟机里。

经过测试已经很ok了。
快看,虚拟机跟宿主机之间竟然可以使用SVN_第18张图片

四、多项目使用svn

其实在上边的截图里都看到了我的版本库里存在一个blog的版本。

操作步骤跟kaka的版本库是一模一样的。只不过直接把blog/conf下的passwdauthz的文件直接删掉即可

也就是多个版本库使用同一个权限和账号密码
在这里插入图片描述
同时给kaka和blog上传一个258.txt
快看,虚拟机跟宿主机之间竟然可以使用SVN_第19张图片
快看,虚拟机跟宿主机之间竟然可以使用SVN_第20张图片
到这一步就把多项目使用同一个svn就搞定了。

五、用户权限设置

为什么需要设置这个用户权限区分。

例如你传代码到了svn,这时公司来了个新同事,他需要熟悉代码,但是他只可拉取代码不能提交代码。

这个时候就需要进行用户权限设置了。来整起

登录用户new
快看,虚拟机跟宿主机之间竟然可以使用SVN_第21张图片
这个时候只有r权限 没有w权限的new用户是提交不了文件的
快看,虚拟机跟宿主机之间竟然可以使用SVN_第22张图片
快看,虚拟机跟宿主机之间竟然可以使用SVN_第23张图片

你可能感兴趣的:(Git,svn)