天天看點

Jenkins Subversion Plugin與本地Subversion Command不相容

使用Jenkins時Jenkins Subversion Plugin與本地Subversion Command不相容

1、使用場景

在使用jenkins時,先使用Jenkins Subversion Plugin執行checkout或update操作,然後經過一些列操作後在batch指令行調用svn update指令行

2、錯誤詳情

在batch指令行調用svn update指令行時,出現如下錯誤:

svn: E155036: Please see the 'svn upgrade' command

svn: E155036: The working copy at 'xxx' is too old (format 8) to work with client version '1.8.10 (r1615264)' (expects format 31). You need to upgrade the working copy first.

3、軟體環境

Jenkins ver. 1.592

TortoiseSVN 1.8.8(Subversion 1.8.10,安裝TortoiseSVN同時安裝了Subversion Command)

Jenkins Subversion Plugin 1.54(Jenkins ver. 1.592自帶)

4、錯誤分析

錯誤很明顯,是Jenkins Subversion Plugin與本地Subversion Command不相容

Jenkins Subversion Plugin 1.54不支援svn 1.8,主要表現在不支援1.8版本的working copy

5、解決問題

隻要讓TortoiseSVN和Jenkins Subversion Plugin支援的svn版本保持一緻即可解決問題

或者降低TortoiseSVN的版本,或者更新Jenkins Subversion Plugin到支援svn 1.8的版本,或者隻用其中某一個

(1)降低TortoiseSVN的版本

如果降低TortoiseSVN的版本,應該将其降為1.7還是1.6呢?

先看看Jenkins Subversion Plugin 1.54是基于1.6還是1.7開發的。

通過檢視Jenkins Subversion Plugin 1.54的源碼(https://github.com/jenkinsci/subversion-plugin/releases/tag/subversion-1.54)

在pom.xml中看到svnkit相關的dependency資訊如下:

<dependency>      

     <groupId>org.jenkins-ci.svnkit</groupId>      

     <artifactId>svnkit</artifactId>      

     <version>1.7.10-jenkins-1</version>

</dependency>

從中得出,SVNKIT的版本是1.7.10

在SVNKIT官網相關頁面(http://svnkit.com/download.php)得知:

SVNKit 1.8.7 is compatible both with Subversion 1.8 and Subversion 1.7 working copy formats. No upgrade is required for working copies in 1.7 format.

SVNKit 1.7.13 is NOT compatible with Subversion 1.8 working copy format. It is compatible with Subversion 1.8 servers.

Both SVNKit 1.7.13 and 1.8.7 support 1.6 and older working copy formats without need to upgrade.

檢視SVNKIT1.7.13的changelog(http://svn.svnkit.com/repos/svnkit/tags/1.7.13/CHANGES.txt)

可以看出SVNKIT從1.7.8版本開始支援svn 1.6,SVNKIT1.7.10應該既支援svn 1.7又支援svn1.6。

同時, 在Jenkins的系統管理→系統設定中,可以設定Subversion的版本。

是以将TortoiseSVN降為1.7或1.6均可,隻要保持 TortoiseSVN與Jenkins設定的Subversion保持一緻即可 。

(2)更新Jenkins Subversion Plugin到支援svn 1.8的版本

在Jenkins的系統管理→插件管理頁面,關于Subversion Plugin的資訊

得知Jenkins Subversion Plugin 目前版本為1.54,最新版本為2.5

檢視Jenkins Subversion Plugin的changelog( https://wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin)

可以看出,Jenkins Subversion Plugin 2.5已支援svn 1.8

是以将Jenkins Subversion Plugin更新到2.5版本即可。

(3)隻用TortoiseSVN帶的Subversion Command

如果不想降低TortoiseSVN版本或更新Jenkins Subversion Plugin

可以隻用TortoiseSVN帶的Subversion Command

因為Subversion Command與Jenkins Subversion Plugin相比:

靈活、功能多(如commit、merge等)

(adsbygoogle = window.adsbygoogle || []).push({});