我面临以下问题。我们有一个Gated Check-In设置,这意味着不会直接签入更改,但会创建Shelveset并针对该Shelve运行构建。仅在构建成功时,才会签入更改。
现在我们将构建定义设置为仅映射构建所需的少量内容,因为我们希望将其所需的时间保持在最低限度。现在的问题是,如果您在更改中包含任何未映射的内容,则构建将在 GetSources 任务中失败,因为它无法取消搁置并提供文件夹映射错误。
为了更好地理解,请想象以下结构:
- MyRepository
- 来源
--- MyCodeFiles
- 文件
--- SomeDocuments
因此,在BuildDefinition中,我们只映射 Sources 目录,因为它包含我们需要构建的文件。您现在必须确保从不包含 Sources 之外的任何更改,例如 Documents ,否则Build将立即失败。
我已经搜索过并找到了unhelve命令的说明: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
所以它看起来像unhelve命令实际上会支持“部分”取消搁置。但是我没有看到如何通过vNext构建实现这一点,因为我找不到关于 GetSources 任务如何工作的任何信息。
我是否遗漏了某些东西,或者目前的实施方式是否无法实现?
答案 0 :(得分:1)
我不敢说你没有错过任何东西,这在目前的实施中是不可能的。这里有一个更详细的讨论: