10

到目前为止,“hg rebase”如何对待你?你有没有发现任何错误或陷阱?在什么情况下它会替代或补充 mq?

4

3 回答 3

7

在简单的情况下,Rebase 非常好(没有或很少的合并冲突),但如果你有很多它们,与常规的合并 + 提交相比,它可能会更麻烦:

Rebase 会更改您的提交并更改历史记录,并且默认情况下会删除您的原始提交。如果它们在糟糕的时刻击中您,这会产生许多影响:

  • 没有办法看到你是如何解决冲突的。(即原始提交和变基之间的差异,除非您选择保留它们并在推送之前手动剥离它们)
  • 没有办法测试每个重新合并的修订版都可以,在提交之前编译和运行都可以。你变基,你的提交改变。(与上述相同的例外)
  • 如果你真的在做分布式的东西并从许多来源共享/拉取,你必须非常小心,不要共享任何你打算变基的提交。
  • 此外,如果在上述情况下,您意外地变基然后从某人那里拉出这些 pre-rebase-commits,您会得到一组双重提交,并且需要“hg 剥离”其中一组。(我没有尝试在这里合并。)

问题是变基编辑历史。这就是 SVN 在“更新”上所做的。所以,这绝对是你可以使用的东西,但如果你有很多未完成的提交并且预计会有很多冲突,我建议改为合并。

于 2009-03-01T00:10:18.023 回答
3

相对于 MQ(Mercurial Queues)的最大优势在于,当您将排队的补丁推送到更改的基础层时,您最终会得到 .rej 文件并且必须手动修复补丁。使用 rebase,您将获得一个合并,并启动您的标准合并解决方案工具。

于 2009-02-23T04:08:33.507 回答
0

我看到指向重新设置分支的标签存在问题。

.hgtags@XXXXXXXXXXXX,第 2 行:标签 'XXX' 指代未知节点

似乎标签没有正确转换。

于 2009-11-25T14:06:14.147 回答