ブログを移転しています。最新の記事は motemen.hatenablog.com へどうぞ
2012-07-17
Git 使ってるときに carton.lock の diff を読みやすくする
Carton が生成する carton.lock は開発中わりと頻繁にアップデートされるものの JSON で書かれているので diff が冗長で困る!
そういうときは .gitattributes にこういう風に書いてやる:
% cat .gitattributes /carton.lock diff=cartonlock
で、diff=cartonlock なファイルの場合は JSON を "module~version" 形式に展開したもののリストを diff する、という風にしてやると、見やすいです。(--global はお好みで)
% git config --global diff.cartonlock.textconv 'perl -MJSON -0e "\$m = decode_json(<>)->{modules}; print qq(\$_~\$m->{\$_}->{version}\n) for sort keys %\$m"'
git log なんかが以下のようになり便利です。
% git log -p -1 -- carton.lock commit ca68ce560d76bbdcde45b6c56c693a4893135e46 Author: motemen <motemen@gmail.com> Date: Tue Jul 17 12:53:55 2012 +0900 +Devel::StackTrace::WithLexicals diff --git a/carton.lock b/carton.lock index 9bd1cca..d554455 100644 --- a/carton.lock +++ b/carton.lock @@ -54,6 +55,7 @@ Devel::Cover::Report::Clover~0.35 Devel::KYTProf~0.01 Devel::StackTrace~1.27 Devel::StackTrace::AsHTML~0.11 +Devel::StackTrace::WithLexicals~0.10 Devel::TrackObjects~0.5 Digest::SHA1~2.13 Dist::CheckConflicts~0.02
コメント