好像我的场景尽可能简单。我有Main和一个名为Dev的分支。我在Dev中选择了一个只有我的代码并进行了合并的目录(根据特定变更集的所有变更集。
第一个问题,它是否立即检查合并,或者我应该在那之后立即进行检查?我问因为这些消息,我把它们保存在记事本中,但没有记下我的确切做法。冲突是由于目录结构的变化。
变更集322已成功签入。
删除C:\ SourceEagleConnect \ Main \ BizTalk \ ACH \ Sample \ Sample1.sln TF14119:无法将$ / EagleConnect / Dev / BizTalk / ACH / BizTalk的删除合并到$ / EagleConnect / Main / BizTalk / ACH / BizTalk,因为其中一个子节点已重命名或移动。 TF14121:先前对$ / EagleConnect / Dev / BizTalk / ACH / Sample1 / Sample1.sln进行的尚未合并的更改将通过合并删除$ / EagleConnect / Dev / BizTalk / ACH / Sample1 / Sample1.sln而被丢弃。 TF14119:无法将$ / EagleConnect / Dev / BizTalk / ACH / BizTalk的删除合并到$ / EagleConnect / Main / BizTalk / ACH / BizTalk,因为其中一个子节点已重命名或移动。
'ACH'项目真的不是我关注的项目,它是其他项目中的关键文件。
然后我使用比较工具来比较Dev和Main的磁盘,我看到Main中的许多文件没有Dev的更改。
在一个特定文件中,我做了以下分析。我在Dev和Main中做了“查看历史记录”,然后从命令行“tf merges Dev / file Main / file”运行。
查看历史开发展示:
213 edit nwalters 8/6/2010 2:43 PM New Host Names based on application instead of adapter
159 edit nwalters 7/20/2010 10:16 AM BTDF - reset to use new SettingsFileGenerator.xml, improved to handle new EagleConnectConnectionString
50 branch nwalters 6/22/2010 10:04 AM Original checkin of "Dev" Branch
查看主要节目的历史记录:
323 merge, edit nwalters 9/23/2010 2:02 PM BizTalk-Only Merge 09/23/2010 (there were some ACH warnings)
175 merge, edit nwalters 7/27/2010 2:29 PM Check-in after big merge of all BizTalk from Dev to Main
49 add nwalters 6/22/2010 10:00 AM Original checkin of EagleConnect source cod to TFS
“tf merges”显示:
Changeset Merged in Changeset Author Date
--------- ------------------- -------------------------------- ----------
159 175 nwalters 7/27/2010
213 323 nwalters 9/23/2010
所以它看起来像变更集213,“丢失”的变化包含在323合并中。然而,当我查看主要源代码时,它不存在(它不在磁盘上,如果我在源代码浏览器中执行“视图”[来自历史记录],它似乎也不在TFS中)。
当我现在进行合并时,它说“没有合并”。
答案 0 :(得分:3)
关于你的第一个问题, 从Source分支到Target分支的TFS合并不会自动将合并更改签入到目标分支中。 TFS合并的工作方式是 - 假设您使用了最新版本选项进行合并:
它会比较目标分支中变更集的历史记录,并确定需要将源中的变更集合并到目标中。
它将Source分支的变更集的SERVER版本复制到Target分支的LOCAL版本(这使您有机会使用这些更改构建本地目标,并确保它不会破坏现有构建之前你检查一下。)
一旦您对目标分支的LOCAL中的合并更改感到满意,您需要手动将这些更改签入目标分支。
因此,在合并之前,您始终需要将最新版本的Target分支发送到您的本地。
答案 1 :(得分:0)
我在另一台机器上做了最新的,并且代码完美匹配(Dev与Main的磁盘比较)。所以我现在正在努力,显然每个不匹配的项目都是由以下原因引起的: