]>
Commit | Line | Data |
---|---|---|
c9c45970 | 1 | #!/bin/dash |
9392cbd4 | 2 | |
bd45e1c3 JH |
3 | MASTER=master |
4 | ||
9392cbd4 | 5 | for range in $( |
9392cbd4 | 6 | { |
c9c45970 | 7 | git for-each-ref --format='%(refname)' refs/heads/maint-\* | |
33ac7d22 JH |
8 | perl -e ' |
9 | sub compare_dotted_version { | |
10 | my (@ours) = split(/\./, $_[0]); | |
11 | my (@theirs) = split(/\./, $_[1]); | |
12 | my ($i, $diff); | |
13 | ||
14 | for ($i = 0; $i < @ours && $i < @theirs; $i++) { | |
15 | $diff = $ours[$i] - $theirs[$i]; | |
16 | return $diff if ($diff); | |
17 | } | |
18 | return 1 if ($i < @ours); | |
19 | return -1 if ($i < @theirs); | |
20 | return 0; | |
21 | } | |
22 | my @maint = (); | |
23 | while (<STDIN>) { | |
24 | next unless s|^refs/heads/||; | |
25 | chomp; | |
26 | my ($v) = ($_ =~ /^maint-(.*)$/); | |
27 | push @maint, [$v, $_]; | |
28 | } | |
29 | for (map { $_->[1] } | |
30 | sort { compare_dotted_version($a->[0], $b->[0]) } | |
31 | @maint) { | |
32 | print "$_\n"; | |
33 | } | |
c9c45970 | 34 | ' && |
9392cbd4 JH |
35 | cat <<-EOF |
36 | maint | |
bd45e1c3 | 37 | $MASTER |
9392cbd4 JH |
38 | next |
39 | EOF | |
40 | } | | |
c9c45970 JH |
41 | { |
42 | prev_branch= | |
43 | while read branch | |
44 | do | |
45 | if test -n "$prev_branch" | |
46 | then | |
47 | echo "$branch..$prev_branch" | |
48 | fi | |
49 | prev_branch=$branch | |
50 | done | |
51 | } | |
c483b4cf | 52 | ) seen..jch |
9392cbd4 JH |
53 | do |
54 | lg=$(git log --oneline "$range") | |
55 | if test -n "$lg" | |
56 | then | |
57 | echo "*** $range ***" | |
58 | echo "$lg" | |
59 | fi | |
60 | done | |
61 | ||
8ecb1c05 JH |
62 | if ! next_equiv=$(git rev-parse --verify 'jch^{/^### match next}' 2>/dev/null) || |
63 | ! git diff --stat --exit-code next $next_equiv | |
64 | then | |
65 | next_tree=$(git rev-parse next^{tree}) && | |
34e2cba4 | 66 | next_equiv=$(git rev-list --first-parent $MASTER^..seen | |
8ecb1c05 JH |
67 | xargs -n1 sh -c ' |
68 | echo $(git rev-parse $1^{tree}) $1 | |
69 | ' - | sed -n -e "s/^$next_tree //p" | |
70 | ) | |
71 | fi | |
72 | ||
73 | if test -n "$next_equiv" | |
63462397 | 74 | then |
bd45e1c3 JH |
75 | jch=$(git rev-list --first-parent $MASTER..jch | wc -l) && |
76 | seen=$(git rev-list --first-parent $MASTER..seen | wc -l) && | |
77 | next=$(git rev-list --first-parent $MASTER..$next_equiv | wc -l) && | |
21723c4f JH |
78 | if test $jch -le $next |
79 | then | |
bd45e1c3 | 80 | echo "$MASTER..$jch..jch..$next..next..$seen..seen" |
21723c4f | 81 | else |
bd45e1c3 | 82 | echo "$MASTER..$next..next..$jch..jch..$seen..seen" |
21723c4f | 83 | fi |
63462397 | 84 | fi |