【问题标题】:TFS Simple Merge IssuesTFS 简单合并问题
【发布时间】:2011-04-16 20:52:30
【问题描述】:

似乎我的方案已经尽可能简单了。我有 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 合并”显示:

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

所以它看起来像变更集 213,“丢失”的变更包含在 323 合并中。然而,当我查看 Main 源代码时,它并不存在(它不在磁盘上,如果我进行“查看”[来自源代码浏览器中的历史],它似乎也不在 TFS 中)。

当我现在进行合并时,它会显示“没有要合并的内容”。

【问题讨论】:

    标签: version-control tfs merge


    【解决方案1】:

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

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

    2. 它将源分支的变更集的服务器版本复制到目标分支的本地版本(这使您有机会使用这些更改构建本地目标,并确保它不会破坏您之前的现有构建你签到。)

    3. 一旦您对 Target 分支的 LOCAL 中的合并更改感到满意,您需要手动将这些更改签入到 Target 分支。

    因此,在合并之前,您始终需要将 Target 分支的最新版本下载到本地。

    【讨论】:

      【解决方案2】:

      我在另一台机器上获取了最新版本,并且代码完美匹配(Dev 与 Main 的磁盘比较)。所以我现在正在努力,显然每个不匹配的项目都是由以下原因之一引起的:

      1. 它在 TFS 之外进行了更改
      2. 它从未被检入 TFS(一些我忘记检入,其他是 bin/debug 类型的文件,不会被检入)。

      【讨论】:

        猜你喜欢
        • 2013-08-22
        • 2012-06-10
        • 2011-06-12
        • 2017-09-10
        • 1970-01-01
        • 2021-09-08
        • 2012-09-01
        • 2016-03-03
        • 2017-09-15
        相关资源
        最近更新 更多