我在RTC有一个文件(调用它 foo.c)我修改并签入变更集(CS1)以及其他一些变化。然后我再次修改了该文件,并将其检查到不同的变更集(CS2)以及其他变化。

我现在遇到了一个我想交付的案子 CS2 到一个流,但RTC给我一个错误,即交付会在流中创建一个缺口(因为 CS1).我不想把所有的东西都送出去。 CS1 但是,因为它包含一些不应该在构建中的更改。原更改为 foo.cCS1 是一个轻微的移走 #include, ,并且不影响其他任何事情。

有什么办法可以解决这个差距吗?

我在RTC文档中看到了一些关于应用补丁的东西,但我不明白它的去向。
有没有办法将变更集拆分为多个变更集,这将允许我只交付一个文件?

有帮助吗?

解决方案

自2012年以来的更新(以及交付所有内容并恢复您不想要的内容的原始"解决方法"):

这个线程:

在RTC4.0.5中,我们在尝试接受存在差距的更改集时提供了额外的支持(在尝试反向移植修复时经常遇到)。

在功能的一个非常简短的总结中,当您接受带有间隙的更改集时,您现在可以遵循一次接受一个更改集的间隙工作流,并且对于包含间隙的更改集,创建一个包含等效更改的新更改集(具有辅助可追溯性)。
这意味着用户将不必接受更改集"作为补丁"。

与新工作流相比,将更改集作为修补程序应用有局限性。
此功能总结在 RTC4.0.5"新&值得注意"页面.

以下是一些显示此功能的视频:

这就是 找到更改集 特征:

https://jazz.net/downloads/pages/rational-team-concert/4.0.5/4.0.5/images/gapeditor.png


在RTC5.0中,我们添加了"填补空白"功能,其中向用户显示填补空白的更改集,允许他们接受所有更改集或继续使用RTC4.0.5中提供的空白工作流程。

此功能总结在 RTC5.0"新&值得注意"页面:

用于填补空白的类包括(在RTC5.0中可用):

client side: IWorkspaceConnection.findChangeSetsToAcceptToFillGap(...) 
server side: IScmQueryService.findChangeSetsToAcceptToFillGap(...) 

这两个特性都在"改善供应链管理的间隙处理"文章。

https://jazz.net/downloads/pages/rational-team-concert/5.0/5.0/images/missing-change-sets-dialog.png


原始答案(2012)

有没有办法拆分变更集?

我不这么认为,阅读 变更集手册页:

组件中的文件或文件夹不能是多个活动更改集的一部分。
当文件或文件夹包含在活动更改集中时,无论更改集是否为当前,对其进行的所有更改都将成为该更改集的一部分,并且 在包含该文件或文件夹的活动更改集完成之前,无法将对该文件或文件夹的更改显式签入到新更改集.

有食物。C在CS1 CS2意味着CS1已经"完成"(冻结,本质上),并且尝试拆分它会很糟糕。

补丁解决方案意味着:

  • 取消CS1
  • 将附加更改添加到foo。c至CS2
  • 重做CS1更改

见"如何从流中删除更改集?"

故事149483 是关于增强那个繁琐的工作流程,间隙检测正在增强(增强24822)


OP timwoj 总结:

我最终只是提供了所有的东西,然后扭转了我不想要的那个.

其他提示

问题:CS1改变foo。c,CS2进一步改变foo。c.您只想提供CS2,但RTC告诉您这会引入差距。

解决方案:从CS2创建补丁并挂起CS1和CS2。然后应用补丁,将其合并到您的工作区并签入将创建另一个更改集CS3的更改,与CS2相同,但不依赖于CS1。您现在可以交付CS3。

交付CS3后,您可以放弃CS2并恢复CS1,这将要求您与CS3合并。

然后,您应该处于CS1基于CS3构建的状态,并且您可以选择将来是否交付CS1。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top