2008-11-26 157 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中(定期)。