linux部署svn及钩子hooks自动部署
1、优势(功能):
2、概念理解:
repository(源代码库) 源代码统一存放的地方 checkout(提取) 当你手上没有源代码的时候,你需要从repository checkout一份 commit(提交) 当你已经修改了代码,你就需要Commit到repository update(更新) 当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更
3、subversion安装:
$ yum install -y subversion $ svn --version // 查看版本
4、创建版本库(根目录以:/var/svn/为例,以:/var/svn/test为某一个仓库)
$ mkdir -p /var/svn/test $ svnadmin create /var/svn/test // 执行后可看到仓库下有如下目录 conf // 配置文件夹 db // 数据库文件夹 hooks // 钩子程序(触发器) locks // 文件锁定相关 format // README.txt //
5、配置用户权限
$ vi /var/svn/test/conf/svnserve.conf # anon-access = read // 开启并修改成anon-access = none(设置匿名不能访问),如果是read则不会显示日志出来 # auth-access = write // 开启权限认证(去掉前面#) # password-db = passwd // 开启用户配置信息存放文件 # authz-db = authz // 开启存放授权信息文件 :wq $ vi /var/svn/test/conf/passwd // 账号=密码 zs=123 ls=123 ww=123 :wq $ vi /var/svn/test/conf/authz [groups] // 设置分组下的用户 kaifa = zs,ls ceshi = ww [/] // 指定目录下给定的权限(修改为/) @kaifa = rw // 按分组分(@表示分组) @ceshi = r
sc create SVNServer binpath= "svnserver.exe(的路径) --service -r "仓库根目录" start= auto depend= Tcpip
7、启动SVN
$ svnserve -d -r /var/svn/test // -d:声明后台启动 -r:声明版本库根目录 $ ps -ef | grep svn
8、使用SVN
$ cd /var/www/test $ svn checkout svn://localhost/test // 检出数据 $ svn update [文件名] // 拉取更新数据[指定拉取的文件] $ svn commit -m "提交日志" // 提交更新文件到服务端(文件第一次体检需要SVN add 指定文件将其加入提交区)
9、配置钩子程序
$ cd /var/svn/test/hooks/ $ vi post-commit #!/bin/sh REPOS="$1" REV="$2" export LANG=en_US.UTF-8 //设置编码(自行处理编码) WEB=/var/www/sPlant-C //web项目目录 SVN=/usr/bin/svn //svn文件 //下面提供两种方式,选择一种即可 $SVN update $WEB --username $user --password $password --no-auth-cache //设置登录账号密码并不缓存 或者 $SVN co svn://localhost/test $WEB --username $user --password $password --no-auth-cache //可实现不需要再站点目录下先checkout
版权声明:本文由“憨小猪”发布,如需转载请注明出处。