a6be5e6764
In 'git log', the --decorate-refs-exclude option appends a pattern to a string_list. This list is used to prevent showing some refs in the decoration output, or even by --simplify-by-decoration. Users may want to use their refs space to store utility refs that should not appear in the decoration output. For example, Scalar [1] runs a background fetch but places the "new" refs inside the refs/scalar/hidden/<remote>/* refspace instead of refs/<remote>/* to avoid updating remote refs when the user is not looking. However, these "hidden" refs appear during regular 'git log' queries. A similar idea to use "hidden" refs is under consideration for core Git [2]. Add the 'log.excludeDecoration' config option so users can exclude some refs from decorations by default instead of needing to use --decorate-refs-exclude manually. The config value is multi-valued much like the command-line option. The documentation is careful to point out that the config value can be overridden by the --decorate-refs option, even though --decorate-refs-exclude would always "win" over --decorate-refs. Since the 'log.excludeDecoration' takes lower precedence to --decorate-refs, and --decorate-refs-exclude takes higher precedence, the struct decoration_filter needed another field. This led also to new logic in load_ref_decorations() and ref_filter_match(). There are several tests in t4202-log.sh that test the --decorate-refs-(include|exclude) options, so these are extended. Since the expected output is already stored as a file, most tests could simply replace a "--decorate-refs-exclude" option with an in-line config setting. Other tests involve the precedence of the config option compared to command-line options and needed more modification. [1] https://github.com/microsoft/scalar [2] https://lore.kernel.org/git/77b1da5d3063a2404cd750adfe3bb8be9b6c497d.1585946894.git.gitgitgadget@gmail.com/ Helped-by: Junio C Hamano <gister@pobox.com> Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
51 lines
2.0 KiB
Plaintext
51 lines
2.0 KiB
Plaintext
log.abbrevCommit::
|
|
If true, makes linkgit:git-log[1], linkgit:git-show[1], and
|
|
linkgit:git-whatchanged[1] assume `--abbrev-commit`. You may
|
|
override this option with `--no-abbrev-commit`.
|
|
|
|
log.date::
|
|
Set the default date-time mode for the 'log' command.
|
|
Setting a value for log.date is similar to using 'git log''s
|
|
`--date` option. See linkgit:git-log[1] for details.
|
|
|
|
log.decorate::
|
|
Print out the ref names of any commits that are shown by the log
|
|
command. 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.
|
|
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. This is the same as the `--decorate` option
|
|
of the `git log`.
|
|
|
|
log.excludeDecoration::
|
|
Exclude the specified patterns from the log decorations. This is
|
|
similar to the `--decorate-refs-exclude` command-line option, but
|
|
the config option can be overridden by the `--decorate-refs`
|
|
option.
|
|
|
|
log.follow::
|
|
If `true`, `git log` will act as if the `--follow` option was used when
|
|
a single <path> is given. This has the same limitations as `--follow`,
|
|
i.e. it cannot be used to follow multiple files and does not work well
|
|
on non-linear history.
|
|
|
|
log.graphColors::
|
|
A list of colors, separated by commas, that can be used to draw
|
|
history lines in `git log --graph`.
|
|
|
|
log.showRoot::
|
|
If true, the initial commit will be shown as a big creation event.
|
|
This is equivalent to a diff against an empty tree.
|
|
Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which
|
|
normally hide the root commit will now show it. True by default.
|
|
|
|
log.showSignature::
|
|
If true, makes linkgit:git-log[1], linkgit:git-show[1], and
|
|
linkgit:git-whatchanged[1] assume `--show-signature`.
|
|
|
|
log.mailmap::
|
|
If true, makes linkgit:git-log[1], linkgit:git-show[1], and
|
|
linkgit:git-whatchanged[1] assume `--use-mailmap`, otherwise
|
|
assume `--no-use-mailmap`. True by default.
|