Skip to content

Instantly share code, notes, and snippets.

@kyanro
Created April 18, 2013 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kyanro/5412893 to your computer and use it in GitHub Desktop.
Save kyanro/5412893 to your computer and use it in GitHub Desktop.
gitのmerge commitから、automergeが発生しているファイル一覧を出力 ref: http://qiita.com/items/bfe25f7179ef31155b54
#! /bin/bash
#引数としてコミットの ハッシュ HEAD HEAD^ 等のmergeコミットを一つ入力
#automergeが起きたファイルを全て表示
#入力されたコミットの親の数を確認
PearentNum=$(echo $(git log $1 -1 --pretty=format:"%P" | wc -w))
#mergedファイルの初期化
echo -n "" > ~/tmp/merged
#merge commitかチェック
if [ $PearentNum -gt 1 ] ; then
#親が2以上(merge commitの場合)
#入力されたコミットとその親との差分が存在するファイル名からmergeが行われたファイルを列挙
#親の数だけループ
i=1
for Pearent in $(git log $1 -1 --pretty=format:"%P")
do
#一応親のハッシュを出力しておく
echo "Pearent $i : $Pearent"
git diff --name-only $1 $Pearent >> ~/tmp/merged
i=$(expr $i + 1)
done
#mergeされたファイルのソート
sort ~/tmp/merged > ~/tmp/merged-sorted
#重複しているファイルの出力
uniq ~/tmp/merged-sorted --repeated > ~/tmp/automerged
cat ~/tmp/automerged
else
#親が2以上いないなら処理を終了
echo "$1 is not MergeCommit"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment