前言
工作中必然会接触到代码版本管理工具,它有效地提高了程序猿的代码管理效率,大大的节约了工作成本.其中,最常用的便是SVN和GIT两种版本管理工具.
SVN基础篇
钩子的用处
svn钩子的好处在于当用户提交前后触发的一些行为.按照具体的行为分为提交前的日志检查和提交后的代码部署
提交前日记检查
用户将数据提交到svn的时候需要填写提交的内容作为当前版本的日志记录.默认情况是不强制用户填写,但如果没有养成日志记录的习惯的话,版本控制的作用效果微乎其微.因为此时用户无法顺利的做版本管理和回溯.因此,我们需要做svn上做数据提交前的日志自检功能,强制用户做日志记录.这里用的钩子是pre-commit.
关于日志提交自检的钩子代码,如下所示:
|
|
提交后自动部署
有些时候为了方便和服务器资源的利用,在一台服务器同时部署svn服务器和web服务器.将用户提交的数据部署到web路径下就可以正常访问.这样用户提交的代码可以很直观的显示出来.这样做确实很方便,当然其中也隐藏了一些小技巧.那就是利用svn的钩子实现代码自动部署.这里用到的钩子是post-commit.
关于代码自动化部署的钩子代码,如下所示:
|
|
初学者可能无法一步到位,看看是否也踩到坑了.以下是一些总结,对Windows和Linux的都大同小异.主要是执行权限和目录路径不规范.
- 提示 svn: E020024: Error resolving case.可能是指定的目录不合法,特别是windows下的路径分隔符是反斜杠(“\“),在指定的字母之前是有转义功能.此时的反斜杠就是转义符,不再是目录路径分隔符了.
最简单的做法就是更换目录路径,避免转义符.
- 手动执行改文件代码能正常部署到指定的站点,但提交数据的时候却无法自动部署.全程没有发现报错,就算报错也看不到.这个问题,明显就是Visual SVN Server服务的执行权限不足.
简单操作 win+R 运行 services.msc 找到visual svn server 服务 右键属性 登陆面板 设置桌面交互或者管理员权限再试.