首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在提交特定文件时,不要执行SVN "post commit hook“

SVN(Subversion)是一种版本控制系统,它允许开发团队协同工作并跟踪文件的变化。"post commit hook"是SVN中的一个钩子(hook),它在提交(commit)特定文件后执行一些自定义的操作。

"post commit hook"可以用于自动化一些任务,例如发送通知、触发构建、更新部署等。然而,在提交特定文件时不执行"post commit hook"可以有以下几个原因:

  1. 避免不必要的操作:有时候,特定文件的提交并不需要触发额外的操作,例如只是修复了一些文档或注释的变动。在这种情况下,跳过"post commit hook"可以节省时间和资源。
  2. 避免循环触发:如果"post commit hook"中的操作会再次修改特定文件并提交,就可能导致无限循环触发。为了避免这种情况,可以选择在提交特定文件时不执行"post commit hook"。

要实现在提交特定文件时不执行"post commit hook",可以通过在SVN服务器上配置相关的钩子脚本来实现。具体步骤如下:

  1. 找到SVN服务器上的仓库目录,进入仓库的hooks目录。
  2. 备份或重命名post-commit钩子脚本,以防需要恢复。
  3. 创建一个新的post-commit钩子脚本文件,例如post-commit-no-hook。
  4. 在新的post-commit-no-hook脚本中,添加以下内容:
代码语言:bash
复制
#!/bin/sh
REPOS="$1"
REV="$2"
TXN_NAME="$3"

# 获取提交的文件列表
CHANGED_FILES=$(svnlook changed -r $REV $REPOS | awk '{print $2}')

# 检查提交的文件列表,如果包含特定文件,则退出脚本
for FILE in $CHANGED_FILES
do
  if [ "$FILE" = "特定文件路径" ]; then
    exit 0
  fi
done

# 执行其他操作,如果有的话

exit 0
  1. 保存并退出脚本文件。
  2. 将新的post-commit-no-hook脚本文件赋予执行权限:
代码语言:bash
复制
chmod +x post-commit-no-hook
  1. 将原来的post-commit钩子脚本重命名为其他名称,以禁用它。

现在,当提交包含特定文件的变更时,SVN将不会执行"post commit hook",而对于其他文件的提交,仍会执行自定义操作。

请注意,以上步骤仅适用于SVN服务器端的配置。如果您是SVN客户端用户,无法直接控制服务器端的钩子脚本。在这种情况下,您可以与SVN服务器的管理员或团队协商,以确定是否可以进行相关配置。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ReviewBoard实现自动post-commit,rbt命令svn hooks中执行出错

ReviewBoard实现自动post-commit svn hooks中使用RBTools工具的rbt post命令向Reviewboard自动提交review request(评审请求)...认证信息 解决步骤: 1、获取执行pos-commit的用户 post-commit文件中,echo `who am i`>/tmp/svn-post-commit.log 将执行pos-commit...的用户重定向到svn-post-commit.log文件中 获得执行pos-commit的用户为:apache 2、su切换到apache并将home目录的owner改为apache su.../servers文件,更改为:store-plaintext-passwords = yes 然后,某个目录下执行 svn co http://xxx ,会有向导让输入认证信息 这样就将认证信息保存在....subversion/auth/svn.simple目录下 最后,rbt命令post-commit这个svn hooks执行成功。

1.8K50

SVN Hooks的介绍及使用

阅读此篇文章你可以: 对SVN Hooks有一定的了解 获取两个最常用的SVN Hooks案例 SVN hooks介绍 Hooks 钩子,主要实现的功能就是特定事件发生之前或者之后自动执行事先定义好的脚本代码来实现某些功能...:开始提交执行pre-commit之前,通常用来确定用户是否有提交权限 pre-commit提交之前执行start-commit之后,通常用来对提交内容的检查,例如我们后边要介绍的利用pre-commit...0则表示全部规则验证通过,进行后续的代码提交操作,非0表示验证失败 可以hook脚本中写多条不同的验证规则,每条规则不通过时返回不同的状态码,这样后续不通过就知道哪里验证失败了,例如检测提交文件名不能包含有空格...别忘了给hook脚本加上可执行权限 # chmod +x /home/svn/repos/ops-coffee/hooks/pre-commit 这样就ok了,很简单,再提交log就会按照定义的规则来判断...同样不要忘了给脚本添加可执行权限 # chmod +x /home/svn/repos/ops-coffee/hooks/post-commit 这样就ok了,每次代码提交(合并)之后就会判断是哪个账号的提交

