3 LOG_FILE="../merge.log"
5 build_dir="/scratch/sfr/next"
6 build_cmd="bin/build_next"
17 rev=$(git show-ref --verify --hash "refs/next/$ver/$tree")
19 echo "No such tree/date" 1>&2
34 echo "$@" | tee -a $LOG_FILE
40 $@ 2>&1 | tee -a $LOG_FILE
41 return ${PIPESTATUS[0]}
44 GIT_EDITOR=: execute git reset --hard 'HEAD^' || {
45 echo "git reset failed" 1>&2
49 log Merging "refs/next/$ver/$tree"
50 execute git merge "refs/next/$ver/$tree" || {
51 echo Merge failed 1>&2
52 echo "refs/next/$ver/$tree" >>../merge.debug
53 git diff >>../merge.debug 2>&1
54 git diff 2>&1 | egrep -q '<<<<<|^\*' && {
57 GIT_EDITOR=: execute git commit -v -a
58 execute git diff -M --stat --summary 'HEAD^..'
60 [ -f "../merge-fixes/$tree" ] && {
61 for p in $(cat "../merge-fixes/$tree"); do
62 ../tools/merge_fix -n "$p" || {
68 d=$(date --date "5 hours ago" '+%Y%m%d')
69 git update-ref "refs/next/$d/broken/$tree" "refs/next/$d/$tree"
70 git update-ref "refs/next/$d/$tree" "refs/next/$ver/$tree"
74 git push -f "$build_host":"$build_dir" master:refs/heads/next || {
75 echo git push failed 1>&2
79 echo "Building using $build_cmd on $build_host"
80 ssh "$build_host" "$build_cmd" || {
81 echo Build failed 1>&2