[Mesa-dev] [PATCH 2/2] mesa: Include GIT SHA1 in GL version string

Kristian Høgsberg krh at bitplanet.net
Thu Mar 31 18:24:12 PDT 2011


On Thu, Mar 31, 2011 at 8:03 PM, Dan Nicholson <dbn.lists at gmail.com> wrote:
> On Thu, Mar 31, 2011 at 3:41 PM, Eric Anholt <eric at anholt.net> wrote:
>> On Thu, 31 Mar 2011 13:56:56 -0700, Corbin Simpson <mostawesomedude at gmail.com> wrote:
>>> On Thu, Mar 31, 2011 at 1:30 PM, Ian Romanick <idr at freedesktop.org> wrote:
>>> > From: Ian Romanick <ian.d.romanick at intel.com>
>>> >
>>> > ---
>>> >  Makefile                |    8 ++++++++
>>> >  src/mesa/main/version.c |    7 ++++++-
>>> >  2 files changed, 14 insertions(+), 1 deletions(-)
>>> >
>>> > diff --git a/Makefile b/Makefile
>>> > index a1ab65e..c85b903 100644
>>> > --- a/Makefile
>>> > +++ b/Makefile
>>> > @@ -5,7 +5,15 @@ TOP = .
>>> >  SUBDIRS = src
>>> >
>>> >
>>> > +# The git command below generates an empty string when we're not
>>> > +# building in a GIT tree (i.e., building from a release tarball).
>>> >  default: $(TOP)/configs/current
>>> > +       @touch src/mesa/main/git_sha1.h
>>> > +       @if which git > /dev/null; then \
>>> > +           git log -n 1 --oneline |\
>>> > +               sed 's/^\([^ ]*\) .*/#define MESA_GIT_SHA1 "\1"/' \
>>> > +               > src/mesa/main/git_sha1.h; \
>>> > +       fi
>>> >        @for dir in $(SUBDIRS) ; do \
>>> >                if [ -d $$dir ] ; then \
>>> >                        (cd $$dir && $(MAKE)) || exit 1 ; \
>>> > diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
>>> > index c7a0d69..80fa0c2 100644
>>> > --- a/src/mesa/main/version.c
>>> > +++ b/src/mesa/main/version.c
>>> > @@ -25,6 +25,7 @@
>>> >  #include "imports.h"
>>> >  #include "mtypes.h"
>>> >  #include "version.h"
>>> > +#include "git_sha1.h"
>>> >
>>> >
>>> >
>>> > @@ -185,7 +186,11 @@ compute_version(struct gl_context *ctx)
>>> >    ctx->VersionString = (char *) malloc(max);
>>> >    if (ctx->VersionString) {
>>> >       _mesa_snprintf(ctx->VersionString, max,
>>> > -                    "%u.%u Mesa " MESA_VERSION_STRING,
>>> > +                    "%u.%u Mesa " MESA_VERSION_STRING
>>> > +#ifdef MESA_GIT_SHA1
>>> > +                    " (" MESA_GIT_SHA1 ")"
>>> > +#endif
>>> > +                    ,
>>> >                     ctx->VersionMajor, ctx->VersionMinor);
>>> >    }
>>> >  }
>>> > --
>>> > 1.7.4
>>>
>>> Hmm, wouldn't the output of "git describe" be more useful?
>>
>> That's what we talked about initially, but since we tag releases of the
>> stable branches, "git describe" of master says:
>>
>> snb-magic-2692-gb3d1c77
>>
>> which is some tag off master that we pushed last year.
>
> I think krh knows the magic command, but "git rev-list HEAD" works here.

Well, no, there really isn't a good way to get a more readable output,
since we only tag the stable branches and typically only after a few
commits happen.  So if you look at the commits reachable from master,
none of them have (meaningful) tags, which means that there is nothing
for git describe to base a more readable name on.

Kristian


More information about the mesa-dev mailing list