检查是否安装svn
svn --version 看看,既能确定是否安装,又能确定版本多少
安装 svn
yum -y install subversion
创建仓库存放目录
mkdir -p /opt/svn/Warehouse #Warehouse 仓库目录名称
创建仓库
svnadmin create /opt/svn/Warehouse
svn 文件夹设置 所属用户组/用户
chown -R svn:svn /opt/svn/
仓库权限 ( 这个地方的是指 svn/conf/ 的 总配置文件,可以单独设置单个仓库的,语法一样)
vi svnserve.conf [general] anon-access=none #不允许匿名用户访问 auth-access=write #通过验证的用户可以读和写 password-db=passwd #用户密码管理文件 authz-db=authz #用户权限管理文件 realm=/opt/svn/Warehouse #仓库地址
添加 svn 用户
vi authz
[/]
zw=rw #用户名=读写
设置 svn 用户密码
vi passwd
zw=123 #用户名=密码
启动 Warehouse仓库 ( 端口默认:3690 )
svnserve -dr /var/svn/Warehouse # /var/svn/Warehouse 仓库地址
svnserve -dr /var/svn/m --listen-port 3691 # 指定端口
查看是否启动
pstree | greg svn
查看启动端口
netstat -tunpl | grep svn
检出仓库(切换到想要检出到的目录,例如 cd /home/www/)
svn co svn://121.199.5.128 ./ # ./ 检出到当前目录
# 按照要求输入 账号密码
客户端提交自动更新服务端文件
1)cd /var/svn/m/hooks # 切换到你仓库的 hooks 文件下 2)cp post-commit.tmpl post-commit # 改成一个脚本 3)chomd a+x post-commit # 赋予权限 4)vi post-commit export LANG=en_US.UTF-8 #svn up --non-interactive --username zw --password 123 ‘/usr/local/src/web/m‘ svn up --non-interactive --username 登录仓库用户名 --password 登录仓库密码 ‘仓库绝对路径‘
设置用户权限(登录终端用户)
自动在应用下生成文件或目录,所以 用户 要对 yzmedu 和 仓库 目录有充分的权限
setfacl -m u:daemon:rwx -R /usr/local/src/web/yzmedu
setfacl -m d:u:daemon:rwx -R /usr/local/src/web/yzmedu
开放svn 端口
设置 iptables 防火墙,把 3690 和 3691 端口打开
iptables -A INPUT -p tcp --dport 3690 -j ACCEPT
iptables -A INPUT -p tcp --dport 3691 -j ACCEPT
设置 svnserve 两个仓库程序在 linux 服务器重启后开机启动
vi /etc/rc.local
/usr/bin/svnserve -dr /var/svn/yzmedu
/usr/bin/svnserve -dr /var/svn/m --listen-port 3691
在 window 上用 TortoiseSVN 进行分别检出即可
1)svn://121.199.5.128
2)svn://121.199.5.128:3691
出现问题
1) linux web 服务器下检出的目录下有.svn 目录,不能删除!
2) 网站目录 yzmedu 和 m 一定要设置 daemon 有足够的权限!
3) 不需要设置 svn 用户 zw 对网站目录的权限,因为 svn 的守护者为 root!
相关说明
SVN的svnserve对于每个仓库,有一个独立的配置文件和独立的用户、权限管理。
可以保持配置文件svnserve.conf的独立,但是用户、权限管理是用统一的一个文件来存储,这样方便以后的管理和维护。
另外要注意,即使svnserve服务已经运行,修改配置文件或者用户、权限管理文件,保存后马上生效,不需要重启服务。
原文地址:https://www.cnblogs.com/xuey/p/9301018.html