Version control TFS简单合并问题

Version control TFS简单合并问题,version-control,tfs,merge,Version Control,Tfs,Merge,似乎我的情景是最简单的。我有一个Main和一个名为Dev的分支。我在Dev中选择了一个只有我的代码的目录,并进行了合并(基于所有变更集设置到特定变更集) 第一个问题,它是立即签入合并,还是我应该在合并后立即签入?我问是因为这些消息,我将它们保存在记事本中,但没有准确记录我所做的。冲突是因为目录结构发生了变化 变更集322已成功签入 正在删除C:\SourceEagleConnect\Main\BizTalk\ACH\Sample\Sample1.sln TF14119:无法将删除的$/Eagle

似乎我的情景是最简单的。我有一个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中都“查看历史”,然后从命令行“tfmergesdev/filemain/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合并”显示:

所以它看起来像是变更集213,“丢失”的变更包含在323合并中。但是当我查看主源代码时,它不在那里(它不在磁盘上,如果我[从源代码管理器中的历史记录]进行“查看”,它似乎也不在TFS中)


当我现在进行合并时,它会显示“无需合并”。

我在另一台机器上进行了一次获取最新信息的操作,代码完全匹配(Dev与Main的磁盘比较)。因此,我现在正在进行工作,显然每个不匹配的项都是由以下原因之一造成的:

  • 它是在TFS之外更改的
  • 它从未签入TFS(有些我忘了签入,有些是不会签入的bin/debug类型的文件)

  • 关于第一个问题,, 从源分支到目标分支的TFS合并不会自动将合并更改签入到目标分支。 TFS合并的工作方式是-假设使用最新版本选项进行合并:

  • 它比较目标分支中变更集的历史记录,并确定源中哪些变更集需要合并到目标中

  • 它将源分支的更改集的服务器版本复制到目标分支的本地版本(这使您有机会使用这些更改生成本地目标,并确保在签入之前不会中断现有生成。)

  • 一旦您对目标分支的本地中的合并更改感到满意,就需要手动将这些更改签入到目标分支

  • 因此,在合并之前,您始终需要将目标分支的最新版本发送到本地

    Changeset Merged in Changeset Author                           Date
    --------- ------------------- -------------------------------- ----------
         159                  175 nwalters                         7/27/2010
         213                  323 nwalters                         9/23/2010