From 786c4ed18003f5b916576b5857cb311b0fab237e Mon Sep 17 00:00:00 2001 From: Stephen Rothwell Date: Wed, 28 Oct 2009 19:04:13 +1100 Subject: [PATCH] cope with comments after patch names in quilt series --- fetch_trees | 4 +++- update_trees | 45 ++++++++++++++++++++++----------------------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/fetch_trees b/fetch_trees index 69105f4..3697873 100755 --- a/fetch_trees +++ b/fetch_trees @@ -79,7 +79,9 @@ for name in $trees; do ''|\#*) : ;; *) $do_echo $line ;; esac - done .series.next + done .series.next if $use_rsync; then rsync -avz --files-from .series.next "$rurl" . || { echo "rsync of series '$name' failed" 1>&2 diff --git a/update_trees b/update_trees index b224f24..d46b80c 100755 --- a/update_trees +++ b/update_trees @@ -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" -- 2.39.2