14 test -z "$(git diff --cached --name-status)" ||
{
15 echo >&2 "Repository unclean."
18 Meta
/Make clean
>/dev
/null
2>&1
20 : ${branches='next master maint pu'}
22 for branch
in $branches
24 echo >&3 "** $branch **"
26 revision
=$
(git show-ref
-s --verify "refs/heads/$branch") ||
{
31 if installed
=$
($HOME/git-
$branch/bin
/git version
) &&
32 if version
=$
(expr "$installed" : '.*\.g\([0-9a-f]*\)$')
35 elif version
=v$
(expr "$installed" : \
36 'git version \(.*\)\.rc[0-9]*$')
38 version
="$version"-$
(expr "$installed" : \
39 'git version .*\.\(rc[0-9]*\)$')
41 version
=v$
(expr "$installed" : 'git version \(.*\)')
43 version
=$
(git rev-parse
--verify "$version^0" 2>/dev
/null
) &&
44 test "z$version" = "z$revision"
46 echo "* up-to-date version \"$installed\" is already installed from $branch"
47 test -n "$force" ||
continue
51 git checkout
$branch &&
52 Meta
/Make
$M -- $J all
&&
53 Meta
/Make
$M -- test &&
54 Meta
/Make
$M -- install &&
55 Meta
/Make clean ||
exit $?
57 done >.
/:all.log
3>&2 2>&1