| #!/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 |