dotfiles をちゃんと管理する話
dotfiles って?
dotfiles
というのは先頭にドット(ピリオド、これ -> .
)が付いたファイルのことで、Linux や Mac などでエディタやシェルの設定ファイルがこの形式になっている。dotfiles
には自分が快適に作業するための設定がいろいろ書いてあるので、無くしたくないし、PC を移行したときに簡単に復元したいから、Github などで管理している人が多いと思う。このエントリはその管理方法の話。
これまで
- とりあえず Github で管理していた
- 自分の
dotfiles
がごちゃごちゃしている印象があってもやもやしていた - これまでどこかで見聞きした設定を「とりあえず入れてみる」というのを繰り返してきた
- その結果、自分が今どういう設定をしているのかよくわかっていなかった
- しかも、あるツールの導入や設定を、なぜ、どうやったのか思い出せない
- さらにその結果として、新しいツールや設定を取り入れるのが億劫になっていた
- 自分の環境を快適にするためのモチベーションが低下していた
これはよくない。
どう進めたか
やりたいことを箇条書き
とりあえず、何をしたいか考えて箇条書きにした。思いついたらとりあえず追加していく。 何をどの順番でやるかはあとで、作業する都度考えることにした。
やることリスト · Issue #4 · takatoshiono/dotfiles · GitHub
Github の Pull Request
プルリクベースで進めることにした。 つまり、以下の作業を繰り返す。
- やりたいことから1つ選ぶ
- master ブランチから作業用のブランチを切ってプッシュする
- Github 上でプルリクエストを作る
- プルリクエストには主に以下のことを書いておく
- なにをするか(これは必須)
- それをやるとどうなるか
- それをやるために何をすればいいか
- 実際に作業する
- 作業内容は逐一コミットしておく
- やりたいことができて、このくらいでいいか、と思ったら master ブランチにマージする
こうすると何がいいか?
- 何か作業しているときに「あっ、これもやっておきたい」ということがある
- でも「それは今回のプルリクでやることじゃないし」という理由をつけて、スルーできる
- 自分が今やりたいことに集中できる
- 作業がカオスにならない
あれも、これもといって一度にいろんなことをやり出すと、だんだん作業内容がごちゃごちゃしてきてカオスになっていくことがあるけど、それを抑制できる。今やりたいことだけをシンプルにやることができる。そのためにこのような自分ルールを作った。
あと、後で見返したときになにを、なぜ、どうやったか、プルリクをみればわかるというメリットもある。
隙間時間にやる
まとまった時間はなかなか取れないので、隙間時間にちょっとずつやっていた。 例えばこんな感じ。
- 朝の通勤電車(20分)
- 会社の始業前(10分)
- 昼休み(20〜30分)
- 寝る前の一人の時間(30分)
なにをやったか
具体的にこれまでなにをやったか振り返ってみる。
- dotfiles をインストール可能な形式にする by takatoshiono · Pull Request #1 · takatoshiono/dotfiles · GitHub
- vim/bundle について方法を改善する by takatoshiono · Pull Request #2 · takatoshiono/dotfiles · GitHub
- global gitignore ファイルを追加する by takatoshiono · Pull Request #3 · takatoshiono/dotfiles · GitHub
- 管理していなかった。適当にやっていたので、こういう管理漏れも起きていた。
- Install unite by takatoshiono · Pull Request #5 · takatoshiono/dotfiles · GitHub
- Unite.vim を入れた。名前だけ聞いたことあったけど上に書いたような理由で使う気になれなかった。ちゃんと管理するようになったので簡単に使ってみることができるようになった。
- vim 以下のディレクトリを整理する by takatoshiono · Pull Request #6 · takatoshiono/dotfiles · GitHub
- 過去の積み重ねでよくわからなくなっていた古いファイルたちを一掃した。
- ghq + peco を使ってディレクトリ移動できるようにする by takatoshiono · Pull Request #7 · takatoshiono/dotfiles · GitHub
- これも便利そうだと思っていたけど、上に書いたような理由でやっていなかったやつ。
- neocomplcache の設定を見直そう by takatoshiono · Pull Request #8 · takatoshiono/dotfiles · GitHub
- これは、これまで適当に管理していた設定をちゃんとしようというやつ。
- lightline.vim を導入する by takatoshiono · Pull Request #10 · takatoshiono/dotfiles · GitHub
- Vim のステータスラインがかっこよくなるやつ
- Use zsh by takatoshiono · Pull Request #12 · takatoshiono/dotfiles · GitHub
逆に、やってみたけど採用しなかったことも書いてみる。
- [WIP] brewdler を使って homebrew を管理する by takatoshiono · Pull Request #9 · takatoshiono/dotfiles · GitHub
- homebrew でインストールするものを Brewfile というファイルに書いておくと、簡単にまとめて入れられるという仕組みがあるけど、homebrew 本体から deprecated になったらしい。元は brewdler というソフトウェアの機能なので、それを使おうと思ったけど、なんか微妙そうなのでやめた。
- [WIP] statusline に git branch を表示する by takatoshiono · Pull Request #11 · takatoshiono/dotfiles · GitHub
- 便利かと思ったけど、邪魔そうだったのでやめた。
まとめ
このやり方はまだ始めたばかりだけど、これまでいい感じでできているのでまとめてみた。以下のようなことがいいなあと思っている。
我々の仕事はソフトウェアを書いてユーザーに価値を提供することなので、自分の環境ばかり整えていてもしょうがないんだけど、自分が楽しく快適に作業できるようにするのも大事なので、本分を忘れない程度に続けていこうと思う。
Vimテクニックバイブル ?作業効率をカイゼンする150の技
- 作者: Vimサポーターズ
- 出版社/メーカー: 技術評論社
- 発売日: 2011/09/23
- メディア: 単行本(ソフトカバー)
- 購入: 19人 クリック: 661回
- この商品を含むブログ (39件) を見る
- 作者: 広瀬雄二,A5
- 出版社/メーカー: 技術評論社
- 発売日: 2009/06/17
- メディア: 単行本(ソフトカバー)
- 購入: 11人 クリック: 126回
- この商品を含むブログ (35件) を見る
GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)
- 作者: 大塚弘記
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (11件) を見る