源代码控制和处理新版本的应用程序

时间:2012-06-11 23:31:16

标签: version-control mercurial bitbucket

我使用Mercurial / TortoiseHg作为我的源代码控制。

到目前为止,我只有一个应用程序,即将完成版本1.0。一旦V 1.0上线,我们已经准备好了可以为下一个版本编程的功能。

这是一个手机应用程序,现在V1.0将是免费的,但可能想要支付V2.0,以后可能会对免费版本进行一些小错误/修复更新。

我不确定在V2.0正在进行时错误修复是如何工作的。

我的问题是:

我是否需要从V1.0开始分叉或分支我的存储库,或者我只是不断向我当前的存储库添加功能? 无论我需要做什么,我也想知道为什么我需要这样做。

感谢。

4 个答案:

答案 0 :(得分:2)

常见的工作流程是拥有两个分支,stabledefault。当您准备发布新版本时,可以向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工作流程的变体,但我希望每个主要版本都有一个分支,因为我可以拥有超过一个主要版本接受错误修复。