1.检查系统有没有安装svn
svn --version
2.如果没有安装采取安装svn
yum install subversion
3.创建版本库
mkdir /var/www/svn
svnadmin create /var/www/svn/demo
4.配置版本库(conf文件夹)
1)svnserve.conf配置
[general]
#匿名访问的权限 可以是read write none 默认为read
anon-access = read
#使授权用户有写入权限
auth-access = write
#用户密码数据库路径
password-db = passwd
#访问控制权限
authz-db = authz
#认证命名空间 subversion会在认证提示里显示 并且作为凭证缓存关键字
realm=/opt/svn/repositories
2)配置passwd文件(主要内容是用户+用户密码)
[users]
admin=123456
3)权限控制authz配置
[groups]
#指定用户组内用户名
#harry_and_sally = harry,sally
#harry_sally_and_joe = harry,sally,&joe
admin=admin
#设置权限
[demo:/]
# harry = rw
# &joe = r
# * =
#指定用户
admin=rw
#指定组
@admin=rw
#指向根目录
# [/]
#指向文件夹
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
5.开启版本库
注意我们在authz配置项中指向的是[demo:/] 所以开启服务要指向它上一层
svnserve -d -r /var/www/svn
如果authz配置项中指向的是[/]
svnserve -d -r /var/www/svn/demo
6.查看进程
netstat -aptn
默认端口是:3690
7.shell脚本方式设置开机启动svn服务
1)修改 /etc/rc.d/rc.local 确认文件的执行权限
chmod +x /etc/rc.d/rc.local
2)创建shell脚本 设置svn开机启动
vim /var/www/auto_run.sh
3)内容如下
#!/bin/bash
/usr/bin/svnserve -d -r /var/www/svn
4)保存退出后,再给它赋予可执行权限:
chmod +x auto_run.sh
5)将脚本添加到 /etc/rc.d/rc.local 文件最后一行
/var/www/auto_run.sh
6)重启系统就可以看到开机启动svn了
reboot
8.windows本地检出
svn checkout svn://192.168.56.101/demo
输入用户名密码即可
9.windows图形软件
TortoiseSVN
10.在hooks文件夹下复制post-commit文件 复制内容如下(相当于执行shell脚本)
#!/bin/sh
export LANG=zh_CN.utf-8
#REPOS="$1"
#REV="$2"
SVN=/usr/bin/svn #你svn脚本所在的目录
WEB=/var/www/html #你更新到web项目的位置
$SVN update $WEB --username admin --password 123456
11.给post-commit脚本赋予权限
chmod 777 post-commit
chmod +x post-commit
12.在你的服务器web项目下面checkout一次(重要)
svn checkout svn://192.168.56.101/demo /var/www/html
13.在本地上传一个文件会发现web项目已经更新了这个文件
14.清除账号密码
linux下 清除svn保存的账号密码信息
删除~/.subversion/auth即可
rm -rf ~/.subversion/auth
参考资料:
https://www.cnblogs.com/benjingqiang/p/11082793.html
https://blog.51cto.com/lxw1844912514/2940807