diff mbox series

blame: document --color-* options

Message ID 20210925121817.1089897-1-bagasdotme@gmail.com (mailing list archive)
State New, archived
Headers show
Series blame: document --color-* options | expand

Commit Message

Bagas Sanjaya Sept. 25, 2021, 12:18 p.m. UTC
Commit cdc2d5f11f1a (builtin/blame: dim uninteresting metadata lines,
2018-04-23) and 25d5f52901f0 (builtin/blame: highlight recently changed
lines, 2018-04-23) introduce --color-lines and --color-by-age options to
git blame, respectively. While both options are mentioned in usage help,
they aren't documented in git-blame(1). Document them.

Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
---
 Documentation/blame-options.txt | 8 ++++++++
 Documentation/git-blame.txt     | 4 ++--
 2 files changed, 10 insertions(+), 2 deletions(-)


base-commit: 99c99ed8259bf070cd8ae7b51a94904b7cf5c161

Comments

Bagas Sanjaya Sept. 25, 2021, 12:24 p.m. UTC | #1
On 25/09/21 19.18, Bagas Sanjaya wrote:
> Commit cdc2d5f11f1a (builtin/blame: dim uninteresting metadata lines,
> 2018-04-23) and 25d5f52901f0 (builtin/blame: highlight recently changed
> lines, 2018-04-23) introduce --color-lines and --color-by-age options to
> git blame, respectively. While both options are mentioned in usage help,
> they aren't documented in git-blame(1). Document them.
> 
> Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>

Oops, I forgot Reported-by trailer.

Reported-by: Dr. Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
Junio C Hamano Sept. 27, 2021, 7:44 p.m. UTC | #2
Bagas Sanjaya <bagasdotme@gmail.com> writes:

> diff --git a/Documentation/blame-options.txt b/Documentation/blame-options.txt
> index 117f4cf806..b15999a3c8 100644
> --- a/Documentation/blame-options.txt
> +++ b/Documentation/blame-options.txt
> @@ -136,5 +136,13 @@ take effect.
>  	option.  An empty file name, `""`, will clear the list of revs from
>  	previously processed files.
>  
> +--color-lines::
> +	Color lines that contain repeated metadata. The color used is set with
> +	`color.blame.repeatedLines` config option.
> +
> +--color-by-age::
> +	Color metadata depending on age of the line. `color.blame.highlightRecent`
> +	config option controls what color is used for each range of age.

Nowhere in "git blame --help" output we mention anything about
"metadata", so the readers of this new description will be left
puzzled what the word means in the context of this command.

We would need to pick words or phrases that readers can link easily
with the description of "THE PORCELAIN FORMAT" section.

Thanks.
Bagas Sanjaya Sept. 28, 2021, 5:43 a.m. UTC | #3
On 28/09/21 02.44, Junio C Hamano wrote:
> Nowhere in "git blame --help" output we mention anything about
> "metadata", so the readers of this new description will be left
> puzzled what the word means in the context of this command.
> 
> We would need to pick words or phrases that readers can link easily
> with the description of "THE PORCELAIN FORMAT" section.

In git-blame(1), we only describe output format for "THE PORCELAIN 
FORMAT" as well as "INCREMENTAL OUTPUT", but not default format.

On the other hand, --color-* options only works on default format, not 
the others.
Dr. Matthias St. Pierre Sept. 28, 2021, 12:38 p.m. UTC | #4
Thank you Bagas for adding the documentation. I think the only that disturbed Junio is the use of the word "metadata",
which is used internally, but not in the official documentation aimed at the git user.

Starting from your patch, I added some suggestions for alternative wordings.

Regards,
Matthias



commit ae2c59b7c76d9201d68aeb21b0ce57f2845732a1
Author: Bagas Sanjaya <bagasdotme@gmail.com>
Date:   Tue Sep 28 10:11:23 2021 +0200

    blame: document --color-* options

    Commit cdc2d5f11f1a (builtin/blame: dim uninteresting metadata lines,
    2018-04-23) and 25d5f52901f0 (builtin/blame: highlight recently changed
    lines, 2018-04-23) introduce --color-lines and --color-by-age options to
    git blame, respectively. While both options are mentioned in usage help,
    they aren't documented in git-blame(1). Document them.

    Co-authored-by: Dr. Matthias St. Pierre <m.st.pierre@ncp-e.com>

