发布补丁队列的Git方法是什么?

sas*_*nin 20 git mercurial mercurial-queue

我习惯使用Mercurial mq扩展来维护上游的一组自定义补丁.它们可以作为除上游之外的单独存储库发布.现在在git我使用私有分支rebase,并且它运行良好,直到我想与其他人共享我的补丁.

在Mercurial中,补丁队列是一个独立的存储库,可以像往常一样发布.Bitbucket甚至提供了一个补丁队列功能,可以将它链接到父存储库.在Git中,如果我发布了一个包含我的补丁的私有分支,我就失去了再修改它们的能力(除非我破坏了合并),但补丁需要不时更新.

从我发现的另一个SO问题来看,在Git世界中,StGit被提议作为等价物mq.它在使用上类似mq,但如何使用StGit发布补丁队列?

(stg publish似乎是为了创建一个新的"合并友好"分支,而不是自己发布补丁)

在Git中发布补丁队列的其他方法有哪些?

sas*_*nin 8

总结答案和评论.与git有发布在远程上游小定制修改两种方法:

  • 忘记rebase,发布分支和必要的新合并
  • 声明一个分支基础重建,只是变基和发布(PRO:干净的历史,禁忌:可以是要通过别人不断使用的疼痛,例如:Linux的未来)

到目前为止,纯补丁队列工作流似乎不适用于git,但内疚似乎非常接近mq,甚至命令的名称.它不允许版本控制(和可发布)的修补程序队列.