threads / discuss / 32147

git-describe fails with "--dirty is incompatible with committishes" if passing HEAD as argument

Subject: git-describe fails with "--dirty is incompatible with committishes" if passing HEAD as argument

## tl;dr

3 messages between Nov 19, 2012 and Nov 19, 2012.

replies: 2people: 2as markdown or json

Francis Moreau· Nov 19, 2012, 15:47 UTC · lore
Hello,
Inside the kernel repository, I tried this:

$ git describe --dirty --match 'v[0-9]*' --abbrev=4 HEAD fatal: --dirty is incompatible with committishes

If 'HEAD' is removed then git-describe works as expected.
Is that expected ?

Thanks -- Francis

Junio C Hamano· Nov 19, 2012, 19:36 UTC · re: Francis Moreau · lore

Re: git-describe fails with "--dirty is incompatible with committishes" if passing HEAD as argument

Francis Moreau <francis.moro@gmail.com> writes:
Show 8 quoted lines
> Inside the kernel repository, I tried this:
>
> $ git describe --dirty --match 'v[0-9]*' --abbrev=4 HEAD
> fatal: --dirty is incompatible with committishes
>
> If 'HEAD' is removed then git-describe works as expected.
>
> Is that expected ?
I would say so, at least in modern codebase.

"git describe" without any commit object name used to mean "describe the HEAD commit using the better known points" before the --dirty option was introduced.

But "--dirty" makes it describe the current checkout. For example, output from "git describe --dirty" v1.8.0-211-gd8b4531-dirty means "your working tree contains work-in-progress based on d8b4531, which is 211 commits ahead of the v1.8.0 tag". So conceptually, it should not take any commit, even if it were spelled HEAD.

"git describe --dirty HEAD^^" would be an utter nonsense for the same reason.

Francis Moreau· Nov 19, 2012, 20:39 UTC · re: Junio C Hamano · lore

Re: git-describe fails with "--dirty is incompatible with committishes" if passing HEAD as argument

On Mon, Nov 19, 2012 at 8:36 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 25 quoted lines
> Francis Moreau <francis.moro@gmail.com> writes:
>
>> Inside the kernel repository, I tried this:
>>
>> $ git describe --dirty --match 'v[0-9]*' --abbrev=4 HEAD
>> fatal: --dirty is incompatible with committishes
>>
>> If 'HEAD' is removed then git-describe works as expected.
>>
>> Is that expected ?
>
> I would say so, at least in modern codebase.
>
> "git describe" without any commit object name used to mean "describe
> the HEAD commit using the better known points" before the --dirty
> option was introduced.
>
> But "--dirty" makes it describe the current checkout.  For example,
> output from "git describe --dirty" v1.8.0-211-gd8b4531-dirty means
> "your working tree contains work-in-progress based on d8b4531, which
> is 211 commits ahead of the v1.8.0 tag".  So conceptually, it should
> not take any commit, even if it were spelled HEAD.
>
> "git describe --dirty HEAD^^" would be an utter nonsense for the
> same reason.
Thanks for explaining, that makes sense.

-- Francis

← back to recent threads