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.
 
 
 
 
 
 

46 lines
876 B

#!/bin/sh
for range in $(
prev_branch=
{
git for-each-ref --format='%(refname)' refs/heads/maint-* |
sed -e 's|^refs/heads/||'
cat <<-EOF
maint
master
next
EOF
} |
while read branch
do
if test -n "$prev_branch"
then
echo "$branch..$prev_branch"
fi
prev_branch=$branch
done
) pu..jch
do
lg=$(git log --oneline "$range")
if test -n "$lg"
then
echo "*** $range ***"
echo "$lg"
fi
done
if next_tree=$(git rev-parse next^{tree}) &&
next_equiv=$(git rev-list jch..pu |
xargs -n1 sh -c '
echo $(git rev-parse $1^{tree}) $1
' - | sed -n -e "s/^$next_tree //p"
) &&
test -n "$next_equiv"
then
jch=$(git rev-list --first-parent master..jch | wc -l) &&
pu=$(git rev-list --first-parent master..pu | wc -l) &&
next=$(git rev-list --first-parent master..$next_equiv | wc -l) &&
echo $jch..$next..$pu
else
git diff --stat next jch
fi