Jenkins创建job时Check-out Strategy各个选项详细说明(含图)

Check-out Strategy 第一次build 第n次build(除第一次)
Use 'svn update' as much as possible 将workspace下的所有文件清空,然后从svn上check out一份完整的项目到workspace下 update前不会revert
Always check out a fresh copy 删除workspace下的所有文件,然后重新check out一份完整的项目到workspace下。
Emulate clean checkout by first deleting unversioned/ignored files, then 'svn update' update前先删除unversioned/ignored文件
Use 'svn update' as much as possible, with 'svn revert' before update update前先revert

 各选项测试结果如下:

  • 1、Use‘svn update’ as much as possible

    • 第一次发布的时候,会把工作目录下的所有文件清空,然后check-out一份完整的项目到工作目录下;

    • 以后更新的时候,不会判断已有文件是否在svn里存在。比如工作目录下的文件123在svn里不存在,那么更新的时候不会删除123。

    • 不会判断工作目录下的文件是否被改动,只会判断svn是否有新版本需要更新。比如工作目录下的文件zzz.txt内容为zzz,svn上的zzz.txt内容为空,如果svn上zzz.txt没有新版本,则在更新的时候不会更新zzz.txt,也就是说如果手动修改了工作目录下的文件,如果此文件在svn上没有出现新版本,就不会更新。一旦svn上的zzz.txt有新版本后就会更新工作目录的zzz.txt,这时工作目录下会生成如下几个文件:zzz.txt、zzz.txt.mine、zzz.txt.r223、zzz.txt.r224,其中zzz.txt.r223为svn上老版本、zzz.txt.r224为svn上新版本、zzz.txt.mine为工作目录上的zzz.txt的副本、zzz.txt记录了文件变化。

    • svn上删除了文件,更新的时候,工作目录里的此文件也会被删除。但是如上例中的zzz.txt手动修改过,已经和svn上的不一样了,这时将不会被删除。

  • 2、Alwayscheck out a fresh copy

    • 第一次发布的时候,会把工作目录下的所有文件清空,然后check-out一份完整的项目到工作目录下;

    • 每一次更新的时候,都会先清除工作目录下的所有文件,然后重新check-out一份完整的项目到工作目录下。

  • 3、Emulateclean checkout by first deleting unversioned/ignored files,then ‘svn update’

    • 第一次发布的时候,会把工作目录下的所有文件清空,然后check-out一份完整的项目到工作目录下;

    • 以后更新的时候会判断工作目录下的文件是否在svn里存在,如果不存在则删除,如果存在且有新版本则更新。

    • 会判断工作目录下的文件是否被改动,不管有没有新版本,都会还原为svn上的最新版本。

    • svn上删除了文件,更新的时候,工作目录里的此文件也会被删除。

  • 4、Use‘svn update’ as much as possible,with ‘svn revert’ before update

    • 第一次发布的时候,会把工作目录下的所有文件清空,然后check-out一份完整的项目到工作目录下;

    • 以后更新的时候不会判断工作目录下的文件是否在svn里存在。

    • 会判断工作目录下的文件是否被改动,不管有没有新版本,都会还原为svn上的最新版本。

    • svn上删除了文件,更新的时候,工作目录里的此文件也会被删除。

posted @ 2018-01-08 11:34  技术颜良  阅读(2755)  评论(0编辑  收藏  举报