プロファイル
デバイスや環境ごとに同期対象を選択的に管理する方法。
すべての設定ファイルがすべてのマシンに必要なわけではありません。仕事用のノートPCには仕事のクレデンシャルが、個人のデスクトップにはGPU設定が、LinuxサーバーにはmacOSの設定は不要です。プロファイルを使えば、トラッキングエントリを名前付きグループに分類し、各マシンが必要なものだけを同期できます — すべて1つのリポジトリから。
プロファイルの仕組み
Section titled “プロファイルの仕組み”ファイルをトラッキングする際に、--profilesを使って1つまたは複数のプロファイルに割り当てることができます。プロファイルが指定されていないエントリはdefaultプロファイルに入り、すべてのマシンで同期されます。
# defaultプロファイル — すべてのマシンで同期dotweave track ~/.gitconfigdotweave track ~/.zshrc
# "work"プロファイルがアクティブなときだけ同期dotweave track ~/.config/work-vpn --profiles work
# "personal"プロファイルがアクティブなときだけ同期dotweave track ~/.config/personal-tool --profiles personaldefaultプロファイルと名前付きプロファイル
Section titled “defaultプロファイルと名前付きプロファイル”- defaultプロファイル:
--profilesなしのエントリはdefault/ディレクトリに入り、すべてのマシンで同期されます。 - 名前付きプロファイル:
--profiles workを指定したエントリはwork/に入り、そのプロファイルがアクティブなときだけ同期されます。
1つのエントリに複数のプロファイルを割り当てることもできます — いずれかがアクティブであれば同期されます:
dotweave track ~/.config/shared-tool --profiles work,personalアクティブプロファイルの設定
Section titled “アクティブプロファイルの設定”現在のマシンで使用するプロファイルをdotweaveに指示します:
dotweave profile use workこれ以降、このマシンのdotweave pushとdotweave pullにはdefaultエントリに加えてworkプロファイルに割り当てられたエントリが含まれます。
プロファイルの一覧表示
Section titled “プロファイルの一覧表示”sync設定に存在するすべてのプロファイルを確認できます:
dotweave profile listmanifest.jsoncに登場するすべてのプロファイル名と、現在アクティブなプロファイルが表示されます。
ユースケース:仕事 vs. 個人
Section titled “ユースケース:仕事 vs. 個人”# 共通設定 — プロファイルなし、すべてのマシンで同期dotweave track ~/.gitconfigdotweave track ~/.zshrc
# 仕事専用ファイルdotweave track ~/.config/work-vpn --profiles workdotweave track ~/.ssh/work-key --mode secret --profiles work
# 個人専用ファイルdotweave track ~/.config/personal-app --profiles personal仕事用ノートPCでworkプロファイルを設定してpush:
dotweave profile use workdotweave push # default + workエントリをpush個人マシンでpersonalプロファイルを設定してpull:
dotweave profile use personaldotweave pull # default + personalエントリのみpull仕事のマシンには個人の設定が入らず、個人のマシンには仕事のクレデンシャルが入りません。きれいに分離しつつ、リポジトリは1つです。
プロファイルの活用例
Section titled “プロファイルの活用例”プロファイルの使い方は仕事と個人の分離に限りません。他にもこんなパターンがあります:
- OS別プロファイル:
--profiles linuxや--profiles macosでOS固有の設定を管理 - 共通ベース+マシン固有: 共通設定はプロファイルなしでトラッキングし、マシン固有のエントリは
--profiles desktopや--profiles serverで管理
syncディレクトリでの見え方
Section titled “syncディレクトリでの見え方”sync-directory/├── manifest.jsonc├── default/ ← defaultプロファイルのエントリ│ ├── .gitconfig│ └── .zshrc├── work/ ← workプロファイルのエントリ│ ├── .config/│ │ └── work-vpn/│ └── .ssh/│ └── work-key.age└── personal/ ← personalプロファイルのエントリ └── .config/ └── personal-app/