<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/builtin/commit.c, branch v2.9.0</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.9.0</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.9.0'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2016-05-23T21:54:32Z</updated>
<entry>
<title>Merge branch 'pb/commit-verbose-config'</title>
<updated>2016-05-23T21:54:32Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-05-23T21:54:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5d5f1c236b63596a59293a893d914dab1c8dd377'/>
<id>urn:sha1:5d5f1c236b63596a59293a893d914dab1c8dd377</id>
<content type='text'>
"git commit" learned to pay attention to "commit.verbose"
configuration variable and act as if "--verbose" option was
given from the command line.

* pb/commit-verbose-config:
  commit: add a commit.verbose config variable
  t7507-commit-verbose: improve test coverage by testing number of diffs
  parse-options.c: make OPTION_COUNTUP respect "unspecified" values
  t/t7507: improve test coverage
  t0040-parse-options: improve test coverage
  test-parse-options: print quiet as integer
  t0040-test-parse-options.sh: fix style issues
</content>
</entry>
<entry>
<title>commit: add a commit.verbose config variable</title>
<updated>2016-05-10T17:25:52Z</updated>
<author>
<name>Pranit Bauva</name>
<email>pranit.bauva@gmail.com</email>
</author>
<published>2016-05-05T09:50:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=aaab84203b9654fb73df41d3cb71a6aad3a091fa'/>
<id>urn:sha1:aaab84203b9654fb73df41d3cb71a6aad3a091fa</id>
<content type='text'>
Add commit.verbose configuration variable as a convenience for those
who always prefer --verbose.

Add tests to check the behavior introduced by this commit and also to
verify that behavior of status doesn't break because of this commit.

Helped-by: Junio C Hamano &lt;gitster@pobox.com&gt;
Helped-by: Eric Sunshine &lt;sunshine@sunshineco.com&gt;
Signed-off-by: Pranit Bauva &lt;pranit.bauva@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ad/commit-have-m-option'</title>
<updated>2016-04-22T22:45:07Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-04-22T22:45:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=0709261a83f0a386c6415d889a6e2617e62db710'/>
<id>urn:sha1:0709261a83f0a386c6415d889a6e2617e62db710</id>
<content type='text'>
"git commit" misbehaved in a few minor ways when an empty message
is given via -m '', all of which has been corrected.

* ad/commit-have-m-option:
  commit: do not ignore an empty message given by -m ''
  commit: --amend -m '' silently fails to wipe message
</content>
</entry>
<entry>
<title>commit: do not ignore an empty message given by -m ''</title>
<updated>2016-04-07T20:25:12Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2016-04-07T19:56:26Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=27014cbc04e369624f6c1754b72ef4eddb911166'/>
<id>urn:sha1:27014cbc04e369624f6c1754b72ef4eddb911166</id>
<content type='text'>
When f9568530 (builtin-commit: resurrect behavior for multiple -m
options, 2007-11-11) converted a "char *message" to "struct strbuf
message" to hold the messages given with the "-m" option, it
incorrectly changed the checks "did we get a message with the -m
option?" to "is message.len 0?".  Later, we noticed one breakage
from this change and corrected it with 25206778 (commit: don't start
editor if empty message is given with -m, 2013-05-25).

However, "we got a message with -m, even though an empty one, so we
shouldn't be launching an editor" was not the only breakage.

 * "git commit --amend -m '' --allow-empty", even though it looks
   strange, is a valid request to amend the commit to have no
   message at all.  Due to the misdetection of the presence of -m on
   the command line, we ended up keeping the log messsage from the
   original commit.

 * "git commit -m "$msg" -F file" should be rejected whether $msg is
   an empty string or not, but due to the same bug, was not rejected
   when $msg is empty.

 * "git -c template=file -m "$msg"" should ignore the template even
   when $msg is empty, but it didn't and instead used the contents
   from the template file.

Correct these by checking have_option_m, which the earlier 25206778
introduced to fix the same bug.

Reported-by: Adam Dinwoodie &lt;adam@dinwoodie.org&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>Merge branch 'ss/commit-squash-msg'</title>
<updated>2016-04-06T18:39:10Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-04-06T18:39:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=a6822e4172a8fa889b10a7a363088d2a05932b9b'/>
<id>urn:sha1:a6822e4172a8fa889b10a7a363088d2a05932b9b</id>
<content type='text'>
When "git merge --squash" stopped due to conflict, the concluding
"git commit" failed to read in the SQUASH_MSG that shows the log
messages from all the squashed commits.

* ss/commit-squash-msg:
  commit: do not lose SQUASH_MSG contents
