我已经使用git好几年了,最近为了某个项目切换到了Mercurial。过去6个月里,我通过命令行学会了如何使用Mercurial。
可能只是我的想象,但是我觉得Mercurial在合并方面要差得多,并且导致的冲突文件更多。我经常将默认分支合并到我的特性分支中,有时它会做一些非常奇怪的事情,并且无法自动合并看起来应该可以视觉上很好地合并的文件 - 例如,在同一行上没有更改等等。
我已经做了相当多的研究,看看合并算法可能有什么不同,但运气不佳。大多数文章都是人们关于git和Mercurial工作原理的观点和信息,而没有太多关注合并算法本身以及差异的平实语言示例。
我总是使用良好的合并策略,并沿着树向上合并,而且从不在合并到默认(hg)/主管(git)分支之前向下合并到远程,以确保没有冲突。
到目前为止,我在研究中发现:
1)Mercurial不能合并或存在与多个父项合并的问题。我不确定有人会处于这种情况,但也许这很常见?
这是真的吗?这会在日常开发中更经常地导致合并冲突吗?
2)Mercurial不支持章鱼合并,而Git支持。
对于章鱼合并,我说“谁在乎!”这不是必要的。
除此之外,合并算法似乎同等创建?是否有可能改变合并算法?是否有任何很好的文章介绍这个问题?
如果您发布像k3diff、p4merge和meld这样的合并工具的信息,您将错过重点 - 我想了解冲突解决之前的自动合并策略的信息。
感谢任何有用的参考和/或信息!
可能只是我的想象,但是我觉得Mercurial在合并方面要差得多,并且导致的冲突文件更多。我经常将默认分支合并到我的特性分支中,有时它会做一些非常奇怪的事情,并且无法自动合并看起来应该可以视觉上很好地合并的文件 - 例如,在同一行上没有更改等等。
我已经做了相当多的研究,看看合并算法可能有什么不同,但运气不佳。大多数文章都是人们关于git和Mercurial工作原理的观点和信息,而没有太多关注合并算法本身以及差异的平实语言示例。
我总是使用良好的合并策略,并沿着树向上合并,而且从不在合并到默认(hg)/主管(git)分支之前向下合并到远程,以确保没有冲突。
到目前为止,我在研究中发现:
1)Mercurial不能合并或存在与多个父项合并的问题。我不确定有人会处于这种情况,但也许这很常见?
这是真的吗?这会在日常开发中更经常地导致合并冲突吗?
2)Mercurial不支持章鱼合并,而Git支持。
对于章鱼合并,我说“谁在乎!”这不是必要的。
除此之外,合并算法似乎同等创建?是否有可能改变合并算法?是否有任何很好的文章介绍这个问题?
如果您发布像k3diff、p4merge和meld这样的合并工具的信息,您将错过重点 - 我想了解冲突解决之前的自动合并策略的信息。
感谢任何有用的参考和/或信息!