読者です 読者をやめる 読者になる 読者になる

詩と創作・思索のひろば

ドキドキギュンギュンダイアリーです!!!

ghq 最近の変更とこれから

ghq

ども、ghq の方から来ました。各方面から PR いただいたおかげであれから機能がぐんぐん増えました。現在の最新バージョン 0.4 とリリース当初のバージョンを較べると:

  • GitHub (Enterprise), Google Code だけでなく、Git もしくは Mercurial に対応しているリポジトリであれば clone できるようになりました。
  • GitHub からの clone 時、ghq get -pssh プロトコルを使用します。
  • ghq get -shallow で、shallow clone(履歴を辿らない clone)を行います。Git のみ。
  • ghq get git@github.com… みたいなこともできるようになりました。
  • ghq import starred 時に GitHubAPI トークンを指定できるようになりました。
  • Homebrew tap ができました: https://github.com/motemen/homebrew-ghq
  • ghq.<url>.vcs 設定値で、リモートの VCS を明示的に指定できるようになりました。こんな感じです:
[ghq "https://ghe.example.com/"]
vcs = git

……などなど。ここで PR くださった方の名前はいちいち挙げませんが、ありがとうございます。おかげさまで大変たのしく過ごしております。

Tips

git-config には url.<url>.insteadOf, url.<url>.pushInsteadOf というキーがあり、これらを設定することで、それぞれ clone (fetch) や push 時に与えられた URL を書き換えてアクセスするよう Git に指示できます。

[url "git@github.com:motemen"]
pushInsteadOf = https://github.com/motemen
[url "git@ghe.example.com:"]
insteadOf = https://ghe.example.com/

こういう設定にしていると、git clone https://github.com/motemen/pusheen-explorer で clone したリポジトリからでもそのまま push できるようになりますし、git clone https://ghe.example.com/some/repo したときには ssh プロトコルを使って clone するようになります。ghq に限りませんが、便利な設定です。

これから

今後入れたい大きな変更としては、ghq import を ghq 本体の外に出すというのと(ghq import pocket は個人的にはスゲー便利だったんだけどたぶん誰も使ってない、標準入力から URL のリストを取って ghq get できるようにすればいいかな?)、検討中ですが設定ファイルを gitconfig から分離するってのがあります。考え中のところなんで、ご意見ご要望ご PR などございましたら GitHub のほうまでよろしくお願いいたします。