$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

emacsの設定ファイルをバージョン管理してみた

 二つ以上のPCでemacsを利用していると、設定ファイルの共有が面倒になってきたので、gitでバージョン管理してみました。

構成

 自分の場合は、さくらインターネットを共用リポジトリにしました。また、ローカルの方では、ホームディレクトリにemacs/ディレクトリをローカルリポジトリとして作成し、その中に.emacsファイルと.emacs.d/ディレクトリ(カスタマイズ用のelispファイル等はここに入れています)を設置しました。
 さくらインターネットでの共用リポジトリの作成はhttp://d.hatena.ne.jp/shiba1029196473/20100324/1269406164も参照してください。

サーバ側に共用リポジトリを作成

すぐできます。

[server]$ mkdir -p repository/emacs.git
[server]$ cd repository/emacs.git
[server]$ git --bare init --share

ローカル側にローカルリポジトリを作成

 まず、emacsディレクトリを作り、ローカルリポジトリを作成します。

[local]$ mkdir emacs
[local]$ mkdir emacs/
[local]$ cd emacs
[local]$ git init

 次に現在の設定をemacsディレクトリに移し、最初のコミットを行います。

[local]$ mv .emacs emacs/
[local]$ mv .emacs.d/ emacs/
[local]$ git add .
[local]$ git commit -m "emacs設定のバージョン管理開始"

 リモートリポジトリ設定を行い、最初のpushを行います。

[local]$ git remote add origin ssh://username@username.sakura.ne.jp/home/username/repository/emacs.git
[local]$ git config branch.master.remote origin
[local]$ git config branch.master.merge refs/heads/master
[local]$ git push ssh://username@username.sakura.ne.jp/home/username/repository/emacs.git master

homeディレクトリにシンボリックリンク

 実際emacsはhomeディレクトリから設定を読み込むので、シンボリックリンクを張っておきます。

[local]$ ln -s ~/emacs/.emacs ~/.emacs
[local]$ ln -s ~/emacs/.emacs.d ~/.emacs.d

 これでローカルリポジトリと共用リポジトリの設定が終わりました。違うPCからでも共用リポジトリをcloneしてくることで、設定を共有できます。またpull,pushを使うことで、どのPCの設定も最新にすることができます。実際これよりもっと簡単な方法があるかもしれません。もしあれば、コメントにて教えてもらえるとありがたいです。