3

我们有一个变更集,开发人员在其中签入了对源分支和目标分支的更改,许多更改包括两个分支中的重命名。变更集从源分支到目标分支的合并进展顺利,但变更集仍保留在要合并的变更集列表中。

当我现在尝试再次合并变更集时,它显示“没有要合并的更改。”。并且变更集保留在队列中。

我们尝试使用命令行工具来丢弃变更集,如下所示:

C:\src\project\sourceBranch>tf merge /discard /recursive /version:C8137~C8137 $/Project/sourceBranch $/Project/targetBranch

这没有帮助。我们还尝试使用其他选项,例如 /force 和 /baseless,但没有成功。

摆脱合并候选者之间的变更集还有哪些其他可能性?

4

1 回答 1

2

好的,所以基本上你有一个变更集,其中包含属于两个直接相关的分支的项目。这使得使用变更集的“部分变更集”子组件合并此类变更集。

让我用更好的方式解释:

  • CS1234(您的变更集)
    • 分支 A 的部分 CS1234A(比如源分支)
    • 分支 B 的部分 CS1234B(比如目标)

您做了从 A 到 B 的合并,将 CS1234A 合并到 B。

现在,当您尝试从 A 到 B 的新合并时,您仍然有 CS1234 作为候选者,对吗?然后如果你选择它,什么都不做,这是完全可以理解的,因为你已经合并了 CS1234A 和 CS1234B 不属于源分支(A)。

对我来说,这看起来像是我已经遇到的 TFS 错误,我认为 Microsoft 使用 TFS 2010 RTM 修复了它,显然不是。

基本上 TFS 给你 CS1234 作为候选,因为它只有一部分被合并,但由于其他部分不能被合并,把它作为候选是没有意义的。

关于什么:

您启动从 B 到 A 的合并(以相反的方式),CS1234 是否作为候选者提供?我的假设是,如果您将 CS1234 从 B 合并到 A,那么当您显示从 A 到 B 的候选人时,您将不会再为这个变更集而烦恼。但我不知道您是否愿意这样做。

无论如何,您应该在Microsoft Connect 站点上填写错误

于 2012-04-27T12:28:51.383 回答