我们使用TFS 2017(15.117.26714.0)和git。 当我们尝试发出拉取请求时,TFS说"拉请求不能自动合并。"。
我只想弄清楚发生了什么,但我没有找到任何关于拉请求无法自动合并的消息。
你知道怎么调试"拉请求不能自动合并。"? 是否有隐藏选项或指向日志的链接可以帮助我?
您可以在Web服务器的专用页面上找到有关应该在pull请求期间执行合并的作业的小报告。您可以在http://my.tfs.server:8080/tfs/_oi或https://my.tfs.server/_oi中找到它,然后搜索名为Git Native MergeJob
的作业。您必须具有管理权限才能访问它。
这为该作业提供了一条结果消息,如果作业失败,该消息可能是一个带有callstack的异常。
但是,在我的特定情况下,作业成功执行,结果消息为Successfully tried merging.
,而来自请求的消息仍为Pull request cannot be automatically merged
。
所以,我需要深入挖掘并找到该特定工作的日志(如果存在!)。 谁知道我能在哪里找到它?
答案 0 :(得分:2)
Git非常善于在大多数情况下自动合并文件更改,大多数拉取请求可以是“自动合并”,这意味着它与目标分支之间没有冲突。
但是,如果其他人对其中一个相同的文件进行更改,则TFS将不再尝试合并您的分支。如果TFS无法提供有关如何纠正此问题的建议。您可能会收到此类错误信息"Pull request cannot be automatically merged."
您可以通过将两个服务器分支下拉到本地并进行相互比较来仔细检查。如果存在一些冲突,建议您查看resolve merge conflicts。
一些类似的问题供您参考:
此外,为避免此类问题,您可以set up the branch policy保护您的分支机构。设置分支策略后,其他人无法直接将更改推送到分支。只有拉取请求才能对分支进行更改。
答案 1 :(得分:0)
表示您没有最新的主人。
你应该拔出最新的主人,将它合并到修复所有冲突的功能分支中,然后执行你的拉取请求。
答案 2 :(得分:0)
您可以在Web服务器的专用页面上找到有关应该在pull请求期间执行合并的作业的小报告。您可以在http://my.tfs.server:8080/tfs/_oi
或https://my.tfs.server/_oi
中找到它,然后搜索名为Git Native MergeJob
的作业。您必须具有管理权限才能访问它。
根据问题的原因,您可能会遇到异常和一个可以帮助理解为什么" Pull请求无法自动合并的调用堆栈"。
大多数情况下,您会发现某个文件太大而且#34;由TFS处理,请参阅this issue on github。