#!/bin/bash
+GIT_REPOS="next next-history.git quilt next-fixes tools etc mmotm"
+
cd ~/kernels/next
echo "Updating Linus' tree"
ssh ozlabs.org "cd kernels/linus.git; git remote update"
-echo "Pushing next"
-( cd next; git push bilbo )
-ssh ozlabs.org "cd kernels/next/next; git reset --hard"
-
-echo "Pushing next-history"
-( cd next-history.git; git push bilbo )
-
-echo "Pushing quilt"
-( cd quilt; git push bilbo )
-ssh ozlabs.org "cd kernels/next/quilt; git reset --hard"
-
-echo "Pushing next-fixes"
-( cd next-fixes; git push bilbo )
-ssh ozlabs.org "cd kernels/next/next-fixes; git reset --hard"
-
-echo "Pushing tools"
-( cd tools; git push bilbo )
-ssh ozlabs.org "cd kernels/next/tools; git reset --hard"
-
-rsync -avHP --exclude gitk.cache --exclude 'patch-*-next-2*' \
- --exclude next-2'*'/ --include '.git/' --include .git/config \
- --include 'next/.git/rr-cache/' --include 'next/.git/rr-cache/**' \
- --exclude next/'**' --exclude quilt/'**' --exclude next-fixes/'**' \
- --exclude next-history.git/'**' --exclude tools/'**' \
- --delete . ozlabs.org:kernels/next/.
+for i in $GIT_REPOS; do
+ echo "Pushing $i"
+ ( cd $i; git push --prune bilbo )
+ [ "${i%.git}" = "$i" ] &&
+ ssh ozlabs.org "cd kernels/next/$i; git reset --hard"
+done
+
+{
+ cat <<EOF
+- gitk.cache
+- /merge.debug
+- /merge.log
+- /quilt-import.log
+- /akpm-import.log
+- /summ
+- /patch-*-next-2*
+- /next-2*/
++ .git/
++ .git/config
++ .git/hooks
++ .git/hooks/**
++ /next/.git/rr-cache/
++ /next/.git/rr-cache/**
+EOF
+ for i in $GIT_REPOS; do
+ echo "- $i/**"
+ done
+} | rsync -avHP --noatime --include-from - --delete . ozlabs.org:kernels/next/.
ssh ozlabs.org "touch kernels/NEXT-DONE"
+# Fix up the git configs so that the next pushes will work
+ssh ozlabs.org 'cd kernels/next; for i in '"$GIT_REPOS"'; do ( cd $i; git config receive.denyCurrentBranch ignore; ); done'
+
exit 0