问题:通过Xcode和SVN管理的版本,基于另一个OSS项目维护项目的最佳方法是什么?
我想开始一个相当受欢迎的开源项目的分支(?)(允许)。大多数情况下,我想为它构建我自己的用Cocoa / ObjC编写的用户界面,并提供我自己的一些自定义功能。
现在,这个OSS项目并不是很小。该项目本身有超过3000个文件,构建过程非常紧凑 - 包括多个阶段和步骤,需要编译构建工具,运行它们,然后编译结果。
所有这些在Xcode中都很好用,因为它很容易设置构建阶段和规则来处理所有事情。
我不清楚的是,如何最好地管理来自上游的补丁。他们一直致力于这个项目,我希望能够尽可能容易地及时了解这些补丁,因为许多差异文件有时会同时影响一百个(!)文件。
因此,保持源树的原始未修改副本,以便我可以应用补丁,这似乎是一件明智的事情,因为我真的不想每隔几周对数百个文件进行整理,手动合并补丁。
我在这方面的想法是:
1)设置一个“上游”SVN仓库来保存上游源的副本,加上在Xcode中编译它的最低要求(所以xcproject,一些xcconfigs,一些前缀头文件就是这样)
2)设置我自己的“下游”SVN回购,在那里我完成所有工作并应用我自己的修改。
每当上游发布补丁时,我都可以将其应用到#1,然后同步到#2,并处理由我自己的修改创建的任何问题。
我不清楚的是,如果这是处理事情的理智方式 - 或者我应该遵循一些更好的做法。
这是处理事情的最佳方式,还是我应该以其他方式做这件事?
答案 0 :(得分:1)
在SVN-world中很久以前它被命名为“Vendor Branches”并被许多团队密集使用(你可以另外google这个短语)
技术上它是
如果(或“何时”)供应商分支从上游获得更新,您只需将分支合并到/您的位置/,集成更改并继续工作