git diffの結果を差分ファイル群としてエクスポートするRubyスクリプト

指定したリビジョン以降の差分ファイル

単純に差分ファイル群を抽出したいときのスクリプトです.

前々からお世話になっていた,↑のスクリプトのように,Gitでも差分ファイルを抽出したいなーと思って作りました.

PerlやPHPで近しい実装がされているモノも見つけたのですが,最近なんとなく素振りを始めたRubyで やってみました.上の2つのスクリプトだと,デリート対象のファイルを見てないような? 今回のスクリプトでは,DELETE_US.txtとして,削除対象のファイルパスをまとめて吐きます.

パスの通ったところに設置して

% git_diff_export 20110310released ./updated_files

こんな感じで.差分抽出の基点になるリビジョンのタグとかSHAとかと,出力先を与えて実行します.指定されたリビジョンから最新までの差分ファイルを抽出して,指定された出力先にコピーします.

git_diff_export

今回はためしにgistでぺたり.今のレイアウトだと白背景はwidthが足りなく感じる...

日本語ファイルが含まれる場合

リポジトリに日本語名のファイルが含まれる場合は,git/日本語ファイル名をgit statusなどで表示する方法 を参考に,git configをしておく必要があります.

git config --global core.quotepath false