定形.gitignore出力ツール「gibo」も比較してみた
先日こんなエントリを書いてみたんですが。
定形の.gitignoreを出力してくれるツールを比較してみた - Umi Uyuraのブログ
Qiitaを見ていたら simonwhitaker/gibo というツールもあるみたいなので、こっちも含めて比較してみることにしました。
比較してみた
インストール方法
Homebrewで提供されています。 自分はMac+Homebrewで環境を作っているので、導入が簡単で良いですね。
$ brew install gibo
使い方
こちらも基本的に同じで、対応している.gitignoreの一覧を出力するものと、指定した言語の.gitignoreを出力するものがあります。
対応している.gitignoreの一覧
$ gibo --list
.gitignoreを出力
$ gibo appceleratortitanium
複数指定はスペース派のようです。
$ gibo appceleratortitanium node
対応.gitignore数
giboに関しても、.gitignoreの元データは github/gitignore を使っていました。
よって、数としては前回紹介したjoeと同じで、独自データを追加しているgitignore.ioの方が多いということになります。
データの所在
giboはインストールすると、ホームディレクトリに以下のフォルダを作成して、.gitignoreのテンプレートを保存します。
~/.gitignore-boilerplates
このフォルダの中身は github/gitignore をcloneしたものになっています。
よって、 github/gitignore が更新された場合、これをpullすることで最新状態にアップデートすることができそうです。
実際には、ちゃんとアップデート用のオプションが用意されているので、これを実行することで最新の状態になります。
$ gibo -u
強いて言うなら、ホームディレクトリにフォルダを作られたりするのが気になる人には向かないかもです。(自分は若干気になる)
gitignore.io/joeの場合
gitignore.io/joeも github/gitignore を参照していますが、gitignore.ioの場合はAPIサーバーに、joeの場合はツールに同梱する形で配布しているため、基本的にはツール自体がアップデートされないと、新しいテンプレートを取得できない構造にはなっています。
独自.gitignoreテンプレート
わかりやすいところにテンプレートがあるもう一つの利点としては、独自の.gitignoreを設置することができます。
例えば、 ~/.gitignore-boilerplates
内に hoge.gitignore
を作成しておくと、他の.gitignoreと同様、以下のコマンドで使うことができます。
$ gibo hoge
頻繁に使う.gitignoreがある場合は、自分で追加して使うというのもありかもしれません。
実行速度
joe同様、テンプレートをローカルにインストールして使うタイプなので、実行速度は早いです。
その他
どのツールもそうですが、サポートしている言語が多いこともあり、指定するときにスペルを忘れてしまったり、打ち損じたりすることがあると思います。
その点、giboはbashとzsh用にタブ補完をするための設定ファイルを用意してくれているので、その点は使いやすそうです。
Tab completion in bash and zsh
1点注意するとすれば、テンプレートファイルは基本的に先頭が大文字になっているのですが、補完は大文字小文字を区別しているので、最初の文字は大文字にして入力する必要があります。
$ gibo app[tab] # 候補なし $ gibo App[tab] AppEngine AppceleratorTitanium
まとめ
ちょっと項目を見直しつつ、前回と同じような感じでまとめてみます。
gitignore.io | joe | gibo | 補足 | |
---|---|---|---|---|
対応数 (github/gitignoreと比較して) |
+αあり | 同じ | 同じ | gitignore.ioにはオリジナル分が追加されている |
データの所在 | オンライン | ローカル | ローカル | giはネットに繋がっていないと使えない |
実行速度 | 遅い | 早い | 早い | joeとgiboはローカルにデータを持っているので早い |
更新性 | △ | × | ○ | gitignore.ioとjoeは基本的にツール側のアップデート待ち giboはテンプレートのリポジトリを直接更新できる |
カスタマイズ性 | × | × | ○ | gitignore.ioとjoeはツール依存 giboはローカルのリポジトリに追加することでテンプレートを増やすことも可能 |
実体 | シェル関数 | Pythonスクリプト | シェルスクリプト |
ちなみに、joeがpythonベースという点はありますが、動作環境としては3ツールいずれもMac/Windows/Linuxをサポートしています。
joeとgiboがインストールタイプということで似ていますが、
- テンプレートの大元になっている github/gitignore の更新に追従しやすい
- 補完のサポートがある
- Pythonを導入しなくても使える
という感じで、導入のしやすさや使いやすさの点でgiboの方が良い気がしてきましたので、joeから乗り換えてしまおうかと思っています。