安装svn&提交svn后同步到根目录

1.安装svn以及新建svn项目

yum -y install subversion

此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行

若需查看svn安装位置,可以用以下命令:

rpm -ql subversion

2.创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)

mkdir /var/svn/svnrepos

3.创建svn版本库

svnadmin create /var/svn/svnrepos/xxxx   (xxxx为你预期的版本库名称,可自定义)

创建成功后,进入xxx目录下

cd /var/svn/svnrepos/xxxx

进入目录,可以看到如下文件信息

安装svn&提交svn后同步到根目录

4.修改配置,设置svn账号以及密码

cd /var/svn/svnrepos/xxxx/conf

conf目录下,一共存放三份重要的配置文件,如下:

安装svn&提交svn后同步到根目录

authz:负责账号权限的管理,控制账号是否读写权限

passwd:负责账号和密码的用户名单管理

svnserve.conf:svn服务器配置文件

5.修改文件内容

vi authz

安装svn&提交svn后同步到根目录

这个是设置账号的权限 r-读 / w-写

vim passwd

账号密码文件无需做修改,也是直接将账号和密码信息追加到文件中即可,注意格式为:

 安装svn&提交svn后同步到根目录

这个是设置账号对应的密码

修改svnserve.conf(##重要)

vim svnserver.conf

安装svn&提交svn后同步到根目录

大多数网络资料,都会让大家将authz-db = authz这条给去掉注释,但是也有人说此条去掉后,虽然svn服务器可以连接,但一直会提示“认证失败”,注释掉即可正常,我没有去掉,svn能运行成功。

还有多数资料会让大家在realm = My First Repository处填写服务器ip,经过测试,填写后并无什么用处,所以大家去掉注释即可,无需做任何修改

到此,配置已经全部完成,账号信息已经添加成功。

我的是阿里云主机,svn对应的端口号是默认的3690,还需要在控制台安全组开启这个端口才能访问成功。

下面是设置svn上传代码到仓库之后自动同步到云主机访问根目录

svn版本库中的一个项目:/var/svn/svnrepos/tp5

网站根目录:/home/www/tp5

我们先将SVN版本库中的一个项目checkout到网站目录:

svn co svn://127.0.0.1/tp5 --username root --password 123456

新建svn post-commit钩子

cd /var/svn/svnrepos/tp5/hooks
mv post-commit.tmpl post-commit

//一定要清空post-commit里面的内容,已经赋予权限,不然同步代码会报错

chmod +x post-commit

chmod 755 post-commit

vim post-commit
#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
#设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK
export LANG=en_US.utf8
svn update  /home/www/tp5 --username 'root' --password '123456' --no-auth-cache 

--no-auth-cache //设置不缓存账号

------至此第一次完成搭建svn以及同步代码------