diff --git a/Documentation/blame-options.txt b/Documentation/blame-options.txt
index 117f4cf806..1560f2b6df 100644
--- a/Documentation/blame-options.txt
+++ b/Documentation/blame-options.txt
@@ -136,5 +136,15 @@ take effect.
 option.  An empty file name, `""`, will clear the list of revs from
 previously processed files.

+--color-lines::
+Color lines differently if they belong to the same commit as the preceding line.
+This facilitates distinguishing code blocks introduced by different commits.
+The color defaults to cyan and be adjusted using the `color.blame.repeatedLines`
+config option.
+
+--color-by-age::
+Color lines depending on the age of the line. The `color.blame.highlightRecent`
+config option controls what color is used for which range of age.
+
 -h::
 Show help message.
diff --git a/Documentation/config/color.txt b/Documentation/config/color.txt
index e05d520a86..a1cf36fc89 100644
--- a/Documentation/config/color.txt
+++ b/Documentation/config/color.txt
@@ -9,8 +9,8 @@ color.advice.hint::
 Use customized color for hints.

 color.blame.highlightRecent::
-This can be used to color the metadata of a blame line depending
-on age of the line.
+Used to color line annotations differently depending on the age of the commit
+(`git blame --color-by-age`).
 +
 This setting should be set to a comma-separated list of color and date settings,
 starting and ending with a color, the dates should be set from oldest to newest.
@@ -25,10 +25,9 @@ everything older than one year blue, recent changes between one month and
 one year old are kept white, and lines introduced within the last month are
 colored red.

-color.blame.repeatedLines::
-Use the customized color for the part of git-blame output that
-is repeated meta information per line (such as commit id,
-author name, date and timezone). Defaults to cyan.
+color.blame.repeated
+Use this color to colorize line annotations, if they belong to the same commit
+as the preceding line (`git blame --color-lines`). Defaults to cyan.

 color.branch::
 A boolean to enable/disable color in the output of
diff --git a/Documentation/git-blame.txt b/Documentation/git-blame.txt
index 3bf5d5d8b4..cfdbad030b 100644
--- a/Documentation/git-blame.txt
+++ b/Documentation/git-blame.txt
@@ -11,8 +11,8 @@ SYNOPSIS
 'git blame' [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] [--incremental]
     [-L <range>] [-S <revs-file>] [-M] [-C] [-C] [-C] [--since=<date>]
     [--ignore-rev <rev>] [--ignore-revs-file <file>]
-    [--progress] [--abbrev=<n>] [<rev> | --contents <file> | --reverse <rev>..<rev>]
-    [--] <file>
+    [--color-lines] [--color-by-age] [--progress] [--abbrev=<n>]
+    [<rev> | --contents <file> | --reverse <rev>..<rev>] [--] <file>

 DESCRIPTION
 -----------


Dr. Matthias St. Pierre
Tech Lead Cryptography
matthias.st.pierre@ncp-e.com
Phone: +49 911 9968-0
 www.ncp-e.com

Headquarters Germany: NCP engineering GmbH • Dombuehler Str. 2 • 90449 • Nuremberg
North American HQ: NCP engineering Inc. • 601 Cleveland Str., Suite 501-25 • Clearwater, FL 33755

Authorized representatives: Peter Soell, Patrick Oliver Graf, Beate Dietrich
Registry Court: Lower District Court of Nuremberg
Commercial register No.: HRB 7786 Nuremberg, VAT identification No.: DE 133557619

This e-mail message including any attachments is for the sole use of the intended recipient(s) and may contain privileged
or confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient,
please immediately contact the sender by reply e-mail and delete the original message and destroy all copies thereof.
Junio C Hamano Sept. 28, 2021, 4:22 p.m. UTC | #5
Bagas Sanjaya <bagasdotme@gmail.com> writes:

> On 28/09/21 02.44, Junio C Hamano wrote:
>> Nowhere in "git blame --help" output we mention anything about
>> "metadata", so the readers of this new description will be left
>> puzzled what the word means in the context of this command.
>> We would need to pick words or phrases that readers can link easily
>> with the description of "THE PORCELAIN FORMAT" section.
>
> In git-blame(1), we only describe output format for "THE PORCELAIN
> FORMAT" as well as "INCREMENTAL OUTPUT", but not default format.
>
> On the other hand, --color-* options only works on default format, not
> the others.

Sorry for skipping a level of logical progression in the suggestion.

While I do not think we want to add another section for the default
format, if we were to add such a section, the new description should
use phrases that would have been used, and such a section would not
use a new and unclear "metadata" in the description.  Instead it
would use phrases that the users can look for elsewhere in the same
documentation.

