Sublime Text3導入メモで設定ファイルをDropboxで同期する方法を書いたのだけれど、意図しないタイミングで設定が同期されてコンフリクトが頻繁に発生するので、設定をGitで管理することにした。
設定ファイルにはアクセスキーなども含まれており、変更履歴を外部に公開するのはよくない。そこで今回はDropbox上にリモートリポジトリを作成する。同期をGitとDropboxの2段階にすることで「過去の状態に戻しやすくなる」「任意のタイミングで同期できる」というメリットがある。
1台目の手順
まずはDropbox上にリモートリポジトリを作成する。
$ mkdir -p ~/Dropbox/Git && cd ~/Dropbox/Git
$ git init —bare sublime.git
次にSublimeの設定フォルダへ移動してgit initを実行。ignoreするファイルはSyncing - Package Controlを参考にした。Dropboxのシンボリックリンクにしている場合は元に戻してから行うこと。
$ cd ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/User
$ subl .gitignore # 下記のファイルを.gitignoreに書く
Package\ Control.last-run
Package\ Control.ca-list
Package\ Control.ca-bundle
Package\ Control.system-ca-bundle
Package\ Control.cache/
Package\ Control.ca-certs/
$ git init
$ git remote add origin ~/Dropbox/Git/sublime.git
$ git add .
$ git commit -m "init"
$ git push origin master
2台目の手順
既存の設定フォルダを削除してからgit clone.
$ cd ~/Library/Application\ Support/Sublime\ Text\ 3/Packages
$ rm -rf User
$ git clone ~/Dropbox/Git/sublime.git User
以後は変更の度にcommitして、push/pullで同期すれば良い。設定ファイルのありかを毎回タイプするのは面倒なので、自分は下記のエイリアスを作成している。.zshrcや.bashrcに書いておけばcd_sublime_userで楽に移動できる。
alias cd_sublime_user="cd ~/Library/Application\ Support/Sublime\ Text\ 3/Packages/User"