Linux Svn 自动更新

Linux Svn 自动更新

1. 安装

yum install subersion

2. 配置

2.1 创建仓库

我们可以在 /www/server/svn/tests 的仓库 ,以后可以将所有的仓库放入 /www/server/svn

[root ~]# cd /www/server/svn
[root svn]# svnadmin create /www/server/svn/tests
[root svn]# ls
chats  tests
[root svn]# cd tests/
[root tests]# ls
conf  db  format  hooks  locks  README.txt
目录说明
confSVN 版本的配置文件(版本库的访问账号、权限等)
hooks放置hook脚本
locks用来追踪存取文件库的客户端
format一个文本文件,文件中只包含一个整数,表示当前文件库配置的版本号
db存放所有的版本控制数据文件
[root tests]# ls
conf  db  format  hooks  locks  README.txt
[root tests]# cd conf/
[root conf]# ls
authz  hooks-env.tmpl  passwd  svnserve.conf
目录说明
authz权限控制文件
passwd账号密码文件
svnserve.confSVN 服务配置文件

2.2 设置 SVN 账号密码

[root conf]# vi passwd

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WZsJZ5K8-1637649742201)(C:\Users\晨晨\AppData\Roaming\Typora\typora-user-images\image-20211122165124121.png)]
​ 以上的列子是创建一个 user 的用户,密码为 123456

2.3 设置账号的读写权限

[root conf]# vi authz

​ 在文件底部加上一下代码 ,其中 user 是之前添加的账号,r 为读权限,w 为写入权限

[/]
user=rw

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I4O7PQWe-1637649742219)(C:\Users\晨晨\AppData\Roaming\Typora\typora-user-images\image-20211120171223661.png)]

2.4 修改 SVN 服务配置

[root conf]# vi svnserve.conf

​ 修改一下数据

anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /www/server/svn/tests #认证空间名,版本库所在目录

​      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M8hfblUq-1637649742220)(C:\Users\晨晨\AppData\Roaming\Typora\typora-user-images\image-20211120171906170.png)]

3.启动与停止

​ 启动

[root conf]# svnserve -d -r /www/server/svn/

​ 停止所有的svn进程

[root conf]# killall svnserve

​ 以下命令中,-d 进程守护,-r 后台执行,795917、796023为进程号

[root conf]# ps -ef | grep svnserve
root      795917       1  0 17:37 ?        00:00:00 svnserve -d -r /www/server/svn/
root      796023  762074  0 17:37 pts/0    00:00:00 grep --color=auto svnserve

​ 也可以像下面这种停止svn进程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YiFfbGTA-1637649742221)(C:\Users\晨晨\AppData\Roaming\Typora\typora-user-images\image-20211122162530575.png)]

4. 放行端口及客户端连接

4.1 端口放行(端口为3690)

​ 以下命令中检查端口为未放行

[root conf]# firewall-cmd --query-port=3690/tcp
no

​ 放行3690端口

[root conf]# firewall-cmd --zone=public --add-port=3690/tcp --permanent
success

​ 重启端口

[root conf]# systemctl restart firewalld.service

4.2 客户端连接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vw8ChMuf-1637649742222)(C:\Users\晨晨\AppData\Roaming\Typora\typora-user-images\image-20211122151235124.png)]

​ 确定之后再把你之前设置的账号密码输入进去就可以了

5. 实现svn更新同步到服务端

5.1 在服务端中导入svn版本库

[root conf]# svn co svn://localhost/tests /www/wwwroot/tests --username admin --password admin

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TKZo7Alh-1637649742222)(C:\Users\晨晨\AppData\Roaming\Typora\typora-user-images\image-20211122172604011.png)]

​ 以上这样就把 SVN 版本库导入到服务端了(注意 : 如果是第一次导入则需要输入 yes

5.2 在服务端中建立钩子脚本

​ 进入hooks目录中创建 post-commit

[root tests]# cd hooks/
[root hooks]# pwd
/www/server/svn/tests/hooks
[root hooks]# vi post-commit

​ 输入一下数据

#!/bin/sh
export LANG=en_US.UTF-8
WEB=/www/wwwroot/tests        #要更新的目录
svn update $WEB --username admin --password admin

接下来再给 post-commit 文件权限

[root hooks]# chmod 775 post-commit

再重启一下svn

[root hooks]# ps -ef |grep svn
root     1506709       1  0 17:01 ?        00:00:00 svnserve -d -r /www/server/svn/
root     1512024 1489101  0 17:22 pts/1    00:00:00 grep --color=auto svn
[root hooks]# kill -9 1506709
[root hooks]# svnserve -d -r /www/server/svn/

5.3 测试自动更新

​ 进入刚才导入版本库的文件地址,并查看下版本库的文件

[root hooks]# cd /www/wwwroot/tests
[root tests]# ls
index.php

​ 我们在客户端试着上传文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0nm0b265-1637649742223)(C:\Users\晨晨\AppData\Roaming\Typora\typora-user-images\image-20211122180238867.png)]

​ 提交之后,再查看一下版本库的文件,查看之后发现有自动添加
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iQCrD6td-1637649742223)(C:\Users\晨晨\AppData\Roaming\Typora\typora-user-images\image-20211122180301805.png)]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值