最初の同期を設定する

同期ディレクトリを初期化し、最初のファイルをトラッキングして push し、git でリポジトリを公開します。

何もない状態から、公開された同期リポジトリまで進めます。最後まで進めると、トラッキング中の設定ファイルが git リポジトリにミラーされ、別のマシンから clone できます。dotweave CLI がインストールされていて、PATHgit があることが前提です。

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 が何を書き込んだかを見るにはディレクトリとリポジトリの構造を参照してください。