version-control - 在不实际拉取的情况下检测父存储库和分支之间的冲突

标签 version-control mercurial dvcs

我想解决以下问题: 我有一个存储库(称为 A)和它的克隆(称为 B)。我在 B 中做了一些更改,我想请 A 的所有者拉取它。我想实现一个函数,可以确定 B 中的更改是否可以拉到 A 而不会引起任何冲突。我想以一种不会破坏 A 中的信息的方式实现这一点(因此任何克隆 A 的人都会看到与此冲突检测之前完全相同的内容)。

请注意,我想以更有效的方式解决这个问题。我看到 bitbucket 非常快地执行拉取请求检查。你有什么想法吗?

提前致谢

最佳答案

首先,拉动本身不会产生任何冲突。它只是将变更集添加到存储库历史记录中,还可能添加新的分支/头。 merge 这些头时可能会发生冲突。因此,当AB中拉出时,A中没有任何损坏。

但是,如果您希望 A 的所有者包含您的更改,您实际上需要做的是将 A 中的最近更改拉入您的 B 并且 - 如果需要 - 将 A 中的新更改 merge 到您的新更改中。然后请求从现在 merge 的 B 中拉取,A 可以在不添加新头的情况下拉取,因此可能不必处理冲突。

如果您不想遵循常见的工作流程,但确实想按照问题中的描述进行检查,只需创建 A 的新克隆,例如 C>,并尝试从 B 拉取并 merge 到 C。但最终您还是会执行上述步骤。

关于version-control - 在不实际拉取的情况下检测父存储库和分支之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6408123/

相关文章:

git - Composer : package installation requires svn/git?

Mercurial:改变阶段会产生什么后果?

python - 应用程序在 Mercurial 存储库中访问自己的版本

Mercurial 工作流可以并行处理多个单独的任务

mercurial - 提交拉 merge 推送还是拉 merge 提交推送?

git - 如何使用相同的 package.json 进行不同的构建?

svn - fork 颠覆项目

version-control - DVCS选择-什么对Windows有好处?

version-control - 将 Cakephp1.3 迁移到 2.0

SVN & DVCS 工作流程——保存历史