版本控制工具svn钩子hook机制详解—实现检测提交代码功能_svn hook

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

在安装的apache的服务器中,可以查看模板。

[root@iZm5eetbb1qeqn5t6ynbyiZ svn]# ls
authz  passwd  test  touch
[root@iZm5eetbb1qeqn5t6ynbyiZ svn]#
[root@iZm5eetbb1qeqn5t6ynbyiZ svn]#
[root@iZm5eetbb1qeqn5t6ynbyiZ svn]#
[root@iZm5eetbb1qeqn5t6ynbyiZ svn]# cd test/
[root@iZm5eetbb1qeqn5t6ynbyiZ test]# ls
conf  dav  db  format  hooks  locks  README.txt
[root@iZm5eetbb1qeqn5t6ynbyiZ test]# cd hooks/
[root@iZm5eetbb1qeqn5t6ynbyiZ hooks]# ls
post-commit.tmpl  post-revprop-change.tmpl  pre-commit.tmpl  pre-revprop-change.tmpl  start-commit.tmpl
post-lock.tmpl    post-unlock.tmpl          pre-lock.tmpl    pre-unlock.tmpl
[root@iZm5eetbb1qeqn5t6ynbyiZ hooks]#

三、hook说明

svn 9种相关的hook所触发的时机相关的信息如下

四、hook参数

当前版本的hook的相关参数信息如下所示:

五、起效方式

缺省创建的库中的9个文件均以tmpl结尾,而这样是不起作用的,在Unix/Linux下,删除tmpl的后缀才能起作用,而windows则需要将.tmpl改成.bat。
修改之后立即起效,无需重新启动svn服务。

在pre-commit中主要做校验用到的命令是svnlook命令,看下svnlook命令

[root@iZm5eetbb1qeqn5t6ynbyiZ tmp]# /usr/bin/svnlook help
general usage: svnlook SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]
Note: any subcommand which takes the '--revision' and '--transaction'
      options will, if invoked without one of those options, act on
      the repository's youngest revision.
Type 'svnlook help <subcommand>' for help on a specific subcommand.
Type 'svnlook --version' to see the program version and FS modules.

Available subcommands:
   author
   cat
   changed
   date
   diff
   dirs-changed
   filesize
   help (?, h)
   history
   info
   lock
   log
   propget (pget, pg)
   proplist (plist, pl)
   tree
   uuid
   youngest

5.1  Linux脚本实现检测代码中是否含有非法字符

首先执行以下命令

mv pre-commit.tmpl  pre-commit

chmod +x pre-commit
#!/bin/sh

REPOS="$1"


![img](https://img-blog.csdnimg.cn/img_convert/645d28b4c0d8a75a3503281db914933b.png)
![img](https://img-blog.csdnimg.cn/img_convert/0fdd81d300bbb8d029ac9489ee4c5f6d.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**

比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SVN(Subversion)是一个开源的版本控制系统,它可以帮助团队协同开发和管理项目代码。下面是SVN的使用介绍: 1. 安装SVN:首先,你需要下载并安装SVN客户端软件,例如TortoiseSVN(Windows平台)或者svn命令行工具(Linux平台)。 2. 创建版本库:在SVN中,项目的代码存储在一个称为版本库(Repository)的中央服务器上。你可以使用svnadmin命令创建一个新的版本库。 3. 检出代码:使用svn checkout命令将版本库中的代码复制到本地工作副本(Working Copy)中。这样你就可以在本地进行修改和提交。 4. 添加和提交文件:将你的代码文件添加到本地工作副本中,使用svn add命令。然后使用svn commit命令将修改后的文件提交到版本库中。 5. 更新代码:使用svn update命令可以将版本库中其他人提交的最新代码更新到你的本地工作副本中。 6. 解决冲突:当多个人同时修改同一个文件时,可能会发生冲突。SVN会标记出冲突的文件,你需要手动解决冲突并提交修改。 7. 分支和合并:SVN支持创建分支和合并操作,可以方便地进行并行开发和代码版本管理。 8. 查看日志:使用svn log命令可以查看版本库中的提交日志,包括每个版本的修改记录和提交者信息。 9. 撤销修改:使用svn revert命令可以撤销对文件的修改,将文件恢复到最新的版本。 10. 标签和标记:SVN支持创建标签(Tag)来标记项目的重要里程碑或版本发布。标签是一个不可修改的副本,用于长期保存。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值