自 2012 年以来的更新(以及交付所有内容并恢复您不想要的内容的原始“解决方法”):
看到这个线程:
在 RTC 4.0.5 中,我们在尝试接受有差距的变更集时提供了额外的支持(在尝试向后移植修复时经常遇到)。
在对该功能的一个非常简短的总结中,当您接受具有间隙的更改集时,您现在可以遵循一次接受一个更改集的间隙工作流,并且对于包含间隙的更改集,创建一个新的更改集(带有辅助可追溯性),其中包含等效更改。
这意味着用户不必接受“作为补丁”的更改集。
与新的工作流程相比,将更改集作为补丁应用具有局限性。
此功能在RTC 4.0.5 'New & Noteworthy' 页面中进行了总结。
以下是一些展示此功能的视频:
这就是定位更改集功能:
在 RTC 5.0 中,我们添加了“填补空白”功能,其中向用户显示了填补空白的变更集,允许他们接受所有变更集或继续 RTC 4.0.5 中可用的空白工作流.
此功能在RTC 5.0 'New & Noteworthy' 页面中进行了总结:
填补空白所涉及的类包括(在 RTC 5.0 中可用):
client side: IWorkspaceConnection.findChangeSetsToAcceptToFillGap(...)
server side: IScmQueryService.findChangeSetsToAcceptToFillGap(...)
“改进的 SCM 间隙处理”一文中详细解释了这两个特性。
原始答案(2012)
有没有办法拆分变更集?
我不这么认为,阅读变更集手册页:
组件中的文件或文件夹不能属于多个活动更改集。
当文件或文件夹包含在活动更改集中时,对其的所有更改都将成为该更改集的一部分,无论该更改集是否是当前的,并且对该文件或文件夹的更改不能显式签入到新的更改集中,直到包含它的活动更改集已完成。
在 CS1和CS2 中有 foo.c 意味着 CS1 已经“完成”(本质上是冻结的),尝试拆分它会很糟糕。
补丁解决方案意味着:
- 取消 CS1
- 将 foo.c 的附加更改添加到 CS2
- 重做 CS1 更改
请参阅“如何从流中删除更改集? ”
故事 149483是关于增强繁琐的工作流程,并且正在增强间隙检测(增强 24822)
OP timwoj总结道:
我最终只是交付了所有东西,然后将我不想要的东西倒过来。