关于开源项目二次开发的一个疑问
在对开源代码进行二次开发的时候,如果上游代码有新的 commit ,究竟是如何跟上上游的功能更新和补丁的?比如 Chromium base 的一些浏览器、国内的各种 Android 定制版,或者是 github 上的一些开源项目的 Fork 。
我能想到的就三种方法
我的理解是可以把二次开发分两类:一类是对源项目进行添加功能,尽量不去修改原来的代码。另一类是对源项目进行了一些深度定制修改。
如果只是打 Mod ,不修改源有代码,那么可以用第一种方法。
如果对项目进行了一些修改是不是只能人肉去合并代码了?
1
kidonng 2022-01-21 16:03:10 +08:00 via Android
“打 Mod”和“进行了一些修改”本质是一样的
fork 跟原项目同步更新的情况,要分两种。 一种是 youtube-dl 这种日期作版本号,发版看心情的,那 fork 直接拉主分支就行。 一种是 Telegram 这种版本号有发布周期的,就跟上游发版节奏一致,取决于项目类型和大小延迟不定的时间。 无论哪种碰到冲突都需要“人肉去合并代码”,总不能让机器去合。 |
2
jones2000 2022-01-21 17:35:16 +08:00
小点的开源, 公司直接赞助投钱, 要改什么需求直接对接作者,让作者进行 2 次开发。 省事。
|