Visual studio Team Foundation服务器-以前合并的变更集在合并向导中再次出现

Visual studio Team Foundation服务器-以前合并的变更集在合并向导中再次出现,visual-studio,visual-studio-2010,tfs,Visual Studio,Visual Studio 2010,Tfs,我们的供应链管理结构如下: Main |--Release 开发人员签入到main。当我们想要发布时,我们会将变更集从Main合并到release,测试并运行我们的部署构建,它构建并部署应用程序,并将发布分支标记为这样 要合并,我会使用源代码管理资源管理器,右键单击'Main'>Branching and Merging>merge。选择“选定变更集”只有一个目标分支(版本)。选择变更集,本地测试,签入发布。这几个月来一直运作良好 然而,今天一些非常早期的变更集刚刚“出现”在源代码管理合并向

我们的供应链管理结构如下:

Main
 |--Release
开发人员签入到main。当我们想要发布时,我们会将变更集从Main合并到release,测试并运行我们的部署构建,它构建并部署应用程序,并将发布分支标记为这样

要合并,我会使用源代码管理资源管理器,右键单击'Main'>Branching and Merging>merge。选择“选定变更集”只有一个目标分支(版本)。选择变更集,本地测试,签入发布。这几个月来一直运作良好

然而,今天一些非常早期的变更集刚刚“出现”在源代码管理合并向导中,位于列表的顶部。但奇怪的是,并不是所有的

等效的CLI命令是

tf merge /candidate /recursive [source] [destination]
此命令返回以下列表:

   3* Person.One      27/11/2009
  43* Person.Two      21/12/2009
  50* Person.Two      22/12/2009
  54* Person.Two      22/12/2009
  57* Person.Two      22/12/2009
 114* Person.One      12/01/2010
 116* Person.One      13/01/2010
 128* Person.One      15/01/2010
 138* Person.One      19/01/2010
 139* Person.One      19/01/2010
7846  Person.Three    19/01/2012
7847  Person.Three    19/01/2012
7848  Person.Three    19/01/2012
7849  Person.Three    19/01/2012
8030  Person.Four     31/01/2012
8031  Person.Four     31/01/2012
8032  Person.Four     31/01/2012
8045  Person.Five     01/02/2012
8050  Person.Four     01/02/2012
8052  Person.Six      01/02/2012
8053  Person.Six      01/02/2012
8054  Person.Three    01/02/2012
8055  Person.One      01/02/2012
8056  Person.Seven    01/02/2012
8057  Person.Five     01/02/2012
8058  Person.Six      01/02/2012
8059  Person.Five     01/02/2012
8060  Person.Five     01/02/2012
8063  Person.Five     02/02/2012
8068  Person.Five     02/02/2012
8069  Person.Eight    02/02/2012
8070  Person.Five     02/02/2012
8071  Person.Five     02/02/2012
8072  Person.Five     02/02/2012
8073  Person.Three    02/02/2012
8074  Person.Three    02/02/2012
8077  Person.Seven    02/02/2012
唯一的“线索”是星号,我相信这意味着部分合并已经完成

我完全不明白这是怎么发生的。服务器上未进行任何管理。这件事发生在过去的6个小时左右

如果我尝试在我的工作区中进行合并,我不会遇到任何冲突,而且,如果我签入,我也不确定会发生什么。显然,文件和结构在两年内发生了很大变化

我可以使用tf merge/discard命令“让它们消失”,但我想弄清它发生的原因,如果没有其他原因的话,出于我自己的好奇心

短暂性脑缺血发作

更新:

我选择使用以下命令“放弃”已出现的变更集:

tf merge /discard /recursive [source] [destination] /version:C3~C139
这导致在我的工作区中选择了一些挂起的更改,我及时地签入了这些更改

不幸的是,如果我跑

tf merge /candidate /recursive [source] [destination]
我现在有更多的历史更改“等待”合并,包括我在第一次尝试中尝试放弃的更改:

   3* Person.One        27/11/2009
  43* Person.Two        21/12/2009
  50* Person.Two        22/12/2009
  54* Person.Two        22/12/2009
  57* Person.Two        22/12/2009
 114* Person.One        12/01/2010
 116* Person.One        13/01/2010
 128* Person.One        15/01/2010
 138* Person.One        19/01/2010
 139* Person.One        19/01/2010
 140  Person.One        19/01/2010
 141* Person.One        19/01/2010
 142* Person.Two        19/01/2010
 149* Person.Two        20/01/2010
 152* Person.Two        20/01/2010
 160* Person.Two        21/01/2010
 161* Person.Two        21/01/2010
 165* Person.One        21/01/2010
 167* Person.Two        22/01/2010
 173* Person.Two        22/01/2010
 199* Person.Two        27/01/2010
 200* Person.One        27/01/2010
 203* Person.Two        28/01/2010
 204* Person.Two        28/01/2010
 205* Person.Two        28/01/2010
 206* Person.Two        28/01/2010
 208* Person.Two        28/01/2010
 213  Person.Two        28/01/2010
 215* Person.Two        28/01/2010
 235* Person.Two        01/02/2010
 238* Person.Two        02/02/2010
 241* Person.Two        02/02/2010
 259* Person.Two        04/02/2010
 262* Person.Two        04/02/2010
 264  Person.Two        05/02/2010
 296* Person.Two        10/02/2010
 309* Person.Two        11/02/2010
 316* Person.Two        12/02/2010
 317* Person.Two        12/02/2010
 320* Person.Two        12/02/2010
 338* Person.Two        15/02/2010
 353* Person.Two        16/02/2010
 365* Person.Two        18/02/2010
 394* Person.Two        22/02/2010
 399* Person.One        22/02/2010
 400* Person.One        22/02/2010
 401* Person.Two        23/02/2010
 403* Person.Two        23/02/2010
 404* Person.Two        23/02/2010
 405* Person.Two        23/02/2010
 424* Person.One        25/02/2010
 426* Person.Two        26/02/2010
 444* Person.Two        02/03/2010
 445* Person.One        03/03/2010
 461* Person.Two        08/03/2010
 476* Person.One        10/03/2010
 477* Person.One        10/03/2010
 478* Person.One        10/03/2010
 501  Person.One        12/03/2010
 502  Person.One        12/03/2010
 503  Person.One        12/03/2010
 504  Person.One        12/03/2010
 506  Person.One        12/03/2010
 511* Person.One        12/03/2010
 515* Person.One        15/03/2010
 517* Person.Two        15/03/2010
 518* Person.One        15/03/2010
 522  Person.One        16/03/2010
 523  Person.One        16/03/2010
 538  Person.Two        17/03/2010
 539  Person.Two        17/03/2010
 540  Person.Two        17/03/2010
 543  Person.One        17/03/2010
 581* Person.Two        18/03/2010
 582* Person.Two        18/03/2010
 644* Person.Two        26/03/2010
 706* Person.One        30/03/2010
 918* Person.One        13/05/2010
