- 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
génial
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. :)
Pour une utilisation sur de gros dépôts, est-ce que les performances restent correctes ? Je suis curieux ^^
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.Oh... ça a aussi l’air plus pratique que d’utiliser tout un tas de commandes quand on travaille avec Git.