You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
master_sha1=`git rev-parse --verify refs/heads/master`
|
|
|
|
LF='
|
|
|
|
'
|
|
|
|
(cd .git/refs/heads && find -type f) |
|
|
|
|
sed -n \
|
|
|
|
-e 's/^\.\///' \
|
|
|
|
-e '/^[^\/][^\/]\//p' |
|
|
|
|
while read topic
|
|
|
|
do
|
|
|
|
case " $* " in
|
|
|
|
*' '"$topic"' '*)
|
|
|
|
echo >&2 "* Skipping $topic"
|
|
|
|
continue ;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
rebase= done= not_done= trouble= date=
|
|
|
|
topic_sha1=`git rev-parse --verify "refs/heads/$topic"`
|
|
|
|
|
|
|
|
date=`
|
|
|
|
git-rev-list -1 --pretty "$topic" |
|
|
|
|
sed -ne 's/^Date: *\(.*\)/ (\1)/p'
|
|
|
|
`
|
|
|
|
only_next_1=`git-rev-list ^master "^$topic" next | sort`
|
|
|
|
only_next_2=`git-rev-list ^master next | sort`
|
|
|
|
rebase=
|
|
|
|
if test "$only_next_1" = "$only_next_2"
|
|
|
|
then
|
|
|
|
not_in_topic=`git-rev-list "^$topic" master`
|
|
|
|
if test -z "$not_in_topic"
|
|
|
|
then
|
|
|
|
:; # already up-to-date.
|
|
|
|
else
|
|
|
|
rebase=" (can be rebased)"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if test -n "$rebase"
|
|
|
|
then
|
|
|
|
echo "Rebasing $topic to pick up:"
|
|
|
|
git-rev-list --pretty=oneline "^$topic" master |
|
|
|
|
sed -e 's/^[0-9a-f]* / * /'
|
|
|
|
git checkout "$topic" &&
|
|
|
|
git rebase master || break;
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
|