linux 下搭建svn 并且使用钩子hook更新到指定目录
第一,先下载
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 保存 退出就可以测试了