1、配置svn的hooks

2、实例演示


1、配置svn的hooks

 1.1)配置情况

  承接上篇svn搭建的文章,今次继续使用上篇文章的配置

  上篇文章的地址:linux下搭建svn代码库

  svn仓库所在的目录为/opt/svn/firsttest

 1.2)修改hooks文件post-commit

  我们的任务需求是:当firsttest代码仓库有任何人提交了代码之后,本机器上的某个位置的副本就需要立刻进行svn up操作,这样达到副本的内容和代码仓库的内容相同,可以实时看到情况的目的。

  根据上述的要求,分析下来就是,当有人在 firsttest 提交了代码之后,我们的副本也需要进行更新。所以,我们需要修改的hooks文件就是firsttest/hooks/post-commit。

  查看firsttest/hooks/目录下面的文件:

# ls
post-commit.tmpl post-unlock.tmpl pre-revprop-change.tmpl
post-lock.tmpl pre-commit.tmpl pre-unlock.tmpl
post-revprop-change.tmpl pre-lock.tmpl start-commit.tmpl

  并没有发现 post-commit 文件,但是可以发现有个 post-commit.tmpl 文件,我们需要做的就是把这个文件重命名成post-commit,或者拷贝一份副本,起个名字叫post-commit。

# cp post-commit.tmpl post-commit
root@OutRoot:hooks# ls
post-commit post-revprop-change.tmpl pre-lock.tmpl start-commit.tmpl
post-commit.tmpl post-unlock.tmpl pre-revprop-change.tmpl
post-lock.tmpl pre-commit.tmpl pre-unlock.tmpl

  现在有 post-commit 文件了,但是还差点儿,把它的权限改为775:

# chmod  post-commit
root@OutRoot:hooks# ls
post-commit post-revprop-change.tmpl pre-lock.tmpl start-commit.tmpl
post-commit.tmpl post-unlock.tmpl pre-revprop-change.tmpl
post-lock.tmpl pre-commit.tmpl pre-unlock.tmpl

# ls -al post-commit
  -rwxrwxr-x 1 root root 1977 06-05 13:47 post-commit

 1.3)编辑 hooks 文件 post-commit

  从 post-commit 的文件名我们就可以看出,是在 commit(合入代码)之后(post)所进行的操作。

  以下是 post-commit 文件的前几行:

#!/bin/sh

# POST-COMMIT HOOK
#
# The post-commit hook is invoked after a commit. Subversion runs
# this hook by invoking a program (script, executable, binary, etc.)
# named 'post-commit' (for which this file is a template) with the
# following ordered arguments:

  看英文的大概意思是:post-commit 钩子文件是在执行完一次commit之后执行的。这个hook会执行一个脚本或者可执行文件、二进制文件等。

  那么我们就在这里写上我们需要svn执行的脚本。

  把 post-commit 文件的最后几行改成如下内容:

REPOS="$1"
REV="$2" #mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf
su -c 'svn up /home/test/workspace/firsttest' test

  其中“su -c 'svn up /home/test/workspace/firsttest' test”这句话的意思是:

  切换到test账户,就是你的svn副本是哪个账户就切换到哪个账户,要是root就直接运行“svn up /home/test/workspace/firsttest”就可以了。

  之所以要切换账户,是因为在svn进行update操作的时候会对副本里面的.svn目录下的内容进行修改,有可能会添加新的文件或目录,这样会导致之后的副本里面使用非root账户操作的时候失败。


2、实例演示

  好累,就先不写了吧。。。  

