TFS:合并丢弃变更集在反向合并时显示为合并候选

时间:2015-11-02 21:09:18

标签: tfs merge branching-and-merging

我有一个关于在TFS 2013中合并分支的问题,特别是有关合并丢弃的问题,我无法在其他主题中找到答案。

场景:我们有两个分支,让我们称之为$North$South - 强调它们不被视为源和目标(即合并可以在两个方向上完成)。 $South已从$North分支出来。

我签入变更集nr。 1000到$North,变更集预计会出现为合并候选人:

> tf merge /candidate $North $South /recursive
Changeset User  Date  Comment
1000      Bob   ...   Updating build script

然后我执行合并丢弃,因为此更改集与合并到其他分支无关,实际上它不是应用程序代码,而是特定于分支的配置:

> tf merge /discard /version:C1000~C1000 $North $South /recursive
Resolved file1 as KeepYours
...

我检查merge discard导致变更集nr。 1001.现在,变更集1000已从合并候选列表中消失:

> tf merge /candidate $North $South /recursive
There are no changes to merge.

但是现在我反方向检查合并候选人:

> tf merge /candidate $South $North /recursive
Changeset User  Date  Comment
1001*     Bob   ...   Merge discard on changeset 1000

我甚至尝试再次回滚合并丢弃,因为我宁愿将更改作为$North$South的合并候选者而不是另一个方向,但结果只是另一个合并候选者:

> tf merge /candidate $South $North /recursive
Changeset User  Date  Comment
1002*     Bob   ...   Rollback on merge discard on changeset 1000
1001*     Bob   ...   Merge discard on changeset 1000

有没有人知道是否可以完全丢弃变更集,而且丢弃本身也不会在另一个方向上显示为合并候选者?

(虽然我不知道我的初始变更集的内容是否相关,但我可以补充一点,我的实际变更集1000是$North中的更改,其中包含对文件夹中的删除$South,还有文件夹添加。)

2 个答案:

答案 0 :(得分:0)

奇怪的是,当我昨天尝试单个文件时,我无法重现您的问题。当我今天通过添加新文件夹尝试新测试时,我无法在第一次尝试时重现您的问题,但是当我尝试新的合并时,我可以重现您的问题。显然,我们并不是唯一有此问题的人,请查看TFS Merge: Cannot discard a changeset,您可以在http://connect.microsoft.com/VisualStudio处就此随机问题提交反馈意见。

顺便说一句,有时,组合/ baseless / discard会强制将文件考虑用于合并,然后由丢弃开关丢弃。

答案 1 :(得分:0)

根据MSDN上的“/ discard”说明:

  

<强> /抛弃   不执行合并操作,但将合并历史记录更新为   跟踪合并发生的情况。这会丢弃变更集   用于特定的合并。

即使没有合并,分支的历史记录仍会更新。您可以检查分支的历史记录,其中应该有一个变更集1001。