V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tempdban
V2EX  ›  Android

很多公司开源的安卓内核都是一个压缩包,不带任何 commit,请教下怎么将 commit 给补回来

  •  1
     
  •   tempdban · 2017-06-30 00:23:35 +08:00 via Android · 12960 次点击
    这是一个创建于 2696 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我遇到的问题是:
    我找到一个适合安卓 6.0 的高通内核,但是是个压缩包不带任何 commit。
    现在想通过高通的 git 仓库将 commit 尽最大可能补回来。
    能长期指导的话,我可以适当的交学费
    18 条回复    2017-07-01 16:32:16 +08:00
    kmahyyg
        1
    kmahyyg  
       2017-06-30 00:49:14 +08:00 via Android
    战略性 mark
    geelaw
        2
    geelaw  
       2017-06-30 01:00:29 +08:00   ❤️ 1
    已经删掉的东西弄不回来,答案是:

    1. clone 高通的仓库
    2. 删除内容
    3. 解压缩
    4. git add .
    5. git commit -m '变成最终版本'
    cxbig
        3
    cxbig  
       2017-06-30 01:01:20 +08:00   ❤️ 1
    这个压缩包如果不带.git 目录的话,是找不回来的。
    你倒不如 clone 那个 repo,再把这个压缩包覆盖进去看看有什么不同。如果差别不大,就在基础上接着走。
    killeder
        4
    killeder  
       2017-06-30 08:14:21 +08:00 via Android   ❤️ 1
    https://www.codeaurora.org 这上面高通的内核都有
    tempdban
        5
    tempdban  
    OP
       2017-06-30 08:29:19 +08:00 via Android
    @geelaw
    @cxbig
    @killeder
    关键的问题是我还不知道原厂是基于高通哪个 TAG 搞得,我曾一度想写个脚本暴力 diff 看哪个差异最小。
    tempdban
        6
    tempdban  
    OP
       2017-06-30 08:30:57 +08:00 via Android
    @geelaw 这样操作的话,我在后续合并其他 commit 的时候,还会有冲突。比如说合并 7.12 的相关 commit
    Ariver
        7
    Ariver  
       2017-06-30 09:19:12 +08:00
    为啥要暴力 diff? beyond compare 值得拥有。
    tempdban
        8
    tempdban  
    OP
       2017-06-30 09:21:41 +08:00 via Android
    @Ariver 因为 TAG 很多,我要写到脚本里。并且我只是要统计差异的数量 git diff 足够好用了
    yinheli
        9
    yinheli  
       2017-06-30 10:07:45 +08:00   ❤️ 1
    clone 原始仓库,依次 checkout 版本,和没有 commit 的代码对比,如果每个文件都一样(比如 hash 都是一样的)说明应该就是那个 commit 导出的。

    以上,最好写点脚本检测。
    tempdban
        10
    tempdban  
    OP
       2017-06-30 10:31:16 +08:00
    @yinheli 果然只能这样了么
    coolypf
        11
    coolypf  
       2017-06-30 12:35:23 +08:00
    这样已经很好了。
    coolypf
        12
    coolypf  
       2017-06-30 12:36:21 +08:00
    小米开源的 Linux 内核就是这样的:
    https://github.com/MiCode/Xiaomi_Kernel_OpenSource/commits/mido-m-oss
    zqcolor
        13
    zqcolor  
       2017-06-30 13:31:26 +08:00
    要看.repo 文件夹里面的 manifest.xml, 然后可以找到 https://www.codeaurora.org 上的源码
    tempdban
        14
    tempdban  
    OP
       2017-06-30 14:17:10 +08:00
    @coolypf 不,你再看 zte。
    tempdban
        15
    tempdban  
    OP
       2017-06-30 14:17:47 +08:00
    @zqcolor 只有内核,没有安卓工程
    liufish
        16
    liufish  
       2017-07-01 11:02:31 +08:00
    拿到了高通内核代码,感觉挺厉害的。
    tempdban
        17
    tempdban  
    OP
       2017-07-01 13:34:28 +08:00
    @liufish 高通的 kernel 部分是全开源的
    kneep
        18
    kneep  
       2017-07-01 16:32:16 +08:00 via iPhone
    git 的数据库没给你,说明这些公司开源可能是迫于合规的要求,并不是真的想当作一个开源项目来运营
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2885 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 03:36 · PVG 11:36 · LAX 19:36 · JFK 22:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.