
1 changed files with 101 additions and 0 deletions
@ -0,0 +1,101 @@
@@ -0,0 +1,101 @@
|
||||
#!/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 |
Loading…
Reference in new issue