3 . "$(dirname $0)/common.sh" ""
7 last=$(tail -n1 $SHA1_FILE | cut -f1 -d$'\t')
8 start_from=$(awk -F '\t' '/^[^#]/ && $3 == "'$last'" { do getline; while (/^#/ || $2 == "branch"); print $3; exit 0; }' $CTRL_FILE)
14 [ -z "$start_from" ] && {
15 echo "-s requires a start tree" 1>&2
23 awk -F '\t' '/^[^#]/ && $3 == "'$1'" { print $'$2'; }' $CTRL_FILE
35 echo "Cannot chdir to ../mmotm" 1>&2
38 rsync -az --partial --exclude .git\* --exclude broken-out.tar.gz --delete ozlabs.org::akpm/mmotm/. . || {
40 echo "Fetcing mmotm failed" 1>&2
44 [ "$(git status --porcelain)" ] &&
45 git commit -m "$(head -n 1 .DATE)"
52 url=$(get_field "$1" 4)
53 url=${url%/} # strip trailing / if necessary
56 echo "Cannot chdir to ../quilt" 1>&2
59 [ -d "$1" ] || mkdir "$1" || {
60 echo "Cannot create quilt directory for $1" 1>&2
64 echo "Cannot chdir to quilt directory for $1" 1>&2
67 wget -N -nv --no-cache "$url/series" || {
68 echo "Wget of $1 series file failed" 1>&2
74 find * -type f | grep -v '^series$' | sort >.series.old
75 if grep -q NEXT_PATCHES series; then
76 sed -n '/NEXT_PATCHES_START/,/NEXT_PATCHES_END/p' series
80 sed -e 's/[ \t]*#.*$//' -e '/^[ \t]*$/d' |
82 [ -s .series.next ] && {
83 wget -N -nv --no-cache -B "$url/" -i .series.next || {
84 echo "Wget of series '$1' failed" 1>&2
91 comm -23 .series.old .series.next | xargs -r rm -f
92 rm -f .series.old .series.next
93 setfattr -x user.xdg.origin.url * >/dev/null 2>&1
99 trees=$(awk -F '\t' '/^[^#]/ && $2 != "branch" { print $3 }' $CTRL_FILE)
101 for name in $trees; do
102 [ -n "$start_from" ] && {
103 if [ "$name" = "$start_from" ]; then
110 type=$(get_field "$name" 2)
111 if ! [ "$type" ]; then
112 printf "%s: unknown tree\n" "$name" 1>&2
117 [ "$(type -t fetch_$type)" = "function" ] &&
123 [ "$(git status --porcelain)" ] &&
124 git commit -v -a -m "$(date '+%F-%H:%M')" -e