首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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。

01
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    CentOS 6.5 x64安装svn

    #svn安装 yum install -y subversion 卸载svn旧版本 yum remove -y subversion wget http://pkgs.repoforge.org/subversion/subversion-1.7.4-0.1.el6.rfx.x86_64.rpm 安装新版本 rpm -ivh subversion-1.7.4-0.1.el6.rfx.x86_64.rpm 创建svn根目录 mkdir /svndata 创建svn公共配置目录 mkdir -p /usr/local/subversion/conf cd /usr/local/subversion/conf 编辑用户文件authz 内容如下: [groups] backend=zty [/] whh=rw @backend=rw 解释: backend是代表一个用户组,@backend=rw表示用户组有读写权限。 whh是用来跑钩子脚本的用户,名字大家可以随便取,下面会说到钩子脚本。 如果需要添加用户zhang,修改backend=zty,在后面加上即可,多个用户用逗号隔开,效果如下: backend=zty,zhang 编辑密码文件passwd 内容如下: [users] whh = whh zty = zty123 解释: 等号左边是用户,等号右边是密码 创建bin目录 mkdir -p /usr/local/subversion/bin 链接文件 ln -s /usr/bin/svn /usr/local/subversion/bin/svn 创建svn根目录 mkdir /svndata 创建svn日志目录 mkdir /var/log/svn 创建dts项目检出目录,此目录必须是空的。 一般svn服务器和网站服务器是在同一服务器上面的。 网站服务器的根目录为/www,所以dts项目从svn检出的路径也在/www目录下。 一旦客户端提交代码,访问网页,就可以看到效果。 mkdir /www/dts 创建项目 cd /svndata svnadmin create dts 编辑配置文件 cd /svndata/www/dts/conf/ 编辑配置文件svnserve.conf 清空所有内容 写入如下内容: [general] anon-access = none auth-access = write password-db = /usr/local/subversion/conf/passwd authz-db = /usr/local/subversion/conf/authz realm = web [sasl] # use-sasl = true # min-encryption = 0 # max-encryption = 256 指定用户和密码配置文件为公共目录。如果新建项目的也指定为公共目录,只需要修改公共目录的文件,使用指定用户和密码,就可以访问其他相关项目。 在项目众多,人员权限统一的情况下,是很有必要的。 假如公司有60多个项目,新来一个员工,要添加一个账户,每个项目改配置很费劲。 如果都指定为公共目录,那就只需要更改authz和passwd这2个文件就可以了。 编辑钩子文件,默认post-commit文件不存在 vim /svndata/www/dts/hooks/post-commit 内容如下: #!/bin/sh /usr/local/subversion/bin/svn update --username whh --password whh /www/dts/ >> /var/log/svn/dts.log 设置权限 chmod 755 /svndata/www/dts/hooks/post-commit 这里解释下,钩子脚本的作用。 当客户端提交文件成功之后,会自动执行post-commit。将更新的代码检出到指定目录,保证提交的代码和服务器一致。 需要注意的是,不要直接在服务器的指定目录,这里是指/www/dts/ 编辑文件,否则客户端提交文件之后,提示文件冲突。 启动svn svnserve -d -r /svndata 注意,必须要手动检出一份,否则post-commit不生效 svn co file:///svndata/www/dts/ /www/dts/ 再次执行命令 /usr/local/subversion/bin/svn update --username whh --password whh /www/dts/ 使用svn客户端上传代码测试 查看服务器/www/dts/目录是否有上传的文件

    01
    领券