ぽっかめろん

ゲームとかプログラミングとか

dotfiles 管理手法の妄想

例によってdotfilesをgithub上で管理していますが、どうもしっくりこないので現在考えている妄想を備忘録的に書いておきます。

現在の不満点

dotfilesの編集が面倒

できるだけホームディレクトリにファイルを展開したくないけど、いちいち vim dotfiles/vim/rc/encoding.vim みたいに書くのが面倒。

これは vim プラグインを書いて解決するべき問題かもしれないです。

そもそもの話として、設定ファイルを分割すると編集は面倒なので、分割をやめるかもっと厳格に分割方法を決める必要がありそうに思えます。

branch を用いた変更がお辛い

例えば最近 vim が true color 対応しましたが、1週間試してみようと vim/true-color みたいなブランチを切って vimrc を書き換えたとします。その間、tmux のアップデートにより何らかの機能が追加され、そちらも試してみようと tmux/new-feat ブランチを切ろうとします。

このブランチはどこから生やすべきでしょうか。あとでやっぱり true color はやめようとなった場合、tmux の新規機能ブランチはどう扱うのか……みたいな話になって面倒そうです。

vim/true-colorから生やした場合、masterへのmerge前にrevertするとか、cherry-pickするとか、歴史を改変するとかはどれも辛い手法に見えます。

masterから生やすとそもそも2つの変更が共存できません。

誰か同一リポジトリでできるいい感じの手法を知っていたら教えてください。

妄想している解決方法

後者の解決にしかならないですが、手法としては homebrew とか vim-plug 系みたいなのと似た手法を考えています。

例えばpopkirby-github/vimのようなリポジトリを作って、それをclone、所定のインストールスクリプトの実行、みたいなことをするツールを作成することを考えています。

変更時はそれぞれのリポジトリでブランチを切ればいいという考えです。

前者は考え中ですが、vim 上で :dote的なコマンドを作ることを考えています。