使用的是阿里云服务器,Linux 版本 centos7.2。
一、Linux 安装 SVN,步骤如下:
1、yum install subversion
2、输入 rpm -ql subversion 查看安装位置,如下图:
3、创建svn版本库目录
mkdir -p /var/svn/svnrepos
4、创建版本库
svnadmin create /var/svn/svnrepos
执行了这个命令之后会在 /var/svn/svnrepos 目录下生成如下这些文件
5、进入 conf 目录(该svn版本库配置文件)
authz 文件是权限控制文件
passwd 是帐号密码文件
svnserve.conf SVN 服务配置文件
6、设置帐号密码
vi passwd
在 [users] 块中添加用户和密码,格式:帐号=密码,如 test=test
7、设置权限
vi authz
在末尾添加如下代码:
[/]
test=rw
意思是版本库的根目录 test 用户对其有读写权限
8、修改 svnserve.conf 文件
vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录
9、启动svn版本库
svnserve -d -r /var/svn/svnrepos
二、win7 系统下连接 SVN
1、安装 SVN 客户端,下载地址:
https://tortoisesvn.net/downloads.html
2、Linux 服务器防火墙开启 3690 端口(SVN 默认端口),阿里云还需设置安全组
添加
firewall-cmd --zone=public --add-port=3690/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
3、桌面右击选择,SVN Checkout...
在第一栏中输入服务段地址:svn:// ip :3690 /svnrepos(IP 地址加端口号+仓库目录)
第二栏填的是运行出来到本地的目录
选择 OK 之后填入用户名、密码即可
三、 部署项目到 SVN 上,实现本地更新同步到服务器 项目
1、 首先在 win 客户端的tortoiseSVN先建立好项目文件目录,比如 resume
2、进入 SVN 项目仓库钩子所在的目录:
cd /var/svn/svnrepos/hooks/
然后复制备份 post-commit 文件:
cp post-commit.tmpl post-commit
3、假设我的服务器项目文件放在 /var/www/html/
为了能够让SVN仓库同步将项目更新过来,那么首先需要从仓库checkout出项目到该目录下面,
分别执行 shell 命令:
cd /var/www/html
svn co svn://localhost/svnrepos/resume --username test --password test
此时在 html 目录下你将会看到你 checkout 出来的项目了,接下来要开始写触发脚本,实现在win本地上传更新你的项目文件的同时,同步更新仓库内的文件。
在 /var/svn/svnrepos/hooks 目录下打开 post-commit 文件,屏蔽里面所有的未屏蔽代码,在文件最后写入:
export LANG=zh_CN.UTF-8 (设置编码,防止报错)
/usr/bin/svn update --username test --password test /var/www/html/resume(同步更新)
(若出现:post-commit错误代码255,应该是脚本权限不对,赋予777权限即可)