有时,对于多文件需要上传到服务器的时候将会很麻烦,但是如果使用svn的钩子脚本就容易实现本地提交svn后,自动同步代码文件到远程服务器的网站目录下,而不必手动上传了。

首先,在网站目录下checkout代码,例如我的目录是/data/www/test

  1. svn co https://127.0.0.1/test/trunk//data/www/test/

注意,这是因为有时我会在服务器上直接修改代码,所以用checkout,如果不需要,可以用export,此指令不带.svn版本文件。

迁出代码后,就需要建立钩子脚本了,我的版本库放置在/data/svn/test/下,新建一个post-commit脚本,添加如下内容:

 #!/bin/sh
REPOS="$1"
REV="$2" export LANG=zh_CN.UTF-#字符集,与服务器一致,可执行locale命令查看
svn update /data/www/test/#更新svn
echo `date`,`whoami`,$REPOS,$REV >>/data/svn/test/hooks/svn_hook.log #记录时间日志
chown -R web:web /data/www/test #将网站目录文件更改属主,如果你是使用root用户更新的话

给予脚本执行命令:chmod +x /data/svn/test/hooks/post-commit

至此,就完成了svn提交自动更新同步代码了。

Linux下svn提交文件后自动同步更新到网站目录的更多相关文章

  1. linux下SVN忽略文件/文件夹的方法

    linux下SVN忽略文件/文件夹的方法 假设想忽略文件temp 1. cd到temp所在的目录下: 2. svn propedit svn:ignore . 注意:请别漏掉最后的点(.表示当前目录) ...

  2. Linux下SVN+多个Tomcat自动部署

    项目中都是jsp开发,所以用到Tomcat. 在我文章中也写过多个Tomcat 的部署,具体可以参考:http://www.cnblogs.com/magmell/p/7045193.html SVN ...

  3. Linux下SVN提交时强制写日志

    Linux版本: 1.在svn的hooks目录下新建一个名为pre-commit的文件并为其添加执行权限(用vi pre-commit直接创建) 2.pre-commit文件的内容如下: #!/bin ...

  4. linux 下svn忽略文件

    假设想忽略文件temp 1. cd到temp所在的目录下: 2. svn propedit svn:ignore . 注意:请别漏掉最后的点(.表示当前目录),如果报错请看下面 3. 打开的文件就是忽 ...

  5. 如何利用svn自动同步更新到网站服务器

    我们最终的目的是:当本地提交后,SVN服务器自动更新服务器端指定WEB目录内的文件 实现方法: 找到服务器端 SVN版本库所在的目录(目录名称是Repositories),这个目录是在安装Visual ...

  6. 利用svn自动同步更新到网站服务器 -- 网摘

    首先在服务器上安装VisualSVN Server ,根据提示选好安装的路径,一路确定.安装好后运行VisualSVN Server ,在Repositories上点击右键,选择create New ...

  7. centos7配置svn钩子hooks脚本自动同步代码到项目目录

    由于项目需要,svn提交后的代码希望再测试服务器上测试,每次提交后还要手动去svn update一次 十分麻烦,配置好svn钩子以后就省去了这些麻烦. 进入svn版本库目录找到hooks目录找到文件p ...

  8. Linux停SVN提交时强制写日志

    Linux下SVN提交时强制写日志 SVN默认可以不写注释提交,有时候可能忘记写注释,有的人也没有写注释的习惯,导致翻看history的时候都不知道做了哪些更改,可以依照以下步骤修改SVN配置,强制提 ...

  9. [转帖]Linux下inotify监控文件夹状态,发生变化后触发rsync同步

    Linux下inotify监控文件夹状态,发生变化后触发rsync同步 https://www.cnblogs.com/fjping0606/p/6114123.html 1.安装工具--inotif ...

随机推荐

  1. USACO: Combination Lock

    长久不写算法题,这种简单题折腾了一下午... /* ID: yingzho2 LANG: C++ TASK: combo */ #include <iostream> #include & ...

  2. extjs grid 单元格 多选

    new Ext.grid.CellSelectionModel({ last : false, // 上一次选中的单元格 selections : [], // 选择区缓存 handleMouseDo ...

  3. C++之路起航——标准模板库(deque)

    deque(双端队列):http://baike.baidu.com/link?url=JTvA2cuLubptctHZwFxswvlZvxNdFOxmifsYCGLj5IZF-Tj4rbWLv8Jn ...

  4. having 子句

    having 子句-->过滤分组,用于限制分组显示结果 a.行已经被分组 b.使用了分组函数 c.满足having子句中条件的分组将被重写

  5. Css3中的变形与动画

    新的转换属性 下面的表格列出了所有的转换属性: 属性 描述 CSS transform 向元素应用 2D 或 3D 转换. 3 transform-origin 允许你改变被转换元素的位置. 3 2D ...

  6. JetBrains WebStorm 8 注册码

    UserName:William===== LICENSE BEGIN =====45550-1204201000001SzFN0n1bPII7FnAxnt0DDOPJAINauvJkeVJBuE5b ...

  7. 我的代码观——关于ACM编程风格与librazy网友的对话

    序 在拙文 <高手看了,感觉惨不忍睹——关于“[ACM]杭电ACM题一直WA求高手看看代码”>中,我对ACMer们的一些代码“惯例”发表了我的看法, librazy网友在评论中给出了他的一 ...

  8. string与char之间的互相转换

    string对象是一种很强大的存在哈~~ 1. string转const char* string s = "abc"; const char* c_s = s.c_str(); ...

  9. oracle中的函数

    ORACLE中函数          Oracle已经内建了许多函数,不同的函数有不同的作用和用法,有的函数只能作用在一个记录行上,有的能够作用在多个记录行上,不同的函数可能处理不同的数据类型.常见的 ...

  10. Android压力测试快速入门教程(图解)——Monkey工具

    文章目录: 一.Monkey简介 二.Monkey的基本用法 三.Monkey测试示例图解 四.Monkey命令参数介绍 五.Monkey log分析 一.Monkey简介 Monkey:Androi ...