linux 下搭建svn 并且使用钩子hook更新到指定目录

发布于 2022年 05月 19日 01:27

第一,先下载

  • yum install subversion

会显示是否安装或者只下载,填写Y就直接安装

安装成功之后创建一个文件目录放svn测试的

  • cd /home

  • mkdir svn#这个是专门放svn里的测试账号文件夹

  • cd /home/svn

接下来就开始创建svn的配置了

  • svnadmin create /home/svn/demo #这里的svnadmin是他们svn的root权限命令,是固定的

然后查看ls看到demo里就有他相关的文件配置信息文件了

  • cd /home/svn/demo

  • ls #里面有conf db format hooks locks README.tex,这里只用conf文件夹里面的信息和钩子hooks

  • cd /home/svn/demo/conf #进去conf文件夹就会看到有authz hook-env.tmpl passwd svnserve.conf

我们主要用这三个 authz(用户权限的配置文件) passwd(创建用户密码的文件) svnserve.conf(服务svnserve.conf配置)

第一先创建用户密码

  • vim passwd #看到有[users],然后在下面创建用户名密码,也可以把他们默认的开启,我这里直接创建个用户
点击查看代码
[users]
xiaolu = xiaolu123 #xiaolu=>用户名 xiaolu123=>密码
> 然后esc 冒号 wq 保存 退出

第二创建用户权限
vim authz #在最下面创建用户权限

点击查看代码
[/] #这里的/可能是后面开启服务器svnserve -d -r /home/svn/ 里 (/home/svn/文件储存路径)
xiaolu = rw #xiaolu是你创建用户名在passwd里面的 rw是可读可写
> 然后esc 冒号 wq 保存 退出

第三,修改服务配置信息
vim svnserve.conf #在[general]下把下面注释打开 切记前面不要留空格

  • anon-access = read
  • auth-access = write
  • password-db = passwd
  • authz-db = authz

然后esc 冒号 wq 保存 退出

接下来就是开启服务器了,先查看是否开启了,一般修改了svnserve.conf就得重启svn服务,下面有几个操作常用到

  • ps -ef|grep svn #查看svn服务是否启动
  • svnserve -d -r /home/svn/ --listen-port=3690 启动svn服务
  • kill -9 4910 进程 4910是你查看ps -ef|grep svn里的id 在root后面,杀掉之后再重启,一般这个是修改了svnserve.conf才使用

接下来就启动svn了

  • svnserve -d -r /home/svn/ #这个/home/svn/就是你存放版本库目录比如我/home/svn/里面有demo1,demo2,demo3的文件夹,启动就是启动这三个

启动之后查看有没有开启

  • ps -ef|grep svn

默认就是3690 有使用阿里云的云服务器就得添加安全组还有添加防火墙
在命令版可以使用

  • svn co svn://你的ip地址/[demo你的svn下面的文件create的文件夹名称]

输入密码测试连接是否成功就行了

现在就是开始用钩子更新文件到指定的文件目录

先去需要更新的的目录,我的在/www/wwwroot/testsvn/

  • cd /www/wwwroot/testsvn/
  • svn checkout svn://你的ip地址/[demo你的svn下面的文件create的文件夹名称] ./ --username [xiaolu用户名]#输入密码和Y确认就行

然后去你的demo文件下面的hooks

  • cd /home/svn/demo/hooks
  • cp post-commit.tmpl post-commit #复制一份post-commit 记住不要后缀.tmpl

然后修改post-commit 在最底部删除其他代码然后添加下面代码

点击查看代码
export LANG=en_US.UTF-8
/usr/bin/svn update /www/wwwroot/testsvn/ --username xiaolu --password xiaolu123
> 然后esc 冒号 wq 保存 退出就可以测试了

推荐文章