Mercurial:功能分支工作流程?

Mercurial: Feature branch workflow?

假设我正在开发一项新功能。

在开发我的新功能时,我获得了足够的基本功能,所以我想在继续开发完整功能的同时发布它。当新功能完全完成后,我想将其合并回主版本,替换基本功能。

执行此操作的 Mercurial 工作流是什么?

我的处理方式是创建一个功能分支。 Mercurial 分支可以多次相互合并。因此,您可以在里程碑 1(基本/最小功能)和稍后(完整/完整功能)从功能分支合并到您的主分支。

分支可以命名或未命名/匿名;无论哪种方式,工作流程都将以相同的方式工作。是否选择创建命名分支本质上是个人/团队偏好;请注意,命名分支将永远存在于存储库历史记录中,因此通常它们用于长期 运行 项目。

匿名分支非常普遍,有些人甚至没有意识到他们正在使用匿名分支。实际上,只要您提交工作,就会创建一个分支。每个开发人员都将隐式地在他们自己的分支上工作(至少在他们的新工作被推送和同步之前。)所以你可以简单地在本地处理新功能,并且只在准备好时推送它与其他人共享。多努力,待会儿再推。

我个人经常使用这种方法,因为它非常灵活和简单。我经常喜欢保留多个本地存储库克隆,每个都专用于一个任务。这些可以很容易地创建、使用和随意删除。如果您的存储库很大,那么我建议使用 hg share 而不是 hg clone 来创建第 2 个到第 n 个本地存储库,因为它会节省时间 & space.

如果您愿意这样做,您还可以使用 Mercurial 书签功能来“标记”一个匿名分支,这可能比创建一个永久命名分支更可取,因为以后可以删除书签。