本人前端菜鸟一枚,最近在做个人网站,每次修改都要开ftp提交代码到服务器,感觉好麻烦,想到了svn(别问我为什么不是git,因为svn比较好写),于是乎就各种找度娘谈心,零零散散的,最后想想写一篇小白文,希望对后来的初学者有帮助,不用再一步一步查。如有不当,欢迎指点。话不多说,开始了。
使用yum在服务器终端输入命令安装svn
yum install subversion
mkdir /home/svn
svnadmin create /home/svn/test
cd /home/svn/test/conf
vi authz
[groups]
#1、创建usr组,并添加用户lzhong和admin,找到[groups]并在下面添加如下代码:
usr = lzhong,admin
#2、给予test组读写权限,在文件末尾添加如下代码:
[/]
@usr = rw
vi passwd
[users]
#配置账号和密码:找到[users],然后在下面添加如下代码(账号:lzhong,密码:123456):
lzhong = 123456
admin = 123456
vi svnserve.conf
#找到如下代码,并删掉行头的#号解除注释(不嫌麻烦的话也可以重写)ヽ( ̄▽ ̄)ノ
#匿名用户,此处原先是anon-access = read,我是因为提交后发现提交记录出错,然后度娘告诉我改成none (╯°Д°)╯
anon-access = none
#授权用户
auth-access = write
#使用passwd文件作为用户列表的配置文件
password-db = passwd
#使用authz作为权限配置文件
authz-db = authz
#认证空间名,版本库所在目录
realm = /home/svn/tools
svnserve -d -r /home/svn
如果无法正常启动 先停止svn,
停止所有svn命令为:
killall svnserve
或查找进程,然后再kill进程:
ps aux | grep svn
#假设上行命令查到的进程ID为7237
kill -s 9 7237
注意:svn默认端口为3690,如果要运行多个svnserve可以换一个端口
svnserve -d -r /home/svn/test --listen-port 3691
(记得开放相应的端口)
windows用户:下载安装svn,创建目录,右键菜单 选择svn checkout
url填写svn://服务器ip地址:端口号/资源库名 (端口默认为3690),例如:
svn://172.16.4.33/test
或
svn://172.16.4.34:3691/test
写好后点击OK,弹出登录弹窗,选一个刚刚在passwd里面配置的账号密码输入
如果无法连接 请开放相对应的端口(如阿里云服务器前往控制台设置安全组即可)
iptables -I INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT
service iptables save
如果因为centOS的版本问题没有iptables
这里推荐一篇 冰 河 大佬的文章《CentOS之——CentOS7安装iptables防火墙》
新人不懂这样算不算侵权,如有侵权,请私聊哈(`・ω・´)
原本以为提交后可以在资源库看到提交的项目,结果发现并不是,于是乎又和度娘一番谈心,终于明了。
#这里偷一下懒,直接全局操作
cp /home/svn/test/hooks/post-commit.tmpl /home/svn/test/hooks/post-commit
chmod 775 /home/svn/test/hooks/post-commit
#然后准备编辑
vi /home/svn/test/hooks/post-commit
每次svn提交后都会触发此脚本,因此在里面设置执行svn update命令,在文件末尾添加如下代码
#其中/home/pro/test为项目的路径 后面的username和password两个参数跟账号和密码(前面passwd配置的)
export LANG=en_US.UTF-8
svn up /home/pro/test --username admin --password 123456
svn co svn://localhost/test /home/pro/test --username admin --password 123456
好了,到此结束,希望能帮到大家。
_φ(❐_❐✧ 人丑就要多读书