分叉颠覆项目

时间:2008-11-26 15:37:36

标签: svn version-control project-management

我以前从来没有分叉过一个项目,所以我对如何继续进行了一些努力。我有一个项目,我自己使用,我作为BSD许可项目(项目A)发布。在工作中,我想使用该代码,但需要对我们公司(项目B)进行特定的修改,但我希望能够使用来自我发布的基本代码的功能进行更新。

处理项目的两个分支并将项目A的变更纳入项目B而不覆盖我对项目B的模式的最佳方法是什么?


它被分为两个实体,我的主要仓库在Google Code上,然后是公司版本在我们自己的内部仓库中。我的问题是保持一切正常,因为需要从发布版本升级到发布版本,但要保持自定义修改。

3 个答案:

答案 0 :(得分:3)

请参阅前面提到的The Subversion Book discussing "vendor branches"部分。这讨论了如何处理外部子项目,以便在外部项目更新时合并更改并合并到您自己的本地修改中。

如果您将项目的公共版本(托管在Google代码上)视为公司代码中的外部依赖项,则此方法应该可以正常工作。

答案 1 :(得分:2)

在Subversion中,'forking'是'分支','合并更改'是'合并'。

我认为如果不仔细阅读The Subversion book的相关章节,你就无法逃脱。一旦你花时间,它写得非常清楚,易于理解。

答案 2 :(得分:0)

除非工作愿意将这些修改发布回原始项目,否则我将在那里开始一个全新的SVN项目(项目B)。然后,当您进入下一版BSD许可项目(项目A)时,您可以从上一版本创建更改集,然后将它们应用回项目B.

它可能看起来像多重人格障碍,但你必须扮演两个不同的实体,取决于你(Word或Home)。

另一方面,IFF工作人员愿意将这些修改发布回原始项目,然后您更好的选择是创建分支并将您对项目A的更改合并到Projet B中(定期)。