2010-03-02 47 views
5

我想我最好解釋一下我的情況:2版本軟件:最好的VCS方法?

我正在開發一些軟件的過程中,我正處於想要將我的項目分成兩個功能不同的分支的階段。恰巧這個應用程序是一個Android應用程序,我將在Market上進行部署,這個應用程序的約束是每個應用程序都必須有唯一的包標識符(明智的,不是?)。

我目前的做法是克隆我原始項目的git倉庫,但這會導致軟件包名稱出現問題。我希望系統足夠強大,以便一個分支上的bug修復/新功能將合併到另一個分支中,但僅限於我需要時。

有沒有人有任何建議?

+1

我想你的意思是VCS(版本控制系統),CMS不。 – 2010-03-02 18:21:38

+0

詛咒的縮略語!更新。謝謝 – 2010-03-02 18:27:06

+0

我對Android並不熟悉,但聽起來像插件架構可能會有所幫助。 根據要包含的功能,您可以使用各種插件集發佈您的產品。 – DanJ 2010-03-02 18:46:30

回答

3

我自己處理具有相同代碼庫的付費應用程序和試用版本。我正在使用SVN,但任何支持分支的版本控制軟件都可以使用。

我從trunk中爲試用版創建了一個分支。

然後我修改了試用版本的AndroidManifest.xml來更改軟件包名稱,最後添加了.trial。然後,我還必須更新所有活動java文件以引用正確的R類。

我的付費應用程序包是com.hewittsoft.baby
我試用的應用程序包是com.hewittsoft.baby.trial

在我的試用我的分支活動,我這樣做是

import com.hewittsoft.baby.trial.R; 

並導致任何引用R.id.textField(或其他)的工作。

在我完成了這些步驟之後,我可以在主分支上開發,然後將任何更改合併到試用版中,而不會造成太大的痛苦。

+0

你是如何處理不同的文件結構的(例如:Launch.java位於/ src/com/hewittsoft/baby /中,另一個位於/ src/com/hewittsoft/baby/trial /中)? – 2010-03-02 22:20:57

+0

我沒有不同的文件結構。所有的活動和支持代碼仍然在/ src/com/hewittsoft/baby /中,AndroidManifest.xml仍指向它們,如下所示: 我有一個com/hewittsoft/baby/trial軟件包,但它只是代碼特定於試用版(檢查試用版是否過期等) – dweebo 2010-03-03 15:57:16

+0

好的,謝謝。我想我會用你的方法。 – 2010-03-03 23:24:26

3

如果唯一的問題是打包和發佈管理問題,您可以在一個Git倉庫中從歷史記錄週期中隔離這些步驟(重命名包並在目標環境中測試它)。

所以你可以繼續,分開你的開發,每個分支一個功能,爲兩者保留相同的包名稱(以便輕鬆地將修復從一個到另一個)。
但是,爲了測試和部署這兩個版本中的一個,您可以有一個負責重命名包,重新編譯,打包(jar)並將結果部署到目標測試環境的腳本。

+0

聽起來像一個很好的計劃。 – 2010-03-02 19:44:08