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.
101 lines
2.0 KiB
101 lines
2.0 KiB
#!/bin/sh |
|
|
|
: ${J=-j2} |
|
: ${BUILDBASE=../buildfarm} |
|
: ${branches='next master maint pu jch'} |
|
|
|
force= with_dash= M= install= |
|
while case "$1" in |
|
-pedantic) M=$1 ;; |
|
-force) force=$1 ;; |
|
-dash) with_dash=y ;; |
|
-noinstall) install=noinstall ;; |
|
*) break ;; |
|
esac |
|
do |
|
shift |
|
done |
|
test -f /bin/dash || with_dash= |
|
|
|
for branch in $branches |
|
do |
|
echo "** $branch **" |
|
revision=$(git show-ref -s --verify "refs/heads/$branch") || { |
|
echo "** No $branch" |
|
continue |
|
} |
|
test -d "$BUILDBASE/$branch" || { |
|
echo "** No $BUILDBASE/$branch" |
|
continue |
|
} |
|
|
|
private=$(git rev-parse -q --verify private-$branch 2>/dev/null) |
|
case $? in 0|1) ;; *) exit $? ;; esac |
|
|
|
if installed=$($HOME/git-$branch/bin/git version) && |
|
if version=$(expr "$installed" : '.*\.g\([0-9a-f]*\)$') |
|
then |
|
: |
|
elif version=v$(expr "$installed" : \ |
|
'git version \(.*\)\.rc[0-9]*$') |
|
then |
|
version="$version"-$(expr "$installed" : \ |
|
'git version .*\.\(rc[0-9]*\)$') |
|
else |
|
version=v$(expr "$installed" : 'git version \(.*\)') |
|
fi && |
|
version=$(git rev-parse --verify "$version^0" 2>/dev/null) && |
|
test "z$version" = "z$revision" |
|
then |
|
echo "* up-to-date version \"$installed\" is already installed from $branch" |
|
test -n "$force" || continue |
|
fi |
|
|
|
echo "** $branch" && |
|
|
|
( |
|
cd "$BUILDBASE/$branch" |
|
git checkout "$branch" && |
|
git reset --hard || exit |
|
case "$private" in |
|
'') |
|
;; |
|
?*) |
|
git merge --squash --no-commit "$private" || { |
|
echo >&2 "Cannot apply private edition changes" |
|
git reset --hard |
|
} |
|
;; |
|
esac && |
|
|
|
case "$with_dash" in |
|
y) |
|
case "$branch" in |
|
master | maint | next | jch) |
|
Meta/Make $M -- $J SHELL_PATH=/bin/dash test |
|
;; |
|
esac |
|
;; |
|
esac && |
|
|
|
Meta/Make $M -- $J all && |
|
Meta/Make $M -- $J test && |
|
case "$branch" in |
|
master | maint | next ) |
|
Meta/Make $M -- doc |
|
;; |
|
jch ) |
|
Meta/Make $M -- doc install-doc |
|
;; |
|
*) |
|
: ;; |
|
esac && |
|
{ |
|
test z$install = znoinstall || |
|
Meta/Make $M -- install |
|
} || exit $? |
|
|
|
git reset --hard |
|
) || break; |
|
|
|
done
|
|
|