Gitでタブ・スペースや改行コードなど体裁を統一する
Gitにはチェックアウト時、コミット時に適応できるフィルターをファイルの種類ごとに定義できる機能がある。
この機能をタブ・スペースや改行コードなど体裁を統一するために使ってみた。
#!/usr/bin/perl use Text::Tabs; $tabstop = 4; while (<>) { $_ = expand($_); s/[ \r\n]+$//; print "$_\n"; }
gitconfigに登録し、
[filter "normalize-text"] clean = /usr/local/bin/normalize-text.pl smudge = /usr/local/bin/normalize-text.pl
.gitattributesから呼び出せば完了である。
*.php eol=lf filter=normalize-text
少しGitが重くなってしまうなど欠点もあるが、
タブやスペースで悩まなくてすむひとつの方法であると
思う。
Visual Studio みたいに、勝手にスペースが入って、
うまく設定できないIDEにも有効だ。