resolve cache experiments.
[git.git] / Doit
1 #!/bin/sh
2
3 J='-l 1.5 -j'
4
5 test -z "$(git diff --cached --name-status)" || {
6         echo >&2 "Repository unclean."
7         exit 1
8 }
9 Meta/Make clean >/dev/null 2>&1
10
11 branches='naster master maint'
12
13 # Make sure naster is between master and pu if exists
14 if naster=`git rev-parse --verify refs/heads/naster 2>/dev/null`
15 then
16         master=`git rev-parse --verify refs/heads/master` &&
17         pu=`git rev-parse --verify refs/heads/pu` &&
18         MBM=`git merge-base --all $naster $master` &&
19         MBN=`git merge-base --all $naster $pu` &&
20         case ",$MBM,$MBN," in
21         ",$master,$naster,") ;;
22         *)      echo >&2 "naster is not between master and pu"
23                 exit 1 ;;
24         esac
25         # If naster is the same as pu, no point rebuilding pu.
26         case ",$naster,$pu," in
27         ",$pu,$naster,") ;;
28         *) branches="$branches pu" ;;
29         esac
30 fi
31
32 nstall=install
33 for branch in $branches
34 do
35         if git rev-parse --verify refs/heads/$branch 2>/dev/null
36         then
37                 echo "* $branch" &&
38                 git checkout $branch &&
39                 Meta/Make $J all &&
40                 Meta/Make $J $nstall &&
41                 Meta/Make test &&
42                 Meta/Make clean &&
43                 nstall=all || exit $?
44         else
45                 echo "* No $branch"
46         fi
47 done >./:all.log 2>&1
48
49