2011-06-03 20 views
0

我正在尋找一些關於如何分支我的應用程序,以便有一個功能有限版本的想法。分叉我的應用程序的新版本

讓我給出一個假設。可以說我的桌面應用程序與所有網絡瀏覽器交互。我與Google Chrome的人建立了合作關係,他們希望發佈僅適用於他們的瀏覽器的應用程序版本,並且會排除IE,Firefox等。

我該如何去做這件事?我可以在git中創建一個單獨的分支,然後運行我的構建腳本兩次,同時切換它們之間的分支。我也可以複製完整的代碼目錄,並從每個目錄構建。

我預見到的一個問題是,我希望我的完整程序中的錯誤修正能夠在限制版本中自動更新。可能還有其他問題,我也沒有意識到。所以我在尋找指導。

感謝

回答

1

如果你在你的完整程序中修復了一些東西,那麼你顯然會運行你的構建腳本來檢查迴歸錯誤嗎?所以也許有針對性的構建腳本可能是一個選擇。我會說,或考慮適應使用標誌(在Asana的傢伙是big fans)。

+0

+1標誌。可以用分支來做到這一點,但在這種情況下標誌更容易維護。 – 2011-06-03 22:18:51

+0

謝謝,我認爲這將是最好的方法,那麼我不必擔心重複修復。我可以擁有一個codebranch並標記我想要的功能(或者標記要構建的功能) – mikew 2011-06-04 06:28:09

0

根據其種類的應用程序,你想離開它作爲多平臺成爲可能。如果你創建了兩個單獨的源文件,你確實有兩個獨立的程序 - 最好有兩個獨立的源文件(其中一個可能是另一個)。

分支機構對於開發版本(「develop-1.1」)和master(「master」)之間的相切子項目(例如「feature-kitchensink」或distingush)有其位置。這個想法是,您希望每個分支中的源代碼足夠相似,以便稍後進行合併。

分支和回購在git中很便宜,不要害怕使用你需要的東西。

0

我預見到的一個問題是,我希望我的完整程序中的錯誤修正能夠在限制版本中自動更新。可能還有其他問題,我也沒有意識到。所以我在尋找指導。

假設它們與當前工作樹不衝突,你可以選擇分支之間的提交。如果您爲一個分支儘可能精確地完成修復,那麼您應該能夠將它們選擇到另一個分支 - 您可能需要根據當前代碼自定義修正,但不管如何,這都會發生。

0

通常,如果功能分支不同於父分支,主要是通過刪除某些代碼段,則從父分支中提取將按照預期更新所有常用代碼。如果刪除的部分被更改,您很可能會發生衝突,但解決起來相當容易。

另一方面,在這種情況下,我會說添加一個配置,在構建期間禁用某些功能將是一個更簡單的解決方案。 (你如何做到這一點取決於語言和構建你使用的工具。)你仍然可以有一個獨立的分支這有限的版本,並在代碼中加入

if(someConfigVariable){ 
    includeSomeCode() 
} 

,而不是刪除你不代碼」需要,很可能會使合併更容易。

相關問題