バージョン管理ツールGitのリポジトリ.git
には、ソースコードの変更ごとの差分情報をはじめとしたさまざまな情報が格納されています。
格納された情報は通常、gitコマンドを利用してアクセスすることができますが、gitのオプションは複雑で毎回使いこなすのに苦労しているという方は多いかもしれません。
本日紹介する「GQL」は、このgitリポジトリをデータベースファイルとみたて、SQLによく似たクエリを実行することができるRust製のオープンソースツールです。
使い慣れたSQL(風言語)でリポジトリ素早く情報を引き出すことができます。
目次
GQLの使用方法
GQLはRust製ツールで、cargo等を利用してインストールすることができます。
cargo install gitql
インストール後、gitql -r <repository_path> <repository_path>
で実行します。
gitql -r ./GQL gql >
gqlプロンプトが起動したら、SQL風の問い合わせを実行することができます。
コミットの情報を取得したい場合は、SELECT * FROM commit
をはじめとした、以下のようなコマンドを実行します。
SELECT * FROM commit 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だけではなくORDER BYやGROUP BYなどの便利な機能が利用できます。
利用可能なテーブルはcommitsのほかにも、references、diffs、branches、tagsなどが存在します。
詳細は公式サイトで確認可能です。
まとめ
GQLはGitリポジトリの情報をSQL風の言語を使って引き出すことができるツールです。複数のリポジトリにも対応しており、SQLを使い慣れている方にとっては便利なツールだといえそうです。