#!/bin/bash log_file=../akpm-import.log log() { echo "$@" | tee -a $log_file } execute() { log "$" $@ "$@" 2>&1 | tee -a $log_file [ ${PIPESTATUS[0]} -eq 0 ] || $SHELL -i || exit 1 } mmotm="../../mmotm/text" sfile="$mmotm/series" cpwd=$(pwd) [ -f "$mmotm/broken-out/origin.patch" ] && base=$(sed -n '1s/^GIT *\([^ ]*\).*$/\1/p' "$mmotm/broken-out/origin.patch") [ "$base" ] || base=$(git describe --abbrev=0 origin/master) nbase=$(sed -n '1s/^GIT *\([^ ]*\).*$/\1/p' "$mmotm/broken-out/linux-next.patch") git rev-parse --verify "$base" >/dev/null || { log "Unknown origin BASE $base" exit 1 } git rev-parse --verify "$nbase" >/dev/null || { log "Unknown linux-next BASE $nbase" exit 1 } db=$(git describe "$base") dnb=$(git describe --contains "$nbase") log "Importing akpm based on $db/$dnb" [ -d "../quilt-tmp" ] || execute git clone -s -l -n -q . ../quilt-tmp log '$' cd ../quilt-tmp cd ../quilt-tmp execute git checkout -b akpm/master "$db" git branch akpm/current-base sed_exp=' /NEXT_PATCHES_START/,/NEXT_PATCHES_END/{ s/[ \t]*#.*NEXT_PATCHES_START[ \t]*\([^ \t]*\).*$/>\1/ s/[ \t]*#.*NEXT_PATCHES_END.*$/*) cbranch="${f#>}" [ "$cbranch" ] && cref="$(git rev-parse --verify HEAD)" ;; \<) [ "$cbranch" ] && { [ "$cref" != "$(git rev-parse --verify HEAD)" ] && git branch -f "akpm/$cbranch" cbranch="" } ;; *) execute git am --patch-format=mbox "$mmotm/broken-out/$f" ;; esac done [ "$cbranch" ] && [ "$cref" != "$(git rev-parse --verify HEAD)" ] && git branch -f "akpm/$cbranch" log '$' cd $cpwd cd $cpwd execute git fetch --force --no-tags ../quilt-tmp \ refs/heads/akpm/master:refs/heads/akpm/master \ refs/heads/akpm/master-base:refs/heads/akpm/master-base \ refs/heads/akpm/current:refs/heads/akpm/current \ refs/heads/akpm/current-base:refs/heads/akpm/current-base rm -rf ../quilt-tmp exit 0