What is colored is the summary of the commit the line came from
(abbreviated commit object name, plus the author name and time by
default) plus the line number, I think.

Thanks.
Bagas Sanjaya Sept. 29, 2021, 8:01 a.m. UTC | #6
On 28/09/21 19.38, Dr. Matthias St. Pierre wrote:
> -color.blame.repeatedLines::
> -Use the customized color for the part of git-blame output that
> -is repeated meta information per line (such as commit id,
> -author name, date and timezone). Defaults to cyan.
> +color.blame.repeated
> +Use this color to colorize line annotations, if they belong to the same commit
> +as the preceding line (`git blame --color-lines`). Defaults to cyan.

Why did you change the config name? I think you make mistake here: the 
config name should stay as `color.blame.repeatedLines`.
Bagas Sanjaya Sept. 29, 2021, 9:15 a.m. UTC | #7
On 28/09/21 23.22, Junio C Hamano wrote:
> Sorry for skipping a level of logical progression in the suggestion.
> 
> While I do not think we want to add another section for the default
> format, if we were to add such a section, the new description should
> use phrases that would have been used, and such a section would not
> use a new and unclear "metadata" in the description.  Instead it
> would use phrases that the users can look for elsewhere in the same
> documentation.
> 
> What is colored is the summary of the commit the line came from
> (abbreviated commit object name, plus the author name and time by
> default) plus the line number, I think.
> 
> Thanks.
> 

Stefan mentioned "metadata" term to describe the line annotation, from 
commit cdc2d5f11f1a:

>     When using git-blame lots of lines contain redundant information, for
>     example in hunks that consist of multiple lines, the metadata (commit
>     name, author, date) are repeated. A reader may not be interested in those,
>     so offer an option to color the information that is repeated from the
>     previous line differently. Traditionally, we use CYAN for lines that
>     are less interesting than others (e.g. hunk header), so go with that.
Dr. Matthias St. Pierre Sept. 29, 2021, 9:19 a.m. UTC | #8
> On 28/09/21 19.38, Dr. Matthias St. Pierre wrote:
> > -color.blame.repeatedLines::
> > -Use the customized color for the part of git-blame output that
> > -is repeated meta information per line (such as commit id,
> > -author name, date and timezone). Defaults to cyan.
> > +color.blame.repeated
> > +Use this color to colorize line annotations, if they belong to the same commit
> > +as the preceding line (`git blame --color-lines`). Defaults to cyan.
>
> Why did you change the config name? I think you make mistake here: the
> config name should stay as `color.blame.repeatedLines`.

Yes, you are right. That was not an intended change, the name was truncated accidentally.

Matthias



Dr. Matthias St. Pierre
Tech Lead Cryptography
matthias.st.pierre@ncp-e.com
Phone: +49 911 9968-0
 www.ncp-e.com

Headquarters Germany: NCP engineering GmbH • Dombuehler Str. 2 • 90449 • Nuremberg
North American HQ: NCP engineering Inc. • 601 Cleveland Str., Suite 501-25 • Clearwater, FL 33755

Authorized representatives: Peter Soell, Patrick Oliver Graf, Beate Dietrich
Registry Court: Lower District Court of Nuremberg
Commercial register No.: HRB 7786 Nuremberg, VAT identification No.: DE 133557619

