【问题标题】:TFS Git - pull requests 'Merge failed'TFS Git - 拉取请求“合并失败”
【发布时间】:2016-06-02 14:52:41
【问题描述】:

您好,我在 TFS 和 git 拉取请求方面遇到了这个问题。

我们有两个主要分支: -掌握 -开发

所以我从 develop 创建了新的分支 async_data_loading 并在其中进行了一些更改。接下来,我提交并将我的更改推送到远程 async_data_loading,然后我创建新的拉取请求以将我的更改合并到远程开发中,我得到了这个:

但是当我尝试从控制台查找任何合并冲突时,没有任何问题可以修复...我什至可以将我的更改合并到本地开发中而不会出现任何问题。正如您在下面看到的,我的本地分支和开发位于同一个“分支”上,因此没有需要解决的冲突,只是我的分支领先于少数提交。

有人遇到过这个问题并解决了吗?我花了几个小时寻找解决方案,但一无所获。

有趣的是,如果我从 master 创建一个测试分支,然后按照开发步骤进行操作,那么在 TFS 上将我的测试分支合并到 master 没有问题。

【问题讨论】:

  • 您使用的是哪个版本的 TFS?
  • 我们正在使用的是 visualstudio.com 上的在线 TFS。

标签: git github tfs merge pull-request


【解决方案1】:

好的,问题现在已解决。我们发现其中一个文件夹中的一些文件被复制了,它们的名称是其中一个开发人员系统上这些文件的完整路径,如下所示:

{PC_name}/Users/{user_name}/{full_path_to_local_file}.cs

当我们删除这些文件时,TFS 突然能够在服务器上完成合并而不会抱怨。

让我烦恼的是缺少任何信息,为什么在服务器上合并失败。这肯定是 MS 应该在未来解决的问题......

【讨论】:

    【解决方案2】:

    我们遇到了类似的问题。在我们的例子中,TFS 用户电子邮件中的尖括号 (< >) 使 LibGit2Sharp 在后台抛出异常,该异常未显示在 TFS 的错误消息中(与 OP 描述的视觉结果相同)。我还在这里发布了一个带有堆栈跟踪的答案:

    https://stackoverflow.com/a/39841140/2496266

    【讨论】:

      【解决方案3】:

      仅在 TFS 2015.2 + VS 2015.2 中测试,无法重现此问题。 当您合并同一文件更改的两个分支时,通常会发生冲突。确保在分支之前获取了 develop 分支的最新版本。

      【讨论】:

      • 我没有使用 Visual Studio - 在 Mac 上工作。我们有 TFS 2015。分支之间没有冲突 - 我可以从终端轻松地将我的分支合并到本地开发,然后将更改推送到远程开发,而不会 git 抱怨合并失败......
      • 如果你删除分支 async_data_loading 并创建一个新的,你能重现这个问题吗?
      • 是的。我几乎什么都试过了。 TFS 无法处理合并从开发创建的任何分支。似乎我们在开发方面遇到了一些问题(也许是历史??)但奇怪的是 git 本身能够在没有任何抱怨的情况下进行合并......
      • 抱歉,我无法重现此问题。你可以尝试创建一个新的 git repo 进行测试吗?
      【解决方案4】:

      我们最近遇到了这个问题,并且花了很长时间才找到它。 eventvwr 太吵了,没有任何好的信息给我们。

      我找到问题的方法是获取一个代码库版本并将其放入 diff't 存储库并将其设置为我们的主线(开发,无论如何)。然后拿走我们的完整主线并设置一个功能分支。然后我在我们的完整主线/功能分支中进入分离模式,并开始创建不同的分支(基本上是二进制搜索)。我为所有这些场景创建了拉取请求,如果它重现了我知道我走得很远的“合并失败”问题。如果我得到一个干净的合并,我知道我需要走得更远。

      最终我们找到了一个名称中带有“\”的文件。 删除此文件,我能够清除所有内容。我怀疑这是因为大多数 PR/Merging 功能都发生在 Windows 平台上。

      MS,如果您正在收听更新 eventvwr 并提供更少噪音和更多重要信息。

      【讨论】:

      • 有趣 - 这不仅限于 Windows,合并完全在内存中完成,因此路径分隔符无关紧要。我会尝试自己重现这个。并感谢您的反馈。是的,我们正在倾听。
      • 嗯。您使用的是什么版本的 TFS?我不能在 VSTS 上重现这个。有趣的是,有一个 不同的 问题,但我可以合并一个带有 `` 的文件名的拉取请求。
      • 对不起,我错过了,我会尽快为您跟进我的团队。
      猜你喜欢
      • 1970-01-01
      • 2017-04-11
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 1970-01-01
      • 2019-07-16
      • 2019-12-08
      • 2016-11-15
      相关资源
      最近更新 更多