定形の.gitignoreを出力してくれるツールを比較してみた
いつも新しいサービスやツールを紹介してくれるMOONGIFTさんで、joeという.gitignoreの定形ツールが紹介されていました。
joe·多くのプログラミング言語、フレームワークに対応した.gitignoreを出力 MOONGIFT
それまで gitignore.io を コマンドラインで使って いたのですが、若干レスポンスが悪いところが気になっていたので、どちらが良さそうか・乗り換えた方が良いのか、比較してみることにしました。
比較してみた
2015.02.11時点のものです。
使い方
できることは、ほぼ同じです。
対応している.gitignoreの一覧
$ gi list # gitignore.io $ joe list # joe
.gitignoreを出力
# Titanium用の.gitignoreを出力する場合 $ gi appceleratortitanium # gitignore.io $ joe appceleratortitanium # joe
複数の場合の指定は、少し異なります。
$ gi appceleratortitanium,node # gitignore.ioはカンマ区切り $ joe appceleratortitanium node # joeはスペース区切り
それにしてもTitanium用の引数、長過ぎですね…
詳しくはそれぞれのドキュメントを参照。
対応.gitignore数
どちらも各種.gitignoreの元データとして、GitHubが公開している github/gitignore を参照しているようです。
ただgitignore.ioの方は GitHubのものに独自の分も追加している ため、対応している言語の数としてはgitignore.ioの方が多いです。
対応している.gitignoreの一覧から差分をとってみたところ、gitignore.ioのみ対応しているものには以下のようなものがありました。
appcode, appengine, basercms, bluej, bower, carthage, codeio, crashlytics, django, dotsettings, elasticbeanstalk, freepascal, greenfoot, grunt, intellij, jabref, joe, jspm, justcode, kirby2, komodoedit, latex, liberosoc, librarian-chef, m2e, nette, openfoam, ph7cms, phpstorm, premake-gmake, puppet-librarian, pycharm, rubymine, senchatouch, silverstripe, stellar, synopsysvcs, tarmainstallmate, tower, wakanda, webstorm, xamarinstudio
データの所在
gitignore.ioの場合、 Webサイト からの生成できることもあり、元となるデータはオンラインにあるようです。 そのため、gitignore.ioはインターネットに繋がっていないと何も出力されないという弱点はあります。
対して、joeの場合はコマンドに同梱されているので、オフラインでも使うことができる点はメリットです。
そのかわり、新しい.gitignoreが追加された場合、joeの方はコマンドのアップデートを待たなければいけませんが、gitignore.ioはサイト側のデータに反映されれば使えるようになります。
独自リポジトリを持っている点も考慮すると、こうした新しい言語のサポートはgitignore.ioの方が早そうな気がします。
応答速度
先の通り、gitignore.ioは通信が必要なせいか、コマンドを打ってから少し間があって、結果が表示されます。
対応している言語やプラットフォームの一覧を表示する gi list
だけでも時間がかかります。
対して、joeの場合はローカルのデータを表示しているだけなので一瞬で完了します。
使い方として、必要な言語の.gitignoreがあるかを確認したり、内容を確認したいだけの場合があるので、その場合は特に応答速度は重要です。
まとめ
まとめるとこんな感じでしょうか。
gitignore.io | joe | 補足 | |
---|---|---|---|
対応数 | 多い | 少ない | gitignore.ioには独自分が追加されている |
データの所在 | オンライン | ローカル | giはネットに繋がっていないと使えない |
応答速度 | 遅い | 早い | joeはローカルにデータを持っているので早い |
よって、定番のものはjoeを使いつつ、対応していない言語のものが欲しい時はgitignore.ioを使うという感じで補完するのが良さそうです。
注意点
joeコマンドはHomebrewでインストールできるのですが、 brew install joe
ではインストールできません。
これもMOONGIFTさんの昔の記事で発見しましたが、 軽量でWordstarに似た操作性をもつテキストエディタ·Joe MOONGIFT がインストールされてしまうようです。
Homebrewでインストールする場合は、 brew tap
でリポジトリを追加後に、 brew install gitignore
となります。
$ brew tap karan/karan $ brew install gitignore
でもコマンドは joe
です。
ややこしいですね。
Pythonを使っている方であればpipでインストールでき、こちらはjoeで通じるようでした。
$ pip install joe