+ log Merging "$h" "($hlog)"
+ case "$h" in
+ *:*)
+ do_rebase "$h" "$tree"
+ ;;
+ *)
+ execute git merge "$h" || {
+ echo Merge failed 1>&2
+ echo "$h" >>../merge.debug
+ git diff >>../merge.debug 2>&1
+ um_files=$(git diff 2>&1 | sed -n 's/^\* Unmerged path //p')
+ [ "$um_files" ] && [ -f "../merge-files/$tree" ] && {
+ rm_files=$(grep -F "$um_files" "../merge-files/$tree")
+ [ "$rm_files" ] &&
+ "$bin_dir/do_rm" $rm_files
+ }
+ git diff 2>&1 | egrep -q '<<<<<|^\*' && {
+ linux-next-notify "new conflict found merging $tree"
+ if [ -f "../merge-fixes/$tree" ]; then
+ echo "Merge fixes exist for this tree:"
+ cat "../merge-fixes/$tree"
+ fi
+ bash -i || exit
+ }
+# [ "$(git status --porcelain)" ] && {
+ GIT_EDITOR=: execute git commit -v -a || {
+ linux-next-notify "next commit failed for $tree"
+ bash -i || exit
+ }
+ execute git diff -M --stat --summary 'HEAD^..'
+# }
+ }
+ ;;
+ esac
+ [ -f "../merge-fixes/$tree" ] && {
+ for p in $(cat "../merge-fixes/$tree"); do
+ "$bin_dir/merge_fix" -n "$p" || {
+ linux-next-notify "merge fix failed for $tree"
+ bash -i || exit
+ }
+ done
+ }
+ tab="\t"
+ [ $(echo "$tree" | wc -c) -le 8 ] && tab="\t\t"
+ printf "%s$tab%s\n" $tree $(git rev-parse "${h/\/*://}^{}") >> $SHA1_FILE