我正面临以下问题。我们有一个 Gated Check-In 设置,这意味着更改不会直接签入,而是会创建一个 Shelveset 并针对该搁置运行构建。仅当构建成功时,才会签入更改。
现在我们将构建定义设置为仅映射构建所需的少量内容,因为我们希望将其运行所需的时间保持在最低限度。现在的问题是,如果您在更改中包含任何未映射的内容,则构建将在GetSources任务中失败,因为它无法取消搁置并给出文件夹映射错误。
为了更好地理解,想象以下结构:
- MyRepository
-- Sources
--- MyCodeFiles
-- Documents
--- SomeDocuments
所以在 BuildDefinition 中我们只映射Sources目录,因为它包含我们需要构建的文件。您现在必须确保永远不要在Sources之外包含任何更改,例如在Documents中,否则构建将立即失败。
我已经搜索并找到了 unshelve 命令的描述:https ://docs.microsoft.com/en-us/vsts/tfvc/unshelve-command?view=vsts
根据这个描述,应该可以指定itemSpec
Identifies the file or folder revisions to unshelve into the current workspace
所以看起来 unshelve 命令实际上会支持“部分”取消搁置。但是,我没有看到任何关于如何通过 vNext 构建实现这一目标的方法,因为我找不到任何有关GetSources任务如何工作的信息。
有什么我错过的,还是当前的实现根本无法实现?