</content>
</entry>
<entry>
<title>commit: do not lose SQUASH_MSG contents</title>
<updated>2016-03-21T22:32:24Z</updated>
<author>
<name>Sven Strickroth</name>
<email>sven@cs-ware.de</email>
</author>
<published>2016-03-21T22:29:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b64c1e0718f4a54d75b8faf0421471faa531af68'/>
<id>urn:sha1:b64c1e0718f4a54d75b8faf0421471faa531af68</id>
<content type='text'>
When concluding a conflicted "git merge --squash", the command
failed to read SQUASH_MSG that was prepared by "git merge", and
showed only the "# Conflicts:" list of conflicted paths.

Place the contents from SQUASH_MSG at the beginning, just like we
show the commit log skeleton first when concluding a normal merge,
and then show the "# Conflicts:" list, to help the user write the
log message for the resulting commit.

Test by Junio C Hamano &lt;gitster@pobox.com&gt;.

Signed-off-by: Sven Strickroth &lt;sven@cs-ware.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>diff: activate diff.renames by default</title>
<updated>2016-02-25T19:31:02Z</updated>
<author>
<name>Matthieu Moy</name>
<email>Matthieu.Moy@imag.fr</email>
</author>
<published>2016-02-25T08:59:21Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5404c116aa921d7e2f9408e103c80b7801735d08'/>
<id>urn:sha1:5404c116aa921d7e2f9408e103c80b7801735d08</id>
<content type='text'>
Rename detection is a very convenient feature, and new users shouldn't
have to dig in the documentation to benefit from it.

Potential objections to activating rename detection are that it
sometimes fail, and it is sometimes slow. But rename detection is
already activated by default in several cases like "git status" and "git
merge", so activating diff.renames does not fundamentally change the
situation. When the rename detection fails, it now fails consistently
between "git diff" and "git status".

This setting does not affect plumbing commands, hence well-written
scripts will not be affected.

Signed-off-by: Matthieu Moy &lt;Matthieu.Moy@imag.fr&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'jc/strbuf-getline'</title>
<updated>2016-01-29T00:10:14Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-01-29T00:10:14Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b62624b51a54325e6884c197352dc0dcef700325'/>
<id>urn:sha1:b62624b51a54325e6884c197352dc0dcef700325</id>
<content type='text'>
The preliminary clean-up for jc/peace-with-crlf topic.

* jc/strbuf-getline:
  strbuf: give strbuf_getline() to the "most text friendly" variant
  checkout-index: there are only two possible line terminations
  update-index: there are only two possible line terminations
  check-ignore: there are only two possible line terminations
  check-attr: there are only two possible line terminations
  mktree: there are only two possible line terminations
  strbuf: introduce strbuf_getline_{lf,nul}()
  strbuf: make strbuf_getline_crlf() global
  strbuf: miniscule style fix
</content>
</entry>
<entry>
<title>Merge branch 'js/fopen-harder'</title>
<updated>2016-01-20T19:43:35Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-01-20T19:43:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=7a63c9e3da357a21115e9b5de7ed84b744f9d8b1'/>
<id>urn:sha1:7a63c9e3da357a21115e9b5de7ed84b744f9d8b1</id>
<content type='text'>
Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR
(e.g. COMMIT_EDITMSG) that is meant to be left after the command is
done.  This however did not work well if the repository is set to
be shared with core.sharedRepository and the umask of the previous
user is tighter.  They have been made to work better by calling
unlink(2) and retrying after fopen(3) fails with EPERM.

* js/fopen-harder:
  Handle more file writes correctly in shared repos
  commit: allow editing the commit message even in shared repos
</content>
</entry>
<entry>
<title>strbuf: introduce strbuf_getline_{lf,nul}()</title>
<updated>2016-01-15T18:12:51Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2016-01-13T23:31:17Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8f309aeb8225a9c26f20c0dbc031f1ea8df75d49'/>
<id>urn:sha1:8f309aeb8225a9c26f20c0dbc031f1ea8df75d49</id>
<content type='text'>
The strbuf_getline() interface allows a byte other than LF or NUL as
the line terminator, but this is only because I wrote these
codepaths anticipating that there might be a value other than NUL
and LF that could be useful when I introduced line_termination long
time ago.  No useful caller that uses other value has emerged.

By now, it is clear that the interface is overly broad without a
good reason.  Many codepaths have hardcoded preference to read
either LF terminated or NUL terminated records from their input, and
then call strbuf_getline() with LF or NUL as the third parameter.

This step introduces two thin wrappers around strbuf_getline(),
namely, strbuf_getline_lf() and strbuf_getline_nul(), and
mechanically rewrites these call sites to call either one of
them.  The changes contained in this patch are:

 * introduction of these two functions in strbuf.[ch]

 * mechanical conversion of all callers to strbuf_getline() with
   either '\n' or '\0' as the third parameter to instead call the
   respective thin wrapper.

After this step, output from "git grep 'strbuf_getline('" would
become a lot smaller.  An interim goal of this series is to make
this an empty set, so that we can have strbuf_getline_crlf() take
over the shorter name strbuf_getline().

Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
</feed>
