解决jenkins打包时不能及时更新到最新代码的问题
2015-10-27 16:05
525 查看
在使用Jenkins做持续集成时,遇到Jenkins的SVN插件没有更新到最新的代码的情况。
例如,在代码提交之后就立即使用Jenkins更新代码,结果刚提交的代码没有被更新到,更新到的代码是旧版本的。
查阅网上相关内容,有一种说法为:
Jenkins服务器时间与SVN服务器时间不一致,Jenkins的SVN插件是使用时间标签下载,而不是取HEAD,
因此如果svn服务器的提交代码时间比Jenkins的当前时间晚,该代码就不会被更新。
所解决问题的方法是:
只要将Jenkins服务器时间与SVN服务器时间设置成一样的就可以。
没错,上面是解决了问题,但Jenkins的SVN插件是与时间戳相关的SVN revision吗?
查看某个Jenkins Job的构建日志,在使用SVN插件更新代码时,日志如下:
Updating svn://repository_path at revision '2015-08-06T08:48:12.490 +0800'
从上面可以看出来,该次构建相应的revision确实是构建时间戳。
那么,可以让Jenkins的SVN插件更新代码时,设置revision为HEAD吗?
答案是可以的,在SVN URL加@HEAD后缀即可,Jenkins的SVN插件是支持这个的。
在SVN URL加@HEAD后缀后,构建Jenkins Job后日志输出如下:
Updating svn://repository_path@HEAD
而且这样确保更新的代码是最新的,不会因为Jenkins服务器与SVN服务器之间的时间差受到影响。
注:HEAD是SVN revision关键字,表示版本库中的最新版本。
原文:http://my.oschina.net/donhui/blog/490125
例如,在代码提交之后就立即使用Jenkins更新代码,结果刚提交的代码没有被更新到,更新到的代码是旧版本的。
查阅网上相关内容,有一种说法为:
Jenkins服务器时间与SVN服务器时间不一致,Jenkins的SVN插件是使用时间标签下载,而不是取HEAD,
因此如果svn服务器的提交代码时间比Jenkins的当前时间晚,该代码就不会被更新。
所解决问题的方法是:
只要将Jenkins服务器时间与SVN服务器时间设置成一样的就可以。
没错,上面是解决了问题,但Jenkins的SVN插件是与时间戳相关的SVN revision吗?
查看某个Jenkins Job的构建日志,在使用SVN插件更新代码时,日志如下:
Updating svn://repository_path at revision '2015-08-06T08:48:12.490 +0800'
从上面可以看出来,该次构建相应的revision确实是构建时间戳。
那么,可以让Jenkins的SVN插件更新代码时,设置revision为HEAD吗?
答案是可以的,在SVN URL加@HEAD后缀即可,Jenkins的SVN插件是支持这个的。
在SVN URL加@HEAD后缀后,构建Jenkins Job后日志输出如下:
Updating svn://repository_path@HEAD
而且这样确保更新的代码是最新的,不会因为Jenkins服务器与SVN服务器之间的时间差受到影响。
注:HEAD是SVN revision关键字,表示版本库中的最新版本。
原文:http://my.oschina.net/donhui/blog/490125
相关文章推荐
- Java 枚举的详细说明
- 在一个新建文件夹下初始化Git并下载代码的命令
- 删除链表中倒数第n个节点(LintCode)
- ubuntu14.4设置vi编辑器显示行号和代码颜色
- 函数式编程--lambda表达式对比匿名内部类
- 函数式编程--lambda表达式对比匿名内部类
- python 入门笔记(二)
- 常用的排序算法的时间复杂度和空间复杂度
- python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
- python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
- Spring的特点
- java Vamei快速教程01
- php过滤所有的空白字符(空格、全角空格、换行等)
- Java嵌套类
- 小巧而又强大的翻译神器--QTranslate
- java Vamei快速教程00
- 求最长回文子串的Manacher算法,time O(n)
- GO语言的IO方法实例小结
- c/c++指针
- C++设计模式(一) 工厂模式