- Một ngôn ngữ cho phép truy vấn các tệp
.git bằng cú pháp tương tự SQL thay vì DB
- Một engine nhỏ thực hiện truy vấn thời gian thực trên Repo mà không cần DB riêng hoặc chuyển đổi
- Hỗ trợ hầu hết cú pháp của SQL (bao gồm grouping, sorting, aggregation)
- Mã nguồn mở Rust
SELECT DISTINCT title AS tt FROM commits
SELECT name, COUNT(name) AS commit_num FROM commits GROUP BY name ORDER BY commit_num DESC LIMIT 10
SELECT commit_count FROM branches WHERE commit_count BETWEEN 0 .. 10
SELECT * FROM refs WHERE type = "branch"
SELECT * FROM refs ORDER BY type
SELECT * FROM commits
SELECT name, email FROM commits
SELECT name, email FROM commits ORDER BY name DESC, email ASC
SELECT name, email FROM commits WHERE name LIKE "%gmail%" ORDER BY name
SELECT * FROM commits WHERE LOWER(name) = "amrdeveloper"
SELECT name FROM commits GROUP By name
SELECT name FROM commits GROUP By name having name = "AmrDeveloper"
SELECT * FROM branches
SELECT * FROM branches WHERE is_head = true
SELECT name, LEN(name) FROM branches
SELECT * FROM tags
SELECT * FROM tags OFFSET 1 LIMIT 1
5 bình luận
tuyệt vời
Tôi hơi tiếc là sau khi cài đặt thì không thể nhập truy vấn trực tiếp trên CLI.
Nhưng nếu tự build trực tiếp từ kho lưu trữ để dùng thì có thể sử dụng tùy chọn gửi truy vấn trực tiếp.
Có lẽ tính năng này sẽ được thêm vào phiên bản tiếp theo.
cargo run -- -q "SELECT * FROM tags"
Chỉ cần dùng theo cách như vậy là được.
Giờ thì có thể dùng cho các công việc DevOps rồi. :)
Không biết khi dùng với kho lưu trữ lớn thì tốc độ có ổn không nhỉ? Mình tò mò ^^
Ồ! Tôi cũng hay phải làm cái việc phiền phức là parse đầu ra
git log --numstat, đưa vào DB rồi phân tích bằng SQL; nếu có cái này thì đủ dùng rồi.Ồ... khi làm việc với Git thì có vẻ tiện hơn là phải dùng đủ thứ câu lệnh này nọ.