describe-doc:fix a obscure error description in the git log documentation
PATCH 1/1 describe-doc:fix a obscure error description in the git log documentation
From: zen96285 <[email protected]>
The git log documentation says "The default option is 'short'." This is wrong. After testing, the default value of '--decorate' is 'auto', not 'short'.
There is no difference between 'auto' and 'short' in terminal, but there is a significant difference in how they behave in the shell.The information generated by the 'short' can be saved in shell variables, while the 'auto' can't.
---
describe-doc:fix a obscure error description in the git log documenta…
The git log documentation says "The default option is 'short'." This is wrong. After testing, the default value of '--decorate' is 'auto', not 'short'.
There is no difference between 'auto' and 'short' in terminal, but there is a significant difference in how they behave in the shell.The information generated by the 'short' can be saved in shell variables, while the 'auto' can't.
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1030%2FAndy-AO%2Ffix_a_obscure_error_description_in_the_git_log_documentation-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1030/Andy-AO/fix_a_obscure_error_description_in_the_git_log_documentation-v1
Pull-Request: https://github.com/git/git/pull/1030
Documentation/git-log.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Documentation/git-log.txt +1 -1
@@ -39,7 +39,7 @@ OPTIONS full ref name (including prefix) will be printed. If 'auto' is specified, then if the output is going to a terminal, the ref names are shown as if 'short' were given, otherwise no ref names are - shown. The default option is 'short'. + shown. The default option is 'auto'. --decorate-refs=<pattern>:: --decorate-refs-exclude=<pattern>::
base-commit: 4e42405f00ecbbee412846f48cb0253efeebe726
Signature · 1 line
gitgitgadget
Hi Andy, welcome to Git mailing list!
Quoted 6 lines · Andy AO via GitGitGadget
From: zen96285 <[email protected]>
The git log documentation says "The default option is 'short'." This is wrong. After testing, the default value of '--decorate' is 'auto', not 'short'.
There is no difference between 'auto' and 'short' in terminal, but there is a significant difference in how they behave in the shell.The information generated by the 'short' can be saved in shell variables, while the 'auto' can't.
Why are info generated with 'short' option (and not 'auto') can be assigned to a variable?
Documentation/git-log.txt OPTIONS · line 43
Quoted 11 lines
Documentation/git-log.txt +1
-1@@ -39,7 +39,7 @@ OPTIONS full ref name (including prefix) will be printed. If 'auto' is specified, then if the output is going to a terminal, the ref names are shown as if 'short' were given, otherwise no ref names are - shown. The default option is 'short'. + shown. The default option is 'auto'.
Looks OK to me, thanks.
Signature · 1 line
An old man doll... just what I always wanted! - Clara
Quoted 5 lines · Andy AO via GitGitGadget
From: zen96285 <[email protected]>
The git log documentation says "The default option is 'short'." This is wrong. After testing, the default value of '--decorate' is 'auto', not 'short'.
There is no difference between 'auto' and 'short' in terminal, but there is a significant difference in how they behave in the shell.The information generated by the 'short' can be saved in shell variables, while the 'auto' can't.
Please use your real name and wrap your commit message at 50 characters for subject line and 72 characters for body.
Let's the commit message aside.
The default option is documented correctly as short. Please check out builtin/log.c:decorate_callback and builtin/log.c:parse_decoration_style.
Below command print nothing in my machine:
git log --decorate -1 >/tmp/default git log --decorate=short -1 >/tmp/short cmp /tmp/default /tmp/short
I'm curious about your config and/or command invocation. From the code, I can't guess which scenario that's different.
I think you meant:
git log -1 >/tmp/no-decorate
In that case, please check your "log.decorate" config.
Signature · 1 line
Danh
Quoted 2 lines · Đoàn Trần Công Danh
Please use your real name and wrap your commit message at 50 characters for subject line and 72 characters for body.
Very good suggestions. Thanks for raising these issues.
Quoted 4 lines
The default option is documented correctly as short. Please check out builtin/log.c:decorate_callback and builtin/log.c:parse_decoration_style.
Quoted 8 lines
Below command print nothing in my machine:
git log --decorate -1 >/tmp/default git log --decorate=short -1 >/tmp/short cmp /tmp/default /tmp/shortI'm curious about your config and/or command invocation. From the code, I can't guess which scenario that's different.
You two are thinking about two "defaults", I think. If a --decorate option you give does not say which kind of decoration you want, by default, you see the short output. The above shows that.
If you do not give any --decorate option, the command behaves as if you gave --decorate=auto, which is what the patch author wanted to say, I think.
Quoted 3 lines
I think you meant:
git log -1 >/tmp/no-decorate
Yes, and this (with redirection to file), I think you do not get any decoration---that is what you get from --decorate=auto, i.e.
git log --decorate=auto -1 >/tmp/auto-decorate
I think the default discussed in the paragraph the patch touches is "what happens if you do not say what kind, i.e. "--decorate" not "--decorate=<what kind>", so "the default is 'short'" is correct, but at the same time, "even if you do not say --decorate, you'll see short decoration when on a terminal" is worth mentioning somewhere.
Quoted 7 lines · Junio C Hamano
Quoted 3 lines
I think you meant:
git log -1 >/tmp/no-decorate
Yes, and this (with redirection to file), I think you do not get any decoration---that is what you get from --decorate=auto, i.e.
Quoted 7 lines
git log --decorate=auto -1 >/tmp/auto-decorateI think the default discussed in the paragraph the patch touches is "what happens if you do not say what kind, i.e. "--decorate" not "--decorate=<what kind>", so "the default is 'short'" is correct, but at the same time, "even if you do not say --decorate, you'll see short decoration when on a terminal" is worth mentioning somewhere.
I forgot that I have log.decorate configured to 'short'. *facepalm*
I think something like this should be nice.
----8<----
Documentation/git-log.txt +3 -1
@@ -39,7 +39,9 @@ OPTIONS full ref name (including prefix) will be printed. If 'auto' is specified, then if the output is going to a terminal, the ref names are shown as if 'short' were given, otherwise no ref names are - shown. The default option is 'short'. + shown. The option `--decorate` is short-hand for `--decorate=short`. + Default to configuration value of `log.decorate` if configured, + otherwise, `auto`. --decorate-refs=<pattern>:: --decorate-refs-exclude=<pattern>::
---->8---------
Andy, feel free to pick this up and re-wording however you like.
Signature · 1 line
Danh
Hi Đoàn,
Quoted 9 lines · Đoàn Trần Công Danh
Quoted 5 lines · Andy AO via GitGitGadget
From: zen96285 <[email protected]>
The git log documentation says "The default option is 'short'." This is wrong. After testing, the default value of '--decorate' is 'auto', not 'short'.
There is no difference between 'auto' and 'short' in terminal, but there is a significant difference in how they behave in the shell.The information generated by the 'short' can be saved in shell variables, while the 'auto' can't.
Please use your real name and wrap your commit message at 50 characters for subject line and 72 characters for body.
I think the case here was Andy forwarded this patch from someone, which happened to be also himself. Maybe that From: line above can be removed, unless that he forwarded from other people (in which From: line must be preserved).
Signature · 1 line
An old man doll... just what I always wanted! - Clara
Quoted 10 lines · Bagas Sanjaya
Hi Đoàn,
Quoted 7 lines · Đoàn Trần Công Danh
Quoted 5 lines · Andy AO via GitGitGadget
From: zen96285 <[email protected]>
The git log documentation says "The default option is 'short'." This is wrong. After testing, the default value of '--decorate' is 'auto', not 'short'.
There is no difference between 'auto' and 'short' in terminal, but there is a significant difference in how they behave in the shell.The information generated by the 'short' can be saved in shell variables, while the 'auto' can't.
Quoted 7 lines
Quoted 2 lines
Please use your real name and wrap your commit message at 50 characters for subject line and 72 characters for body.
I think the case here was Andy forwarded this patch from someone, which happened to be also himself. Maybe that From: line above can be removed, unless that he forwarded from other people (in which From: line must be preserved).
Andy is using GitGitGadget bridge.
That bridge uses its own email address ([email protected]).
Thus, the identity in the RFC 822's header: "From" should be ignored, and we should use the "From: " line in body instead.
In principle, GitGitGadget will use the Author identity in the commit that was pushed into GitHub to generate such "From: " line. So, it's Andy's resposibility to configure correct core.name and core.email in Andy's machine, and create a commit with correct authorship. Otherwise, GitGitGadget will create above message.
Hope that help.
Signature · 1 line
Danh
PATCH 1/1 doc/log: correct default for --decorate
In reply to Andy AO via GitGitGadgetThere're two different default options for log --decorate:
* Should --decorate be given without any arguments, it's default to short
* Should neither --decorate nor --no-decorate be given, it's default to the log.decorate or auto.
We documented the former, but not the latter.
Let's document them, too.
---
I'm reluctant to send this out since I would like to see Andy get familiar with the list. However, it's a while since the original patch.
Documentation/git-log.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
Documentation/git-log.txt +3 -1
@@ -39,7 +39,9 @@ OPTIONS full ref name (including prefix) will be printed. If 'auto' is specified, then if the output is going to a terminal, the ref names are shown as if 'short' were given, otherwise no ref names are - shown. The default option is 'short'. + shown. The option `--decorate` is short-hand for `--decorate=short`. + Default to configuration value of `log.decorate` if configured, + otherwise, `auto`. --decorate-refs=<pattern>:: --decorate-refs-exclude=<pattern>::
Signature · 1 line
2.32.0.5.gc7fdd17fde