]> git.ozlabs.org Git - next-scripts/commitdiff
various updates
authorStephen Rothwell <sfr@canb.auug.org.au>
Thu, 29 Nov 2012 23:36:54 +0000 (10:36 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 29 Nov 2012 23:36:54 +0000 (10:36 +1100)
12 files changed:
build_msg
build_warn
do_merge
fetch_trees
import-akpm
make_abat_scripts
make_next_branches
make_tree_file
merge_akpm
merge_fix
merge_msg
update_trees

index fd6169ed0df39f78060aa185df36de317b3a4c0c..6cff217bd4e0584a8f834472eaad93e18fb15eb8 100755 (executable)
--- a/build_msg
+++ b/build_msg
@@ -13,7 +13,6 @@ branch=""
 
 [ "$branch" ] || {
        branch=$(grep '^Merging ' $log | tail -1 | sed 's/^Merging //' | sed 's/ .*$//')
-       branch=${branch#quilt/}
        branch=${branch%%/*}
 }
 
index e6cc2c594e0ade07d1a0aaf92d0f2c808304d504..c8108f2e79aa4b127aa1b3ea1d051cd81fce30fa 100755 (executable)
@@ -13,7 +13,6 @@ branch=""
 
 [ "$branch" ] || {
        branch=$(grep '^Merging ' $log | tail -1 | sed 's/^Merging //' | sed 's/ .*$//')
-       branch=${branch#quilt/}
        branch=${branch%%/*}
 }
 
index ffbecf1c5aee2e8a7a5292bc23742a08ab6c08e1..01959dd0cf6017ef6ce343e512316735d6f8ad0e 100755 (executable)
--- a/do_merge
+++ b/do_merge
@@ -101,13 +101,12 @@ do_rebase()
        execute git reset --hard stable
 }
 
-heads=$(grep -v '^#' ../real_control | awk -F '        ' '$2=="quilt" { printf("quilt/%s ", $3); } $2=="git" { printf("%s/%s ", $3, $5); }')
+heads=$(grep -v '^#' ../real_control | awk -F '\t' '$2=="quilt" || $2=="git" { printf("%s/%s ", $3, $5); }')
 
 need_build=false
 
 for h in $heads; do
        tree=${h%%/*}
-       [ "$tree" == "quilt" ] && tree=${h#quilt/}
 
        [ -n "$start_from" ] && {
                if [ "$tree" = "$start_from" ]; then
@@ -120,6 +119,9 @@ for h in $heads; do
        hlog=$(git log -1 --oneline $h) 2>/dev/null
        log Merging $h "($hlog)"
        old_head=$(git rev-parse HEAD)
+       [ -x "../pre-merge/$tree" ] && {
+               "../pre-merge/$tree" || bash -i || exit
+       }
        case "$h" in
        *:*)
                do_rebase $h $tree
index d22c6629263862ea88f5eb074c1fbf2f2d221c78..d2f476ae88c48a5f194c8fd86e62f96b5e296bc6 100755 (executable)
@@ -5,12 +5,12 @@ origwd=$(pwd)
 get_field()
 {
        grep -v '^#' ../real_control |
-               awk -F '        ' '$3 == "'$1'" { print $'$2'; }'
+               awk -F '\t' '$3 == "'$1'" { print $'$2'; }'
 }
 
 trees="$@"
 [ "$trees" ] ||
-       trees=$(grep -v '^#' ../real_control | awk -F ' ' '{ print $3 }')
+       trees=$(grep -v '^#' ../real_control | awk -F '\t' '{ print $3 }')
 
 for name in $trees; do
        type=$(get_field "$name" 2)
@@ -21,6 +21,16 @@ for name in $trees; do
                continue
        fi
 
+       if [ "$type" = "mmotm" ]; then
+               cd ../../mmotm/text || {
+                       echo "Cannot chdir to ../../mmotm/text" 1>&2
+                       continue
+               }
+               rsync -avHP --exclude .git --exclude broken-out.tar.gz --delete ozlabs.org:~akpm/public_html/mmotm/. .
+               cd "$origwd"
+               continue
+       fi
+
        if [ "$type" = "quilt" ]; then
                url=$(get_field "$name" 4)
                url=${url%/}    # strip trailing / if necessary
@@ -48,27 +58,23 @@ for name in $trees; do
                        continue
                }
                find * -type f | grep -v '^series$' | sort >.series.old
-               do_echo=echo
-               grep -q NEXT_PATCHES series &&
-                       do_echo=:
-               while read line; do
-                       case "$line" in
-                       *NEXT_PATCHES_START*)   do_echo=echo ;;
-                       *NEXT_PATCHES_END*)     do_echo=: ;;
-                       ''|\#*)                 : ;;
-                       *)                      $do_echo $line ;;
-                       esac
-               done <series |
-                       sed -e 's/[     ]*#.*$//' -e '/^[       ]*$/d' |
+               if grep -q NEXT_PATCHES series; then
+                       sed -n '/NEXT_PATCHES_START/,/NEXT_PATCHES_END/p' series
+               else
+                       cat series
+               fi |
+                       sed -e 's/[ \t]*#.*$//' -e '/^[ \t]*$/d' |
                        sort >.series.next
-               sed "s|^|$url/|" .series.next |
-                               wget -N -nv --no-cache -i - || {
-                       echo "Wget of series '$name' failed" 1>&2
-                       cd ..
-                       rm -rf "$name"
-                       git checkout "$name"
-                       cd "$origwd"
-                       continue
+               [ -s .series.next ] && {
+                       sed "s|^|$url/|" .series.next |
+                                       wget -N -nv --no-cache -i - || {
+                               echo "Wget of series '$name' failed" 1>&2
+                               cd ..
+                               rm -rf "$name"
+                               git checkout "$name"
+                               cd "$origwd"
+                               continue
+                       }
                }
                comm -23 .series.old .series.next | xargs -r rm -f
                rm -f .series.old .series.next
index 8b6d4c5c06f2b10b4bd4531ec8cc2dfe2a676b22..be33c6634f0cad62cfab099594ffa06631457c98 100755 (executable)
@@ -1,19 +1,17 @@
 #!/bin/bash
 
+log_file=../akpm-import.log
+
 log()
 {
-       echo "$@" | tee -a ../akpm-import.log
+       echo "$@" | tee -a $log_file
 }
 
 execute()
 {
        log "$" $@
-       "$@" 2>&1 | tee -a ../akpm-import.log
-       [ ${PIPESTATUS[0]} -eq 0 ] || $SHELL -i || {
-               [ -f "$sfile.orig" ] &&
-                       mv -f "$sfile.orig" "$sfile"
-               exit 1
-       }
+       "$@" 2>&1 | tee -a $log_file
+       [ ${PIPESTATUS[0]} -eq 0 ] || $SHELL -i || exit 1
 }
 
 name="akpm"
@@ -33,56 +31,36 @@ git rev-parse --verify "$nbase" >/dev/null || {
        exit 1
 }
 
-mv -f "$sfile" "$sfile.orig"
-do_echo=echo
-grep -q NEXT_PATCHES "$sfile.orig" && do_echo=:
-while read line; do
-       case $line in
-       *NEXT_PATCHES_START*)   do_echo=echo
-                               ;;
-       *NEXT_PATCHES_END*)     do_echo=:
-                               ;;
-       esac
-       $do_echo $line
-done <"$sfile.orig" |
-       sed -e 's/[     ]*#.*$//' -e '/^[       ]*$/d' >"$sfile"
-
-git show-ref --quiet --verify "refs/heads/quilt/$name" ||
-       execute git branch "quilt/$name" "$base"
-
-[ -s "$sfile" ] || {
-       log "   quilt series is empty"
-       mv -f "$sfile.orig" "$sfile"
-       execute git update-ref "refs/heads/quilt/$name" "$nbase"
-       exit 0
-}
-
 [ -d "../quilt-tmp" ] ||
        execute git clone -s -l -n -q . ../quilt-tmp
 
 log '$' cd ../quilt-tmp
 cd ../quilt-tmp
 execute git reset --hard "$base"
-execute git merge --no-edit --no-stat "$nbase" || bash -i || exit 1
-git branch base
+git branch current-base
+
+sed_exp='/NEXT_PATCHES_START/,/NEXT_PATCHES_END/{s/[ \t]*#.*$//;/^[ \t]*$/!p;};/^linux-next.patch/p'
+patches=$(sed -n "$sed_exp" "$sfile")
 
-for f in $(cat "$mmotm/series"); do
+for f in $patches; do
        [ "$f" = "origin.patch" ] && continue
-       [ "$f" = "linux-next.patch" ] && continue
-       execute git am "$mmotm/broken-out/$f" ||
-               bash -i ||
-               break
+       [ "$f" = "linux-next.patch" ] && {
+               git branch current
+               execute git merge --no-edit --no-stat "$nbase"
+               git branch master-base
+               continue
+       }
+       execute git am --patch-format=mbox "$mmotm/broken-out/$f"
 done
 
 log '$' cd $cpwd
 cd $cpwd
 
-execute git fetch -f ../quilt-tmp master:"quilt/$name"
-execute git fetch -f ../quilt-tmp base:"quilt/${name}-base"
-
-mv -f "$sfile.orig" "$sfile"
+execute git fetch -f ../quilt-tmp current:"$name/current"
+execute git fetch -f ../quilt-tmp current-base:"$name/current-base"
+execute git fetch -f ../quilt-tmp master:"$name/master"
+execute git fetch -f ../quilt-tmp master-base:"$name/master-base"
 
-[ -d "../quilt-tmp" ] &&
-       rm -rf ../quilt-tmp
+rm -rf ../quilt-tmp
 
 exit 0
index d88c378cfe96ae4a72e06072cb2a1bb081460b54..13e4cc734b935b23a2e43dd7756b55e298ec8b20 100755 (executable)
@@ -18,7 +18,8 @@ EOF
 i=$((i + 1))
 
 #for t in  'POWER5%gr%' 'POWER5%gs%' 'POWER6%' 'POWER7%' '%Opteron%' '%PPC970%'; do
-for t in  'POWER5%gs%' 'POWER6%' 'POWER7%' '%PPC970%'; do
+#for t in  'POWER5%gs%' 'POWER6%' 'POWER7%' '%PPC970%'; do
+for t in  'POWER5%gs%' 'POWER6%' 'POWER7%'; do
        cat >"../abat/$d-abat.ozlabs.ibm.com-$i" <<EOF
 option title linux-next $d boot test
 #option timed 2010-07-07 19:30 +1000
index de39d4bbf3719b0cad9a32bcb384b4b898d4edd2..314009a2e2bf288a1daef9cc9ad00a4e01e3e7a1 100755 (executable)
@@ -4,19 +4,14 @@ dir=$1
 
 [ "$dir" ] || dir="$(date '+%Y%m%d')"
 
-heads=$(grep -v '^#' ../real_control | awk -F '        ' '$2=="quilt" { printf("quilt/%s ", $3); } $2=="git" { printf("%s/%s ", $3, $5); }')
+heads=$(grep -v '^#' ../real_control | awk -F '\t' '$2=="quilt" || $2=="git" { printf("%s/%s ", $3, $5); }')
 
 for h in $heads; do
        tree=${h%%/*}
-       rem_ref=refs/remotes
-       [ "$tree" == "quilt" ] && {
-               tree=${h#quilt/}
-               rem_ref=refs/heads
-       }
        [ "${h%:*}" == "${h}" ] ||
                h="${tree}/${h##*:}"
 
-       git update-ref "refs/next/$dir/$tree" "$rem_ref/$h"
+       git update-ref "refs/next/$dir/$tree" "$h"
 done
 
 git pack-refs --all --prune
index 2fed5201d2f9a8197ced6ca20c8e692f33fde9fd..7d2c5136989325c5d024fa3889f9c21112574fe9 100755 (executable)
@@ -46,7 +46,7 @@ git add Next localversion-next
 git commit -s -v -a -m "Add linux-next specific files for $d"
 git tag -u 41D5C07A -m "$n" "$n"
 
-git update-ref refs/heads/stable refs/remotes/origin/master
+git branch -f stable refs/remotes/origin/master
 
 p="patch-$l-$n"
 git diff-tree -p "$l.." >"../$p"
index a8099e4fc1492fb38240443bba666a289bbff295..2a50dcb3bce0f18a67705101aa8e7c0afabb4aeb 100755 (executable)
@@ -38,18 +38,36 @@ execute()
 
 cpwd=../next
 
+git update-ref "refs/next/$today/akpm-current" akpm/current
+git branch -f akpm-current/current akpm/current
+
+git branch -f akpm/base HEAD
+
+hlog=$(git log -1 --oneline akpm-current/current) 2>/dev/null
+log Merging akpm-current/current "($hlog)"
+execute git merge akpm-current/current || {
+       echo Merge failed 1>&2
+       echo $h >>../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^..'
+}
+
 execute git clone -s -l -n -q . ../rebase-tmp || {
        echo Clone failed 1>&2
        bash -i || exit
 }
 log '$' cd ../rebase-tmp
 cd ../rebase-tmp
-execute git fetch --no-tags $cpwd refs/heads/quilt/akpm:akpm || {
-       echo Fetch of top failed 1>&2
+execute git fetch --no-tags $cpwd refs/heads/akpm/master:akpm || {
+       echo Fetch of akpm/master failed 1>&2
        bash -i || exit
 }
-execute git fetch --no-tags $cpwd refs/heads/quilt/akpm-base:akpm-base || {
-       echo Fetch of base failed 1>&2
+execute git fetch --no-tags $cpwd refs/heads/akpm/master-base:akpm-base || {
+       echo Fetch of akpm/master-base failed 1>&2
        bash -i || exit
 }
 execute git checkout akpm || {
@@ -60,21 +78,22 @@ execute git rebase --onto master akpm-base || {
        echo Rebase failed 1>&2
        bash -i || exit
 }
-echo "fix up? use git rebase -i --onto master akpm-base"
+echo "fix up?"
 bash -i
 log '$' cd $cpwd
 cd $cpwd
-execute git fetch -f ../rebase-tmp akpm:quilt/akpm || {
+execute git fetch -f ../rebase-tmp akpm:akpm/master || {
        echo Pull failed 1>&2
        bash -i || exit
 }
 execute rm -rf ../rebase-tmp
 
-git update-ref "refs/next/$today/akpm" quilt/akpm
-git update-ref refs/heads/quilt/akpm-base HEAD
+git update-ref "refs/next/$today/akpm" akpm/master
+
+git branch -f akpm/master-base HEAD
 
-log Merging quilt/akpm '('$(git log -1 --oneline quilt/akpm)')'
-execute git merge --no-ff quilt/akpm || {
+log Merging akpm/master '('$(git log -1 --oneline akpm/master)')'
+execute git merge --no-ff akpm/master || {
        echo Merge failed 1>&2
        bash -i || exit
 }
index 9cf57c03322d14060611d7eb065a445295e1077c..e1d68e1d6eda0db00b14bd3c59c9cfbb257a11c0 100755 (executable)
--- a/merge_fix
+++ b/merge_fix
@@ -56,7 +56,7 @@ GIT_EDITOR=: execute git reset 'HEAD^' || {
        echo "git reset failed" 1>&2
        bash -i || exit
 }
-execute git add . || {
+execute git add -A . || {
        echo "git add failed" 1>&2
        bash -i || exit
 }
index b314ed2d209935805a5cbe32f1c7b78d47521a7c..e436cd5f24307db791c114777a440e397e3fd82e 100755 (executable)
--- a/merge_msg
+++ b/merge_msg
@@ -13,7 +13,6 @@ branch=""
 
 [ "$branch" ] || {
        branch=$(grep '^Merging ' $log | tail -1 | sed 's/^Merging //' | sed 's/ .*$//')
-       branch=${branch#quilt/}
        branch=${branch%%/*}
 }
 
@@ -29,6 +28,9 @@ gitk --merge -- $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\
 %0A\
-Today's linux-next merge of the $branch tree got a conflict in $file between commit  (%22%22) from the  tree and commit  (%22%22) from the $branch tree."
+Today's linux-next merge of the $branch tree got a conflict in $file between commit  (%22%22) from the  tree and commit  (%22%22) from the $branch tree.%0A\
+%0A\
+I fixed it up (see below) and can carry the fix as necessary (no action%0A\
+is required)."
 
 exit 0
index 2b47e3c3d15207bc173d23270ce0dab915c0516f..a9622cce437a68e10f9c5e52c5435c4f4bf61ad0 100755 (executable)
@@ -1,34 +1,33 @@
 #!/bin/bash
 
-#cp /dev/null ../quilt-import.log
+log_file=../quilt-import.log
+#cp /dev/null $log_file
 
 log()
 {
-       echo "$@" | tee -a ../quilt-import.log
+       echo "$@" | tee -a $log_file
 }
 
 execute()
 {
        log "$" $@
-       "$@" 2>&1 | tee -a ../quilt-import.log
-       [ ${PIPESTATUS[0]} -eq 0 ] || sh -i || {
-               [ -f "$sfile.orig" ] &&
-                       mv -f "$sfile.orig" "$sfile"
-               exit 1
-       }
+       "$@" 2>&1 | tee -a $log_file
+       [ ${PIPESTATUS[0]} -eq 0 ] || $SHELL -i || exit 1
 }
 
-quilters=$(grep -v '^#' ../real_control | awk -F '     ' '$2=="quilt" { print $3; }')
+cpwd=$(pwd)
+
+quilters=$(grep -v '^#' ../real_control | awk -F '\t' '$2=="quilt" { print $3; }')
 
 for name in $quilters; do
 
        sfile="../quilt/$name/series"
-       base=$(sed -n 's/^#[    ]*NEXT[-_]BASE[         ]*\([^  ]*\)[   ]*$/\1/p' "$sfile")
+       base=$(sed -n 's/^#[ \t]*NEXT[-_]BASE[ \t]*\([^ \t]*\)[ \t]*$/\1/p' "$sfile")
        if [ -n "$base" ]; then
-               nbase=$(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 '\t' '$3=="'"$base"'" { printf("%s/%s", "'"$base"'", $5); }')
                [ -n "$nbase" ] && base="$nbase"
        else
-               base=$(sed -n 's/^#[    ]*BASE[         ]*\(.*\)[       ]*$/\1/p' "$sfile")
+               base=$(sed -n 's/^#[ \t]*BASE[ \t]*\(.*\)[ \t]*$/\1/p' "$sfile")
                [ -n "$base" ] || {
                        # for stgit
                        base=$(sed '1{s/^#.*GIT commit \(.*\)$/\1/;q}' "$sfile")
@@ -40,7 +39,7 @@ for name in $quilters; do
        case "$base" in
        *-git[0-9]*)    rbase=$($(dirname $0)/get_gitid "${base}")
                        ;;
-       commit*)        rbase=$(expr "$base" : "commit[         ]*\(.*\)")
+       commit*)        rbase=${base##commit*[[:space:]]}
                        ;;
        [0-9]*.*)       rbase="v$base"
                        ;;
@@ -52,34 +51,24 @@ for name in $quilters; do
        }
 
        # don't bother importing things that haven't changed
-       mb=$(git merge-base "$rbase_sha1" "quilt/$name")
+       mb=$(git merge-base "$rbase_sha1" "$name/master")
        change_size=$(cd ../quilt;git diff last_merge.. -- "$name/" | wc -c)
        [ "$mb" = "$rbase_sha1" ] && [ $change_size -eq 0 ] && {
                log "Unchanged quilt series $name"
                continue
        }
 
-       mv -f "$sfile" "$sfile.orig"
-       do_echo=echo
-       grep -q NEXT_PATCHES "$sfile.orig" && do_echo=:
-       while read line; do
-               case $line in
-               *NEXT_PATCHES_START*)   do_echo=echo
-                                       ;;
-               *NEXT_PATCHES_END*)     do_echo=:
-                                       ;;
-               esac
-               $do_echo $line
-       done <"$sfile.orig" |
-               sed -e 's/[     ]*#.*$//' -e '/^[       ]*$/d' >"$sfile"
-
-       git show-ref --quiet --verify "refs/heads/quilt/$name" ||
-               execute git branch "quilt/$name" "$rbase_sha1"
-
-       [ -s "$sfile" ] || {
+       sed_exp='s/[ \t]*#.*$//;/^[ \t]*$/!p'
+       grep -q NEXT_PATCHES "$sfile" &&
+               sed_exp='/NEXT_PATCHES_START/,/NEXT_PATCHES_END/{'"$sed_exp"';}'
+       patches=$(sed -n "$sed_exp" "$sfile")
+
+       git show-ref --quiet --verify "refs/heads/$name/master" ||
+               execute git branch "$name/master" "$rbase_sha1"
+
+       [ -n "$patches" ] || {
                log "   quilt series is empty"
-               mv -f "$sfile.orig" "$sfile"
-               execute git update-ref "refs/heads/quilt/$name" "$rbase_sha1"
+               execute git branch -f "$name/master" "$rbase_sha1"
                continue
        }
 
@@ -90,7 +79,7 @@ for name in $quilters; do
        cd ../quilt-tmp
        execute git reset --hard "$rbase_sha1"
 
-       while read f <&5 ; do
+       for f in $patches; do
                old_head=$(git rev-parse --verify HEAD)
                execute git am "../quilt/$name/$f"
                new_head=$(git rev-parse --verify HEAD)
@@ -98,19 +87,17 @@ for name in $quilters; do
                        echo "Tree unchanged, please check ..."
                        bash -i || exit
                }
-       done 5<"../quilt/$name/series"
-
-       log '$' cd ../next
-       cd ../next
+       done
 
-       execute git fetch -f ../quilt-tmp master:"quilt/$name"
+       log '$' cd $cpwd
+       cd $cpwd
 
-       mv -f "$sfile.orig" "$sfile"
+       execute git fetch -f ../quilt-tmp master:"$name/master"
 done
 
 [ -d "../quilt-tmp" ] &&
        rm -rf ../quilt-tmp
 
-( cd ../quilt; git update-ref refs/heads/last_merge HEAD )
+( cd ../quilt; git branch -f last_merge HEAD )
 
 exit 0