gpt4 book ai didi

jenkins - 如何在 Jenkins 上从 SVN 进行稀疏结帐和更新?

转载 作者:行者123 更新时间:2023-12-03 23:52:11 28 4
gpt4 key购买 nike

我们有一个大型 SVN 存储库,我想对 Jenkins 进行稀疏结帐。我确实理解稀疏结账的概念,并且在本地拥有它我可以让事情按照我想要的方式工作。然而,在 Jenkins 上做事并反复运行它我无法开始工作。

我有一个 repo 结构如下

trunk\file.txt
trunk\FolderA
trunk\FolderB
trunk\FolderC
trunk\FolderD

我想结帐和更新
trunk\file.txt
trunk\FolderA
trunk\FolderB

但不是
trunk\FolderC
trunk\FolderD

我的管道代码如下
checkout([$class: 'SubversionSCM', 
additionalCredentials: [[credentialsId: strCredentialsId, realm: strRealm]],
excludedCommitMessages: '',
excludedRegions: '',
excludedRevprop: '',
excludedUsers: '', filterChangelog: false,
ignoreDirPropChanges: false,
includedRegions: '',
locations: [
[
remote: "${strRepoPath}/trunk",
local: "${softwarePath}",
depthOption: 'unknown',
credentialsId: strCredentialsId,
cancelProcessOnExternalsFail: true,
ignoreExternalsOption: false
],
[
remote: "${strRepoPath}/trunk/FolderA",
local: "${softwarePath}/FolderA",
depthOption: 'infinity',
credentialsId: strCredentialsId,
cancelProcessOnExternalsFail: true,
ignoreExternalsOption: false
],
[
remote: "${strRepoPath}/trunk/FolderB",
local: "${softwarePath}/FolderB",
depthOption: 'infinity',
credentialsId: strCredentialsId,
cancelProcessOnExternalsFail: true,
ignoreExternalsOption: false
]
],
quietOperation: false,
workspaceUpdater: [$class: 'UpdateWithCleanUpdater']])


每当我第一次运行此代码时,一切都按预期进行。但是,当 Jenkins 在以下时间运行它时,UpdateWithCleanUpdater 会导致 FolderA 和 FolderB 首先被删除,然后再次 checkout 。结果仍然是正确的,但是,我希望它花费的时间更长,而且比必要的时间更长。

我想保留 UpdateWithCleanUpdater,因为我希望 Jenkins 清理上次运行中生成的文件。

使用 Jenkins SVN 插件有什么解决方案吗?我将如何“手动”执行此操作,即第一次结帐,清理并仅更新以下时间,并且仍然根据 SVN 存储库上的更改检测自动运行 Jenkins?

提前致谢!

最佳答案

现在这是一个非常狭窄的问题。
我想说,要么用手动脚本替换 UpdateWithCleanUpdater(通过调用本地 svn 客户端;一些示例 here);或者你可以 fork 或贡献给 Jenkins SVN plugin .

关于jenkins - 如何在 Jenkins 上从 SVN 进行稀疏结帐和更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56001595/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com