gpt4 book ai didi

svn - Jenkins 的 'emulate clean checkout' 选项如何工作?

转载 作者:行者123 更新时间:2023-12-04 00:47:23 24 4
gpt4 key购买 nike

具体来说,我想知道如何执行命令的“删除未版本控制/忽略的文件”部分。我想这样做,这样我就可以自己模拟干净的结帐,我们的存储库很大,完整的结帐需要很长时间。

最佳答案

此选项在 UpdateWithCleanUpdater 中实现。来自source ,

@Override
protected void preUpdate(ModuleLocation module, File local) throws SVNException, IOException {
listener.getLogger().println("Cleaning up " + local);

clientManager.getStatusClient().doStatus(local, null, SVNDepth.INFINITY, false, false, true, false, new ISVNStatusHandler() {
public void handleStatus(SVNStatus status) throws SVNException {
SVNStatusType s = status.getCombinedNodeAndContentsStatus();
if (s == SVNStatusType.STATUS_UNVERSIONED || s == SVNStatusType.STATUS_IGNORED || s == SVNStatusType.STATUS_MODIFIED) {
listener.getLogger().println("Deleting "+status.getFile());
try {
File f = status.getFile();
if (f.isDirectory())
hudson.Util.deleteRecursive(f);
else
f.delete();
} catch (IOException e) {
throw new SVNException(SVNErrorMessage.create(SVNErrorCode.UNKNOWN, e));
}
}
}
}, null);
}

看起来代码使用 SVNKit 获取 SVN 状态,然后删除所有未版本化、忽略、和修改的文件和目录。

令我惊讶的是,修改后的文件被删除而不是还原,但无论如何它们都会通过 SVN 更新被拉回。

关于svn - Jenkins 的 'emulate clean checkout' 选项如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6278971/

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