3 export LOG_FILE=../akpm-import.log
7 echo "$@" | tee -a $LOG_FILE
13 "$@" 2>&1 | tee -a $LOG_FILE
14 return ${PIPESTATUS[0]}
21 [ -f "$mmotm/broken-out/origin.patch" ] &&
22 base=$(sed -n '1s/^GIT *\([^ ]*\).*$/\1/p' "$mmotm/broken-out/origin.patch")
24 base=$(tail -n 1 "$mmotm/.DATE")
28 nbase=$(sed -n '1s/^GIT *\([^ ]*\).*$/\1/p' "$mmotm/broken-out/linux-next.patch")
29 git rev-parse --verify "$base" >/dev/null || {
30 log "Unknown origin BASE $base"
33 git rev-parse --verify "$nbase" >/dev/null || {
34 log "Unknown linux-next BASE $nbase"
37 db=$(git describe "$base")
38 dnb=$(git describe --contains "$nbase")
39 log "Importing akpm based on $db/$dnb"
41 [ -d "../tmp-akpm" ] && {
42 log "akpm import directory already exists"
46 execute git worktree add -b tmp-akpm/master ../tmp-akpm "$db" ||
49 log '$' cd ../tmp-akpm
51 execute git branch tmp-akpm/current-base ||
55 /NEXT_PATCHES_START/,/NEXT_PATCHES_END/{
60 patches=$(sed -n "$sed_exp" "$sfile")
67 execute git branch tmp-akpm/current ||
69 execute git merge --no-edit --no-stat "$dnb" || {
70 umf=$(git diff 2>&1 | sed -n 's/^\* Unmerged path //p')
71 [ "$umf" ] && [ -f "../merge-files/akpm-current" ] && {
72 rmf=$(grep -F "$umf" "../merge-files/akpm-current")
76 git diff 2>&1 | grep -E -q '<<<<<|^\*' && {
79 GIT_EDITOR=: execute git commit -v -a
81 [ -f "../merge-fixes/akpm-current" ] && {
82 for p in $(cat "../merge-fixes/akpm-current"); do
83 $(dirname $0)/merge_fix -n "$p" ||
87 execute git branch tmp-akpm/master-base ||
91 execute git am -s --patch-format=mbox "$mmotm/broken-out/$f" ||
100 execute rm -rf ../tmp-akpm
101 execute git worktree prune
103 for i in akpm/current akpm/current-base akpm/master akpm/master-base; do
104 execute git branch -f $i tmp-$i
105 execute git branch -D tmp-$i