关于开源项目二次开发的一个疑问

2022-01-21 15:47:35 +08:00
 songer

关于开源项目二次开发的一个疑问

在对开源代码进行二次开发的时候,如果上游代码有新的 commit ,究竟是如何跟上上游的功能更新和补丁的?比如 Chromium base 的一些浏览器、国内的各种 Android 定制版,或者是 github 上的一些开源项目的 Fork 。

我能想到的就三种方法

  1. git upstream
  2. 导出 patch 文件,更新上游后再打 patch
  3. 人肉合并

我的理解是可以把二次开发分两类:一类是对源项目进行添加功能,尽量不去修改原来的代码。另一类是对源项目进行了一些深度定制修改。

如果只是打 Mod ,不修改源有代码,那么可以用第一种方法。

如果对项目进行了一些修改是不是只能人肉去合并代码了?

1016 次点击
所在节点    问与答
2 条回复
kidonng
2022-01-21 16:03:10 +08:00
“打 Mod”和“进行了一些修改”本质是一样的
fork 跟原项目同步更新的情况,要分两种。
一种是 youtube-dl 这种日期作版本号,发版看心情的,那 fork 直接拉主分支就行。
一种是 Telegram 这种版本号有发布周期的,就跟上游发版节奏一致,取决于项目类型和大小延迟不定的时间。
无论哪种碰到冲突都需要“人肉去合并代码”,总不能让机器去合。
jones2000
2022-01-21 17:35:16 +08:00
小点的开源, 公司直接赞助投钱, 要改什么需求直接对接作者,让作者进行 2 次开发。 省事。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/829731

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX