<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/builtin/commit.c, branch v2.18.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.18.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.18.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2018-05-30T05:04:07Z</updated>
<entry>
<title>Merge branch 'bp/status-rename-config'</title>
<updated>2018-05-30T05:04:07Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-30T05:04:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=5da4847dccdf8df26f0cfbcc278034a62dbc97e0'/>
<id>urn:sha1:5da4847dccdf8df26f0cfbcc278034a62dbc97e0</id>
<content type='text'>
"git status" learned to honor a new status.renames configuration to
skip rename detection, which could be useful for those who want to
do so without disabling the default rename detection done by the
"git diff" command.

* bp/status-rename-config:
  add status config and command line options for rename detection
</content>
</entry>
<entry>
<title>Merge branch 'js/use-bug-macro'</title>
<updated>2018-05-30T05:04:07Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-05-30T05:04:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=50f08db5941755b69012378bfc86f6b8ee98edf4'/>
<id>urn:sha1:50f08db5941755b69012378bfc86f6b8ee98edf4</id>
<content type='text'>
Developer support update, by using BUG() macro instead of die() to
mark codepaths that should not happen more clearly.

* js/use-bug-macro:
  BUG_exit_code: fix sparse "symbol not declared" warning
  Convert remaining die*(BUG) messages
  Replace all die("BUG: ...") calls by BUG() ones
  run-command: use BUG() to report bugs, not die()
  test-tool: help verifying BUG() code paths
</content>
</entry>
<entry>
<title>add status config and command line options for rename detection</title>
<updated>2018-05-13T01:57:37Z</updated>
<author>
<name>Ben Peart</name>
<email>Ben.Peart@microsoft.com</email>
</author>
<published>2018-05-11T15:38:58Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e8b2dc2c2a8415bfd180ecf5cc237a54e69ac2e9'/>
<id>urn:sha1:e8b2dc2c2a8415bfd180ecf5cc237a54e69ac2e9</id>
<content type='text'>
After performing a merge that has conflicts git status will, by default,
attempt to detect renames which causes many objects to be examined.  In a
virtualized repo, those objects do not exist locally so the rename logic
triggers them to be fetched from the server. This results in the status call
taking hours to complete on very large repos vs seconds with this patch.

Add a new config status.renames setting to enable turning off rename
detection during status and commit.  This setting will default to the value
of diff.renames.

Add a new config status.renamelimit setting to to enable bounding the time
spent finding out inexact renames during status and commit.  This setting
will default to the value of diff.renamelimit.

Add --no-renames command line option to status that enables overriding the
config setting from the command line. Add --find-renames[=&lt;n&gt;] command line
option to status that enables detecting renames and optionally setting the
similarity index.

Reviewed-by: Elijah Newren &lt;newren@gmail.com&gt;
Original-Patch-by: Alejandro Pauly &lt;alpauly@microsoft.com&gt;
Signed-off-by: Ben Peart &lt;Ben.Peart@microsoft.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Replace all die("BUG: ...") calls by BUG() ones</title>
<updated>2018-05-06T10:06:13Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2018-05-02T09:38:39Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=033abf97fcbc247eabf915780181d947cfb66205'/>
<id>urn:sha1:033abf97fcbc247eabf915780181d947cfb66205</id>
<content type='text'>
In d8193743e08 (usage.c: add BUG() function, 2017-05-12), a new macro
was introduced to use for reporting bugs instead of die(). It was then
subsequently used to convert one single caller in 588a538ae55
(setup_git_env: convert die("BUG") to BUG(), 2017-05-12).

The cover letter of the patch series containing this patch
(cf 20170513032414.mfrwabt4hovujde2@sigill.intra.peff.net) is not
terribly clear why only one call site was converted, or what the plan
is for other, similar calls to die() to report bugs.

Let's just convert all remaining ones in one fell swoop.

This trick was performed by this invocation:

	sed -i 's/die("BUG: /BUG("/g' $(git grep -l 'die("BUG' \*.c)

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>wt-status: use settings from git_diff_ui_config</title>
<updated>2018-05-06T03:59:33Z</updated>
<author>
<name>Eckhard S. Maaß</name>
<email>eckhard.s.maass@googlemail.com</email>
</author>
<published>2018-05-04T11:12:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=dc6b1d92ca9c0c538daa244e3910bb8b2a50d959'/>
<id>urn:sha1:dc6b1d92ca9c0c538daa244e3910bb8b2a50d959</id>
<content type='text'>
If you do something like

    - git add .
    - git status
    - git commit
    - git show (or git diff HEAD)

one would expect to have analogous output from git status and git show
(or similar diff-related programs). This is generally not the case, as
git status has hard coded values for diff related options.

