【发布时间】:2020-11-17 17:15:10
【问题描述】:
假设我正在开发一项新功能。
在开发我的新功能时,我获得了足够的基本功能,因此我想在继续开发完整功能的同时发布它。当新功能完全完成后,我想将其合并回主版本,替换基本功能。
执行此操作的 Mercurial 工作流程是什么?
【问题讨论】:
标签: mercurial branching-and-merging
假设我正在开发一项新功能。
在开发我的新功能时,我获得了足够的基本功能,因此我想在继续开发完整功能的同时发布它。当新功能完全完成后,我想将其合并回主版本,替换基本功能。
执行此操作的 Mercurial 工作流程是什么?
【问题讨论】:
标签: mercurial branching-and-merging
我的方法是创建一个功能分支。 Mercurial 分支可以多次相互合并。因此,您可以在里程碑 1(基本/最小功能)和稍后(完整/完整功能)从功能分支合并到您的主分支。
分支可以命名或未命名/匿名;无论哪种方式,工作流程都将以相同的方式工作。是否选择创建命名分支本质上是个人/团队偏好;请注意,命名分支会在存储库历史记录中永久存在,因此它们通常用于长期运行的项目。
匿名分支是如此普遍,以至于有些人甚至没有意识到他们正在使用它。每当您提交工作时,就会有效地创建一个分支。每个开发人员都将隐式地在他们自己的分支上工作(至少在他们的新工作被推送和同步之前)。因此,您可以简单地在本地处理新功能,并且只在准备好时推送它以与其他人共享。工作更多,稍后再推。
我个人经常使用这种方法,因为它非常灵活和简单。我经常喜欢保留多个本地存储库克隆,每个都专用于一个任务。这些可以随意创建、使用和删除。如果您的存储库很大,那么我建议使用 hg share 而不是 hg clone 创建第 2 到第 n 个本地存储库,因为这样可以节省时间和空间。
如果您愿意这样做,您还可以使用 Mercurial 书签功能来“标记”匿名分支,这可能比创建永久命名分支更可取,因为以后可以删除书签。
【讨论】: