分叉开源项目的最佳做法是什么?

8 svn version-control open-source branch

我需要定制一个开源项目.这些更改适用于特定组织,对公共项目无用.代码更改包括禁用组织不需要的功能(影响5%的代码),为组织自定义其他功能(影响20%的代码),以及添加新的自定义功能(添加大约10%的新代码).

我可以从当前版本开始并从那里进行自定义.然而,原始项目继续取得进展并引入新功能,我希望能够将这些改进纳入其中.

管理这个的最佳方法是什么?现在,我只能获得发布版本,但我很快就会对原始项目的Subversion存储库进行只读访问.我是新手使用Subversion存储库,但也可以将它们用于我的代码.

Dav*_*hme 8

最好的办法是不要分叉.为什么不弄清楚如何改进它以便它可以做你想做的事情而不会丢失任何现有的功能.如果代码大小是一个问题,也许您可​​以花费一些时间来花费它来提高现有项目的效率.

  • 这是理想的,但是如果由于某种原因修复/改进没有像您希望的那样快地被接受到代码库中怎么办?如果您正在处理一个您不是管理员/所有者的项目,那么等待这样的事情有时与您的截止日期不一致。我想知道这是否是 OP 的意思。 (2认同)

Vin*_*vic 8

最佳做法是首先尝试将更改合并到项目中.

如果这不是你的选择

  1. 导入他们当前的HEAD,
  2. 在分支中进行修改
  3. 从他们的树上更新你的树
  4. 合并和重新分配

步骤3和4与保持叉子电流相关.这是一项很多工作,取决于项目的活动和保持最新的重要性.如果非常重要,我每周至少更新一次并合并一次.

您可能更喜欢将他们的svn树导入git以使合并变得容易,这就是您将要做的最多