nixと.configをどのように管理するか考える
基本パッケージ化できるものはnixでおく
.configはユーザディレクトリへの作用になるため基本nixでは管理できない
公開できるものはしたいがどうしても非公開にせざるものもある
非公開にしたいもの
個人情報 copilotで学習される可能性があるため、公開にすべきではない
ホスト名やユーザ名 固有名なのでcopilotに学習されるべきではない
マシンによって違う設定情報もある
OSやハードの違い
依存関係を考える
マシン固有情報(非公開) -> 個人情報(非公開/マシン間共有) -> 公開パッケージやコード
非公開情報を一つのリポジトリにしマシン名やユーザ名をキーにする方法がありそう
subtree マージやsubmoduleを使うことで非公開情報に公開情報を取り込む手がありそう
subtreeマージはコミットに一手間かかる場合があるが更新側が取得するリポジトリを一つにできる利点がある。
案
非公開と公開にわけて、非公開リポジトリで公開リポジトリをサブツリーマージする
非公開と公開にわけて別々に管理する。分ける場合は、stableを使う方法とunstableを使う手段が必要が欲しくなる
マシンごとに非公開リポジトリをつくり、非公開の共有リポジトリと公開リポジトリを用意する。分散リポジトリのようにできて遊べる。
あとあと変えやすいのはどれか。
おもしろそうという理由でマシンごとの非公開リポジトリをやってみる。