Jenkins checkout的文件 , TortoiseSVN 无法提交。 问题已经解决啦!

Jekins  SVN checkout files ,TortoiseSVN  can't commit  

TortoiseSVN版本是Ver 1.8。Jenkins版本是Ver 2.19.1。

Jenkins 自动从利用subversion插件,从SVN下载Checkout代码,然后编译处理过的目录和文件,在Windows的Explore中,用鼠标Right Click 右击键目录名或文件名的方法,弹出TortoiseSVN菜单,提交Commit不成功。

具体现象是,右击键之后,菜单Context Menu都无法弹出,Explore就报告错误了(彻底的崩了,提示重启或调试)。或者是可以出现了右击键的菜单Context Menu,但是Commit时,TortoiseSVN报告如下显示的错误。

In file
 'D:\Development\SVN\Releases\TortoiseSVN-1.8.10\ext\subversion\subversion\libsvn_subr\token.c'
 line 51: internal malfunction

网络上有人提到这个问题:

Not much to go on here, unfortunately. Obviously if the problem was the result of an *entirely normal* unlock command, our regression test would be expected to catch it. But I don't see enough in the issue report to help us understand what was *not* entirely normal about this operation. (For any devs taking note, "token" in the sense of the function above is not the lock token, but is instead a serialized string token that the function is trying to map to an internal integer code (e.g., an enum).)

更新版本TortoiseSVN1.8.12后,问题依旧:

 'D:\Development\SVN\Releases\TortoiseSVN-1.8.12\ext\subversion\subversion\libsvn_subr\token.c'
 line 51: internal malfunction


原本怀疑是Jenkins的SVN Checkout时,使用的SVN登录的用户名,与在Windows中TortoiseSVN提交时,SVN登录的用户名不一致,导致此问题。改一致之后,问题依旧。安装升级到TortoiseSVN1.9版本,问题依旧。仅仅是提示错误信息有变化。


一个变通的解决方法是:

在Windows中,手工TortoiseSVN Checkout 一份代码,将jenkins处理好的代码合并其中,Commit,成功。

这个变通的方法已经暗示,这个问题,应该是Jenkins的subversion插件问题,不是ToroiseSVN的问题。

继续研究中!


终于搞好了。是Jenkins的问题,要升级subversion插件!

下载最新的jenkins.war 2.27版本,升级Jenkins之后,问题依然如故。虽然,subversion.hpi 插件已经默认集成在了Jenkins中了(但是可能是有问题)。

需要再次的下载 subversion.hpi 插件(当前是2.7.1版本)。安装后,可能会报告出错,无法找到依赖的插件。

再按照提示,分别下载提示依赖的插件,安装这些插件,可能还会报错:还需要其它的插件依赖。再下载。将依赖的插件全部按照对应的版本下载。再反刚刚安装的顺序,将刚刚安装出错的插件重新安装一次。这次安装应该一个个均是OK了。

测试之后,解决了上述的 TortoiseSVN commit  提交出错的问题。另外 TortoiseSVN 版本使用的是1.8.12版本。

posted on 2016-10-28 09:25  johnphan  阅读(681)  评论(0编辑  收藏  举报

导航