一、准备工作
环境准备:服务器一台:192.168.1.116
subversion-1.6.1.tar.gz
subversion-deps-1.6.1.tar.gz
包下载地址:4ajb
将安装包上传到服务器:
安装依赖包:
yum install gcc openssl openssl-devel expat -y
二、安装
解压两个源码包
tar xzvf subversion-1.6.1.tar.gz
tar xzvf subversion-deps-1.6.1.tar.gz
cd subversion-1.6.0
./configure --prefix=/usr/local/svn/
若出现以下错误忽略
configure: WARNING: we have configured without BDB filesystem support
make -j4
make install
安装成功
进入SVN目录
cd /usr/local/svn && ls
bin build-1 include lib share
查看SVN版本
[root@postfix svn]# bin/svnserve --version
svnserve,版本 1.6.0 (r36650)
编译于 Apr 7 2020,13:28:05
版权所有 (C) 2000-2009 CollabNet。
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。
下列版本库后端(FS) 模块可用:
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。
将SVN添加到环境变量中: export PATH="$PATH:/usr/local/svn/bin"
vim /etc/profile
export PATH="$PATH:/usr/local/svn/bin"
刷新权限
source /etc/profile
三、建立一个测试仓库
mkdir -p /data/svn/svntest
svnadmin create /data/svn/svntest/
修改配置文件
cd /data/svn/svntest/conf
vim svnserver.conf
#将下面语句去掉注销并修改, 保存退出
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = passwd
authz-db = authz # 访问控制文件
vim psswd
#新增test用户,密码test
[users]
# harry = harryssecret
# sally = sallyssecret
test = test
vim authz
指定SVN用户拥有的目录权限
[/]
test = rw
* =
运行SVN, 如果3690端口被占用, 后面可以加上 --listen-port 3391
svnserve -d -r /data/svn
[root@postfix conf]# svnserve -d -r /data/svn/
[root@postfix conf]# lsof -i:3690
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
svnserve 79507 root 3u IPv4 62570 0t0 TCP *:svn (LISTEN)
四、Windows安装TortoiseSVN
地址: https://tortoisesvn.net/downloads.html
选择适合自己的版本,楼主选择的是1.10.5-64
本地安装TortoiseSVN软件,选择对应的安装目录,
右击SVN检出, 输入版本库URL,点击确定
输入之前的设置账户和密码
五、 SVN钩子(hooks)自动部署代码到web目录
切换到SVN中hooks目录
/data/svn/svntest/hooks
cp post-commit.tmpl post-commit
修改文件,添加内容
#!/bin/sh
export LANG=en_US.UTF-8
/usr/local/svn/bin/svn update /usr/local/nginx/html --username test --password test
# POST-COMMIT HOOK
给post-commit 加上执行权限
chmod +x post-commit
svn checkout svn://192.168.1.116/svntest /usr/share/nginx/html --username=test --password=test
[root@postfix html]# svn checkout svn://192.168.1.116/svntest /usr/share/nginx/html --username=test --password=test
-----------------------------------------------------------------------
注意! 你的密码,对于认证域:
<svn://192.168.1.116:3690> 2ef4f42c-7893-11ea-95fa-a9ab807487e3
只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。
你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?y
请输入 'yes' 或 'no': yes
取出版本 0。
在同步的目录新建一个ddd.txt的文件,然后写入内容
右键点击提交(SVN Commit)可能会报下面图片错误
在post-commit的配置中注释掉这一行,然后再次右键提交
服务器进入 /usr/local/nginx/html 也就是前面post-commit的配置