用于注释长度Subversion的Windows预提交钩子

Pos*_*Guy 33 svn windows tortoisesvn pre-commit svn-hooks

我似乎无处可去.在网上搜索脚本等等.任何人都有一个脚本,您可以在Windows环境中编辑现成的pre-commit.tmpl,该环境需要输入x字符才能在Tortoise Subversion中提交注释全局,以便团队中的所有成员都需要,而这个要求从SVN服务器下推到客户端?

我不知道脚本语言,这应该是非常简单的事情,没有我花时间找出接下来3个小时的脚本.

Cor*_*nie 55

这是一个.bat文件,要求有一个注释.它检查注释中是否存在至少一个字符.

 @echo off  
 :: Stops commits that have empty log messages.        
 @echo off  

 setlocal  

 rem Subversion sends through the path to the repository and transaction id  
 set REPOS=%1  
 set TXN=%2           

 svnlook log %REPOS% -t %TXN% | findstr . > nul  
 if %errorlevel% gtr 0 (goto err) else exit 0  

 :err  
 echo. 1>&2  
 echo Your commit has been blocked because you didn't enter a comment. 1>&2  
 echo Write a log message describing the changes made and try again. 1>&2
 echo Thanks 1>&2
 exit 1
Run Code Online (Sandbox Code Playgroud)

该文件位于存储库的/ hooks文件夹中,名为pre-commit.bat.如果您需要最少量的字符,则要修改的行是

svnlook log %REPOS% -t %TXN% | findstr . > nul
Run Code Online (Sandbox Code Playgroud)

因此,如果你想要至少10个字符,你需要有10个而不是一个

svnlook log %REPOS% -t %TXN% | findstr .......... > nul
Run Code Online (Sandbox Code Playgroud)

findstr命令的更高级选项将允许您进行更高级的检查(某些字符集,等)

  • 是的,100个字符= 100个点与该脚本.但是你只需要做一次......你需要确保在svn服务器上,当你转到命令提示符并输入'svnlook'时会发生一些事情.svnlook是一个命令行工具,您可能需要有一个类似'c:\ Program Files\...\svnlook'的路径,脚本才能工作,具体取决于系统的PATH变量的设置方式.1%和%2正在读取从svn传递给钩子的参数.我们将它分配给REPOS,TSN变量供以后使用. (5认同)