1.SVN简介
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的

2.搭建前准备
服务器:centos7.2
环境:lnmp

3.安装svn以及基本配置

3.1 首先运行 yum install subversion 下载安装svn

yum install subversion 

接下来进入home 下创建一个svn目录 ,然后创建名为demo的svn版本库

cd home
mkdir svn
cd svn
svnadmin create /home/svn/demo
cd demo

然后在demo目录我们看见如下目录就代表你的svn版本库就建好了

接下来我们对svn进行配置
我们进入conf目录会发现有如下三个文件,他们分别是用户权限文件authz,用户密码文件passwd,svn配置文件svnserve.conf
首先我们对authz进行配置配置如下:

需要注意的是编辑的内容都要顶头写不要在前面留空格,其中r代表可读权限w代表可写权限
然后是配置passwd配置如下:

最后是配置svnserve.conf 配置如下:

一切配置完后运行

svnserve -d -r /home/svn  

开启svn服务,然后我们运行

netstat -ntlp

可以看到svn占用的端口为3690端口,如使用的阿里或者腾讯需要在安全组里添加这些端口

4.测试svn

接下来我们需要测试svn是否可用

4.1 下载svn客户端并安装

下载地址 https://tortoisesvn.net/downloads.html

这里有两个版本左边的为32位右边的为64位,童鞋们根据自己电脑版本自行下载,安装完 右击鼠标如看到如下所示代表安装成功,如没有请重启电脑,在右击鼠标就有了

其中 svn checkout 就是下载代码所用

4.2 测试

右击鼠标,点击svn checkout 然后填入项目地址 svn://196.192.1.12/demo (实际请填如自己的ip),然后输入自己设置的用户名和密码 即可

输入完后我们的电脑会出现一个名为demo 的文件夹打开文件夹 如有 .svn文件夹有代表下载成功了,如没有请把隐藏目录取消

接下来我们在demo文件夹中新建一个文件,并提交发现也能提交成功(svn commit 为提交代码 svn update 为更新代码)

5.创建钩子 使代码能够提交到web根目录

前面我们提交是把代码提交到svn版本库了,为了方便开发接下来我们要把代码同步到web根目录并使提交代码的时候能直接对web根目录的代码有所改变

5.1 配置
首先我们进入/home/svn/demo/hooks文件夹下,然后使用ll可以看见以下文件:

使用 cp post-commit.tmpl post-commit将post-commit-tmpl 复制一份

然后打开 vim post-commit 清空所有内容并加入以下配置

#!/bin/sh
export LANG =en_US.UTF-8
SVN=/usr/bin/svn
WEB=/home/wwwroot/default/demo
$SVN update $WEB --username 'xiaoyang'  --password '123456' --no-auth-cache

保存并退出 然后给一个775权限

chmod 775 post-commit

接下来我们进入网站根目录运行并运行

 svn co svn://196.192.1.12/demo

创建svn版本库与web根目录的关联,然后给post-commit一个775权限

chmod 775 post-commit

运行svn co svn://196.192.1.12/demo 然后依次会让你输入root账号 svn账号 svn密码
y确认 我们 ll 会发现在web根目录会有一个demo文件夹

这时使代码同步到web根目录的工作就完成了
5.2 测试
配置完后我们要测试下是否能够成功提交代码
首先我们在桌面的demo目录新件一个文件随便填入点东西 然后提交(新增文件svn不会默认选中需要自己选中)


然后我们服务器中进入demo目录会发下demo目录新增刚才我们创建的文件
运行cat demo.php 会发现文件的内容跟我们输入的也一样

以上就是svn的安装配置以及创建钩子同步web根目录全部内容

Last modification:September 6th, 2020 at 10:48 pm