【问题标题】:What happens in TFS when merging 2 different branches where same file is modified in 2 branches.当合并 2 个不同的分支时,TFS 中会发生什么,其中相同的文件在 2 个分支中被修改。
【发布时间】:2018-05-01 13:46:24
【问题描述】:
  1. 有主分支

  2. 我从 Main 创建了一个名为“PBI”的新分支

  3. 有一个名为 'publisher' 的文件在 Main 中进行了修改,在 'PBI' 中也进行了修改

  4. 我想确保 Main 中的所有更改都反映在 PBI 中,因此我决定将 main 合并到 PBI 中,以便 PBI 与 Main 保持最新。

当我进行合并时,在挂起的更改中它显示发布者[合并]

那么当我签入发布者[合并]的待处理更改时会发生什么

  1. 我对 PBI 中“发布者”的更改是否仍然存在? ; 如果发生这种情况,那就是一场灾难,合并的意义何在

  2. Main 中的新更改覆盖了“publisher”的 PBI 分支中的内容; 如果发生这种情况,那也是一场灾难

  3. 出现冲突,我需要选择保留哪一个。 这是有道理的

【问题讨论】:

  • 你说的是 Git 还是 TFVC?
  • 我说的是 TFVC。如果你不了解 TFVC,你可以告诉我 Git 中发生了什么
  • 你看过文档吗?
  • 没有这方面的文档。 TFVC 是最糟糕的。
  • 如何在 TFVC eclipse 中停止自动解析?

标签: tfs merge tfvc


【解决方案1】:

正如丹尼尔所说,您需要先检查文件:

Resolve Team Foundation Version Control conflicts

然后尝试设置 AutoMerge。

默认情况下,VS 在合并过程中发生冲突时会弹出Resolve conflicts 对话框。您可以选择合并操作手动合并冲突。

你也可以试试 Auto Merge 扩展:

【讨论】:

    【解决方案2】:

    视情况而定。 Git 可以在大多数情况下自动合并,这意味着您将保留两者的更改。当 Git 无法弄清楚如何自动合并您的更改时(例如,如果两个分支在比较时修改了同一行),则会出现合并冲突,您必须手动进入并解决它

    【讨论】:

    • “Git 可以在大多数情况下自动合并,这意味着您将保留两者的更改”。你是什​​么意思保留两者的变化?我合并以确保我的 dev 分支与 Main 分支是最新的。
    • 好吧,假设你有文件 data.txt data 1 data 2 在提交 A 上,由 Main 和 Dev 共享 然后在 Dev 上,你修改它为 data 1 data 2 data 3 在 main 上,你修改它到 data 1 data 2 data 4 然后当你将 main 合并到 dev 时,你会得到 data 1 data 2 data 3 data 4 所以你的 Dev 分支是用 Main 分支“更新”的,因为它包含在 Main 中所做的所有更改(假设那些“数据”在不同的行,stackoverflow 不允许我做多行 cmets)
    • 在 TFVC 中这些都不会发生。它只需要我的版本就可以了。它完全忽略了 Main 分支代码。根据您的示例,合并后我的代码将是数据 1 数据 2 数据 3,因为这是我的开发人员的代码。它只是保持这种状态。
    • 嗯,也许 TFVC 的工作方式与 git 不同,虽然它没有多大意义
    猜你喜欢
    • 2018-03-28
    • 1970-01-01
    • 2014-08-19
    • 1970-01-01
    • 2011-03-25
    • 2016-10-15
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多