heads=$(grep -v '^#' ../real_control | awk -F ' ' '$2=="quilt" { printf("quilt/%s ", $3); } $2=="git" { printf("%s/%s ", $3, $5); }')
+need_build=false
+
for h in $heads; do
+ tree=${h%/*}
+ [ "$tree" == "quilt" ] && tree=${h#quilt/}
log Merging $h
old_head=$(git rev-parse HEAD)
execute git merge $h || {
GIT_EDITOR=: execute git commit -v -a
execute git diff -M --stat --summary 'HEAD^..'
}
- new_head=$(git rev-parse HEAD)
- [ "$old_head" = "$new_head" ] && continue
$no_build && continue
+ $need_build || {
+ # See if we need to build after merging this tree
+ new_head=$(git rev-parse HEAD)
+ [ "$old_head" = "$new_head" ] ||
+ need_build=true
+ $need_build ||
+ [ "$(git diff ${old_head}.. | wc -c)" -eq 0 ] ||
+ need_build=true
+ }
+ $need_build ||
+ continue
+ do_build=$(grep -v '^#' ../real_control | awk -F ' ' '$3=="'$tree'" { print $6; }')
+ [ "$do_build" = "yes" ] ||
+ continue
rsync -avH --exclude .git --delete . "$build_host":"$build_dir"/. || {
echo Rsync failed 1>&2
bash -i || exit
echo Build failed 1>&2
bash -i || exit
}
+ need_build=false
done
exit 0
---- ----' > Next/SHA1s
IFS=' '
-while read email type name url ref; do
+while read email type name url ref build; do
[[ "$email" =~ '^#.*$' ]] && continue
tab="\t"
[ $(echo "$name" | wc -c) -le 8 ] && tab="\t\t"