17P by xguru 12달전 | favorite | 댓글 5개
  • SQL과 비슷한 문법으로 DB대신 .git 파일에 대해서 쿼리 가능한 언어
  • 작은 엔진이 별도의 DB 또는 변환없이 Repo에 대한 실시간 질의 수행
  • SQL의 대부분 문법 지원 (그룹핑, 정렬, 집계 포함)
  • 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  

설치하고, CLI에서 직접 쿼리를 입력하는게 안되서 아쉬웠습니다.
그런데 저장소를 직접 빌드해서 사용하면 직접 쿼리를 던지는 옵션을 사용 할 수 있네요.

아마 다음 버전에 추가될 예정인가 봅니다

cargo run -- -q "SELECT * FROM tags"

이런식으로 사용하면 됩니다.
이제 DevOps 작업에 사용 할 수 있습니다. :)

큰 저장소에 사용시에 혹시 속도는 괜찮으시던가요? 궁금합니다 ^^

오! git log --numstat 출력을 파싱해서 DB에 넣어 놓고, SQL로 분석하는 귀찮은 작업을 종종하는데, 이거 하나면 되겠군요.

오... 깃 작업할 때 명령어 이것저것 쓰는 것보다 편해 보이기도 하네요.