Fed*_*lli 5 svn jenkins jenkins-plugins jenkins-workflow jenkins-pipeline
这个问题是基本相同,这其中除了我使用的颠覆,无插件更新已做的伎俩我.
我正在使用multibranch管道设置加载我的Jenkinsfile脚本,并且每个新的更改日志都会重复checkout scm.
因为在我的构建中我使用多个工作区,通过node内部parallel块分配,我正在为每个工作区调用新的签出,并且更改日志复制变得有点烦人.
小智 7
与其重新定义 SCM 类,还可以参考原始的“scm”对象并禁用更改日志,如下所示:
checkout(changelog: false, scm: scm)
Run Code Online (Sandbox Code Playgroud)
这将保留“checkout scm”的预期行为,同时禁用更改日志生成。
面对同样的问题.
我正在执行以下操作,直到发布了SVN插件的修复程序.
currentBuild.getChangeSets().clear()
checkout scm
Run Code Online (Sandbox Code Playgroud)
注意:您可能必须通过"进程内脚本批准"页面批准脚本调用.
这将清除Jenkins Job的更改日志.更改日志将通过'checkout scm'调用再次填充. 更新:检查下面的编辑.这个"解决方案"不起作用,因为在重新启动后添加了删除的修订版...我不明白为什么,但......
编辑:
好了,我发现了一种新的方式:
for(i = 0; i < scm.getLocations().length; i++) {
def location = scm.getLocations()[i]
def svn_url = location.remote
checkout changelog: false, poll: false, scm: [$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[credentialsId: '252ad9ab-2f39-46f5-a77a-6196d1679dee', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: svn_url]], workspaceUpdater: [$class: 'UpdateWithRevertUpdater']]
}
Run Code Online (Sandbox Code Playgroud)
您应该使用"管道语法"页面来获取正确的凭据.我试过用
checkout changelog: false, scm
Run Code Online (Sandbox Code Playgroud)
但那没用.所以你必须使用上面显示的长版本.