部署部署SVN服务器
MeteorCat虽然 Git 已经满足代码版本托管, 但是对于美术/策划等工作来说没必要搞什么代码托管或者版本管理, 只需要不断推送就行了.
这里基于 debian 系统安装
1 2 3 4 5
| # 安装 subversion 软件 sudo apt install -y subversion
# 之后创建版本库 sudo mkdir /svn && cd /svn
|
生成版本库
这里多版本库首先定义好子版本库, 以后不断扩展不同版本库:
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 创建子版本库 code sudo mkdir -p /svn/code && cd /svn/code
# 生成版本库 sudo svnadmin create /svn/code
# 没问题就含有以下文件目录: # conf # db # format # hooks # locks # README.txt
|
这里主要修改配置文件 conf:
conf/authz: 权限控制
conf/passwd: 账号密码文件
conf/svnserve.conf: 服务器配置文件
首先修改账号密码文件( conf/passwd ):
1 2 3
| [users]
meteorcat = meteorcat
|
之后就是追加权限 ( conf/authz ):
最后就是服务文件 ( conf/svnserve.conf ):
1 2 3 4 5 6
| anon-access = none auth-access = write password-db = passwd authz-db = authz realm = /svn/code
|
配置编写之后还不要启动服务, 因为还需要做好安全权限配置.
安全配置
这里需要判断下 svn 账户是否存在, 如果没有的话需要创建:
1 2 3 4 5
| # 如果没有创建 svn 需要创建账号 sudo useradd -r -s /bin/false svn
# 之后需要将版本库授权给 svn sudo chown -R svn:svn /svn
|
最后编写系统启动文件:
1 2
| # 编写泛用配置文件 sudo vim /etc/systemd/system/svnserve@.service
|
svnserve@.service 的配置文件内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| [Unit] Description = Subversion Protocol Daemon: %i After = network.target
[Service] User = svn Group = svn Type = forking PIDFile = /run/svnserve/svnserve-%i.pid EnvironmentFile = /etc/default/svnserve.d/%i ExecStart = /usr/bin/svnserve $DAEMON_ARGS KillMode = control-group Restart = on-failure
[Install] WantedBy = multi-user.target
|
生成下以下配置文件:
1 2 3 4 5
| # 生成配置目录 sudo mkdir /etc/default/svnserve.d
# 生成加载环境配置文件 sudo vim /etc/default/svnserve.d/code
|
code 文件内容:
1 2 3
|
DAEMON_ARGS = "--daemon --pid-file /run/svnserve/svnserve-code.pid --root /svn/code"
|
最后就是启动服务命令等
1 2 3 4 5 6 7 8 9
| # 先创建 pid 目录 sudo mkdir -p /run/svnserve sudo chown -R svn:svn /run/svnserve
# 启动 code 服务组 sudo systemctl start svnserve@code.service
# 开机默认启动 sudo systemctl enable svnserve@code.service
|
最后下载小乌龟默认访问下 svn://地址/(默认端口3690):
1 2
| # 命令行指令 svn checkout svn://127.0.0.1/ --username xxx --password yyy
|
客户端下载地址:
Hook脚本
用于提交后自动拉取部署, 主要采用 post-commit 文件拉取最新版本, 注意先 passwd 创建好拉取账号密码;
对应的模板配置文件放置于版本库 xxx/hooks/post-commit.tmpl