git svn dcommit する前に差分を確認するためのエイリアス

ローカルでもろもろ作業を終えて git svn dcommit する前にリモートに上げる内容を最終確認したい。
git svn dcommit -n で dry-run しても差分のハッシュ値が出力されるだけでその内容を git diff コマンドに渡さないといけなくてメンドクサイのでエイリアスをつくった。

~/.gitconfig

.gitconfig に以下のエイリアスを追加するだけ

[alias]
    svn-diff = "!f() { git svn dcommit -n | grep diff | awk -F'diff-tree' -v opt=$@ '{print \"git diff \"opt\" \"$2}' | sh; }; f"

使い方

ローカルで git commit して git svn dcommit する前に

$ git svn-diff
diff --git a/foo/index.html b/foo/index.html
index 7c066ed..39b0975 100644
--- a/foo/index.html
+++ b/foo/index.html
@@ -211,6 +211,7 @@
-        変更前の情報
+        変更後の情報

git diff にオプションを渡せるようにしてあるので差分ファイル一覧を見たい時は、

$ git svn-diff --name-status
M       foo/index.html