侧边栏壁纸
  • 累计撰写 59 篇文章
  • 累计创建 52 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

svn关联网站目录

木东
2025-01-12 / 0 评论 / 0 点赞 / 35 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

svn版本库创建

svnadmin creat /svndata/project/develop

创建的版本库下会存在以下信息

ls /svndata/project/develop/
conf db format hooks locks README.txt

conf目录下会存在密码认证、配置文件

ls /svndata/project/develop/conf/
authz passwd svnserve.conf

为方便管理权限,可以把authz passwd复制到/svndata/svnpasswd下进行管理

mkdir /svndata/svnpasswd
cd /svndata/project/develop/conf/
cp authz passwd /svndata/svnpasswd

修改svnserve.conf指向认证文件

vim /svndata/project/develop/conf/svnserve.conf
// 修改以下两行
password-db = /svndata/svnpasswd/passwd
authz-db = /svndata/svnpasswd/authz

配置svn钩子与网站目录同步

svn版本库:/svndata/project/develop

关联网站目录:/www/web/zhibo_tianze_cn/public_html

首先使用checkout把需要关联的网站目录变成一个工作副本

svn checkout svn://xx.xx.xx.xx/develop /www/web/ze_cn/public_html

修改版本库下的钩子文件

ls /svndata/project/develop/hooks/
pre-commit.tmpl     start-commit.tmpl
post-commit.tmpl     pre-lock.tmpl
post-lock.tmpl        pre-revprop-change.tmpl
post-revprop-change.tmpl pre-unlock.tmpl
post-unlock.tmpl  

hooks(钩子)文件说明:

# start-commit 提交前触发事务

# pre-commit 提交完成前触发事务

# post-commit 提交完成时触发事务

# pre-revprop-change 版本属性修改前触发事务

# post-revprop-change 版本属性修改后触发事务

需要修改post-commit.tmpl这个钩子

cp post-commit.tmpl post-commit     //拷贝并改名生效
vim post-commit
改为以下内容:
 \#!/bin/sh
export LANG=en_US.UTF-8
 SVN='/usr/bin/svn'
 $SVN update /www/web/ze_cn/public_html/ --username=admin --password=123456

修改钩子文件权限为755或者777

chmod 777 post-commit

启动svn

svnserve -d -r /svndata/project/ --log-file /svndata/log

--log-file 参数是指定日志文件,可不加

可以打开svn客户端上传一个文件,测试是否会更新到关联的网站目录。

由于新创建的svn版本库是空的,可以使用下面命令把网站目录里的文件导入到版本库中

svn import /www/web/zhibo_tianze_cn/public_html/ svn://localhost/develop -m "test"

-m 参数是说明内容,引号内的说明随便写

#!/bin/bash

\#这是一个利用hooks将远程svn服务器项目同步到本地web站点目录下

\#远程服务器地址:101.200.75.217,本地服务器地址:123.57.176.140

\#获取svn服务器webphp项目trunk最新版本号

xsv=`svn info svn://101.200.75.215/webphp/trunk|sed -n '/Last Changed Rev/p'|awk '{print $4}'`

\#获取本地web站点版本号

bdv=`svn info /usr/local/nginx/html/pinyi/|sed -n '/Last Changed Rev/p'|awk '{print $4}'`

\#通过比较两个版本号,判断svn服务器代码是否更新,如果更新就使用"svn update"命令更新本地web站点代码

if [ $xsv -gt $bdv ]

 then

 cd /usr/local/nginx/html/pinyi

 svn update

 chown www /usr/local/nginx/html/pinyi -R

fi
0

评论区