X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=Doit;h=705e8c4b0c2171286f85b12b9f95c6baecb53920;hb=cc68633578c1c7f23fe249731a90eff94f17fda2;hp=7c70f94ee0eae11405a6ff08851c136a215fb16e;hpb=c150b0e7f20fa5c674dab49be912338ae42aba77;p=git.git diff --git a/Doit b/Doit index 7c70f94e..705e8c4b 100755 --- a/Doit +++ b/Doit @@ -1,44 +1,49 @@ #!/bin/sh -try_if_new () { - branch="$1" - to_install="$2" - commits=$(git-rev-list "ko-${branch}..${branch}") +J='-l 1.5 -j' - to_build=no - case "$commits" in - '') - echo "* Up-to-date at ko-$branch" - to_build=no - ;; - *) - to_build=yes - ;; - esac +test -z "$(git diff --cached --name-status)" || { + echo >&2 "Repository unclean." + exit 1 +} +Meta/Make clean >/dev/null 2>&1 - case "$to_install" in - ?*) - to_build=yes - ;; - esac +branches='naster master maint' - case "$to_build" in - yes) - Meta/Make clean >/dev/null 2>&1 && - git checkout "$branch" && - echo "* Testing $branch" && - Meta/Make clean test >./":${branch}.log" 2>&1 && - case "$to_install" in - ?*) - Meta/Make install >>./":${branch}.log" 2>&1 ;; - esac +# 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 -git fetch ko && +nstall=install +for branch in $branches +do + if git rev-parse --verify refs/heads/$branch 2>/dev/null + then + echo "* $branch" && + git checkout $branch && + Meta/Make $J all && + Meta/Make $J $nstall && + Meta/Make test && + Meta/Make clean && + nstall=all || exit $? + else + echo "* No $branch" + fi +done >./:all.log 2>&1 -try_if_new maint && -try_if_new pu && -try_if_new master install && -Meta/Make clean >/dev/null 2>&1