From: Stephen Rothwell Date: Wed, 4 Jan 2012 08:28:16 +0000 (+1100) Subject: various updates X-Git-Url: https://git.ozlabs.org/?a=commitdiff_plain;h=b668cf4b4a1b8b96b146c2c1b04de7568f144478;p=next-scripts various updates --- diff --git a/backup_next b/backup_next index 5ac047c..1834e7d 100755 --- a/backup_next +++ b/backup_next @@ -3,7 +3,7 @@ host="fs" [ "$1" ] && host="$1" -rsync -avHP --exclude gitk.cache \ +rsync -avHP --exclude gitk.cache --exclude next-2'*'/ \ --include next/.git --include next/.git/'**' --exclude next/'**' \ --include quilt/.git --include quilt/.git/'**' --exclude quilt/'**' \ --include next-fixes/.git --include next-fixes/.git/'**' --exclude next-fixes/'**' \ diff --git a/build_msg b/build_msg index 4d6123c..fd6169e 100755 --- a/build_msg +++ b/build_msg @@ -5,15 +5,24 @@ log=../merge.log control=../real_control [ -f real_control ] && control=real_control -branch=$(grep '^Merging ' $log | tail -1 | sed 's/^Merging //') -branch=${branch#quilt/} -branch=${branch%%/*} +branch="" +[ "$1" = "-t" ] && { + branch=$2 + shift 2 +} -contact=$(sed -n "/ $branch /s/ .*$//p" $control) +[ "$branch" ] || { + branch=$(grep '^Merging ' $log | tail -1 | sed 's/^Merging //' | sed 's/ .*$//') + branch=${branch#quilt/} + branch=${branch%%/*} +} + +contact=$(awk -F ' ' '$3=="'"$branch"'" { print $1; }' $control) greeting=${contact%% *} +greeting=${greeting#\"} [ "${contact%,*}" = "${contact}" ] || greeting="all" -sylpheed --compose "mailto:$contact?Cc=linux-next@vger.kernel.org,%20linux-kernel@vger.kernel.org&Subject=linux-next: build failure after merge of $branch tree&Body=Hi $greeting,%0A\ +sylpheed --compose "mailto:$contact?Cc=linux-next@vger.kernel.org,%20linux-kernel@vger.kernel.org&Subject=linux-next: build failure after merge of the $branch tree&Body=Hi $greeting,%0A\ %0A\ After merging the $branch tree, today's linux-next build ()%0A\ failed like this:" diff --git a/build_warn b/build_warn index 5d0be6f..e6cc2c5 100755 --- a/build_warn +++ b/build_warn @@ -5,15 +5,24 @@ log=../merge.log control=../real_control [ -f real_control ] && control=real_control -branch=$(grep '^Merging ' $log | tail -1 | sed 's/^Merging //') -branch=${branch#quilt/} -branch=${branch%%/*} +branch="" +[ "$1" = "-t" ] && { + branch=$2 + shift 2 +} -contact=$(sed -n "/ $branch /s/ .*$//p" $control) +[ "$branch" ] || { + branch=$(grep '^Merging ' $log | tail -1 | sed 's/^Merging //' | sed 's/ .*$//') + branch=${branch#quilt/} + branch=${branch%%/*} +} + +contact=$(awk -F ' ' '$3=="'"$branch"'" { print $1; }' $control) greeting=${contact%% *} +greeting=${greeting#\"} [ "${contact%,*}" = "${contact}" ] || greeting="all" -sylpheed --compose "mailto:$contact?Cc=linux-next@vger.kernel.org,%20linux-kernel@vger.kernel.org&Subject=linux-next: build warning after merge of $branch tree&Body=Hi $greeting,%0A\ +sylpheed --compose "mailto:$contact?Cc=linux-next@vger.kernel.org,%20linux-kernel@vger.kernel.org&Subject=linux-next: build warning after merge of the $branch tree&Body=Hi $greeting,%0A\ %0A\ After merging the $branch tree, today's linux-next build ()%0A\ produced this warning:" diff --git a/do_merge b/do_merge index c1e6882..ffbecf1 100755 --- a/do_merge +++ b/do_merge @@ -117,7 +117,8 @@ for h in $heads; do fi } - log Merging $h + hlog=$(git log -1 --oneline $h) 2>/dev/null + log Merging $h "($hlog)" old_head=$(git rev-parse HEAD) case "$h" in *:*) diff --git a/do_patch b/do_patch index 3fe1df8..6625a2b 100755 --- a/do_patch +++ b/do_patch @@ -1,7 +1,7 @@ #!/bin/bash LOG_FILE="../merge.log" -build_host="sprygo" +build_host="ka2" build_dir="/scratch/sfr/next" build_cmd="bin/build_next" @@ -14,7 +14,14 @@ no_build=false patch="$1" shift -[ -n "$1" ] && build_host="$1" +[ -n "$1" ] && { + build_host="$1" + shift +} +[ -n "$1" ] && { + build_dir="$1" + shift +} log() { @@ -32,8 +39,8 @@ GIT_EDITOR=: execute git am -3 "$patch" || exit 1 $no_build && exit 0 -rsync -avH --exclude .git --delete . "$build_host":"$build_dir"/. || { - echo Rsync failed 1>&2 +git push -f "$build_host":"$build_dir" master:refs/heads/next || { + echo git push failed 1>&2 bash -i || exit } ssh "$build_host" "$build_cmd" || { diff --git a/do_revert b/do_revert index e8844e7..f679290 100755 --- a/do_revert +++ b/do_revert @@ -1,7 +1,7 @@ #!/bin/bash LOG_FILE="../merge.log" -build_host="sprygo" +build_host="ka2" build_dir="/scratch/sfr/next" build_cmd="bin/build_next" @@ -14,7 +14,14 @@ no_build=false rev=$1 shift -[ -n "$1" ] && build_host="$1" +[ -n "$1" ] && { + build_host="$1" + shift +} +[ -n "$1" ] && { + build_dir="$1" + shift +} log() { @@ -32,8 +39,8 @@ GIT_EDITOR=: execute git revert $rev || exit 1 $no_build && exit 0 -rsync -avH --exclude .git --delete . "$build_host":"$build_dir"/. || { - echo Rsync failed 1>&2 +git push -f "$build_host":"$build_dir" master:refs/heads/next || { + echo git push failed 1>&2 bash -i || exit } ssh "$build_host" "$build_cmd" || { diff --git a/fetch_trees b/fetch_trees index 3697873..f7e2312 100755 --- a/fetch_trees +++ b/fetch_trees @@ -23,10 +23,10 @@ for name in $trees; do url=$(get_field "$name" 4) case "$url" in - http://kernel.org/*|http://www.kernel.org/*) - use_rsync=true - rurl=$(echo "$url" | sed -r 's,^http://(www\.)?kernel\.org,master.kernel.org:,') - ;; +# http://kernel.org/*|http://www.kernel.org/*) +# use_rsync=true +# rurl=$(echo "$url" | sed -r 's,^http://(www\.)?kernel\.org,master.kernel.org:,') +# ;; http://ozlabs.org/~*) use_rsync=true rurl=$(echo "$url" | sed -r 's,^http://ozlabs\.org/([^/]*),ozlabs.org:\1/public_html,') diff --git a/get_gitid b/get_gitid index 408ca21..8c86f7f 100755 --- a/get_gitid +++ b/get_gitid @@ -1,3 +1,9 @@ #!/bin/sh -wget -q -O - http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-$1.id +if [ "$1" = "${1#3}" ]; then + dir=v2.6 +else + dir=v3.0 +fi + +wget -q -O - http://www.kernel.org/pub/linux/kernel/$dir/snapshots/patch-$1.id diff --git a/make_abat_scripts b/make_abat_scripts index e37060c..d88c378 100755 --- a/make_abat_scripts +++ b/make_abat_scripts @@ -5,34 +5,31 @@ d="$1" [ -d ../abat ] || mkdir ../abat i=1 -for t in "IBM,9124-720 eServer OpenPower 720" "IBM,9110-51A System p5 510" "IBM,9117-MMA System p 570" -do - cat >"../abat/$d-abat.ozlabs.ibm.com-$i" <"../abat/$d-abat.ozlabs.ibm.com-$i" <"../abat/$d-abat.linux.ibm.com-$i" <"../abat/$d-abat.ozlabs.ibm.com-$i" <summ +egrep '^\[|(git (cherry|rm|reset|checkout|quiltimport))|Merging|Applying|CONFLICT|Revert|Created commit' merge.log | + egrep -v 'reset HEAD\^|^Created commit [0-9a-f]*: Merge (branch|commit)|mark the corrected paths|HEAD is now at|^\[master [0-9a-f]*\] Merge( remote(-tracking)?)? branch|^hint:' >summ exit 0 diff --git a/make_tree_file b/make_tree_file index 7dc21f5..addcb1e 100755 --- a/make_tree_file +++ b/make_tree_file @@ -7,8 +7,12 @@ h=$(date '+%H') exit 1 } +#git update-ref refs/heads/akpm-end refs/heads/master + # This means I get the right tag if I finish after midnight d=$(date --date "5 hours ago" '+%Y%m%d') +l="$(git describe --match "v*" --abbrev=0)" +n="next-$d" mkdir Next @@ -25,10 +29,9 @@ while read email type name url ref build; do [[ "$email" =~ '^#.*$' ]] && continue tab="\t" [ $(echo "$name" | wc -c) -le 8 ] && tab="\t\t" + [ "${ref%:*}" = "${ref}" ] || ref=${ref##*:} [ "$type" = "git" ] && url="$url#$ref" printf "%s$tab%s\t%s\n" $name $type $url - href="$name/$ref" - [ "$type" = "quilt" ] && href="quilt/$name" printf "%s$tab%s\n" $name $(git show-ref --verify --hash "refs/next/$d/$name") >> Next/SHA1s done <../real_control >>Next/Trees @@ -40,13 +43,30 @@ printf -- "-next-%s\n" $d >localversion-next git add Next localversion-next git commit -s -v -a -m "Add linux-next specific files for $d" -git tag -u 058D8206 -m "next-$d" "next-$d" +git tag -u 41D5C07A -m "$n" "$n" + git update-ref refs/heads/stable refs/remotes/origin/master +git update-ref refs/heads/akpm-start refs/remotes/origin/master + +p="patch-$l-$n" +git diff-tree -p "$l.." >"../$p" +gpg2 -u 41D5C07A -a -b "../$p" +#echo "$l" > "../LATEST-IS-$n" + +../tools/make_abat_scripts "$d" "$l" + +echo Pushing to korg ... +git push korg + +echo Pushing to korg-history ... +git push korg-history -# Stitch the new tree into the history branch -new_ref=$(echo "next-$d" | git commit-tree 'HEAD^{tree}' -p history -p HEAD) -git update-ref -m "next-$d" refs/heads/history $new_ref +echo Pushing to history +git push history -../tools/make_abat_scripts "$d" +echo Pushing patch to kernel.org ... +cd .. +xz -v -9 "$p" +kup --host=geb.kernel.org put "$p.xz" "$p.asc" "/pub/linux/kernel/next/$p.gz" exit 0 diff --git a/merge_fix b/merge_fix index e0bb7ad..9cf57c0 100755 --- a/merge_fix +++ b/merge_fix @@ -1,7 +1,7 @@ #!/bin/bash LOG_FILE="../merge.log" -build_host="sprygo" +build_host="ka2" build_dir="/scratch/sfr/next" build_cmd="bin/build_next" @@ -11,11 +11,19 @@ no_build=false no_build=true } patch="$1" +shift [ -f "$patch" ] || { echo "patch does not exist" 1>&2 exit 1 } -[ -n "$2" ] && build_host="$2" +[ -n "$1" ] && { + build_host="$1" + shift +} +[ -n "$1" ] && { + build_dir="$1" + shift +} log() { @@ -59,8 +67,8 @@ GIT_EDITOR=: execute git commit -v -a --amend || { $no_build && exit 0 -rsync -avH --exclude .git --delete . "$build_host":"$build_dir"/. || { - echo Rsync failed 1>&2 +git push -f "$build_host":"$build_dir" master:refs/heads/next || { + echo git push failed 1>&2 bash -i || exit } diff --git a/merge_msg b/merge_msg index 48bb703..547fbb9 100755 --- a/merge_msg +++ b/merge_msg @@ -5,17 +5,18 @@ log=../merge.log control=../real_control [ -f real_control ] && control=real_control -branch=$(grep '^Merging ' $log | tail -1 | sed 's/^Merging //') +branch=$(grep '^Merging ' $log | tail -1 | sed 's/^Merging //' | sed 's/ .*$//') branch=${branch#quilt/} branch=${branch%%/*} -contact=$(sed -n "/ $branch /s/ .*$//p" $control) +contact=$(awk -F ' ' '$3=="'"$branch"'" { print $1; }' $control) greeting=${contact%% *} +greeting=${greeting#\"} [ "${contact%,*}" = "${contact}" ] || greeting="all" file="$*" -gitk.test --merge -- $file & +gitk --merge -- $file & [ "$file" ] && gvim $file sylpheed --compose "mailto:$contact?Cc=linux-next@vger.kernel.org,%20linux-kernel@vger.kernel.org&Subject=linux-next: manual merge of the $branch tree with the tree&Body=Hi $greeting,%0A\ diff --git a/merge_old_version b/merge_old_version index 3b7465e..41833ea 100755 --- a/merge_old_version +++ b/merge_old_version @@ -1,7 +1,7 @@ #!/bin/bash LOG_FILE="../merge.log" -build_host="sprygo" +build_host="ka2" build_dir="/scratch/sfr/next" build_cmd="bin/build_next" @@ -20,7 +20,14 @@ rev=$(git show-ref --verify --hash "refs/next/$ver/$tree") exit 1 } -[ -n "$3" ] && build_host="$3" +[ -n "$3" ] && { + build_host="$3" + shift +} +[ -n "$3" ] && { + build_dir="$3" + shift +} log() { @@ -42,10 +49,21 @@ GIT_EDITOR=: execute git reset --hard 'HEAD^' || { log Merging "refs/next/$ver/$tree" execute git merge "refs/next/$ver/$tree" || { echo Merge failed 1>&2 - bash -i || exit + echo "refs/next/$ver/$tree" >>../merge.debug + git diff >>../merge.debug 2>&1 + git diff 2>&1 | egrep -q '<<<<<|^\*' && { + bash -i || exit + } GIT_EDITOR=: execute git commit -v -a execute git diff -M --stat --summary 'HEAD^..' } +[ -f "../merge-fixes/$tree" ] && { + for p in $(cat "../merge-fixes/$tree"); do + ../tools/merge_fix -n "$p" || { + bash -i || exit + } + done +} d=$(date --date "5 hours ago" '+%Y%m%d') git update-ref "refs/next/$d/broken/$tree" "refs/next/$d/$tree" @@ -53,8 +71,8 @@ git update-ref "refs/next/$d/$tree" "refs/next/$ver/$tree" $no_build && exit 0 -rsync -avH --exclude .git --delete . "$build_host":"$build_dir"/. || { - echo Rsync failed 1>&2 +git push -f "$build_host":"$build_dir" master:refs/heads/next || { + echo git push failed 1>&2 bash -i || exit } diff --git a/rebase_end b/rebase_end index c6c27a1..eabf618 100755 --- a/rebase_end +++ b/rebase_end @@ -1,7 +1,7 @@ #!/bin/bash LOG_FILE="../merge.log" -build_host="sprygo" +build_host="ka2" build_dir="/scratch/sfr/next" build_cmd="bin/build_next" diff --git a/update_trees b/update_trees index d46b80c..2b47e3c 100755 --- a/update_trees +++ b/update_trees @@ -25,7 +25,8 @@ for name in $quilters; do sfile="../quilt/$name/series" base=$(sed -n 's/^#[ ]*NEXT[-_]BASE[ ]*\([^ ]*\)[ ]*$/\1/p' "$sfile") if [ -n "$base" ]; then - base=$(grep -v '^#' ../real_control | awk -F ' ' '$3=="'"$base"'" { if ($2=="quilt") printf("quilt/%s", "'"$base"'"); else printf("%s/%s", "'"$base"'", $5); }') + nbase=$(grep -v '^#' ../real_control | awk -F ' ' '$3=="'"$base"'" { if ($2=="quilt") printf("quilt/%s", "'"$base"'"); else printf("%s/%s", "'"$base"'", $5); }') + [ -n "$nbase" ] && base="$nbase" else base=$(sed -n 's/^#[ ]*BASE[ ]*\(.*\)[ ]*$/\1/p' "$sfile") [ -n "$base" ] || { @@ -37,7 +38,7 @@ for name in $quilters; do fi rbase="$base" case "$base" in - *-git[0-9]*) rbase=$(wget -q -O - "http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-${base}.id") + *-git[0-9]*) rbase=$($(dirname $0)/get_gitid "${base}") ;; commit*) rbase=$(expr "$base" : "commit[ ]*\(.*\)") ;; @@ -89,8 +90,15 @@ for name in $quilters; do cd ../quilt-tmp execute git reset --hard "$rbase_sha1" - author=$(grep -v '^#' ../real_control | awk -F ' ' '$3=="'"$name"'" { printf("%s", $1); }' | sed 's/,.*$//') - execute git quiltimport --author "$author" --patches "../quilt/$name" + while read f <&5 ; do + old_head=$(git rev-parse --verify HEAD) + execute git am "../quilt/$name/$f" + new_head=$(git rev-parse --verify HEAD) + [ "$new_head" = "$old_head" ] && { + echo "Tree unchanged, please check ..." + bash -i || exit + } + done 5<"../quilt/$name/series" log '$' cd ../next cd ../next