]> git.ipfire.org Git - thirdparty/git.git/blame - RB
What's cooking (2023/08 #04)
[thirdparty/git.git] / RB
CommitLineData
f8ab6711
JH
1#!/bin/sh
2
3master_sha1=`git rev-parse --verify refs/heads/master`
4LF='
5'
6(cd .git/refs/heads && find -type f) |
7sed -n \
8 -e 's/^\.\///' \
9 -e '/^[^\/][^\/]\//p' |
10while read topic
11do
0bc1bdd1
JH
12 case " $* " in
13 *' '"$topic"' '*)
14 echo >&2 "* Skipping $topic"
15 continue ;;
16 esac
17
f8ab6711
JH
18 rebase= done= not_done= trouble= date=
19 topic_sha1=`git rev-parse --verify "refs/heads/$topic"`
20
21 date=`
c6d71b2d 22 git rev-list -1 --pretty "$topic" |
f8ab6711
JH
23 sed -ne 's/^Date: *\(.*\)/ (\1)/p'
24 `
c6d71b2d
JH
25 only_next_1=`git rev-list ^master "^$topic" next | sort`
26 only_next_2=`git rev-list ^master next | sort`
f8ab6711
JH
27 rebase=
28 if test "$only_next_1" = "$only_next_2"
29 then
c6d71b2d 30 not_in_topic=`git rev-list "^$topic" master`
f8ab6711
JH
31 if test -z "$not_in_topic"
32 then
33 :; # already up-to-date.
34 else
35 rebase=" (can be rebased)"
36 fi
37 fi
38 if test -n "$rebase"
39 then
40 echo "Rebasing $topic to pick up:"
c6d71b2d 41 git rev-list --pretty=oneline "^$topic" master |
f8ab6711
JH
42 sed -e 's/^[0-9a-f]* / * /'
43 git checkout "$topic" &&
44 git rebase master || break;
45 fi
46done
47
48