配置hooks使svn提交后自动同步客户端代码(客户端与服务端在同一台机器上)的更多相关文章

  1. Centos6.8实现SVN提交后自动更新目录

    1.创建svn目录 mkdir /var/www/project 2.从服务器的本地svn上checkout最新版本代码到www目录下的project文件夹,注意本地svn服务器地址和端口号是在启动s ...

  2. SVN提交后自动推送消息到钉钉群

    钉钉设置机器人配置 1.进入配置机器人入口 2.添加机器人 3.测试WebHook请求 本人使用Postman进行测试 4.配置SVN 4.1 配置 Pre-commit hook 设置提交内容必须包 ...

  3. [钉钉通知系列]SVN提交后自动推送消息到钉钉群

    钉钉设置机器人配置 1.进入配置机器人入口 2.添加机器人 3.测试WebHook请求 本人使用Postman进行测试 4.配置SVN 4.1 配置 Pre-commit hook 设置提交内容必须包 ...

  4. svn版本库更新后自动同步到www

    注意:www目录一定要用SVN服务器 checkout出Repositories的代码 步骤: (1)新建www根目录 mkdir -p /data/www/lehuo (2)在www根目录下检出(c ...

  5. svn 备份后双机同步热备失效,提示 W200007 target server does not support atomic revision property edits svynsync:E170009

    svn 备份后双机同步热备失效,提示 W200007 target server does not support atomic revision property edits; consider u ...

  6. Xcode: Run Script 的运用, 使build打包后自动+1

    背景: 每次打包都要build+1处理,比较麻烦,使用 Run Script 的运用使build打包后自动+1 0. 使用xcode 添加run Script 然后就可以添加Run Script了 1 ...

  7. svn提交后 添加注释

    svn 提交后添加注释 第一步: 第二步: 第三步:提交就可以了. 注意:如果svn服务器管理员没有激活pre-revprop-change这个hook,会出现 需要让svn服务器管理员没有激活pre ...

  8. inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效

    inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效 inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效 --------------------- ...

  9. Git 在同一台机器上配置多个Git帐号

    在同一台机器上配置多个Git帐号 By:授客 QQ:1033553122 实践环境 win10 Git-2.21.0-64-bit.exe TortoiseGit-2.8.0.0-64bit.msi ...

随机推荐

  1. wp8 入门到精通 虚拟标示符 设备ID

    //获得设备虚拟标示符 wp8 public string GetWindowsLiveAnonymousID() { object anid = new object(); string anony ...

  2. [Tools] 远程登录surface字体过大解决方法

    [背景] 这两天一直远程登录surface,使用surface干活,每次分辨率超大,看着就感觉像显示驱动没装好似的,必须得找个办法来设置 [开工] 在surface上设置低一点的分辨率,成功,但是远程 ...

  3. WPF线程(Step1)——Dispatcher

    使用WPF开发时经常会遇上自己建立的线程需要更新界面UI内容,从而导致的跨线程问题. 异常内容: 异常类型:System.InvalidOperationException 异常描述: "S ...

  4. telnet时显示:允许更多到 telnet 服务器的连接。请稍候再试

    telnet时显示:允许更多到 telnet 服务器的连接.请稍候再试    解决办法: windows自带telnet服务器默认的最大连接数为2,要想修改该设置,可以在命令行键入tlntadmn c ...

  5. fprintf, fscanf,printf,scanf使用时参数注意

    在利用fprintf函数将数据按格式输出到文件中时,通常需要限定数据的格式,例如: FILE *f=fopen("d:\\1.txt","w+"); int a ...

  6. hdu 2669 Romantic

    Romantic Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  7. XSS 跨站脚本攻击之ShellCode的调用

    1.ShellCode,最初是溢出程序和蠕虫病毒的核心,实际上是指利用一个漏洞是所执行的代码,在XSS跨站脚本中,是指由javascript等脚本编写的XSS利用代码: 2.Exploit,在黑客眼里 ...

  8. PHP 一个表单多个提交按钮,处理不同的业务逻辑

    <?phpini_set("error_reporting","E_ALL & ~E_NOTICE");?> <head>< ...

  9. Xamarin基础命名空间Microsoft.SqlServer.Server

    Xamarin基础命名空间Microsoft.SqlServer.Server   该命名空间包含大量的类.接口和枚举,用于操作微软SQL Server数据库.该空间支持Xamarin.iOS和Xam ...

  10. Bestcoder round #65 && hdu 5593 ZYB's Tree 树形dp

    Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submissio ...