src-d engine 強大的git 歷史分析工具

src-d engine 包含了Babelfish ,同時能夠看做是Babelfish 的升級版本,咱們可使用sql 進行代碼分析
備註: 注意運行的時候須要容器支持node

使用

  • 安裝docker
 
參考相關文檔,或者直接安裝docker for desktop 版本的
 
  • 安裝engine 二進制包
https://github.com/src-d/engine/releases 下載版本,配置環境變量,或者拷貝path 路徑
 

試用

  • init
    git 項目路徑下, 效果以下
 
 rss-nodejs git:(master) srcd init
INFO[0000] starting daemon with working directory: /Users/dalong/mylearning/rss-nodejs
INFO[0003] installing "srcd/cli-daemon:v0.7.0"
INFO[0016] installed "srcd/cli-daemon:v0.7.0"
INFO[0018] creating srcd-cli-network docker network
 

  • 運行web sql
srcd web sql
須要安裝驅動(代碼分析的,和Babelfish的相似)
  • 使用命令行執行查詢
srcd sql
  • 執行查詢
    集成了gitbase
 
show tables;

效果mysql

 show tables;
+--------------+
| table |
+--------------+
| blobs |
| commit_blobs |
| commit_files |
| commit_trees |
| commits |
| files |
| ref_commits |
| refs |
| remotes |
| repositories |
| tree_entries |
+--------------+
 
 
  • 查詢
SELECT repository_id,commit_count 
    -> FROM (
    -> SELECT r.repository_id, COUNT(*) AS commit_count
    -> FROM ref_commits r
    -> WHERE r.ref_name = 'HEAD'
    -> GROUP BY r.repository_id
    -> ) AS q
    -> ORDER BY commit_count
    -> DESC
    -> LIMIT 10;
+---------------+--------------+
| repository_id | commit_count |
+---------------+--------------+
| repos | 5 |
+---------------+--------------+
1 row in set (0.23 sec)
 
 

參考架構

說明

src-d engine 的功能很強大,是多個產品的集成,同時也可使用gitbase 直接查詢
gitbase 實現了一個mysql server 服務,咱們直接能夠查詢分析git 的提交信息git

參考資料

https://docs.sourced.tech/engine/
https://github.com/src-d/gitbase
https://github.com/src-d/go-mysql-servergithub

相關文章
相關標籤/搜索