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

时间:2011-04-19 15:57:26

标签: mercurial branch

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

在我为默认分支中的内容编写了足够的文档后,我合并了主分区中的docs分支。但是过了一会儿我想再次使用docs分支,我必须从主分支中提取更改,或者创建另一个新分支。

处理此问题的最佳工作流程是什么?我的做法完全错了吗?

2 个答案:

答案 0 :(得分:1)

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

假设您刚刚将docs合并到default中,您可以通过以下方式继续使用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保持同步,则必须明确执行该合并。

答案 1 :(得分:0)

要从与原始文档分支合并的子项再次开始使用docs分支,只需将工作副本更改为分支并提交给它。

如果您在docs分支上有更改,那么您需要先进行合并才能提交。