17 điểm bởi xguru 2023-12-06 | 5 bình luận | Chia sẻ qua WhatsApp
  • 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

 
yangeok 2023-12-11

tuyệt vời

 
eususu 2023-12-06

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. :)

 
galadbran 2023-12-07

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ò ^^

 
quack337 2023-12-06

Ồ! 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.

 
kuroneko 2023-12-06

Ồ... 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ọ.