在Mercurial中管理长期存在的命名分支



所以我在我的一个项目中使用mercurial,我是唯一的开发人员。我通常在实际开发中使用默认分支,在新功能上使用一些短期分支,这很好:我创建它们,编写新功能,如果它运行得足够好,我将该分支合并到默认分支中,并且不再使用它。但是我想在不同的分支中编写文档,因为我真的不想用文档提交"污染"默认分支。

在我为我在默认分支中拥有的东西编写了足够的文档之后,我将docs分支合并到主分支中。但是过了一段时间,我想再次使用docs分支,我必须从主分支中拉出更改,或者创建另一个新分支。

处理这种情况的最佳工作流程是什么?我的方法完全错了吗?

将文档放在源代码管理中有点奇怪。如果文档是二进制文件(.doc/.docx/.xlsx), Hg将无法合并它们。如果您存储的是。html、。xml或一些纯文本格式,那么它会做得稍好一些。有一些开源系统允许您使用Hg并提供单独的文档管理(例如Redmine)

假设你刚刚合并了docsdefault,你可以继续使用docs分支,这样做:

> hg update docs   # update to the docs branch
> hg merge default # merge default into docs branch
(do some work)
> hg commit -m "adding new things to docs branch"
(merge into default when ready)

通过将default合并到docs中,您可以确保docs具有default上存在的所有更改。在docs上执行后续提交将有效地允许您继续在该分支上工作。另一种说法是,在Hg中合并是有方向性的——如果你想让docsdefault同步,你必须显式地执行合并。

要从合并到原始docs分支的子分支开始再次使用docs分支,只需将工作副本更改到分支并提交。

如果你在docs分支上做了修改,那么你需要在提交之前进行合并。

最新更新