将仓库演进历史转换为 html 动画 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
williamfzc
V2EX    分享创造

将仓库演进历史转换为 html 动画

  •  1
     
  •   williamfzc2022-12-13 13:32:31 +08:00 2920 次点击
    这是一个创建于 1102 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    偶然在其他人的 README 里看到了 gourcecodecity ,思考:

    • 没有逻辑层数据:我知道改了文件但不知道改了幅度跟影响
    • 有些渲染依赖:能否替换为现代的渲染技术,放进浏览器

    刚好我们正在做静态解析工具(真的是刚好),想着把这两个东西结合起来。

    效果

    release 页面 下载对应二进制包,用一行命令行:

    ./sibyl history --src . --output hello.html --full 

    就可以得到(发现主页视频播不了,我放评论里或者直接点链接跳)

    https://vimeo.com/780616138

    可以看到动画会标识出每个 diff 影响到的相关方法,并逐步演进,看到你的仓库逐渐成长。

    链接

    因为这个项目一开始不是为了干这个事情的(果然走着走着就歪了),主要是用来从代码里提取元信息(方法、类等),所以仓里还有很多不相关的内容。

    另外,这个视频里所有的原始信息( diff 影响哪些方法、方法又额外调用了哪些方法、每个 commit 完整的快照信息)都是可以拿到并且被 dump 出来的。

    这个发出来首先是因为好玩,其次是为了给主功能做一些测试吧~ 感兴趣可戳:

    https://github.com/opensibyl/sibyl2

    中文文档在这,但貌似一直被提示有访问风险,想弃了,还是看 README 就好吧:

    https://opensibyl.github.io/doc/docs/intro

    12 条回复    2022-12-13 15:28:48 +08:00
    williamfzc
        1
    williamfzc  
    OP
       2022-12-13 13:33:29 +08:00
    Tanf
        2
    Tanf  
       2022-12-13 13:52:47 +08:00
    看起来不错,
    williamfzc
        3
    williamfzc  
    OP
       2022-12-13 14:05:31 +08:00
    @williamfzc 当前支持 golang 、java 、python
    wfhtqp
        4
    wfhtqp  
       2022-12-13 14:07:17 +08:00
    docker compose 启动
    upload 成功
    但是接口查询 repo 没有
    wfhtqp
        5
    wfhtqp  
       2022-12-13 14:10:48 +08:00
    > ./sibyl history --src . --output hello.html --full

    运行一会儿卡住了,top 查看 100% cpu. 但是毫无反应.
    williamfzc
        6
    williamfzc  
    OP
       2022-12-13 14:19:09 +08:00
    @wfhtqp

    服务端:有队列,可以先看看服务那边有没有日志打出来,如果没有的话过会儿应该就有数据了
    卡住:仓的规模大概多大?
    wfhtqp
        7
    wfhtqp  
       2022-12-13 14:21:48 +08:00
    没有多协程吗?仓库 230M ,使用 upload 很快
    wfhtqp
        8
    wfhtqp  
       2022-12-13 14:24:45 +08:00
    用到 kafka ? docker-compose.yaml 里并没有这个的配置
    williamfzc
        9
    williamfzc  
    OP
       2022-12-13 14:25:37 +08:00
    @wfhtqp

    https://github.com/alibaba/jvm-sandbox

    history 这个功能我用这个仓测的,貌似没什么问题,也算比较传统大厂仓了。比较怀疑是仓里面有些大文件使得解析直接走到里面去把 cpu 打满了,使得没法继续往下了
    后续考虑把过大的源码文件忽略掉,目前只是忽略掉 binary
    williamfzc
        10
    williamfzc  
    OP
       2022-12-13 14:30:47 +08:00
    @wfhtqp

    暂时不带 kafka ,因为这类中间件一般由公司里的基建来承接,就不进 compose 了;

    默认情况下请求会打到 server 里的 in-memory 队列,然后有一批 worker 来处理并写进 db ;
    没入库目测是 neo4j 还在写,db 是目前最大的问题,太慢了;

    试用的话可以先不用 compose 玩玩看,看看流程能走通不: https://opensibyl.github.io/doc/docs/usage/usage-prod#%E5%BF%AB%E9%80%9F%E8%AF%95%E7%94%A8
    wfhtqp
        11
    wfhtqp  
       2022-12-13 14:57:16 +08:00
    不用 compose 也不行 看日志有 kafka 报错
    williamfzc
        12
    williamfzc  
    OP
       2022-12-13 15:28:48 +08:00
    @wfhtqp

    知道了.. 因为默认配置被不小心提交上去了,这次只是想来 share 下衍生 idea ,没有仔细测 server 这块,感谢!
    用 0.7.4 亲测 ok ,compose 也可以,可尝试
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     836 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 20:53 PVG 04:53 LAX 12:53 JFK 15:53
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86