ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghq,�gem-src�
and�more
esm�LT
ESM�神⽥オフィス
2016-10-04�(Fri)
伊藤�浩⼀�(@koic)
(株)永和システムマネジメント
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
わたし
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
�
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
開発環境シリーズ第2弾
『開発時の探し物を楽にする習
慣作り』@ninirbの続編
✓
http://www.slideshare.net/koic/extreme-laziness
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
今⽇の話
iTerm2�内での⽣活✓
私の�(Rubyの)�開発環境
https://github.com/koic/dotfiles✓
✓
旅の途中✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
いまの装備
Emacs
複数Emacsを起動する⼈には
emacsclientがオススメ
✓
✓
zsh
やっぱり補完が便利✓
✓
screen
tmuxに移るモチベが出ないマン✓
✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
話の核
ghqとamatsuda/gem-srcは
開発環境として組み込んでお
くべき
[「DRECOM様と合同勉強会を開催しました」より
引用]
リポジトリのマネジメントの話✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
2年前のあんちぽさんによる
まとめが秀逸
http://blog.kentarok.org/
entry/2014/06/03/135300
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ここ数ヶ⽉で
数⼈に話した
ので改めて取
り挙てみます
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghq
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
不確かな検索
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
No!
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
より確かな検索
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
About�ghq
リモートリポジトリからclone
したローカルリポジトリをいい
感じに管理する
✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghqのインストール(1)
Go⾔語で作られており、以下のコ
マンドでインストールできる。
�������������������������������
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghqのインストール(2)
~/.gitconfigにghqのrootディレク
トリを指定する。
�����
����������������
任意の指定が可能ですが、以降~/srcとして話を進めます。
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghq�getによるclone
git�cloneではなくghq�getを
使う
✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ソースコードの管理
git�cloneではなくghq�getを
使う(大事なことなので)
✓
ghq�look,�ghq�listなどghqコ
マンドを通してリポジトリ確認
できる
✓
Go⾔語のディレクトリレイア
ウトで管理される
✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghqのレイアウト
github.com/user/repoという
形式で保存される(GHEにも対応
)
✓
originのuser,�URLが明確✓
�����
��������������
������������
�������������������������
���������������
����������������������������������������
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghq以前とレイアウト違うよ
ghq以前は~/src直下にgit�
cloneしていた
✓
さすがにリポジトリ量が多いの
でghqのレイアウトに移⾏する
スクリプトを書いた
✓
発表の最後にプレゼント
今⽉のgem✓
✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
gem-
src
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
About�gem-src
gem�installするライブラリを
git�cloneしてくれる
✓
内部的にはGem.post̲installに
引っ掛けている
✓
ghqの指定があればgit�clone
でなくghq�getする�←本題
✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
gem-srcのインストール(1)
rbenvを使っているのであれば
gemでのインストールでなく
rbenvプラギンとしてインスコ。
����������������������������������������������������������������������������
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
gem-srcのインストール(2)
�������������
������������������������������������������
ghq�get先のディレクトリ作成✓
.gemrcにgemsrc̲clone̲rootで
なくgemsrc̲use̲ghqを指定す
ることでghqと連動
環境変数GEMSRC̲USE̲GHQでも可✓
✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
gem-src導⼊gem�install
ローカルになければcloneしたのをお分かり頂けるでしょうか
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghqとgem-src
動かしているRailsアプリなん
かの依存gemリポジトリが
ghq�get済みの状態になってる
✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ここまで
が基本
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
Advanced�story
peco✓
enhancd✓
hub✓
Emacs✓
プレゼント発表�(今⽉のgem)✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
pecoでフィルタリング
ghqによってディレクトリ階層
は深くなる
✓
gem-srcによってローカルリポ
ジトリ数はそれなりに多くなる
✓
������������������
������
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghq�+�peco
ghq管理下のローカルリポジト
リにフィルタリング移動する
✓
����������������������������������������
ghqlistという名前は⻑いのでいい感じにしたい
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghq�+�peco
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
enhancdのオプション
enhancdを使っているのであれば�
-gオプションで類似の事が可能。
�����
enhancdはライフチェンジツー
ルでオススメ
✓
https://github.com/b4b4r07/enhancd
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghq�+�peco�+�hub
ghq管理下のリモートリポジト
リのGitHubをブラウザ表⽰する
✓
ghqとpecoに加えてhubを⾜す✓
����������������������������������������������������������������
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
Emacs�+�ghq
El-Getでのインストール。
�������������������������������
M-x�helm-ghq�でいつものhelmを
使ってリポジトリ移動。
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghqへの移⾏
ghqのディレクトリレイアウトへ
の移⾏がめんどくさいよという⼈
たちのためにghq̲transferとい
うgemを用意しておいた。
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
プレゼント発表(今⽉のgem)
ghq̲transfer
git�clone時代のリポジトリをghqレ
イアウトに移⾏するコマンドを提供
✓
✓
視聴者に限らずMITライセンス
でプレゼント
✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
インストール
gemなんかでインストールでき
る。
������������������������
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
2つのモード
ghq̲transfer�--dry-run�で�
dry�run�実⾏
✓
ghq̲transfer�--valth�で本実
⾏
✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
利用上の注意
dry�runで確認してからvalthする
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghq�get以前のgit�clone
��������������������������������������������������������������������������
���������������������������������������������
�����
�������������������������������
��������������������������������������������������������������������������������
~/src直下にabetterteamがある✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
ghq̲transferでghq構成へ
�������������������������
���������������
���������������������������������������������������������������������������
�����������������������
���������������
���������������������������������������������������������������������������
������������������������������������������������
��������������������������������������������������������������������������������
~/src/github.com/user/repo
というghq構成に移⾏できる
✓
GHEにも対応してるつもり✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
まとめ
ghqとgem-srcについて話した✓
bundle�installしたgemについ
て統⼀した管理が⼿元でできる
✓
使っている依存gemに何かあ
れば潜る、壊れていたら(なん
らかの形で)直すという流れの
準備ができている。べんり。
✓
ghq,�gem-src�and�more Powered�by�Rabbit�2.1.9
Happy�
Repository�
Management

ghq gem-src and more