This e-mail message including any attachments is for the sole use of the intended recipient(s) and may contain privileged
or confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient,
please immediately contact the sender by reply e-mail and delete the original message and destroy all copies thereof.
Bagas Sanjaya Sept. 29, 2021, 9:51 a.m. UTC | #9
On 28/09/21 19.38, Dr. Matthias St. Pierre wrote:
> Thank you Bagas for adding the documentation. I think the only that disturbed Junio is the use of the word "metadata",
> which is used internally, but not in the official documentation aimed at the git user.
> 
> Starting from your patch, I added some suggestions for alternative wordings.
> 
> Regards,
> Matthias
> 
> 
> 
> commit ae2c59b7c76d9201d68aeb21b0ce57f2845732a1
> Author: Bagas Sanjaya <bagasdotme@gmail.com>
> Date:   Tue Sep 28 10:11:23 2021 +0200
> 
>      blame: document --color-* options
> 
>      Commit cdc2d5f11f1a (builtin/blame: dim uninteresting metadata lines,
>      2018-04-23) and 25d5f52901f0 (builtin/blame: highlight recently changed
>      lines, 2018-04-23) introduce --color-lines and --color-by-age options to
>      git blame, respectively. While both options are mentioned in usage help,
>      they aren't documented in git-blame(1). Document them.
> 
>      Co-authored-by: Dr. Matthias St. Pierre <m.st.pierre@ncp-e.com>
> 
> diff --git a/Documentation/blame-options.txt b/Documentation/blame-options.txt
> index 117f4cf806..1560f2b6df 100644
> --- a/Documentation/blame-options.txt
> +++ b/Documentation/blame-options.txt
> @@ -136,5 +136,15 @@ take effect.
>   option.  An empty file name, `""`, will clear the list of revs from
>   previously processed files.
> 
> +--color-lines::
> +Color lines differently if they belong to the same commit as the preceding line.
> +This facilitates distinguishing code blocks introduced by different commits.
> +The color defaults to cyan and be adjusted using the `color.blame.repeatedLines`
> +config option.
> +
> +--color-by-age::
> +Color lines depending on the age of the line. The `color.blame.highlightRecent`
> +config option controls what color is used for which range of age.
> +
>   -h::
>   Show help message.
> diff --git a/Documentation/config/color.txt b/Documentation/config/color.txt
> index e05d520a86..a1cf36fc89 100644
> --- a/Documentation/config/color.txt
> +++ b/Documentation/config/color.txt
> @@ -9,8 +9,8 @@ color.advice.hint::
>   Use customized color for hints.
> 
>   color.blame.highlightRecent::
> -This can be used to color the metadata of a blame line depending
> -on age of the line.
> +Used to color line annotations differently depending on the age of the commit
> +(`git blame --color-by-age`).
>   +
>   This setting should be set to a comma-separated list of color and date settings,
>   starting and ending with a color, the dates should be set from oldest to newest.
> @@ -25,10 +25,9 @@ everything older than one year blue, recent changes between one month and
>   one year old are kept white, and lines introduced within the last month are
>   colored red.
> 
> -color.blame.repeatedLines::
> -Use the customized color for the part of git-blame output that
> -is repeated meta information per line (such as commit id,
> -author name, date and timezone). Defaults to cyan.
> +color.blame.repeated
> +Use this color to colorize line annotations, if they belong to the same commit
> +as the preceding line (`git blame --color-lines`). Defaults to cyan.
> 
>   color.branch::
>   A boolean to enable/disable color in the output of
> diff --git a/Documentation/git-blame.txt b/Documentation/git-blame.txt
> index 3bf5d5d8b4..cfdbad030b 100644
> --- a/Documentation/git-blame.txt
> +++ b/Documentation/git-blame.txt
> @@ -11,8 +11,8 @@ SYNOPSIS
>   'git blame' [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] [--incremental]
>       [-L <range>] [-S <revs-file>] [-M] [-C] [-C] [-C] [--since=<date>]
>       [--ignore-rev <rev>] [--ignore-revs-file <file>]
> -    [--progress] [--abbrev=<n>] [<rev> | --contents <file> | --reverse <rev>..<rev>]
> -    [--] <file>
> +    [--color-lines] [--color-by-age] [--progress] [--abbrev=<n>]
> +    [<rev> | --contents <file> | --reverse <rev>..<rev>] [--] <file>
> 
>   DESCRIPTION
>   -----------
> 
> 

I can't apply the suggestion patch above. You sent the patch with 
S/MIME, right?

Next time, whether you post patches here, learn to use git format-patch 
and git send-email. Send patches in plain text only, *no (S/)MIME, no 
links, no compression, no attachments*.

Please resend your suggestion patch using git send-email, keeping in 
mind the guidelines above.
Dr. Matthias St. Pierre Sept. 29, 2021, 10:53 a.m. UTC | #10
> I can't apply the suggestion patch above. You sent the patch with
> S/MIME, right?
>
> Next time, whether you post patches here, learn to use git format-patch
> and git send-email. Send patches in plain text only, *no (S/)MIME, no
> links, no compression, no attachments*.
>
> Please resend your suggestion patch using git send-email, keeping in
> mind the guidelines above.

I'm sorry for the inconvenience: my company has a fancy-super-smart mail gateway
which adds stuff to the mail which is out of my control. For that reason, git send-email
currently doesn't work for me. So I kindly ask to pull the commit from my GitHub fork:

  git fetch https://github.com/mspncp/git.git document-git-blame-color-options
  git checkout -b document-git-blame-color-options

