2008-11-26 148 views
6

我從來沒有分出過一個項目,所以我有點難以理解如何繼續。我有一個我自己使用的項目,我作爲一個BSD許可項目發佈(項目A)。在工作中,我想使用該代碼,但修改特定於我們公司(項目B),但我希望能夠繼續使用來自我發佈的基本代碼的功能進行更新。分叉顛覆項目

處理兩個項目的分支並將項目A的變更合併到項目B中而不覆蓋我對項目B所做的修改的最佳方式是什麼?


它被拆分成兩個實體,我在Google Code上主要是回購,然後是我們自己內部回購的公司版本。我的問題是保持一切健全,因爲它是從發佈升級到發佈的時間,但保留自定義修改。

回答

3

請參閱前面提到的The Subversion Book discussing "vendor branches"中的部分。這將討論如何處理外部子項目,以便在更新外部項目時合併變更,並在您自己的本地修改中進行合併。

如果您將公開版本的項目(託管在Google代碼上)視爲您公司代碼中的外部依賴項,則此方法應該可以很好地工作。

1

在Subversion中,「分叉」是「分支」,「合併更改」是「合併」。

我不認爲如果不仔細閱讀The Subversion book的相關章節,您就可以逃脫。一旦你投入時間,它寫得非常清晰,易於理解。

+0

是的,我知道:)我的問題是有兩個單獨的回購,而不是分支/合併在一個。 – dragonmantank 2008-11-26 18:45:20

0

除非Work願意將這些修改發回原始項目,否則我會在那裏啓動一個全新的SVN項目(項目B)。然後,當您進入BSD許可項目(項目A)的下一個版本時,您可以從上一版本開始更改設置,然後將它們應用回項目B.

看起來像多重人格障礙,但您必須根據您的位置(Word或Home)以兩個不同的實體進行操作。

IFF另一方面工作願意將這些修改發回原始項目,那麼最好的選擇是創建一個分支並將項目A的更改合併到Projet B中(定期)。