<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/log-tree.h, branch v2.34.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.34.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.34.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2021-10-01T21:39:46Z</updated>
<entry>
<title>log-tree.h: remove unused function declarations</title>
<updated>2021-10-01T21:39:46Z</updated>
<author>
<name>Ævar Arnfjörð Bjarmason</name>
<email>avarab@gmail.com</email>
</author>
<published>2021-10-01T10:37:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=067e73c8aee9aeb05eac939205274cd2ad8b7cae'/>
<id>urn:sha1:067e73c8aee9aeb05eac939205274cd2ad8b7cae</id>
<content type='text'>
The init_log_tree_opt() and log_tree_opt_parse() functions were
removed in cd2bdc53094 (Common option parsing for "git log --diff" and
friends, 2006-04-14), but not their corresponding *.h declaration.

Signed-off-by: Ævar Arnfjörð Bjarmason &lt;avarab@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>format-patch: make output filename configurable</title>
<updated>2020-11-10T01:44:41Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2020-11-06T21:56:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=3baf58bfb4bcfe201970abeffa8e1396d2324250'/>
<id>urn:sha1:3baf58bfb4bcfe201970abeffa8e1396d2324250</id>
<content type='text'>
For the past 15 years, we've used the hardcoded 64 as the length
limit of the filename of the output from the "git format-patch"
command.  Since the value is shorter than the 80-column terminal, it
could grow without line wrapping a bit.  At the same time, since the
value is longer than half of the 80-column terminal, we could fit
two or more of them in "ls" output on such a terminal if we allowed
to lower it.

Introduce a new command line option --filename-max-length=&lt;n&gt; and a
new configuration variable format.filenameMaxLength to override the
hardcoded default.