3.7K70
  • svn利用钩子脚本功能实现代码同步到web目录

    一、hook简单介绍 为了方便管理员控制提交的过程 ,Subversion提供了hook机制。当特定的 事件发生,相应的 hook会被调用,hook其实就相当于特定事件的处理函数。...(如 start-commit或者post-commit)的可执行程序或脚本。...二、本地机器SVN自动更新 1. export方式(备份) 使用svn客户端,有可能需要对某一个版本进行本地备份,比如制作成压缩包进行发布,这时候需要从svn文件夹中提取出内容,去除.svn等隐藏的.../bash /home/www/svnup.sh” 然后B机器的/home/www/目录创建svnup.sh可执行文件 /usr/bin/svn update /web/root/code...版本库有提交请求的时候自动会执行post-commit脚本,post-commit脚本通过ssh让远程机器执行shell脚本自动更新svn

    1.5K30

    Subversion钩子

    所谓钩子实际上是一种事件机制,当系统执行到某个特殊事件,会触发我们预定义的动作,这样的特殊事件Subversion里有很多,默认有如下模板可供选择: shell> ls /path/to/repository...假设有一个PHP项目使用Subversion做版本控制,使用中发现了一些问题,比如程序员不写日志,或者提交文件有BOM,或者提交文件有语法错误,或者提交文件不符合编码规范等等,这些问题都可以利用pre-commit...钩子来解决,实际上已经有人写了解决类似问题的工具php-svn-hook,不过我们这里选择自己实现: shell> cat /path/to/repository/hooks/pre-commit #!...配置好脚本后,一定要记着给脚本加上可执行属性,不然脚本执行后会显示不知所云的错误信息:svn: Commit blocked by pre-commit hook (exit code 255) with...本文以pre-commit为例说明了一下钩子的用法,实际上其他脚本也很有用,比如说如果你想在提交代码后发一条微博,就可以利用post-commit来解决,但是记住不要滥用,比如说非常流行的一种做法是利用

    71220

    SVN工具分析

    .post-unlock C.关于提交的3种 c1.start-commit c2.pre-commit c3.post-commit D.关于属性的2种 d1.pre-revprop-change d2....post-revprop-change TortoiseSVN客户端有6中钩子,分别是: A.关于提交的 a1.start commit hook a2.pre-commit hook a3.post-commit...要执行的命令行: 本地钩子脚本路径 例如本次需要做的工具需要用到提交之前的钩子,配置如下 SVN客户端钩子,每一种钩子调用脚本的时候,都会传入一定的参数, 所有的参数类型如下: PATH 指向临时文件的路径...,此文件包含了操作开始的所有路径。...3 svn_depth_infinity MESSAGEFILE 指向包含日志信息的提交文件.此文件使用UTF-8编码.成功执行开始提交钩子后,日志信息会回显,以便于钩子修改.

    2.3K00

    svn集成ReviewBoard,让post-commit hook后台运行

    pre-commit-review是指代码提交到代码库前进行代码评审; post-commit-review是指代码提交到代码库后进行代码评审。...svn可以通过post-commit hook与ReviewBoard集成,实现post-commit-review。...其实现原理为: 用户提交代码至svn完成后触发post-commit钩子脚本 svn post-commit hook中调用RBtools的rbt post命令连接ReviewBoard自动提交代码评审请求...使用中出现了如下问题: 用户需要等待post-commit hook执行完毕后才算提交完成 这样直接导致了用户提交代码等待时间过长,影响了用户体验 于是想到让post-commit中调用的...rbt post命令在后台运行 这样post-commit就无需等待rbt post执行完成可以发送完rbt post命令后直接返回 得知linux中&命令可以把作业放到后台执行 可是post-commit

    2.2K20

    利用SVNPOST-COMMIT钩子自动部署代码

    最近配置了一台SVN服务器,用来保存自己一些小项目的代码。同时,SVN服务器也是一台前端的Web。所以希望利用SVNPOST-COMMIT钩子HOOKS,提交代码的同时进行部署。...具体的步骤如下: 1、找到SVN项目的HOOKS目录。目录中默认会几个对应操作的钩子模板,我们需要创建一个post-commit文件。...4、代码CO出来之后,可以进行post-commit脚本的测试了。因为svn的hooks执行的时候不带有任何的环境变量,所以我们不能通过简单的 ./post-commit 进行代码的测试。.../post-commit 这样,执行svn update 命令的用户就是svn或者apache服务器的运行用户,因此,我们需要保证代码的存放目录必须有对应用户的权限,否则,这个脚本是不能执行的。...补充,使用这个方法部署代码并不能够保证同步完成,执行 svn update ,如果check出来的文件夹中存在和svn中重名的文件夹或者文件,会导致 update 失败,这一点需要注意。

    1.1K30

    eclipse本地svn插件与库版本不一致更新等操作出错解决方法

    传输文件数据.svn: 提交失败(细节如下): svn: Commit blocked by pre-commit hook (exit code 1) with output: 提交说明至少应包含 4...这是由于用户提交提交说明(commit log),太过简单了。提交需要输入有意义的 commit log。 写有意义的提交说明,或者请求管理员更改版本库插件 10....增加 Logger.c 传输文件数据.svn: 提交失败(细节如下): svn: Commit blocked by pre-commit hook (exit code 1) with output:...文件名只有大小写不同,Windows上进行检出会造成麻烦 不要添加重名(仅大小写不同)文件 增加 src/文件aBc.txt 传输文件数据.svn: 提交失败(细节如下): svn: Commit...传输文件数据.svn: 提交失败(细节如下): svn: Commit blocked by pre-commit hook (exit code 1) with output: ===========

    3.1K40

    springcloud(七):配置中心svn示例和refresh

    上一篇springcloud(六):配置中心git示例留了一个小问题,当重新修改配置文件提交后,客户端获取的仍然是修改前的信息,这个问题我们先放下,待会再讲。...2、 开启更新机制 需要给加载变量的类上面加载 @RefreshScope,客户端执行 /refresh的时候就会更新此类下面的变量值。...win上面打开cmd执行 curl-X POST http://localhost:8002/refresh,返回 ["neo.hello"]说明已经更新了 neo.hello的值。...4、webhook WebHook是当某个事件发生,通过发送http post请求的方式来通知信息接收方。Webhook来监测你Github.com上的各种事件,最常见的莫过于push事件。...默认事件 create 当有分支或标签被创建触发 delete 当有分支或标签被删除触发 svn也有类似的hook机制,每次提交后会触发post-commit脚本,我们可以在这里写一些post请求

    1.2K80

    Mac环境下svn的使用

    他们会在下次提交被添加到项目仓库 svn add path --auto-props 添加他们的时候自动设置文件的属性 --no-auto-props 禁用自动属性设置 svn blame...传输文件数据.svn: 提交失败(细节如下): svn: Commit blocked by pre-commit hook (exit code 1) with output: 提交说明至少应包含 4...这是由于用户提交提交说明(commit log),太过简单了。提交需要输入有意义的 commit log。 写有意义的提交说明,或者请求管理员更改版本库插件 10....增加 Logger.c 传输文件数据.svn: 提交失败(细节如下): svn: Commit blocked by pre-commit hook (exit code 1) with output:...文件名只有大小写不同,Windows上进行检出会造成麻烦 不要添加重名(仅大小写不同)文件 增加 src/文件aBc.txt 传输文件数据.svn: 提交失败(细节如下): svn: Commit

    6.9K31

    SVN利用钩子post-commit自动更新到线上测试服务器

    注: # start-commit 提交前触发事务  # pre-commit 提交完成前触发事务  # post-commit 提交完成触发事务  # pre-revprop-change...版本属性修改前触发事务  # post-revprop-change 版本属性修改后触发事务 执行commit操作之后会自动执行post-commit这个钩子程序。...cd  /home/svn/cqzn_server/hooks mv post-commit.tmpl post-commit 并且修改这个文件:如下内容 vim post-commit #Set variable.../exclude.list $WEB root@$WEBIP:/www/ >> $LOG  fi  #--exclude-from 可不要根据需求不同步的排除 5、修改完上面脚本后授执行权限。...SVN 如代码提交前查看是否有写日志,是否有tab,有将换成空格,是否有不允许上传的文件,是否有超过限制大小的文件等等。

    36610

    svn迁移至git指南

    SVN迁移至Git 将代码从SVN迁移至Git,若不关注SVN的历史提交记录,则直接将一份源代码提交至远端Git仓库即可;但对于大多数项目,历史提交则是对团队比较宝贵的记录,若要导出SVN的历史记录...二、通过修改git配置文件 我们之前提到的git svn clone命令,其实本质执行了(git svn init 和 fetch)两个步骤,git svn init的过程中,创建了本地仓库并建立了与...平台却难监管,本地提交检测,git hook是一个不错的选择,它提供了各个不同阶段的hook,例如针对commit操作有如下hook(更多的请参考git-hook4): ?...代码片段来描述下如何编写本地hook: 1..git/hook目录中,将commit-msg.sample重命名为commit-msg,并更改如下内容: ?...其中$1则为提交信息的临时文件路径。 2..git/hook目录中创建commit-msg.py, python脚本中编写对应的验证逻辑,例如下: ? 若提交不符合规范,则直接提示并本地打回。

    1.6K20

    Jenkins +svn

    要素:  1.统一的代码库 2.自动构建 3.自动测试 4.每个人每天都要向代码库主干提交代码 5.每次代码递交后都会在持续集成服务器上触发一次构建 6.保证快速构建 7.模拟生产环境的自动测试 8.每个人都可以很容易的获取最新可执行的应用程序...,通过bat文件来进行执行步骤。...这里就可以使用SVN里的POST-COMMIT HOOK。 关于SVN HOOK,即SVN钩子,执行一些动作可以绑定另一些动作来辅助SVN管理,属于对SVN的二次开发。...如图,Post-Commit Hook,就是完成SVN上传动作后要启动这个。在这里绑定启动自动构建,即可实现上传代码后触发自动构建。...还有一些Pre-Commit Hook,则可以在上传前做一些动作,如上传的Log进行规范。 找到jenkins-cli.jar文件所在位置,build后面改为工程名子Test,即可。

    62120

    ReviewBoard代码评审实践总结 顶

    现在主流的两种版本控制工具:SVN和GIT。 GIT有个Google开发的代码评审工具Gerrit,可以提交前进行代码评审,评审通过之后才允许提交到版本库。...pre-commit-review是指代码提交到代码库前进行代码评审; post-commit-review是指代码提交到代码库后进行代码评审。...,实现post-commit-review 曾经尝试过用pre-commit-review进行代码评审,实施或推广之时,遇到如下问题: 代码提交人在评审请求通过之后还需要再提交代码至版本库...所以,选择了post-commit-review,关于post-commit-review,可以参考如下文档: svn post-commit脚本样例: reviewboard源码中用户贡献的样例...rbt post 命令官方指南 svn集成ReviewBoard,让post-commit hook后台运行 最后,欢迎吐槽!

    2.5K20

    linux下svn命令使用大全(share)

    如果在提交的时候提示过期的话,是因为冲突,需要先update,修改 文件,然后清除svn resolved,最后再提交commit) 简写:svn up 6、查看文件或者目录状态 1)svn status...注:svn status、svn diff和 svn revert这三条命令没有网络的情况下也可以执行的,原因是svn本地的.svn中保留了本地版本的原始拷贝。...当Subversion改变你的工作拷贝(或是.svn 中 的任何信息),它会尽可能的小心,修改任何事情之前,它把意图写到日志文件中去,然后执行log文件中的命令,然后删掉日志文件,这与分类帐的文件系统...另附:为SVN 加入Email通知 可以通过Subversion的Hook脚本的方式为SVN 加入邮件列表功能 编译安装了Subversion后 源码的tools 下有一个comm-email.pl...的Perl脚本,在你的档案目录下有一个hooks目录,进入到hooks目录把post-commit.tmpl 改名为post-commit并给它可执行的权限。

    10K20

    linux下svn命令使用大全

    如果在提交的时候提示过期的话,是因为冲突,需要先update,修改 文件,然后清除svn resolved,最后再提交commit) 简写:svn up 6、查看文件或者目录状态  1)svn status...注:svn status、svn diff和 svn revert这三条命令没有网络的情况下也可以执行的,原因是svn本地的.svn中保留了本地版本的原始拷贝。...当Subversion改变你的工作拷贝(或是.svn 中 的任何信息),它会尽可能的小心,修改任何事情之前,它把意图写到日志文件中去,然后执行log文件中的命令,然后删掉日志文件,这与分类帐的文件系统...另附:为SVN 加入Email通知  可以通过Subversion的Hook脚本的方式为SVN 加入邮件列表功能  编译安装了Subversion后 源码的tools 下有一个comm-email.pl...的Perl脚本,在你的档案目录下有一个hooks目录,进入到hooks目录把post-commit.tmpl 改名为post-commit并给它可执行的权限。

    6.4K20

    git hook实践心得

    important actions occur Git hook能够发生某特定行为的时机,触发执行自定义的脚本。...commit message创建后触发,常用于生成默认的标准化的提交说明 commit-msg: 开发者编写完并确认commit message后触发,常用于校验提交说明是否标准 post-commit...: 整个git commit完成后触发,常用于邮件通知、提醒 applypatch-msg: 执行git am命令触发,常用于检查命令提取出来的提交信息是否符合特定格式 pre-applypatch:...am过程) pre-rebase: 执行git rebase命令触发 post-rewrite: 执行会替换commit的命令触发,比如git rebase或git commit --amend...post-checkout: 执行git checkout命令成功后触发,可用于生成特定文档,处理大二进制文件post-merge: 成功完成一次 merge行为后触发 pre-push: 执行git

    1.2K20

    利用svn钩子hookspost-commit实现代码自动部署

    因此希望当我本地代码commitsvn服务器,能够触发svn服务器的钩子hooks/post-commit将新版本的代码自动update到站点目录上去。 其实这样做,感觉有点傻。...目录中默认会几个对应操作的钩子模板,我们需要创建一个post-commit文件。 2.新建post-commit,内容如下 #!...附录: 1.Warning: post-commit hook failed (exit code 255) with no output....赋予post-commit文件执行权限,文件第一行有没有#!/bin/sh,Post-commit第一行不是#!/bin/sh开头也是出现255的 2.这样做,还有点问题。.../post-commit 这样,执行svn update 命令的用户就是svn或者apache服务器的运行用户,因此,我们需要保证代码的存放目录必须有对应用户的权限,否则,这个脚本是不能执行的。

    2.2K30

    您有一篇git 原理,请注意查收

    ---- Hook 钩子(Hooks)是一种通用概念,通常用于「特定事件发生触发自定义代码」。虽然不是编程语言本身的一部分,但编程语言和开发工具通常提供一些机制来支持编写和使用钩子。...JavaScript Hooks JavaScript 用于前端和后端开发,事件处理程序特定事件发生执行自定义 JavaScript 代码。 前端中,事件处理程序如事件监听器。...以下是一些常见的Git挂钩类型: 「pre-commit」:执行实际提交之前运行,用于执行「预提交检查」。 「pre-push」:执行实际推送之前运行,用于「验证推送到远程仓库的内容」。...「pre-receive」:接收端执行,通常用于「验证推送到远程仓库的提交」。 「post-receive」:接收端执行,通常用于「通知或自动化部署」。...「编写Git Hook」: 要编写Git Hook,我们只需创建一个可执行的脚本文件并将其放入.git/hooks目录中。脚本的名称必须与hook类型相匹配(例如,pre-commit)。

    29530

    svn 删除、移动和改名

    提交父目录 既然重命名和移动都是像添加之后跟随着删除一样被执行,你必需提交该重命名/移动文件的父文件夹,所以重命名/移动的删除部分将出现在提交对话框中。...你必须在重命名文件夹后立刻进行提交提交不要更改文件夹下的任何文件,不然你的工作副本就会真的混淆。 另外一种复制或移动文件的方法是通过Windows 的复制/移动命令....不要使用 SVN 移动外部连接 你不应该用 TortoiseSVN 的移动或改名命令作用在用 svn:externals 创建的目录上。...当 Subversion 支持大小写敏感的文件,Windows 不支持。 它偶尔两个人在独立的工作副本提交发生,文件名称相同,只有大小写不同。...它也会在具有大小写敏感的文件系统的系统中提交文件发生,例如 Linux。

    2.5K30
    领券