On Tue, Mar 19, 2013 at 12:10:45PM +0100, Ferry Huberts wrote: > > > On 19/03/13 11:43, John Keeping wrote: > > On Tue, Mar 19, 2013 at 01:01:45AM +0100, Ferry Huberts wrote: > >> From: Ferry Huberts <ferry.hube...@pelagic.nl> > >> > >> To ensure the versions are in sync > > I like the idea of this, but I think we should be able to get away with > > something much simpler like this: > > > > run_test 'Git versions are consistent' ' > > ( cd ../git && git describe || echo "No submodule!" ) >tmp/sm_version && > > sed -n -e "/^GIT_VER[ ]*=/ { > > s/^GIT_VER[ ]*=[ ]*// > > p > > }" >tmp/make_version && > > diff -u tmp/sm_version tmp/make_version > > ' > > > > > Did you test this? > Because the submodule SHA points to the commit, not to the tag.
That's why I use "git describe" which will work in this scenario. Of course, this doesn't check the submodule version that's committed, just what is checked out in ./git, but thinking about it I'm not sure if that's actually a bad thing because it will let the tests run even when someone is checking a Git update and it will point out a not-up-to-date submodule anyway. What I did miss is stripping the initial "v" from the version returned by git-describe, so I think it can be made more robust by doing this (tested this time, so I've also fixed "tmp -> trash" and missing argument to sed): run_test 'Git versions are consistent' ' ( cd ../git && git describe --match "v[0-9]*" || echo "No submodule!" ) | sed -e "s/^v//" >trash/sm_version && sed -n -e "/^GIT_VER[ ]*=/ { s/^GIT_VER[ ]*=[ ]*// p }" ../Makefile >trash/make_version && diff -u trash/sm_version trash/make_version ' John _______________________________________________ cgit mailing list cgit@hjemli.net http://hjemli.net/mailman/listinfo/cgit