使用移动版本进行颠覆分支的策略

时间:2010-10-05 00:09:06

标签: android svn blackberry mobile branch

我正在为移动设备开发一系列应用程序,我们称之为Orange,Cherry和Pear。现在,由于我对Blackberry的熟悉,我选择在Blackberry平台上开始实现这三个应用程序中的第一个,Orange。我找到了一种方法来集成许多Blackberry平台(因为它们在不同的BB操作系统中使用相对相同的API,但有一些例外)到同一个代码库中。目前,我的代码库看起来像这样:

Orange/
  trunk/
   src/
     ... orange's source tree...
  branches/
    1.0/
     ... orange's source tree as it looked at release 1.0 ...
  tags/
     1.0.0/
     1.1.0/

所以,基本上,我正在使用基于版本的方法来分支。但是,现在我们希望将此应用程序迁移到Android平台(并且在某个时间点,可能迁移到其他移动或甚至桌面平台)。所以,我的问题是,跨多个平台使用单个应用程序进行分支的最佳方法是什么?我已阅读Branching Strategies,以及一些分支策略网页(例如http://www.codinghorror.com/blog/2007/10/software-branching-and-parallel-universes.html),但我仍然不相信基于拥有“共同”主干的分支(例如,如上所述)链接为'每个技术分支')。

我仍然不相信的原因是我相信基于版本的分支策略。这看似合乎逻辑;如果你想保持不同的开发阶段,那么分支似乎是实现这一目标的理想方式。如果我在所有三个平台之间都有“常见”的代码方面,那么我决定制作一个Android版本,我是否从常用和Android中继分支所有代码来制作新的发布标签?或者,我是否将所有代码保存在android和blackberry分支的'common'分支中?

我认为也许我能做的另一件事就是创建单独的项目,例如orange-blackberry和orange-android。但是,这可能会混乱我的svn存储库,因为我们将所有项目都保存在同一个存储库中。因此,我将不可避免地拥有橙色黑莓,橙色机器人,樱桃机器人,樱桃黑莓,梨形机器人,梨黑莓,以及我创建的任何其他应用程序的一系列项目文件夹。

所以,我正在寻找一些关于什么是管理所有这些混乱的最佳方法的反馈。另外,如果你可以提出一些关于从我当前的实现转移到更新的实现的一些想法,(我应该使用什么svn命令来维护历史),那将非常感激。

1 个答案:

答案 0 :(得分:4)

BlackBerry Java代码是j2me,因此源代码必须符合Java 1.3。 Android可以使用Java功能直到Java 6.如果您希望您的应用程序看起来不错,您将使用RIM专有的UI组件(net.rim.device。*),这些组件将无法在Android上使用。

我不认为应用程序的Android版本是BlackBerry的一个分支。你应该从头开始。平台将共享非常少的代码,并且可以共享的代码将最好地考虑到两个项目合并的库jar中。