我们有一个大型 SVN 存储库,我想对 Jenkins 进行稀疏检查。我确实理解稀疏结帐的概念,并且在本地拥有它,我可以让事情按照我的意愿工作。然而,在 Jenkins 上做事并反复运行它我无法开始工作。
我有一个回购结构如下
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 首先被删除,然后再次检出。结果仍然是正确的,但是,我希望它花费的时间比必要的时间长得多。
我想保留UpdateWithCleanUpdater因为我希望 Jenkins 清理上一次运行中生成的文件。
有没有使用 Jenkins SVN 插件的解决方案?我将如何“手动”执行此操作,即第一次结帐,清理并仅更新以下时间,并且仍然根据 SVN 存储库上的更改检测自动运行 Jenkins?
提前致谢!