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
posted on 2021-03-27 10:35  河岸晚风  阅读(303)  评论(0编辑  收藏  举报