#!/bin/sh # # Run this script _after_ making a proposed merge into a copy of # the target branch (e.g. "master") to see if it contains unrelated # merging back from the upstream. # F=`git diff-tree -r --name-only HEAD^ HEAD` echo "The topic modifies these paths:" echo "$F" | sed -e 's/^/ /' _x40='[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]' _x40="$_x40$_x40$_x40$_x40$_x40$_x40$_x40$_x40" git rev-list --parents master..HEAD^2 | sed -ne "/^$_x40 $_x40 $_x40/p" | while read merge first second do echo # First is the previous cvs topic tip, second is what was merged into # it. Does the merge have anything to do with adjust the topic to # updated upstream? git name-rev "$merge" out=`git diff-tree --stat "$merge^" "$merge" -- $F` case "$out" in '') echo "* Nothing to do with the topic" ;; *) echo "$out" ;; esac done