ghq を使ってローカルリポジトリのディレクトリ構成を Go 準拠に移行してみた

ローカルリポジトリを $HOME/Projects 直下にすべて置いていたけど、 それをやめて、ghq を使って Go の流儀で管理することにした。

ghq は go だけでなく、git と mercurial も必要としているので、 インストールしていなければ homebrew でインストールしておく。

$ brew install git
$ brew install mercurial
$ brew install go

$HOME/src 下にリポジトリをすべて置きたいので、.zshrc で GOPATH を指定する。

export GOPATH=$HOME

ghq をインストール。先ほど設定した $HOME/src 下にインストールされる。

$ go get github.com/motemen/ghq

ghq のバイナリは $HOME/bin にあるので、呼び出せるように .zshrc で PATH に追加する。

export PATH="$HOME/bin:$PATH"

ghq でダウンロードするリポジトリを $HOME/src 下に置くために、git の設定が必要。

$ git config --global ghq.root ~/src

これで準備完了。試しに設定ファイルを管理しているリポジトリをダウンロードしてみる。

$ ghq get github.com/tnakamura/dotfiles

ダウンロードしているリポジトリの一覧を見てみる。

$ ghq list
code.google.com/p/goauth2
github.com/codegangsta/cli
github.com/daviddengcn/go-colortext
github.com/google/go-github
github.com/google/go-querystring
github.com/motemen/ghq
github.com/motemen/go-colorine
github.com/tnakamura/dotfiles
github.com/tnakamura/tnakamura.github.io

go get でダウンロードしたやつも上がってきている。

リポジトリに移動したい場合は look コマンドを使う。 試しに、先ほどダウンロードした dotfiles に移動。

$ ghq look dotfiles

これでローカルのリポジトリを go の流儀で管理できるようになった。 ただ、リポジトリの一覧から目的のものを探したり、リポジトリを移動するのが、まだ面倒。 そこらへんを解決するために、次は peco をインストールしてみようと思う。