2010-09-24 75 views
1

看起来好像我的场景尽可能简单。我有Main和一个叫Dev的分支。我在Dev中选择了一个只有我的代码的目录,并进行了合并(基于所有变更集到特定变更集)。TFS简单合并问题

第一个问题,它是否立即签入合并,或者我应该在此之后签入?我问,因为这些消息,我在记事本中保存了它们,但没有写下来正是我所做的,冲突是因为在目录结构的变化。

变更集322成功进行检查。

删除C:\ SourceEagleConnect \ Main \ BizTalk \ ACH \ Sample \ Sample1.sln TF14119:无法合并删除$/EagleConnect/Dev/BizTalk/A CH/BizTalk到$/EagleConnect/Main/BizTalk/ACH/BizTalk,因为其子项之一已被重命名或移动。 TF14121:以前到$所做的更改/ EagleConnect /开发/尚未合并将通过合并的$删除/ EagleConnect /开发/的BizTalk/ACH /样本1 /样本1被丢弃的BizTalk/ACH /样本1/Sample1.sln。 SLN。 TF14119:无法将$/EagleConnect/Dev/BizTalk/ACH/BizTalk删除合并到$/EagleConnect/Main/BizTalk/ACH/BizTalk,因为其中一个子项已被重命名或移动。

'ACH'项目真的不是我关心的项目,它是其他项目中的关键文件。

然后我用一个比较工具来开发和主要的盘比较,我看到在主要许多文件没有从开发的变化。

在一个特定的文件上,我做了以下分析。我在Dev和Main都做过“查看历史”,然后我从命令行“tf merge 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合并” 显示:

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

所以看起来变更213,在323合并中包含了“丢失”的变化。然而,当我查看主源代码时,它并不存在(它不在磁盘上,如果我在源代码资源管理器中查看历史记录,它看起来并不在TFS中)。

当我现在做一个合并,它说“没有合并”。

回答

0

我做了一个获得最新另一台机器,并完美匹配的代码(盘比较开发的主)上。所以我通过工作现在,显然各不匹配项目由以下原因包括:

  1. 有人TFS的改变外
  2. 这是从来没有签入TFS(有些我忘了检入,其他的是bin/debug类型的文件,它们不会被签入)。
3

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

  1. 它的变更历史比较在目标分支,并确定哪些变更从源需要被合并到目标。

  2. 它复制源分支目标分支的本地版本的变更(此为您提供了这些变化,以建立自己的本地目标,并确保它不会破坏你现有的你之前建立的机会的服务器版本检查它。)

  3. 一旦您满意在当地目标分支合并更改,则需要手动签入这些更改目标分支。

因此,在合并之前,您总是需要将最新版本的目标分支获取到本地。