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
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"