threads / discuss / 36698

Git showing tags in logs when it shouldn't

Subject: Git showing tags in logs when it shouldn't

## tl;dr

2 messages between May 19, 2014 and May 19, 2014.

replies: 1people: 2as markdown or json

Robert Dailey· May 19, 2014, 13:17 UTC · lore
I have run the following command:

log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset)%x09%C(bold green)(%ar)%C(reset)%C(bold yellow)%d%C(reset) %C(dim white)%an%C(reset) - %C(white)%s%C(reset)'

After running this, I am seeing tag labels in the log graph. I believe these shouldn't be showing because the docs for --decorate state that refs/tags/ should not show. I'm also obviously not specifying --tags

Is this a bug? If not, what changes do I need to make? I only want to see branch labels, nothing else.

Jeff King· May 19, 2014, 14:53 UTC · re: Robert Dailey · lore

Re: Git showing tags in logs when it shouldn't

On Mon, May 19, 2014 at 08:17:07AM -0500, Robert Dailey wrote:
Show 13 quoted lines
> I have run the following command:
> 
> log --graph --abbrev-commit --decorate --date=relative
> --format=format:'%C(bold blue)%h%C(reset)%x09%C(bold
> green)(%ar)%C(reset)%C(bold yellow)%d%C(reset) %C(dim
> white)%an%C(reset) - %C(white)%s%C(reset)'
> 
> After running this, I am seeing tag labels in the log graph. I believe
> these shouldn't be showing because the docs for --decorate state that
> refs/tags/ should not show. I'm also obviously not specifying --tags
> 
> Is this a bug? If not, what changes do I need to make? I only want to
> see branch labels, nothing else.
I assume the docs you are referring to are (from "git help log"):
  --no-decorate, --decorate[=short|full|no]
    Print out the ref names of any commits that are shown. If short is
    specified, the ref name prefixes refs/heads/, refs/tags/ and
    refs/remotes/ will not be printed. If full is specified, the full
    ref name (including prefix) will be printed. The default option is
    short.

The intent of that is to say that if we are in "short" mode, then for any ref names we show, we will show them without their "refs/heads", "refs/tags", or "refs/remotes" prefixes. Not that we will omit those refs entirely (if you omitted those three, you would generally have nothing left).

So no, it is not a bug, the code is working as intended. Patches welcome for rewriting the documentation to make this more clear (I thought it was pretty clear, but I believe you are the second person in the last few weeks to misread it in exactly the same way, so it is not just you).

I don't think there is currently a way to specify exactly what you want. Off the top of my head, it would be something like a "--decorate-refs=<pattern>" option, which lets you specify which refs are interesting (right now, we always decorate _all_ refs). But that does not yet exist, and somebody would have to volunteer to implement it.

-Peff

← back to recent threads