У нас есть большой репозиторий SVN, и я хотел бы немного проверить 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']])
Каждый раз, когда я запускаю этот код в первый раз, все выглядит так, как ожидалось. Однако, когда Дженкинс запускает его в следующие разы, UpdateWithCleanUpdater вызывает то, что FolderA и FolderB сначала удаляются, а затем снова извлекаются. Результат по-прежнему правильный, однако на это уходит гораздо больше времени, чем хотелось бы, и больше, чем необходимо.
Я хотел бы сохранить UpdateWithCleanUpdater, потому что хочу, чтобы Дженкинс очищал файлы, созданные при предыдущем запуске.
Есть ли какое-нибудь решение этой проблемы с использованием плагина Jenkins SVN? Как мне сделать это «вручную», т.е. выполнить проверку в первый раз, очистить и обновить только в следующие раз, и по-прежнему выполнять автоматические запуски Jenkins на основе обнаружения изменений в репозитории SVN?
Заранее спасибо!