While we are at it, remove a check that the name of output directory
does not exceed PATH_MAX---this check is pointless in that by the
time control reaches the function, the caller would already have
done an equivalent of "mkdir -p", so if the system does not like an
overly long directory name, the control wouldn't have reached here,
and otherwise, we know that the system allowed the output directory
to exist.  In the worst case, we will get an error when we try to
open the output file and handle the error correctly anyway.

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>log: add log.excludeDecoration config option</title>
<updated>2020-04-16T18:05:48Z</updated>
<author>
<name>Derrick Stolee</name>
<email>dstolee@microsoft.com</email>
</author>
<published>2020-04-16T14:15:49Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a6be5e6764aabd4b418f7f365254518ec44c38d8'/>
<id>urn:sha1:a6be5e6764aabd4b418f7f365254518ec44c38d8</id>
<content type='text'>
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/&lt;remote&gt;/* refspace instead of refs/&lt;remote&gt;/*
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 &lt;gister@pobox.com&gt;
Signed-off-by: Derrick Stolee &lt;dstolee@microsoft.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>format-patch: make cover letters always text/plain</title>
<updated>2018-05-02T03:55:00Z</updated>
<author>
<name>brian m. carlson</name>
<email>sandals@crustytoothpaste.net</email>
</author>
<published>2018-05-02T02:20:52Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=50cd54ef4e6f4279683b61417a35de7297b55b9d'/>
<id>urn:sha1:50cd54ef4e6f4279683b61417a35de7297b55b9d</id>
<content type='text'>
When formatting a series of patches using --attach and --cover-letter,
the cover letter lacks the closing MIME boundary, violating RFC 2046.
Certain clients, such as Thunderbird, discard the message body in such a
case.

Since the cover letter is just one part and sending it as
multipart/mixed is not very useful, always emit it as text/plain,
avoiding the boundary problem altogether.

Reported-by: Patrick Hemmer &lt;git@stormcloud9.net&gt;
Signed-off-by: brian m. carlson &lt;sandals@crustytoothpaste.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>log: add option to choose which refs to decorate</title>
<updated>2017-11-22T04:18:59Z</updated>
<author>
<name>Rafael Ascensão</name>
<email>rafa.almas@gmail.com</email>
</author>
<published>2017-11-21T21:33:41Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=65516f586b69307f977cd67cc45513a296cabc25'/>
<id>urn:sha1:65516f586b69307f977cd67cc45513a296cabc25</id>
<content type='text'>
When `log --decorate` is used, git will decorate commits with all
available refs. While in most cases this may give the desired effect,
under some conditions it can lead to excessively verbose output.

Introduce two command line options, `--decorate-refs=&lt;pattern&gt;` and
`--decorate-refs-exclude=&lt;pattern&gt;` to allow the user to select which
refs are used in decoration.

When "--decorate-refs=&lt;pattern&gt;" is given, only the refs that match the
pattern are used in decoration. The refs that match the pattern when
"--decorate-refs-exclude=&lt;pattern&gt;" is given, are never used in
decoration.

These options follow the same convention for mixing negative and
positive patterns across the system, assuming that the inclusive default
is to match all refs available.

 (1) if there is no positive pattern given, pretend as if an
     inclusive default positive pattern was given;

 (2) for each candidate, reject it if it matches no positive
     pattern, or if it matches any one of the negative patterns.

The rules for what is considered a match are slightly different from the
rules used elsewhere.

Commands like `log --glob` assume a trailing '/*' when glob chars are
not present in the pattern. This makes it difficult to specify a single
ref.  On the other hand, commands like `describe --match --all` allow
specifying exact refs, but do not have the convenience of allowing
"shorthand refs" like 'refs/heads' or 'heads' to refer to
'refs/heads/*'.

The commands introduced in this patch consider a match if:

  (a) the pattern contains globs chars,
	and regular pattern matching returns a match.

  (b) the pattern does not contain glob chars,
         and ref '&lt;pattern&gt;' exists, or if ref exists under '&lt;pattern&gt;/'

This allows both behaviours (allowing single refs and shorthand refs)
yet remaining compatible with existent commands.

Helped-by: Kevin Daudt &lt;me@ikke.info&gt;
Helped-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Signed-off-by: Rafael Ascensão &lt;rafa.almas@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>pretty: use fmt_output_email_subject()</title>
<updated>2017-03-01T23:09:17Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2017-03-01T11:37:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=6d167fd7ccb84f07a0bd57d8e188a651e913b158'/>
<id>urn:sha1:6d167fd7ccb84f07a0bd57d8e188a651e913b158</id>
<content type='text'>
Add the email-style subject prefix (e.g. "Subject: [PATCH] ") directly
when it's needed instead of letting log_write_email_headers() prepare
it in a static buffer in advance.  This simplifies storage ownership and
code flow.

Signed-off-by: Rene Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>log-tree: factor out fmt_output_email_subject()</title>
<updated>2017-03-01T17:54:42Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2017-03-01T11:36:38Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8ffc8dc6bab4cf3d2364dd54b2de6c3afdb48610'/>
<id>urn:sha1:8ffc8dc6bab4cf3d2364dd54b2de6c3afdb48610</id>
<content type='text'>
Use a strbuf to store the subject prefix string and move its
construction into its own function.  This gets rid of two arbitrary
length limits and allows the string to be added by callers directly.

Signed-off-by: Rene Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jn/parse-config-slot'</title>
<updated>2014-10-20T19:23:48Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2014-10-20T19:23:48Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b94657683996402228abb1694a5db4792c424f9e'/>
<id>urn:sha1:b94657683996402228abb1694a5db4792c424f9e</id>
<content type='text'>
Code cleanup.

* jn/parse-config-slot:
  color_parse: do not mention variable name in error message
  pass config slots as pointers instead of offsets
</content>
</entry>
<entry>
<title>pass config slots as pointers instead of offsets</title>
<updated>2014-10-14T18:01:05Z</updated>
<author>
<name>Jonathan Nieder</name>
<email>jrnieder@gmail.com</email>
</author>
<published>2014-10-07T19:16:57Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8852117a603c5ed5131233a80453db37c0958871'/>
<id>urn:sha1:8852117a603c5ed5131233a80453db37c0958871</id>
<content type='text'>
Many config-parsing helpers, like parse_branch_color_slot,
take the name of a config variable and an offset to the
"slot" name (e.g., "color.branch.plain" is passed along with
"13" to effectively pass "plain"). This is leftover from the
time that these functions would die() on error, and would
want the full variable name for error reporting.

These days they do not use the full variable name at all.
Passing a single pointer to the slot name is more natural,
and lets us more easily adjust the callers to use skip_prefix
to avoid manually writing offset numbers.

This is effectively a continuation of 9e1a5eb, which did the
same for parse_diff_color_slot. This patch covers all of the
remaining similar constructs.

Signed-off-by: Jonathan Nieder &lt;jrnieder@gmail.com&gt;
Signed-off-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>pretty: add %D format specifier</title>
<updated>2014-09-18T22:15:21Z</updated>
<author>
<name>Harry Jeffery</name>
<email>harry@exec64.co.uk</email>
</author>
<published>2014-09-18T20:53:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9271095cc5571e306d709ebf8eb7f0a388254d9d'/>
<id>urn:sha1:9271095cc5571e306d709ebf8eb7f0a388254d9d</id>
<content type='text'>
Add a new format specifier, '%D' that is identical in behaviour to '%d',
except that it does not include the ' (' prefix or ')' suffix provided
by '%d'.

Signed-off-by: Harry Jeffery &lt;harry@exec64.co.uk&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
