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

2022-12-13 13:32:31 +08:00
 williamfzc

背景

偶然在其他人的 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

2498 次点击
所在节点    分享创造
12 条回复
williamfzc
2022-12-13 13:33:29 +08:00
<amp-vimeo data-videoid="780616138" layout="responsive" width="16" height="9"></amp-vimeo>
Tanf
2022-12-13 13:52:47 +08:00
看起来不错,👍
williamfzc
2022-12-13 14:05:31 +08:00
@williamfzc 当前支持 golang 、java 、python
wfhtqp
2022-12-13 14:07:17 +08:00
docker compose 启动
upload 成功
但是接口查询 repo 没有
wfhtqp
2022-12-13 14:10:48 +08:00
> ./sibyl history --src . --output hello.html --full

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

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

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

history 这个功能我用这个仓测的,貌似没什么问题,也算比较传统大厂仓了。比较怀疑是仓里面有些大文件使得解析直接走到里面去把 cpu 打满了,使得没法继续往下了
后续考虑把过大的源码文件忽略掉,目前只是忽略掉 binary
williamfzc
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
2022-12-13 14:57:16 +08:00
不用 compose 也不行 看日志有 kafka 报错
williamfzc
2022-12-13 15:28:48 +08:00
@wfhtqp

知道了.. 因为默认配置被不小心提交上去了,这次只是想来 share 下衍生 idea ,没有仔细测 server 这块,感谢!
用 0.7.4 亲测 ok ,compose 也可以,可尝试

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

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

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

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

© 2021 V2EX