升级TortoiseSVN到1.8.x 之后,pre-commit失效

升级TortoiseSVN从1.7.x到1.8.x之后,原来配置的Subversion服务端调用的pre-commit失效。

pre-commit.bat:

@echo off 
set SVN_BINDIR=C:\csvn\bin
setlocal
set REPOS=%1
set TXN=%2
rem check that logmessage contains at issue number or not
%SVN_BINDIR%\svnlook log "%REPOS%" -t "%TXN%"  | findstr "^#[0-9]1*[^a-zA-Z]1*" > nul
if %errorlevel% gtr 0 goto err
exit 0
:err
echo 注释必须以任务号开始,格式 “#123 your_message”。提交中断。Commit aborted! 1>&2
exit 1

一时手贱,折腾了两个钟头总算搞明白了。

原因如下:

1.8.x其实对svnlook也有升级,所以如果你的subversion调用hook批处理使用是默认目录,或者都是新安装的,则没有问题。悲催的是偶的subversion使用的是1.6.x的版本,也没有同时更新svnserve,两边的版本不匹配。btw:服务端不会自动升级的。

具体svnlook里面改了什么东西没有仔细研究,估计是在1.6的svnserve无法识别1.7下svnlook的注释字符串,格式有差异。

解决办法很简单:

从安装目录下找到新的svnlook.exe(大概77KB),然后对应找一下repository里面配置的pre-commit地址,替换一下就Ok。

 

很久没有更新博客了,有时候遇到一些问题经常google到别的博客,节约了不少时间。很多问题不是大问题,但经常分享出来也许可以帮到不少人。

另:最近做了一款 bugnet tracker的Visual Studio 2012插件,结合anksvn用,便于快速查看任务。

插件已经发布到VS工具箱

http://visualstudiogallery.msdn.microsoft.com/2e961a38-fc59-47ef-a581-28938c3d8a10

这里源代码:

http://ankhbugnetext.codeplex.com/ 

有兴趣的朋友可以加入进来一起完善。

再BTW:

第一条评论的小子不厚道。经分析应该是SVN客户端升级造成的问题。1.8的变化很大,WC的结构也发生了变化。升级1.8之前最好先完整提交代码;如果没有先提交,升级之后也需要执行一下"upgrade working copy",不管是AnkSvn还是TortoiseSVN,任何一个执行一下都OK。

 

posted @ 2013-12-17 00:43  ZhZhen  阅读(897)  评论(0编辑  收藏  举报