SVN代码更新到远程服务器 将SVN代码同步至远程服务器
SVN代码更新到远程服务器
一篇方法教程,与您分享SVN代码更新到远程服务器方面的知识,下面为详细的介绍。
最近做了一个项目,环境有分测试服跟正式服,由于代码比较大,代码管理是用SVN,并且正式服跟测试服是在不同服务器,所以需要做到根据commit更新代码到不同环境。
之前是搞过,怕自己后面忘记了流程,在这里跟大家分享如何进行部署,svn安装以及部署在这里就不重复,大家可以看我过往的教程,下面直接跟大家分享如何操作。
在这里先说明下关系,服务器A是我的svn代码仓库、正式环境,服务器B是我的测试环境。

一、链接svn仓库
我们需要在服务器A、服务器B操作一遍以下命令,先链接svn仓库,命令如下
svn checkout svn://仓库ip/仓库路径/ 网站目录路径 --username svn仓库账户 --password svn仓库密码
上面我们直接替换成我们的信息,比如我们的仓库ip是1.2.3.4,仓库路径是test,网站目录是www/test,svn仓库账户是root,svn仓库密码是test,那么命令就是
svn checkout svn://1.2.3.4/test/ /www/test --username root --password test
服务器A跟B都要提前执行这个命令。
二、设置免密登录
由于我们的测试服是在B,代码仓库是在A,所以A需要远程链接到B,我们用到ssh,我们需要设置免密登录,这样脚本才会自动更新,我们在A服务器操作以下操作生成密钥
ssh-keygen -t rsa
这个命令将生成 SSH 密钥对,默认会在 ~/.ssh/ 目录下生成 id_rsa(私钥)和 id_rsa.pub(公钥)文件。将公钥复制到服务器 B 的授权密钥列表中:
ssh-copy-id -i ~/.ssh/id_rsa.pub user@serverB
替换 user 为服务器 B 上的用户名,serverB 为服务器 B 的 IP 地址或主机名。
如果 ssh-copy-id 命令不可用,你可以手动复制公钥内容并添加到服务器 B 上 ~/.ssh/authorized_keys 文件中验证是否生效,我们执行以下命令,看是不是免密登录B服务器
ssh user@serverB
三、部署钩子
我们在svn仓库的hooks目录下创建一个文件名为post-commit的文件,记得给777权限,内容如下
#!/bin/sh
REPOS="$1"
REV="$2"
export LANG="zh_CN.UTF-8" #防止乱码
# 获取提交的内容
LOGMSG=$(svnlook log -r $REV $REPOS)
# 更新正式服务器
if [[ $LOGMSG == *"master"* ]]; then
svn update /www/wwwroot/maser --username svn仓库账户--password svn仓库密码
fi
#更新测试服
ssh root@测试服IP "svn update /www/wwwroot/test --username svn仓库账户--password svn仓库密码"
我们把正式服路径、测试服路径、测试服IP、svn仓库账户、svn仓库密码改成自己就可以。
只要我们每次提交带有master,就会顺带更新到正式服。
这样就实现根据commit内容实现更新到正式服或测试服。
以上是IT袋网网关于SVN代码更新到远程服务器的具体介绍,供网友们借鉴参考。
相关阅读
-
什么是虚拟服务器? 虚拟服务器有哪些特点
对于大多数网友来说什么是虚拟服务器方面的内容,接下来分享详细内容。 虚拟服务器(Virtual Server)是一种将物理服务器分割成多个独立的虚拟环境的技术。 每个虚拟环境都可以运行独立的
-
云计算专业术语有哪些? 常见的云计算术语解释
IT电脑小知识篇,关于云计算专业术语有哪些的相关知识,接下来IT袋网小编为大家介绍。 云计算是一种通过网络(通常是互联网)按需提供可扩展的计算资源和服务的技术,云计算领域有许多
-
Maya的7个实用操作技巧 7个实用的Maya操作技巧
为网友们详解Maya的7个实用操作技巧方面的讲解,接下来小编为网友介绍。 Autodesk Maya是美国Autodesk公司出品的世界顶级的三维动画软件。Maya功能完善、工作灵活、制作效率极高、渲染真实感极
-
分布式存储有哪几种类型? 常见的分布式存储类型
今日重点为您介绍分布式存储有哪几种类型方面的讲解,一起跟随小编看看吧! 分布式存储系统可以根据其数据模型、访问模式和设计目标等因素划分为不同的类型。 以下是一些常见的分布式


