2010-10-05 64 views
1

我正在爲移動設備開發一系列應用程序,我們稱它們爲橙色,櫻桃和梨。現在,由於我熟悉黑莓手機,我選擇在黑莓平臺上開始實施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命令來維護歷史),那將非常感激。

回答

4

BlackBerry Java代碼是j2me,因此源代碼必須符合Java 1.3。 Android可以使用Java特性直至Java 6。如果您希望自己的應用看起來體面,那麼您將使用RIM專有的UI組件(net.rim.device。*),並且這些組件在Android上不可用。

我不認爲應用程序的Android版本是BlackBerry的一個分支。你應該從頭開始。這些平臺將共享非常少的代碼,並且可以共享的代碼將被最好地考慮到兩個項目合併的庫jar中。

+0

嗯,實際上我確實將一些通用代碼移出到一個單獨的庫中。我想避免的是在我的svn倉庫中這種大規模的項目爆炸。我想我可以將它們放在版本庫中的另一個目錄下,而不是將所有的水果項目放在svnroot/level上。 – jwir3 2010-10-05 03:50:37

+0

雖然,我會有興趣聽聽有哪些其他建議。我假設其他人對於部署到多個平臺的應用程序也有同樣的問題 - 我的意思是,這對移動開發並不完全是獨一無二的。針對linux/windows/unix/osx處理多個版本,並保持這些版本同步的策略有哪些? – jwir3 2010-10-05 03:52:03