https://github.com/modernizing/git2sqlite
Git log as a web services
https://github.com/modernizing/git2sqlite
Last synced: about 2 months ago
JSON representation
Git log as a web services
- Host: GitHub
- URL: https://github.com/modernizing/git2sqlite
- Owner: modernizing
- License: mit
- Created: 2021-02-03T01:35:35.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-02-05T05:43:10.000Z (over 5 years ago)
- Last Synced: 2025-01-17T01:49:29.883Z (over 1 year ago)
- Language: Rust
- Size: 84 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Git to SQLite
A research on how to save Git log to database for [Coco](https://github.com/inherd/coco)
Architecture
1. parse git log
2. parse log by line to commit
3. save commit to json file
4. read json file and save to db
## Performance logs
### Without Changes
- Machine: MacBook Pro (15-inch, 2018)
- Processor: 2.2 GHz 6-Core Intel Core i7
- Memory: 16 GB 2400 MHz DDR4
| Project Name | Project Commits | Time | Times(ms) |
|------------------|-----------------|--------|-------------------|
| Rust Regex | 1078 | 3s | 2919ms ~ 3012ms |
| Lombok | 3127 | 8s | 8096ms ~ 8616ms |
| Nginx | 6805 | 32s | 32468ms ~ 33967ms |
| Redis | 10009 | 67s | 65328ms ~ 71616ms |
| Spring Framework | 22133 | 706s | |
| Graal | 49026 | 1425s | |
| Gradle | 78711 | 4130s | |
### With Changes in Serial
111063ms
| Project Name | Project Commits | Times(ms) |
|------------------|-----------------|-------------------|
| Coco | 405 | 111063ms |
| Rust Regex | 1078 | > 6000000ms |
### With Changes in JSON
| Project Name | Project Commits | Time | Times(ms) | Size |
|------------------|-----------------|--------|-------------------|-----------|
| Rust Regex | 1078 | 3s | 6771ms | 598M |
| Lombok | 3127 | 8s | 25541ms | 2.4G |
| Nginx | 6805 | 32s | 207398ms | 11G |
| Redis | 10009 | 67s | 248299ms | |
## Todo
- 获取所有的提交 id (Change to list all commits)
- 将提交 ID 分段,获取不同的 ID (and run git to split commits)
Or
- Changes of half year
## Solution Strategy
1. summary all commits
2. summary all changes, count changes size
3. fetch recently 10000 changes ? or half years change by commit_id?
4. count relations?
License
---
@ 2020~2021 This code is distributed under the MIT license. See `LICENSE` in this directory.