The truncated option name has already been corrected.

Matthias



Dr. Matthias St. Pierre
Tech Lead Cryptography
matthias.st.pierre@ncp-e.com
Phone: +49 911 9968-0
 www.ncp-e.com

Headquarters Germany: NCP engineering GmbH • Dombuehler Str. 2 • 90449 • Nuremberg
North American HQ: NCP engineering Inc. • 601 Cleveland Str., Suite 501-25 • Clearwater, FL 33755

Authorized representatives: Peter Soell, Patrick Oliver Graf, Beate Dietrich
Registry Court: Lower District Court of Nuremberg
Commercial register No.: HRB 7786 Nuremberg, VAT identification No.: DE 133557619

This e-mail message including any attachments is for the sole use of the intended recipient(s) and may contain privileged
or confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient,
please immediately contact the sender by reply e-mail and delete the original message and destroy all copies thereof.
Dr. Matthias St. Pierre Sept. 29, 2021, 11:52 a.m. UTC | #11
Sorry, I forgot 'FETCH_HEAD':

  git fetch https://github.com/mspncp/git.git document-git-blame-color-options
  git checkout -b document-git-blame-color-options FETCH_HEAD


Dr. Matthias St. Pierre
Tech Lead Cryptography
matthias.st.pierre@ncp-e.com
Phone: +49 911 9968-0
 www.ncp-e.com

Headquarters Germany: NCP engineering GmbH • Dombuehler Str. 2 • 90449 • Nuremberg
North American HQ: NCP engineering Inc. • 601 Cleveland Str., Suite 501-25 • Clearwater, FL 33755

Authorized representatives: Peter Soell, Patrick Oliver Graf, Beate Dietrich
Registry Court: Lower District Court of Nuremberg
Commercial register No.: HRB 7786 Nuremberg, VAT identification No.: DE 133557619

This e-mail message including any attachments is for the sole use of the intended recipient(s) and may contain privileged
or confidential information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient,
please immediately contact the sender by reply e-mail and delete the original message and destroy all copies thereof.
Junio C Hamano Sept. 29, 2021, 6:30 p.m. UTC | #12
Bagas Sanjaya <bagasdotme@gmail.com> writes:

> Stefan mentioned "metadata" term to describe the line annotation, from
> commit cdc2d5f11f1a:
>
>>     When using git-blame lots of lines contain redundant information, for
>>     example in hunks that consist of multiple lines, the metadata (commit
>>     name, author, date) are repeated. A reader may not be interested in those,
>>     so offer an option to color the information that is repeated from the
>>     previous line differently. Traditionally, we use CYAN for lines that
>>     are less interesting than others (e.g. hunk header), so go with that.

The documentation is for our end users, who may not have read our
commit log messages, so phrasing that was used in an old commit
message would not help them.
diff mbox series

Patch

diff --git a/Documentation/blame-options.txt b/Documentation/blame-options.txt
index 117f4cf806..b15999a3c8 100644
--- a/Documentation/blame-options.txt
+++ b/Documentation/blame-options.txt
@@ -136,5 +136,13 @@  take effect.
 	option.  An empty file name, `""`, will clear the list of revs from
 	previously processed files.
 
+--color-lines::
+	Color lines that contain repeated metadata. The color used is set with
+	`color.blame.repeatedLines` config option.
+
+--color-by-age::
+	Color metadata depending on age of the line. `color.blame.highlightRecent`
+	config option controls what color is used for each range of age.
+
 -h::
 	Show help message.
diff --git a/Documentation/git-blame.txt b/Documentation/git-blame.txt
index 3bf5d5d8b4..cfdbad030b 100644
--- a/Documentation/git-blame.txt
+++ b/Documentation/git-blame.txt
@@ -11,8 +11,8 @@  SYNOPSIS
 'git blame' [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] [--incremental]
 	    [-L <range>] [-S <revs-file>] [-M] [-C] [-C] [-C] [--since=<date>]
 	    [--ignore-rev <rev>] [--ignore-revs-file <file>]
-	    [--progress] [--abbrev=<n>] [<rev> | --contents <file> | --reverse <rev>..<rev>]
-	    [--] <file>
+	    [--color-lines] [--color-by-age] [--progress] [--abbrev=<n>]
+	    [<rev> | --contents <file> | --reverse <rev>..<rev>] [--] <file>
 
 DESCRIPTION
 -----------