TODO updates 2006-01-17.
[git.git] / DoKernelOrg
index 1c10ea6..16a3468 100755 (executable)
@@ -14,13 +14,45 @@ 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
+
        {
-               make $J install &&
-               make test &&
-               make clean &&
-               git checkout pu &&
-               make $J clean &&
-               make test clean
+               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)
@@ -34,6 +66,12 @@ maint | master)
        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 &&