git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Subject: [PATCH v2 0/7] Fix leak of color/attributes in "git log --decorate"
Date: Wed,  4 Mar 2015 13:33:16 -0800	[thread overview]
Message-ID: <1425504803-16039-1-git-send-email-gitster@pobox.com> (raw)
In-Reply-To: <xmqqpp9628tl.fsf@gitster.dls.corp.google.com>

In "git log --decorate", you would see the commit header like this:

    commit ... (HEAD, jc/decorate-leaky-separator-color)

where "commit ... (" is painted in color.diff.commit, "HEAD" in
color.decorate.head, ", " in color.diff.commit, the branch name in
color.decorate.branch and then closing ")" in color.diff.commit.

However, setting color.decorate.head to normal does not paint "HEAD"
in the "normal" color you have for your terminal.  It just uses the
same color it used to paint the "(", i.e. color.diff.commit.

Fixing this was a simple one-liner; the code forgot to reset the
terminal attributes before moving on to the next item.

It however turns out that the existing documentation was rather
messy and I ended up doing some preparatory clean-up on the
documentation around how configuration variables are explained
before updating the documentation to clarify that 'normal' ought to
work (in other words, the colors and attributes are not cumulative).

I am reasonably happy with the result, and I can go with or without
[6/7].

The previous round starts at $gmane/264065 [*1*]

Junio C Hamano (7):
  Documentation/config.txt: avoid unnecessary negation
  Documentation/config.txt: explain multi-valued variables once
  Documentation/config.txt: describe the structure first and then meaning
  Documentation/config.txt: have a separate "Values" section
  Documentation/config.txt: describe 'color' value type in the "Values" section
  Documentation/config.txt: simplify boolean description in the syntax section
  log --decorate: do not leak "commit" color into the next item

 Documentation/config.txt         | 111 ++++++++++++++++++++++++---------------
 log-tree.c                       |   1 +
 t/t4207-log-decoration-colors.sh |  16 +++---
 3 files changed, 77 insertions(+), 51 deletions(-)

[Footnote]

*1* http://thread.gmane.org/gmane.comp.version-control.git/264063/focus=264065
    http://mid.gmane.org/xmqqpp9628tl.fsf@gitster.dls.corp.google.com

-- 
2.3.1-316-g7c93423

  parent reply	other threads:[~2015-03-04 21:33 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-18 21:03 [Q] should "color.*.<slot> = normal" emit nothing? Junio C Hamano
2015-02-18 21:44 ` [PATCH] log --decorate: do not leak "commit" color into the next item Junio C Hamano
2015-02-18 23:07   ` Jeff King
2015-02-19 18:02     ` Junio C Hamano
2015-02-20  1:42       ` Jeff King
2015-02-20 23:06         ` Junio C Hamano
2015-02-21  6:23           ` Jeff King
2015-02-21  7:09             ` Junio C Hamano
2015-03-04 21:33   ` Junio C Hamano [this message]
2015-03-04 21:33     ` [PATCH v2 1/7] Documentation/config.txt: avoid unnecessary negation Junio C Hamano
2015-03-04 21:33     ` [PATCH v2 2/7] Documentation/config.txt: explain multi-valued variables once Junio C Hamano
2015-03-04 21:33     ` [PATCH v2 3/7] Documentation/config.txt: describe the structure first and then meaning Junio C Hamano
2015-03-04 21:33     ` [PATCH v2 4/7] Documentation/config.txt: have a separate "Values" section Junio C Hamano
2015-03-04 21:33     ` [PATCH v2 5/7] Documentation/config.txt: describe 'color' value type in the " Junio C Hamano
2015-03-04 21:33     ` [PATCH v2 6/7] Documentation/config.txt: simplify boolean description in the syntax section Junio C Hamano
2015-03-04 21:33     ` [PATCH v2 7/7] log --decorate: do not leak "commit" color into the next item Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1425504803-16039-1-git-send-email-gitster@pobox.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).