mirror of
https://github.com/git/git.git
synced 2026-01-12 13:53:11 +09:00
82 lines
1.8 KiB
Bash
Executable File
82 lines
1.8 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
J='-l 4 -j'
|
|
G=/pub/software/scm/git &&
|
|
|
|
cd $HOME/git &&
|
|
make clean >/dev/null 2>&1 &&
|
|
git reset --hard &&
|
|
make clean >/dev/null 2>&1 &&
|
|
git checkout master &&
|
|
git pull . origin &&
|
|
make clean >/dev/null 2>&1 &&
|
|
|
|
case "$1" in
|
|
'')
|
|
echo "* Building all"
|
|
branches='naster master maint'
|
|
|
|
# Make sure naster is between master and pu if exists
|
|
if naster=`git rev-parse --verify refs/heads/naster 2>/dev/null`
|
|
then
|
|
master=`git rev-parse --verify refs/heads/master` &&
|
|
pu=`git rev-parse --verify refs/heads/pu` &&
|
|
MBM=`git merge-base --all $naster $master` &&
|
|
MBN=`git merge-base --all $naster $pu` &&
|
|
case ",$MBM,$MBN," in
|
|
",$master,$naster,") ;;
|
|
*) echo >&2 "naster is not between master and pu"
|
|
exit 1 ;;
|
|
esac
|
|
# If naster is the same as pu, no point rebuilding pu.
|
|
case ",$naster,$pu," in
|
|
",$pu,$naster,") ;;
|
|
*) branches="$branches pu" ;;
|
|
esac
|
|
fi
|
|
|
|
{
|
|
nstalled=install
|
|
for branch in $branches
|
|
do
|
|
if git-rev-parse --verify refs/heads/$branch 2>/dev/null
|
|
then
|
|
echo "** $branch **" &&
|
|
git checkout $branch &&
|
|
make $J $nstalled &&
|
|
make test &&
|
|
make clean &&
|
|
nstalled=all || exit $?
|
|
else
|
|
echo
|
|
echo "* NO $branch"
|
|
echo
|
|
fi
|
|
done
|
|
} >:all.log 2>&1
|
|
;;
|
|
maint | master)
|
|
mkdir -p $G/RPMS/i386 $G/RPMS/SRPMS &&
|
|
|
|
echo "* Building $1"
|
|
git checkout "$1" &&
|
|
make rpm >./:rpm.log 2>&1 &&
|
|
make $J git >>./:rpm.log 2>&1 &&
|
|
V=`./git --version | sed -e 's/git version //'` &&
|
|
ln git-$V.tar.gz $G/. &&
|
|
ln $HOME/rpms/RPMS/i386/git*-$V-* $G/RPMS/i386/. &&
|
|
ln $HOME/rpms/SRPMS/git-$V-* $G/RPMS/SRPMS/. &&
|
|
{
|
|
# I do not know how it exits, and I do not care much.
|
|
/usr/local/bin/yummy $G/RPMS/i386
|
|
/usr/local/bin/yummy $G/RPMS/SRPMS
|
|
:
|
|
} &&
|
|
rm -fr ./:rpm.log &&
|
|
make clean &&
|
|
|
|
: ;;
|
|
esac || exit $?
|
|
|
|
git checkout master
|