我们有一个变更集,开发人员已签入对源分支和目标分支的更改,许多更改包括两个分支中的重命名。从源分支到目标分支的变更集合并进展顺利,但变更集仍保留在要合并的变更集列表中。
当我现在尝试再次合并更改集时,它显示“没有要合并的更改。”。并且变更集保留在队列中。
我们尝试使用命令行工具来丢弃变更集,如下所示:
C:\src\project\sourceBranch>tf merge /discard /recursive /version:C8137~C8137 $/Project/sourceBranch $/
项目/目标分支
这没有帮助。我们还尝试使用其他选项,例如 /force 和 /baseless,但没有成功。
消除合并候选者中的变更集还有哪些其他可能性?
好的,基本上您有一个变更集,其中包含属于两个直接相关的分支的项目。这使得使用变更集的“部分变更集”子组件来合并此类变更集。
让我用更好的方式解释一下:
- CS1234 (your changeset)
- 分支 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 的候选时,您将不会再为这个变更集烦恼。但我不知道您是否愿意这样做。
无论如何你应该填补一个错误微软连接网站 http://connect.microsoft.com/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)