当前位置: 首页 > news >正文

在linux服务器上装svn版本管理,自动同步代码到项目根目录

首先搭建SVN服务器
1,安装SVN服务端
直接用apt-get或yum安装subversion即可(当然也可以自己去官方下载安装)
sudo apt-get install subversion
 
2,创建版本库
svnadmin create /home/myrepos    //这里的文件目录自己随便设置 
 
3,配置svnserve
上述版本库/home/myrepos建立后在文件夹下会生成conf文件夹,进入/home/myrepos/conf下面会有下面3个文件
authz passwd svnserve.conf
我们依次修改
3.1,svnserve.conf修改以下几个部分:
  • authz-db = authz
  • auth-access = write
  • password-db = passwd
  • authz-db = authz
3.2,passwd修改为:
  • [users]  
  • username = password    //这里的username和password自己设置  
3.3,authz最后加上以下两行(这两行解决了 SVN客户端解决authorization failed问题)
  • [/]
  • * = rw
4,启动svnserve即可:
svnserve -d -r /home/myrepos/ 
 
5,客户端使用:
客户端用svn或者windows下的TortoiseSVN客户端
5.1,从服务端checkout版本库(在当前目录下)
svn checkout svn://服务器的ip地址/
5.2,自己增加一些文件,或者把之前的东西(如下面三个文件夹)拷贝到当前目录下,想让svn帮你管理
code project document
5.3,假设我把上述三个文件夹放到当前svn的文件夹下想让svn管理,然后我要做的是添加到svn版本库里:
svn add code project document    //或者直接用svn add * 
5.4,最后提交到svn服务器
svn commit -m 'import three directories' 
一定要对当前版本写注释。
 
然后配置SVN钩子自动更新项目文件到web目录
 
在SVN服务器端
说明:
服务器操作系统:ubuntu(linux)
SVN安装路径:/usr/bin/svn
SVN项目路径:/home/svn
SVN登录账号:yourname
SVN登录密码:yourpass
Web站点根目录:/home/wwwroot/
实现目的:
当svn项目中有任何修改更新时,系统会自动实时从svn中检出文件并同步到Web站点根目录
具体操作:
一、使用SVN中post-commit实现自动实时从svn中检出文件并同步到Web站点根目录
cd /home/svn/hooks
cp post-commit.tmpl post-commit
vim post-commit #编辑,添加以下代码
REPOS="$1"
REV="$2"
export LANG=en_US.UTF-8
SVN_PATH=/usr/bin
WEB_PATH=/home/wwwroot/
SVN_USER=admin
SVN_PASS=admin
LOG_PATH=/tmp/svn.log
echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH/svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH
:wq #保存退出
chown www:www /home/svn/hooks/post-commit #设置脚本所属用户组,www为web服务运行账户和组
chmod +x /home/svn/hooks/post-commit #添加脚本执行权限
说明:
whoami #执行此程序的用户
REPOS="$1" #svn项目绝对路径值
REV="$2" #最新版本号
--no-auth-cache #不保存账户认证信息
二、客户端测试
使用svn客户端添加一个文件之后,进行svn添加并提交操作进入服务器/home/wwwroot目录下可以看到提交到svn的文件已自动更新到web目录下
至此,Linux下SVN服务器自动更新文件到Web目录教程完成。
 
ps:你可能会遇到这个问题
在日志文件中
Skipped "/home/wwwroot"
然后提交的文件并没有自动更新到web目录下
我的解决方法是:
cd /home/wwwroot/
svn checkout svn://服务器的ip地址 ./
然后你新提交的文件就可以自动更新到web目录下了
分析原因:/home/wwwroot/目录下不存在.svn目录,svn不知道/home/wwwroot/
checkout后会在/home/wwwroot/目录下生成.svn目录,然后就可以识别并自动更新提交的文件到改目录下了

转载于:https://www.cnblogs.com/i6010/articles/6394233.html

相关文章:

  • web服务器配置及nginx和mysql部署
  • 2017.02.15
  • linux中的awk用法入门详解(二)
  • javascript事件失效l
  • 【Spark Summit East 2017】Spark,类型函数式编程的引诱者
  • linux命令大全之watch命令详解(监测命令运行结果)
  • Elasticsearch之更新(全部更新和局部更新)
  • mysql查看表结构
  • 使用Hilo.JS快速开发Flappy Bird
  • STAR法则
  • Openlayer4 - 最好最强大的开源地图引擎
  • shell中${}的妙用
  • 重定向监听端口并持久化路由配置
  • apiCloud结合layer实现动态数据弹出层
  • Win7 VS2015编译wxWidgets-3.1.0
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 3.7、@ResponseBody 和 @RestController
  • Android框架之Volley
  • ES6系列(二)变量的解构赋值
  • gf框架之分页模块(五) - 自定义分页
  • HTML-表单
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • java8 Stream Pipelines 浅析
  • JavaScript设计模式与开发实践系列之策略模式
  • JS 面试题总结
  • JS字符串转数字方法总结
  • oschina
  • rc-form之最单纯情况
  • React Transition Group -- Transition 组件
  • 多线程 start 和 run 方法到底有什么区别?
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 如何利用MongoDB打造TOP榜小程序
  • 什么软件可以剪辑音乐?
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 温故知新之javascript面向对象
  • 一个完整Java Web项目背后的密码
  • Spring Batch JSON 支持
  • #ifdef 的技巧用法
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (poj1.3.2)1791(构造法模拟)
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (十三)Flask之特殊装饰器详解
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • ******之网络***——物理***
  • . NET自动找可写目录
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .Net Memory Profiler的使用举例
  • .NET 材料检测系统崩溃分析
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • []C/C++读取串口接收到的数据程序
  • [1] 平面(Plane)图形的生成算法