【模索】gitで設定ファイルとかをうまく管理できないものか

  • /usr/oreore/etcの下のファイルをgitで管理したい
  • マシンは複数台ある

bareなセントラルレポジトリはあるとして。


cloneしてaufsでほんとのディレクトリに被せる。それぞれのマシンで同じようにやる。

mkdir /git
git-clone git://axis.local/system.git /git/system
# /git/system/usr/oreore/etc/test/test.conf とかができる

target_dir=/usr/oreore/etc
mount -t aufs br:/git/system/${target_dir}=rw:${target_dir}=ro none ${target_dir}

あるマシンでファイルを編集してpushる。

vi /usr/oreore/etc/test/test.conf
...

cd /git/system
git-status
git-commit -m ijitta-yo usr/oreore/etc/test/test.conf

git-diff origin master
git-push

他のマシンで、変更を確認して問題なければマージする。
ほんとは--dry-runでdiff見ながらpullるしたいんだけどやりかたがわからないので、fetch → diff → merge してます。

cd /git/system
git-fetch
git-diff master origin
git-merge origin

pros

  • コピー氏忘れとかで、古いままになっちゃってるファイルの確認がしやすそう
  • んー
  • んーんー

cons

  • 被せたディレクトリ配下なんだけど、git で履歴管理しなたくないファイルの編集はどうするか
    • /git/etc + /etc = /etc じゃなくて、/git/etc + /real/etc = /etc なふうに重ねればいいかなぁ
  • パーミッションとかowner:groupとか
    • aufs的には大丈夫みたい。ls -l的には反映されてないようにみえてもちゃんとPermission deniedされた。
    • gitで保持できんのかな。。。

結論

しばし保留で。。。