我正在为移动设备开发一系列应用程序,我们称它们为橙色,樱桃和梨。现在,由于我熟悉黑莓手机,我选择在黑莓平台上开始实施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和黑莓分支的“常用”分支中?
我认为也许我可以做的另一件事是创建单独的项目,例如橙黑莓和橙色android。但是,这可能会混乱我的svn仓库,因为我们将所有项目都保存在同一个仓库中。所以,不可避免地,我将为我创建的任何其他应用程序提供橙黑莓,橙色机器人,樱桃机器人,樱桃黑莓,梨子机器人,梨黑莓,以及一系列项目文件夹。
所以,我正在寻找一些反馈,以了解什么可能是管理所有这些混乱的最佳方法。另外,如果你可以提出一些关于从当前实现转移到新实现的思路(即我应该用什么svn命令来维护历史),那将非常感激。
嗯,实际上我确实将一些通用代码移出到一个单独的库中。我想避免的是在我的svn仓库中这种大规模的项目爆炸。我想我可以将它们放在版本库中的另一个目录下,而不是将所有的水果项目放在svnroot/level上。 – jwir3 2010-10-05 03:50:37
虽然,我会有兴趣听听有哪些其他建议。我假设其他人对于部署到多个平台的应用程序也有同样的问题 - 我的意思是,这对移动开发并不完全是独一无二的。针对linux/windows/unix/osx处理多个版本,并保持这些版本同步的策略有哪些? – jwir3 2010-10-05 03:52:03