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顺便说一句)我很确定我看到了完全相同的问题。谢谢你弄明白了。