CommitHook
一个c#写的Console Application,用于给SVN的Hook调用。
此代码只能算做一个C#开发Subversion Hooks的一个模板,现有代码只是针对自己特定的需求开发的,其中的功能并不适合所有人。
现有的代码功能如下:
当有提交时,如果变更的文件中包含“SVN_Auth.*.xls”文件(内部使用的SVN权限配置文件),则自动export此文件,并执行其中的VBA代码,生成相关的权限配置列表文件,从而达到了PM自动维护SVN权限的处理。
现有代码的使用方法(如果改成其它的Hook事件,可能需要略改动)
1、根据CMHook\App_template.config文件描述内容,写一个自己的App.config;
注意:相关的配置内容如果有错误,可能会直接造成Hook执行时产生异常结果。其中用户名、密码字段是需要加密的,
2、将此代码编译,将生成的exe、dll一同复制到%path%所含盖的某个目录下;
3、写个\hooks\post-commit.bat,内容是调用此代码,并传入必要的参数:
set REPOS="%1"
set REV=%2
for %%i in ("%~dp0\..") do (
set RESP_NAME=%%~ni
)
rem 此代码中的处理,依赖于SVN库的本地路径、revision(版本号)、SVN库的对外访问地址
CMHook -a %~dp0\.. -r %REV% -u http://192.168.10.10/%RESP_NAME% >> C:\svn-hook-temp\hook.log
4、尝试提交相关的文件(现有代码是关注“SVN_Auth.*.xls”这个文件),确认hook的处理结果。
更新记录
2020/05/07 使用Sharp SVN替换了之前的svn command方式,新的工程为CMHook_v2;