在linux下简单部署svn服务
2023-08-14
在git大行其道的时代svn似乎已经被逐步淘汰,但是某些情况下svn还是挺好用的。比如你不想把项目放在一些不安全的代码托管平台,同时又不想自建gitlab这种复杂又吃内存的服务的时候你可能会选择在服务器上自建svn服务,下面直接进入正题:
#以Ubuntu或者CentOS系列为例,首先安装svn服务
apt install subversion 或者 yum install subversion
#安装成功接下来是创建一个svn仓库目录
svnadmin create ~/myObject(你准备放项目的仓库目录)
接下来需要配置下几个文件
vim ~/myObject/conf/svnserve.conf
去掉以下几行前面的#号注释
#anon-access = none#auth-access = write#password-db = passwd#authz-db = authz#realm = 你的项目名字,最好跟你准备放项目的仓库目录相同然后创建svn账户密码
vim ~/myObject/conf/passwd
[users]你用户名=密码然后是修改自动提交脚本
vim ~/myObject/hooks/post-commit
#!/bin/sh###### 配置svn钩子 ######export LANG=en_US.UTF-8SVN=/usr/bin/svn #这里配置的是svn安装bin目录下的svn文件WEB=/yourpath/web #要更新的目录$SVN update $WEB --username 你前面配置的svn账户 --password 你前面配置的svn密码钩子配置完成记得给执行权限 chmod +x ~/myObject/hooks/post-commit,最好手动执行下是否正常
然后启动下svn服务
svnserve -d -r ~/myObject --listen-port=3690 #3690是默认端口,其他未被占用的端口也行,记得防火墙给端口放行###### svn 常用命令 ######
#拉取仓库代码(类似git pull)
svn checkout svn://svn服务器地址:端口(如果是3690就不用填)/仓库目录(上面的例子可以不要仓库目录)
#添加文件(类似git add .)
svn add .
#提交文件(类似同时执行 git commit -m 和 git push两个命令)
svn commit -m "提交注释"
#更新文件
svn update 你的项目目录