17 points par xguru 2023-12-06 | 5 commentaires | Partager sur WhatsApp
  • Un langage permettant d’interroger des fichiers .git avec une syntaxe proche de SQL, au lieu d’une base de données
  • Un petit moteur exécute des requêtes en temps réel sur un dépôt, sans base de données ni conversion séparée
  • Prend en charge la plupart de la syntaxe SQL (y compris le regroupement, le tri et les agrégations)
  • Open source en 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 commentaires

 
yangeok 2023-12-11

génial

 
eususu 2023-12-06

C’était dommage qu’après l’installation, on ne puisse pas saisir directement des requêtes dans le CLI.
Mais si on compile et utilise directement le dépôt, on peut utiliser une option permettant de lancer des requêtes directement.

Apparemment, cela devrait être ajouté dans la prochaine version.

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

Il suffit de l’utiliser comme ceci.
On peut désormais l’utiliser pour des tâches DevOps. :)

 
galadbran 2023-12-07

Pour une utilisation sur de gros dépôts, est-ce que les performances restent correctes ? Je suis curieux ^^

 
quack337 2023-12-06

Oh ! Il m’arrive souvent de faire la corvée qui consiste à parser la sortie de git log --numstat, à l’injecter dans une base de données, puis à l’analyser en SQL ; avec ça, un seul outil devrait suffire.

 
kuroneko 2023-12-06

Oh... ça a aussi l’air plus pratique que d’utiliser tout un tas de commandes quand on travaille avec Git.