2013年7月7日日曜日

git pushで送信されるコミットのログを表示するシェルスクリプトを書きました

git prepushです。git push -nを行い、プッシュの対象になるコミットのログを表示します。



#!/bin/sh
# Copyright (c), Naruse Motoki (motoki@naru.se)
# Licensed under The MIT License

dryrun=`git push -n 2>&1`
echo "$dryrun"
fromto=`echo $dryrun | sed -e "s/.* \([0-9a-z]\+\.\.[0-9a-z]\+\) .*/\1/g"`
if expr "$fromto" : "^[0-9a-z]\+\.\.[0-9a-z]\+$" >/dev/null; then
  echo "`git log --date=short --pretty=format:"%h %ad %an %s" $fromto`"
fi

Gitにもあります。https://gist.github.com/narusemotoki/5943549

パスの通った場所にgitprepush.shという名前で保存し、.gitconfigに「prepush = "! gitprepush.sh"」と書くとgit prepushが利用できるようになります。

git push -nではこのように、リモートリポジトリ名、対象コミットのハッシュ、ブランチしか表示されません。

% git push -n
To git@github.com:narusemotoki/appengine_django_blank.git
   4c4237f..e6c2e1b  django1.4 -> django1.4

ここから自分で対象コミットを確認するのが手間だったので作りました。

0 件のコメント:

コメントを投稿