数年前までは、Dropgoxで複数のPCと同期設定を行っておりましたが、Dropbox改悪でデバイス数に制限がかかったので、今ではResilio Syncを用いてPC間の同期設定を行っています。
最近になって、Reactなどのnode系やGitを頻繁に使うことが多くなり、ResilioSyncで同期フォルダ内にこれらの作業場所を置いておくと、大量のファイルが同期されます。
特に、node系でビルドの際にnode_modules内や、git管理フォルダ内は同期させたくないので、今更感はありますが、Resilio Syncに除外設定が存在するのか疑問が湧きました。
調べてみたところ、GUIでの設定画面では除外設定は出来ないようですが、CUIで可能なようでした。
Ignoring files in Sync (Ignore List) – Sync
Resilio Syncの除外設定方法
すでに同期設定しているフォルダのトップルツリーに.syncフォルダが作成されており、この中のIgnoreListと言うファイルを編集すれば良いようです。
ここでは、同期フォルダ名がSyncで、node_modulesと.gitフォルダを除外設定します。
(デフォルトで設定されている項目に追記します)
Mac/Linuxでの記述方法となります。
$ cat << EOF >> Sync/.sync/IgnoreList
node_modules
.git
EOF
保存後は、ResilioSyncが起動していれば再起動なしに反映されるようです。
この設定では、Syncフォルダ内の全てのnode_moduleと.gitフォルダを無視する設定になります。
一文字指定の?
とワイルドカード*
のみ使用できるようで、正規表現は使えないようです。
これで、同期フォルダ内でnodeのビルドで生成されるnode_modulesは同期されなくなり、Gitリポジトリを置いてもワークツリーのみ同期されるようになりました。
(おそらく、自分だけのリポジトリであれば.gitフォルダを無視する必要もないような気もします…)
他にも不要な同期ファイルやフォルダがあれば追記していきたいと思います。