]> git.ozlabs.org Git - next-scripts/commitdiff
cope with comments after patch names in quilt series
authorStephen Rothwell <sfr@canb.auug.org.au>
Wed, 28 Oct 2009 08:04:13 +0000 (19:04 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 28 Oct 2009 08:04:13 +0000 (19:04 +1100)
fetch_trees
update_trees

index 69105f41766cdb42ed03b36ba30b9ea6f7fb8449..369787349627a7c077a94d40d80efb8349bf8077 100755 (executable)
@@ -79,7 +79,9 @@ for name in $trees; do
                        ''|\#*)                 : ;;
                        *)                      $do_echo $line ;;
                        esac
-               done <series | sort >.series.next
+               done <series |
+                       sed -e 's/[     ]*#.*$//' -e '/^[       ]*$/d' |
+                       sort >.series.next
                if $use_rsync; then
                        rsync -avz --files-from .series.next "$rurl" . || {
                                echo "rsync of series '$name' failed" 1>&2
index b224f24c1fc3fc71650c7d1420a622b2c8d0b201..d46b80caf7a637e01e553acbbd851d3c103ae448 100755 (executable)
@@ -22,15 +22,8 @@ quilters=$(grep -v '^#' ../real_control | awk -F '   ' '$2=="quilt" { print $3; }'
 
 for name in $quilters; do
 
-       # don't bother importing things that haven't changed
-       change_size=$(cd ../quilt;git diff last_merge.. -- "$name/" | wc -c)
-       [ $change_size -eq 0 ] && {
-               log "Unchanged quilt series $name"
-               continue
-       }
-
        sfile="../quilt/$name/series"
-       base=$(sed -n 's/^#[    ]*NEXT_BASE[    ]*\(.*\)[       ]*$/\1/p' "$sfile")
+       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); }')
        else
@@ -56,26 +49,32 @@ for name in $quilters; do
                log "Unknown BASE"
                continue
        }
+
+       # don't bother importing things that haven't changed
+       mb=$(git merge-base "$rbase_sha1" "quilt/$name")
+       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"
-       if grep -q NEXT_PATCHES "$sfile.orig"; then
-               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" >"$sfile"
-       else
-               cp "$sfile.orig" "$sfile"
-       fi
+       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"
 
-       sed -i -e '/^[  ]*$/d' -e '/^[  ]*#/d' "$sfile"
        [ -s "$sfile" ] || {
                log "   quilt series is empty"
                mv -f "$sfile.orig" "$sfile"