【问题标题】:TFS Merge Issue with Missing New Files缺少新文件的 TFS 合并问题
【发布时间】:2016-03-03 17:16:18
【问题描述】:

我之前也遇到过这个问题,没想太多,但是越来越乏味了。

我们有以下内容。一个主分支,这是我们的用户正在使用的稳定版本。我们有一个开发分支,它托管我们的修复程序,我们可以立即发布。然后我们有我们的特性分支,它具有 WIP 特性。为简单起见,我将只讨论后两个 - 开发和一个名为 Quoting 的功能分支。

报价分支已经完成了它的功能。它已将开发分支合并到其中,并且所有冲突都已在引用分支上解决。现在,我们有最新的报价分支和开发分支的最新工作。总而言之,只有大约 20-30 个文件被更改。

所以我即将合并回开发分支,并按照提示进行操作 - 非常简单:

现在我遇到了一些障碍。我得到了一个包含变化的列表,这些变化远远超过 30;几乎每个文件都在合并!

所以我关注了 StackOverflow post,它建议右键单击并撤消更改,但在确认对话框中按 No To All 会有所帮助。不幸的是,我跳过了说This works when you only have changes to files. It will not merge any NEW files that you have added的cmets。

所以我的问题是,我如何才能获取所有实际的待处理更改,而不必逐项检查并排除我所做的工作,这样我就可以撤消待处理的更改并重新包含我的更改,简单地做一个合并?这可能是因为我根据 StackOverflow 和 web 上的一些 cmets 重命名了分支,即使层次结构都是一样的?

【问题讨论】:

  • 仅供参考,我通过查看列表中的所有更改并与提供的图片中的比较进行比较来执行合并。我相信这可能与我重命名分支的事实有关,但那是前一段时间了,从那以后我从 Dev 合并到 Quoting 没有任何问题。

标签: tfs merge visual-studio-2015


【解决方案1】:

其实这是重命名的分支造成的。当您在源代码管理中重命名分支时,它会删除前一个分支并创建一个新分支。尽管层次结构都是一样的,但分支是不同的。您可以通过“在源代码管理中显示已删除的项目”来查看您的旧分支。

在这种情况下,将 Main 分支更改为 Main123 分支

所以在 TFS 中,它为未更改的文件显示 [merge] 状态,为实际更改的文件显示 [merge,edit] 状态,并为新添加项显示 [merge branch]。

对于您的情况,没有更好的方法可以简单地进行合并。 此外,强烈建议您不要直接重命名分支,除非确实有必要。它还会弄乱您的变更集历史记录。您最好在完整的历史记录中创建一个新分支。

【讨论】:

  • 嗨@Patrick-MSFT,谢谢你的回答。我认为这也是原因,因为当我进一步研究它时,我注意到它已经完成了你所说的 - 删除了以前的,并创建了一个新的分支。从那以后,我们只是简单地检查了现有代码,解决了冲突并检查了每个文件以确保没有任何需要更改的内容。我还做了一个注意不要更改分支名称,如果需要新名称,只需执行新分支即可。
  • 我刚刚在提交后遇到了同样的行为,回滚到分支 A,然后将原来提交的更改从分支 A 合并到分支 B,然后将提交的更改从 B 合并回 A -文件消失了。 100% 可重现。
猜你喜欢
  • 1970-01-01
  • 2013-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-01
  • 1970-01-01
  • 2011-04-16
  • 2012-06-10
相关资源
最近更新 更多