最初の同期を設定する
同期ディレクトリを初期化し、最初のファイルをトラッキングして push し、git でリポジトリを公開します。
何もない状態から、公開された同期リポジトリまで進めます。最後まで進めると、トラッキング中の設定ファイルが git リポジトリにミラーされ、別のマシンから clone できます。dotweave CLI がインストールされていて、PATH に git があることが前提です。
1. 同期ディレクトリを初期化する
dotweave init
· Initializing sync directory...
✔ Sync directory initialized
git: initialized new repository
age: generated a new local identity
0 entries · 1 recipients
dotweave ホームディレクトリの下に git リポジトリを作り、シークレットの暗号化に使う age identity を keys.txt に生成します。
2. 最初のファイルをトラッキングする
トラッキングは、パスを manifest.jsonc に登録する操作です。この時点ではまだ何もコピーされません。
dotweave track ~/.gitconfig
dotweave track ~/.config/nvim
✔ Started tracking .gitconfig
kind file
path /home/you/.gitconfig
repo .gitconfig
mode normal
認証情報を含むファイルには --mode secret を付けてください。リポジトリに届く前に内容が暗号化されます。
dotweave track ~/.ssh/config --mode secret --permission 0600
3. 同期ディレクトリへ push する
まず何が起きるかを確認し、そのうえで適用します。
dotweave status
dotweave push
· Pushing changes...
✔ Push complete
plain: 2
encrypted: 1
symlinks: 0
dirs: 1
0 stale artifacts removed
4. git で公開する
push はファイルを書いただけです。コミットと公開は、自分で実行する別の手順です。
dotweave cd
git add -A && git commit -m "Initial sync"
git remote add origin <your-repo-url>
git push -u origin main
exit
dotweave cd は同期ディレクトリをルートとする子シェルを開きます。exit を入力すると元の場所に戻ります。
いま dotweave ホームディレクトリの keys.txt を安全な場所にバックアップしてください。このファイルはコミットも同期もされません。これがないと、別のマシンで暗号化されたファイルを読めません。
結果を確認する
dotweave status をもう一度実行します。両方向とも変更がない状態になります。
· Checking sync status...
~ Sync status — 3 entries, 1 recipients, profile: default
Push changes (repository)
No push changes
Pull changes (local)
No pull changes
status にまだ push の変更が出る場合は、dotweave push を実行し直して報告内容を読んでください。トラッキング対象のパスが見つからない場合は、dotweave doctor がどのパスかを示します。
この設定を別の場所で復元するには2 台目のデバイスを設定するへ、push が何を書き込んだかを見るにはディレクトリとリポジトリの構造を参照してください。