我使用Mercurial / TortoiseHg作为我的源代码控制。
到目前为止,我只有一个应用程序,即将完成版本1.0。一旦V 1.0上线,我们已经准备好了可以为下一个版本编程的功能。
这是一个手机应用程序,现在V1.0将是免费的,但可能想要支付V2.0,以后可能会对免费版本进行一些小错误/修复更新。
我不确定在V2.0正在进行时错误修复是如何工作的。
我的问题是:
我是否需要从V1.0开始分叉或分支我的存储库,或者我只是不断向我当前的存储库添加功能? 无论我需要做什么,我也想知道为什么我需要这样做。
感谢。
答案 0 :(得分:2)
常见的工作流程是拥有两个分支,stable
和default
。当您准备发布新版本时,可以向default
添加新功能并合并到stable
。实时错误在stable
分支上修复,并合并回default
。
This page很好地描述了它。
答案 1 :(得分:1)
我会为2.0制作一个分支,添加你的附加内容,并在完成后将它们合并到1.0中,或者创建1.0的标记版本以保存用于存档目的。
您将它们分开,因为您希望能够恢复1.0版本,以防需要修复错误或进行新部署。
答案 2 :(得分:1)
恭喜,问题是,一旦你的应用程序上线,你可能需要修复bug,并做一些小的更新,但修复这些错误或次要更新可能会干扰你的2.0工作,因此简单明智分支,修复它们来的bug,如果需要的话,传播到2.0。
答案 3 :(得分:1)
我会做以下事情:
将您发布的修订标记为v1.0
hg update -r <revision that's 1.0>
hg tag v1.0
hg ci -m 'Created V1.0 Tag'
为任何可以修复的错误修复分支。这可能是在您发布V1.0时,或者当您第一次修复错误时。
hg update v1.0 (or ideally the revision that added the V1.0 tag if it's immediately after V1.0)
hg branch release_v1
<Possibly do bug fix>
hg ci
返回默认分支继续开发v2。
hg update default
<carry on working>
当你有v1的错误修复时
hg update release_v1
<do bug fix>
然后将错误修复从v1.x合并到v2.x
hg update default
hg merge release_v1
hg ci -m 'Merged V1 bug fixes into V2'
您在新版本中创建新标记。 release_v1
分支继续运行,累积错误修复,必要时合并到default
(您的开发分支)。合并时确保您在默认分支上,因为它确定了合并更改集所具有的分支名称。
编辑添加,这是其他人提及的stable
/ default
工作流程的变体,但我希望每个主要版本都有一个分支,因为我可以拥有超过一个主要版本接受错误修复。