1594* Person.One        15/07/2010
1601* Person.One        16/07/2010
1626* Person.Three      20/07/2010
1627* Person.Three      20/07/2010
6153* Person.One        17/08/2011
7691* Person.Four       11/01/2012
7846  Person.Four       19/01/2012
7847  Person.Four       19/01/2012
7848  Person.Four       19/01/2012
7849  Person.Four       19/01/2012
8030  Person.Five       31/01/2012
8031  Person.Five       31/01/2012
8032  Person.Five       31/01/2012
8050  Person.Five       01/02/2012
8054  Person.Four       01/02/2012
8073  Person.Four       02/02/2012
8074  Person.Four       02/02/2012
8104  Person.Six        03/02/2012
8110  Person.Six        03/02/2012
8112  Person.Seven      03/02/2012
8113* Person.Five       03/02/2012
8114* Person.Five       03/02/2012
8127  Person.Seven      06/02/2012
8128  Person.Seven      06/02/2012
8130  Person.Eight      06/02/2012
8135  Person.One        06/02/2012
8138* Person.Five       06/02/2012
8140  Person.Five       06/02/2012
8142  Person.Five       06/02/2012
8143  Person.Nine       06/02/2012
8144  Person.Nine       06/02/2012
8145  Person.Ten        06/02/2012
8146  Person.Eleven     06/02/2012
我真的不知道是什么导致了这一切。感谢您的建议。

您是正确的,“*”表示changset 3中的某些文件已合并到“发布”中,而其他文件尚未合并。这通常是由于合并时取消检查“挂起的更改”窗口中的文件造成的

您最近是否从TFS 2008升级?升级后我们也遇到了同样的情况。在TFS 2008中,如果您从合并签入中取消选中一个文件,TFS会假定您从未想要合并该文件!拾取未选中文件的唯一方法是转到命令行并使用
tf merge/force

在TFS 2010中,行为发生了变化,现在如果进行部分合并,TFS将始终提醒您,在部分合并的变更集中存在未完成的合并候选项

你可以做两件事

  • 合并变更集(考虑到经过的时间长度,您不太可能希望这样做)
  • 使用命令
    tf merge/recursive/discard/version:C3~C139[source][destination]
    这将告诉TFS,您希望它认为它已经完成了合并,即使它还没有完成

  • 我们确定这种行为的原因是以前删除的文件已在主分支中“复活”,即创建了具有相同名称的新文件

    发生这种情况时,包含此文件的所有以前的变更集将作为部分变更集重新出现在“合并”对话框中


    完全合并似乎解决了这个问题。

    我自己也遇到了一些类似的奇怪行为。我们使用与OP类似的方法,但我们也会根据需要更改发布分支

    我通过main将一些旧版本(称为“2.30”)的更改合并到新版本(称为“2.31”),当我将更改从main合并到2.31版本时,我在合并向导中看到了几年前的更改集-其中一个是2011年的更改集

    以前从未见过这种行为,并认为可能这个发布分支受到了某种神奇的污染,打算抛弃它,并在它的位置创建一个新的发布

    因此,我将对2.31版本分支所做的所有更改合并到main中,并将其全部签入。在创建一个新分支来替换2.31之前,我想我应该再次尝试合并向导(从main合并到2.31),看看这是否神奇地清除了它,它确实做到了。那些旧的变更集再也没有出现过


    非常奇怪。

    嗨,詹姆斯,非常感谢你的帮助。我们确实在大约6个月前从TFS2008进行了升级,但我们确实遇到了一个问题,我们的构建从一开始就将每个变更集与它们关联起来。我们最终找到了一个补丁来解决这个问题,但不确定是否相关。同意放弃更改似乎是最好的选择,但请参阅上面的更新。嗨,杰米,说实话,我没有建议了。这辆车帮了我们的忙。我想您可以尝试放弃7691(不要使用范围,只使用一个变更集编号)之前的所有内容,这看起来可能会让您恢复正常合并。如果有任何旧的变更集需要合并,那么您需要手动取消代码点击,这将不是一件好事,但希望这将是一个一次性让您摆脱holeYep丢弃对我来说不起作用。我们刚刚从主干中删除了一个发布分支,现在在合并主干->发布时,合并候选项列表中出现了很多“旧”变更集。抛弃候选人只会带来更多的候选人——就像九头蛇一样!这是基本的源代码管理用例。。。来吧,TFS!!!(我们正在使用TFS 2012顺便说一句)我很确定我看到了完全相同的问题。谢谢你弄明白了。