songer
V2EX  ›  问与答

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

  •  
  •   songer · Jan 21, 2022 · 1383 views
    This topic created in 1582 days ago, the information mentioned may be changed or developed.

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

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

    我能想到的就三种方法

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

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

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

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

    2 replies    2022-01-21 17:35:16 +08:00
    kidonng
        1
    kidonng  
       Jan 21, 2022 via Android
    “打 Mod”和“进行了一些修改”本质是一样的
    fork 跟原项目同步更新的情况,要分两种。
    一种是 youtube-dl 这种日期作版本号,发版看心情的,那 fork 直接拉主分支就行。
    一种是 Telegram 这种版本号有发布周期的,就跟上游发版节奏一致,取决于项目类型和大小延迟不定的时间。
    无论哪种碰到冲突都需要“人肉去合并代码”,总不能让机器去合。
    jones2000
        2
    jones2000  
       Jan 21, 2022
    小点的开源, 公司直接赞助投钱, 要改什么需求直接对接作者,让作者进行 2 次开发。 省事。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   960 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 22:19 · PVG 06:19 · LAX 15:19 · JFK 18:19
    ♥ Do have faith in what you're doing.