release.sh: Handle git submodules when setting up git worktree
[xorg-util-modular.git] / haschanged.sh
blob15633ad25329cff0fc9aee06dcaf9f7c80857adb
1 #!/bin/sh
3 # Usage: haschanged.sh [-l] [tag]
5 # Show changes in git for all modules since either tag specified on command
6 # line or the most recent tag on main branch (as found by git describe)
8 # If -l is given, shows git log since tag
10 SHOW_LOG=0
12 if test "x$1" = "x-l" ; then
13 SHOW_LOG=1
14 shift
17 TAG=$1
19 haschanged() {
20 if ! test -d $1; then
21 exit $1 is not a directory
23 cd $1
24 for i in `ls -1`; do
25 if test -e $i/configure.ac; then
26 cd $i
27 if test "x${TAG}" != "x" ; then
28 LAST_TAG=`git tag -l $TAG`
29 else
30 LAST_TAG=`git describe --abbrev=0`
32 if test "x${LAST_TAG}" = "x" ; then
33 echo $1/${i}: tag ${TAG} not found
34 else
35 HEAD_DESC=`git describe`
37 if test "${HEAD_DESC}" != "${LAST_TAG}" ; then
38 echo $1/$i has changed since $LAST_TAG
39 if test "${SHOW_LOG}" = 1 ; then
40 echo ''
41 git log "${LAST_TAG}"..
42 echo '============================================'
43 echo ''
45 else
46 echo $1/$i has not changed since $LAST_TAG
49 cd ..
51 done
52 cd ..
55 haschanged app
56 haschanged data
57 haschanged doc
58 haschanged driver
59 haschanged font
60 haschanged lib
61 haschanged proto
62 haschanged util
63 haschanged xserver