V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
songer
V2EX  ›  问与答

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

  •  
  •   songer · 2022-01-21 15:47:35 +08:00 · 1034 次点击
    这是一个创建于 1041 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    我能想到的就三种方法

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

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

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

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

    2 条回复    2022-01-21 17:35:16 +08:00
    kidonng
        1
    kidonng  
       2022-01-21 16:03:10 +08:00 via Android
    “打 Mod”和“进行了一些修改”本质是一样的
    fork 跟原项目同步更新的情况,要分两种。
    一种是 youtube-dl 这种日期作版本号,发版看心情的,那 fork 直接拉主分支就行。
    一种是 Telegram 这种版本号有发布周期的,就跟上游发版节奏一致,取决于项目类型和大小延迟不定的时间。
    无论哪种碰到冲突都需要“人肉去合并代码”,总不能让机器去合。
    jones2000
        2
    jones2000  
       2022-01-21 17:35:16 +08:00
    小点的开源, 公司直接赞助投钱, 要改什么需求直接对接作者,让作者进行 2 次开发。 省事。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5505 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 09:00 · PVG 17:00 · LAX 01:00 · JFK 04:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.