一、安装
#yum install subversion
检查是否安装了svn
#subversion –v
创建svn库和对应的目录
#mkdir /svn/www.test.com
#svnadmin create /svn/www.test.com
二、配置
创建登录svn的用户和密码
#vim /svn/www.test.com/conf/passwd
[users]
用户名=密码
设置svn用户权限
#vim /svn/www.test.com/conf/authz
[/]
用户名=rw
设置svn主配置文件
#vim /svn/www.test.com/conf/
anon-access=none #使非授权用户无法访问
auth-access=write #使授权用户有写权限
password-db=password
authz-db=authz #启用访问控制文件
realm=/svn/www.test.com #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
启用svn:#svnserve –d –r /svn/www.test.com
注可以用—listen-port 参数修改svn的端口
三、连接svn
1、linux主机连接svn
#svn co svn://192.168.1.180
输入用户名和密码后就可以将svn上的数据下载到本地。
2、windows主机连接svn
利用TortoiseSVN工具进行连接。
四、利用svn的post-commit将svn服务器的文件同步更新到固定的目录
#cd /svn/www.test.com/hooks
#cp post-commit.tmpl post-commit
#chmod a+x post-commit
编辑post-commit钩子脚本
#vim post-commit
export LANG=zh_CN.UTF-8 #设定环境变量,如果没有设定可能会出现update报错
SVN=/usr/bin/svn
WEB=/usr/local/apache/htdocs/192.168.1.180
${SVN} update ${WEB} --username rsync --password rsync
注:WEB中指定的目录不能为空目录,需要先checkout
报错注解,及解决办法:
1、
svn: Error converting entry in directory '/usr/local/apache/htdocs/192.168.1.180' to UTF-8
svn: Can't convert string from native encoding to 'UTF-8':
svn: ?\229?\164?\141?\228?\187?\182 ?\229?\164?\141?\228?\187?\182 ?\229?\164?\141?\228?\187?\182 ?\229?\164?\141?\228?\187?\182 rsync-3.0.9.tar.gz
原因:svn服务器上的文件存在编码为UTF-8的文件,如果服务器不支持UTF-8编码就会报这个错误。
解决办法:在post-commit钩子脚本中,添加export LANG=zh_CN.UTF-8字段,更改环境变量中的编码。
2、
Skipped '/usr/local/apache/htdocs/192.168.1.180'
这个时候使用命令svn update命令会提示
Skipped ‘.’
原因:192.168.1.180是一个空目录或这个目录不存在
解决办法:先进行手工的checkout,之后再post-commit中将目录指定到checkout的目录,就解决了。
转自:http://blog.51cto.com/songknight/742725

转载于:https://www.cnblogs.com/kilometerwine/p/9871299.html

svn+post-commit实现自动部署(转)相关推荐

  1. ant+svn+tomcat实现项目自动部署

    因工作需要,研究并实现了 ant+svn+tomcat实现项目自动部署,其中参考了下面文章:http://www.cnblogs.com/taoweiji/p/3700915.html jar包需要e ...

  2. jenkins + svn + maven +svn 实现当SVN提交代码后自动触发打包部署

    前言 主流的开发模式都是采用前后端分离的方式,我们作为coder在功能开发初期需要不断的迭代代码与前端进行联调,提供在容器中最新代码,虽然可以通过在编译器中打完包后在放到容器运行,但是显然这种方式是既 ...

  3. Jenkins+Svn搭建持续集成环境和自动部署

    Jenkins+Svn搭建持续集成环境和自动部署 一.环境说明 centos 6.8     ip:192.168.1.26 二.运行环境配置 1.安装java环境,下载jdk并放在/usr/loca ...

  4. 企业里实现代码自动部署、回滚的解决方案——Caphub

    上周给大家介绍了capistrano,它可以帮助我们来解决代码自动部署与回滚的软件,但这个软件还是有点缺点,比如如果你同时有多个项目的时候,就得创建多个目录,然后每次进行代码更新的时候,进入到不同的目 ...

  5. 在gitlab 中使用webhook 实现php 自动部署git 代码

    在技术团队讨论中,我们决定从svn 迁移到 git ,于是使用了gitlab,代码自动部署使用了webhook 在服务器上 1.开启PHP需要的环境支持 服务器环境必须先安装git 环境,webhoo ...

  6. 搭建subversion 服务器,并自动部署项目

    1 subversion目录文件说明: *dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据 *db目录:就是所有版本控制的数据存放文件 *hooks目录:放置hoo ...

  7. Jenkins自动部署前端项目

    一.前言 1.1 传统网站部署的流程 传统的网站部署,大家在运维过程中,网站部署是运维的工作之一,网站部署的流程大致分为:需求分析-原型设计-开发代码-提交测试-内网部署-确认上线-备份数据-外网更新 ...

  8. 利用gitHook实现自动部署

    gitHook 当进行开发的环境在本地,而运行的环境要在服务端时,每一次提交代码都需要在服务端pull一次.而利用git的hooks功能,能够让我们省去这一步,下面我就以码云的webhooks为例,实 ...

  9. hexo使用jenkins自动部署到阿里云

    hexo使用jenkins自动部署到阿里云 本地安装hexo npm install hexo-cli -g hexo init blog cd blog npm install hexo serve ...

  10. git管理和自动部署项目

    当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来 ...

最新文章

  1. pku3020 Antenna Placement (解法1)
  2. QT与openCV,与PCL结合!
  3. android 屏幕分辨率 屏幕密度,Android屏幕适配——多分辨率多屏幕密度
  4. 最近对latin-1这个字符集产生了不少好感
  5. 嵌入式基于linux电机控制器,基于嵌入式Linux的移动机器人控制系统
  6. 餐厅点餐系统:测试与部署
  7. PAT 乙级1019 数字黑洞
  8. PHP通过字符串调用函数
  9. html文档树形结构图
  10. python全栈开发工程师_Python Web全栈开发工程师修炼之路
  11. vscode 快速新建一个HTML文件
  12. Ubuntu防火墙安装和配置
  13. 台式计算机有hdmi口,我的台式电脑没有hdmi接口怎么解决
  14. 华电研究生学习和工作总结(2021.11.08-2021.11.12)-围城
  15. 使用Fastlane编写Android自动打包脚本
  16. 太湖之光超级计算机应用最高奖,国家超级计算无锡中心发布:“神威·太湖之光”最新应用成果...
  17. 抠像互动技术使人物与各种景物叠加,形成神奇的艺术效果
  18. css 侧栏跟随_如何实现博客的侧栏跟随(滚动条)效果
  19. 影像组学在医学影像中的应用
  20. 在云服务器搭建 socket服务端

热门文章

  1. 晒晒今年淘宝网买的李宁鞋子
  2. “能用”距离“好用”有多远?
  3. CentOS 5.8 正式发布
  4. C#部分面试题及答案
  5. linux终端中使用ctrl+c和ctrl+v
  6. 《左手MongoDB右手Redis》第3章笔记-robo3t上进行增删改查
  7. ./和bash的区别
  8. ubuntu18.10无法ping百度
  9. 机器学习实战-第12章Fpgrowth代码勘误+递归打印效果分析
  10. M2Crypto/__m2crypto.so: undefined symbol: SSLv3_method