使用版本控制管理免费增值应用程序

时间:2013-01-23 14:49:35

标签: version-control mercurial

我正在编写一个iOS应用程序,该应用程序以免费版本开头,并且,随着许多应用程序,在付费应用程序或通过应用内购买提供扩展功能。

我目前使用mercurial作为免费应用程序的版本控制,现在我们也想发布付费应用程序。我想知道是否有任何方法(理想情况下,但不一定,与mercurial)保持它们共享代码库的主要部分,以便一个错误修正自动影响另一个,但显然保持差异分开。

或者,是否有使用分支或类似方法的方法可以轻松地手动合并更改?

我尝试在网上搜索,但我不确定我是否找不到正确的关键词,否则这是不可能的。而且,我从来没有完全理解分支。

2 个答案:

答案 0 :(得分:2)

你至少有两个模特

<强>科基于

两个分支

  • 来自主线的分支PAID分支(默认分支)
  • 将常见功能和错误修正/更改添加到默认
  • 将默认合并为 PAID
  • 在PAID分支中开发仅PAID功能
  • 从2个分支机构发布版本

每个任务的分支

  • (与上述相同)
  • 在单独的命名分支中编写每个任务
  • 将已完成的分支合并为单个(PAID)或两个产品的分支

单分支中的MQ补丁

  • 添加,启用MQ扩展
  • 像以前一样在存储库的变更集中存储核心(免费版)
  • 将PAID更改和添加添加为单独的MQ-patches
  • 将常见更改实施为变更集
  • 为仅PAID功能添加/编辑MQ补丁
  • 未应用所有修补程序的存储库将是免费版本,所有已应用 - PAID。

答案 1 :(得分:2)

我假设您将付费和免费版本保密。

为什么不将所有内容放在一起并通过编译器将这两者区分开来?因此,“制作免费版本”和“制作付费版本”会产生影响。

如果你坚持将付费版和免费版的历史分开,我认为使用“免费”,“付费”和“分享”三个分支。不断将“共享”合并到其他两个(或建议为Lazy Badger,使用“仅付费”分支。)

据我所知,Python使用forward-porting,他们的做法应该会有所帮助。