With this commit the hard coded settings are dropped from the status
command in favour for values provided by git_diff_ui_config.

What follows are some remarks on the concrete options which were hard
coded in git status:

diffopt.detect_rename

Since the very beginning of git status in a3e870f2e2 ("Add "commit"
helper script", 2005-05-30), git status always used rename detection,
whereas with commands like show and log one had to activate it with a
command line option. After 5404c116aa ("diff: activate diff.renames by
default", 2016-02-25) the default behaves the same by coincidence, but
changing diff.renames to other values can break the consistency between
git status and other commands again. With this commit one control the
same default behaviour with diff.renames.

diffopt.rename_limit

Similarly one has the option diff.renamelimit to adjust this limit for
all commands but git status. With this commit git status will also honor
those.

diffopt.break_opt

Unlike the other two options this cannot be configured by a
configuration option yet. This commit will also change the default
behaviour to not use break rewrites. But as rename detection is most
likely on, this is dangerous to be activated anyway as one can see
here:

    https://public-inbox.org/git/xmqqegqaahnh.fsf@gitster.dls.corp.google.com/

Signed-off-by: Eckhard S. Maaß &lt;eckhard.s.maass@gmail.com&gt;
Reviewed-by: Elijah Newren &lt;newren@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'bw/commit-partial-from-subdirectory-fix'</title>
<updated>2018-04-25T04:28:53Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-04-25T04:28:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=8295f2028f622da2da2b9e31a2793be64ce45a07'/>
<id>urn:sha1:8295f2028f622da2da2b9e31a2793be64ce45a07</id>
<content type='text'>
"cd sub/dir &amp;&amp; git commit ../path" ought to record the changes to
the file "sub/path", but this regressed long time ago.

* bw/commit-partial-from-subdirectory-fix:
  commit: allow partial commits with relative paths
</content>
</entry>
<entry>
<title>commit: allow partial commits with relative paths</title>
<updated>2018-04-05T08:05:48Z</updated>
<author>
<name>Brandon Williams</name>
<email>bmwill@google.com</email>
</author>
<published>2018-04-03T17:57:45Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=86238e07ef633f7488ac708578aaf71e4375c057'/>
<id>urn:sha1:86238e07ef633f7488ac708578aaf71e4375c057</id>
<content type='text'>
Commit 8894d53580 (commit: allow partial commits with relative paths,
2011-07-30) ensured that partial commits were allowed when a user
supplies a relative pathspec but then this was regressed in 5879f5684c
(remove prefix argument from pathspec_prefix, 2011-09-04) when the
prefix argument to 'pathspec_prefix' removed and the 'list_paths'
function wasn't properly adjusted to cope with the change, resulting in
over-eager pruning of the tree that is overlayed on the index.

This fixes the regression and adds a regression test so this can be
prevented in the future.

Signed-off-by: Brandon Williams &lt;bmwill@google.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'ma/skip-writing-unchanged-index'</title>
<updated>2018-03-21T18:30:10Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-03-21T18:30:10Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=beb2cdf5041104a7513301a9b20944a617eec94e'/>
<id>urn:sha1:beb2cdf5041104a7513301a9b20944a617eec94e</id>
<content type='text'>
Internal API clean-up to allow write_locked_index() optionally skip
writing the in-core index when it is not modified.

* ma/skip-writing-unchanged-index:
  write_locked_index(): add flag to avoid writing unchanged index
</content>
</entry>
<entry>
<title>Merge branch 'ab/gc-auto-in-commit'</title>
<updated>2018-03-08T20:36:30Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-03-08T20:36:30Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=9bb8eb0c88d210d3575bd484320f9abfef551ed1'/>
<id>urn:sha1:9bb8eb0c88d210d3575bd484320f9abfef551ed1</id>
<content type='text'>
"git commit" used to run "gc --auto" near the end, which was lost
when the command was reimplemented in C by mistake.

* ab/gc-auto-in-commit:
  commit: run git gc --auto just before the post-commit hook
</content>
</entry>
<entry>
<title>Merge branch 'jh/status-no-ahead-behind'</title>
<updated>2018-03-08T20:36:24Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2018-03-08T20:36:24Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=4094e47fd2c49fcdbd0152d20ed4d610d72680d7'/>
<id>urn:sha1:4094e47fd2c49fcdbd0152d20ed4d610d72680d7</id>
<content type='text'>
"git status" can spend a lot of cycles to compute the relation
between the current branch and its upstream, which can now be
disabled with "--no-ahead-behind" option.

* jh/status-no-ahead-behind:
  status: support --no-ahead-behind in long format
  status: update short status to respect --no-ahead-behind
  status: add --[no-]ahead-behind to status and commit for V2 format.
  stat_tracking_info: return +1 when branches not equal
</content>
</entry>
</feed>
