欢迎您光临自学哈网,只为分享网络知识教程,供大家学习参考!

「自学哈网」Linux SVN服务器如何自动向Web服务器提交数据进行同步

作者 : 自学哈 本文共1111个字,预计阅读时间需要3分钟 2023-04-21 共107人阅读
也想出现在这里? 联系我们

Linux SVN服务器如何自动向Web服务器提交数据进行同步

在本地开发过程中,我们使用TortoiseSVN向SVN服务器提交修改的数据,但是SVN服务器中的数据需要checkout到Web服务器,这样Web服务器中的数据才能与SVN同步,手工操作太麻烦。我们可以使用SVN的hooks机制进行如下同步:

 

导出一份SVN文件到网站目录

 

svn co svn://localhost/svn1 /www/web/weixin

 

svn://localhost/svn1为服务器SVN所在路径

/www/web/weixin为网站目录路径

 

注意事项1:

 

每次使用svn co提醒你是否保存密码,这样每次都会出现交互提示信息,我们需要去掉。

修改/root/.subversion/server中的相关内容为:

 

store-passwords = no

store-plaintext-passwords = no

 

注意事项2:

 

如遇到UUID不一致错误信息,可采用以下解决方法:

 

svn: Repository UUID ‘4ecc44b9-f3ad-4d43-b838’ doesn’t match expected UUID ‘7699d06a-2fa1-49ae-958b’

 

解决方案:

 

具体办法如下:

1、首先查看项目的所有者的UUID

# svnlook uuid /www/svn1

xxxxxxx

 

2、更新项目的UUID

# svnadmin setuuid /www/svn1 xxxxxxx

 

3、查看一下更新后的UUID

# svnlook uuid /www/svn1

 

修改SVN中post-commit.tmpl文件

 

cd /www/svn1/hooks

 

mv post-commit.tmpl post-commit

 

更改post-commit权限:

 

chmod +x post-commit

 

编辑post-commit文件:

 

vi post-commit

 

post-commit文件内容如下:

 

#!/bin/sh

REPOS=”$1″

REV=”$2″

 

export LANG=zh_CN.UTF-8 #防止乱码

svn update /www/web/weixin #更新svn

echo `date`,`whoami`,$REPOS,$REV >> //www/svn1/hooks/svn_hook.log #记录时间日志信息

chown -R www:www /www/web/weixin #更改网站目录用户组及用户

 

完成之后,结束svn进程

 

killall svnserve

 

重启SVN服务

 

svnserve -d -r /www

 

再使用TortoiseSVN提交新的修改,SVN和Web服务器中的数据都同步成功。

本站声明:
本站所有资源来源于网络,分享目的仅供大家学习和交流!如若本站内容侵犯了原著者的合法权益,可联系邮箱976157886@qq.com进行删除。
自学哈专注于免费提供最新的分享知识、网络教程、网络技术的资源分享平台,好资源不私藏,大家一起分享!

自学哈网 » 「自学哈网」Linux SVN服务器如何自动向Web服务器提交数据进行同步
也想出现在这里? 联系我们
© 2022 Theme by - 自学哈网 & WordPress Theme. All rights reserved 浙ICP备2022016594号