threads / discuss / 33663

`git describe` in an export-subst format string?

Subject: `git describe` in an export-subst format string?

## tl;dr

3 messages between Apr 28, 2013 and Apr 28, 2013.

replies: 2people: 2as markdown or json

John Gallagher· Apr 28, 2013, 18:02 UTC · lore

I originally posted this as a question about getting `git log` to output the same thing that `git describe` does to the git-users mailing list, and was directed here. The actual thing I want to do is something like this:

  static const char *project_version = "$Format:...$";

where "..." is something that `git archive` will replace with the output of `git describe`, given the file has the export-subst property, possibly with arguments to git describe (--tags, --all, etc.). In a normal build I can do this with the build system just calling git directly, but if I'm archiving a tarball off there doesn't seem to be a way to do this (other than manually replacing the format string myself as some secondary step).

Does this seem like a reasonable thing to do, or am I overlooking a better alternative? If this is something that seems reasonable, I wouldn't mind taking a stab at implementing it. If that sounds okay, could make sure I'm pointed in the right direction? E.g., should `git log --format=...` have options that spit out `git describe` strings since that's what export-subst currently uses, or should there be a separate $Format:...$ option that runs git describe?

Thanks, John

Junio C Hamano· Apr 28, 2013, 21:32 UTC · re: John Gallagher · lore

Re: `git describe` in an export-subst format string?

John Gallagher <johnkgallagher@gmail.com> writes:
Show 7 quoted lines
> The actual thing I want to do is
> something like this:
>
>   static const char *project_version = "$Format:...$";
>
> where "..." is something that `git archive` will replace with the
> output of `git describe`,...

You need to find an appropriate pair of placeholders that can represent "git describe $it" and "git describe --contains $it".

I am tempted to suggest a more generalized way that is not limited to describe at all, perhaps like this:

    $ git show --format='%x( git describe %H )'
    $ git show --format='%x( git describe --contains %H )'
Junio C Hamano· Apr 28, 2013, 22:52 UTC · re: Junio C Hamano · lore

Re: `git describe` in an export-subst format string?

Junio C Hamano <gitster@pobox.com> writes:
Show 18 quoted lines
> John Gallagher <johnkgallagher@gmail.com> writes:
>
>> The actual thing I want to do is
>> something like this:
>>
>>   static const char *project_version = "$Format:...$";
>>
>> where "..." is something that `git archive` will replace with the
>> output of `git describe`,...
>
> You need to find an appropriate pair of placeholders that can
> represent "git describe $it" and "git describe --contains $it".
>
> I am tempted to suggest a more generalized way that is not limited
> to describe at all, perhaps like this:
>
>     $ git show --format='%x( git describe %H )'
>     $ git show --format='%x( git describe --contains %H )'

Just in case anybody takes it too seriously, this particular implementaiton will never be acceptable at least for use in "$Format:" of export-subst.

I am "tempted to" suggest, but am not crazy enough to actually doing so ;-).

← back to recent threads