<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/git.c, branch v2.14.0</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://www.git.shady.money/git/atom?h=v2.14.0</id>
<link rel='self' href='https://www.git.shady.money/git/atom?h=v2.14.0'/>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/'/>
<updated>2017-06-24T01:24:34Z</updated>
<entry>
<title>ls-files: use repository object</title>
<updated>2017-06-24T01:24:34Z</updated>
<author>
<name>Brandon Williams</name>
<email>bmwill@google.com</email>
</author>
<published>2017-06-22T18:43:48Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=188dce131fa95d85ddc024a1bc7d2b7fc5da4424'/>
<id>urn:sha1:188dce131fa95d85ddc024a1bc7d2b7fc5da4424</id>
<content type='text'>
Convert ls-files to use a repository struct and recurse submodules
inprocess.

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 branches 'bw/ls-files-sans-the-index' and 'bw/config-h' into bw/repo-object</title>
<updated>2017-06-24T01:24:00Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-06-21T22:20:44Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=25bf951381a4880c43a3d1c65e6dce651e61148f'/>
<id>urn:sha1:25bf951381a4880c43a3d1c65e6dce651e61148f</id>
<content type='text'>
* bw/ls-files-sans-the-index:
  ls-files: factor out tag calculation
  ls-files: factor out debug info into a function
  ls-files: convert show_files to take an index
  ls-files: convert show_ce_entry to take an index
  ls-files: convert prune_cache to take an index
  ls-files: convert ce_excluded to take an index
  ls-files: convert show_ru_info to take an index
  ls-files: convert show_other_files to take an index
  ls-files: convert show_killed_files to take an index
  ls-files: convert write_eolinfo to take an index
  ls-files: convert overlay_tree_on_cache to take an index
  tree: convert read_tree to take an index parameter
  convert: convert renormalize_buffer to take an index
  convert: convert convert_to_git to take an index
  convert: convert convert_to_git_filter_fd to take an index
  convert: convert crlf_to_git to take an index
  convert: convert get_cached_convert_stats_ascii to take an index

* bw/config-h:
  config: don't implicitly use gitdir or commondir
  config: respect commondir
  setup: teach discover_git_directory to respect the commondir
  config: don't include config.h by default
  config: remove git_config_iter
  config: create config.h
  alias: use the early config machinery to expand aliases
  t7006: demonstrate a problem with aliases in subdirectories
  t1308: relax the test verifying that empty alias values are disallowed
  help: use early config when autocorrecting aliases
  config: report correct line number upon error
  discover_git_directory(): avoid setting invalid git_dir
</content>
</entry>
<entry>
<title>config: don't include config.h by default</title>
<updated>2017-06-15T19:56:22Z</updated>
<author>
<name>Brandon Williams</name>
<email>bmwill@google.com</email>
</author>
<published>2017-06-14T18:07:36Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=b2141fc1d20e659810245ec6ca1c143c60e033ec'/>
<id>urn:sha1:b2141fc1d20e659810245ec6ca1c143c60e033ec</id>
<content type='text'>
Stop including config.h by default in cache.h.  Instead only include
config.h in those files which require use of the config system.

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>alias: use the early config machinery to expand aliases</title>
<updated>2017-06-15T19:31:50Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2017-06-14T11:36:00Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=a9bcf6586d1a4888aea91553d73cda20494b8335'/>
<id>urn:sha1:a9bcf6586d1a4888aea91553d73cda20494b8335</id>
<content type='text'>
Instead of discovering the .git/ directory, reading the config and then
trying to painstakingly reset all the global state if we did not find a
matching alias, let's use the early config machinery instead.

It may look like unnecessary work to discover the .git/ directory in the
early config machinery and then call setup_git_directory_gently() in the
case of a shell alias, repeating the very same discovery *again*.
However, we have to do this as the early config machinery takes pains
*not* to touch any global state, while shell aliases expect a possibly
changed working directory and at least the GIT_PREFIX and GIT_DIR
variables to be set.

This change also fixes a known issue where Git tried to read the pager
config from an incorrect path in a subdirectory of a Git worktree if an
alias expanded to a shell command.

Signed-off-by: Johannes Schindelin &lt;johannes.schindelin@gmx.de&gt;
Reviewed-by: Jeff King &lt;peff@peff.net&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>git: add hidden --list-builtins option</title>
<updated>2017-06-05T02:43:33Z</updated>
<author>
<name>Jeff King</name>
<email>peff@peff.net</email>
</author>
<published>2017-05-30T05:18:43Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=8893fd95b66cbd6566136a289dd05fcf4e547281'/>
<id>urn:sha1:8893fd95b66cbd6566136a289dd05fcf4e547281</id>
<content type='text'>
It can be useful in the test suite to be able to iterate
over the list of builtins. We could do this with some
Makefile magic. But since the authoritative list is in the
commands array inside git.c, and since this could also be
handy for debugging, let's add a hidden command-line option
to dump that list.

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 'bw/recurse-submodules-relative-fix'</title>
<updated>2017-03-30T21:07:15Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-03-30T21:07:15Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=3736c925580f678f601d670983f7f6cda791d108'/>
<id>urn:sha1:3736c925580f678f601d670983f7f6cda791d108</id>
<content type='text'>
A few commands that recently learned the "--recurse-submodule"
option misbehaved when started from a subdirectory of the
superproject.

* bw/recurse-submodules-relative-fix:
  ls-files: fix bug when recursing with relative pathspec
  ls-files: fix typo in variable name
  grep: fix bug when recursing with relative pathspec
  setup: allow for prefix to be passed to git commands
  grep: fix help text typo
</content>
</entry>
<entry>
<title>setup: allow for prefix to be passed to git commands</title>
<updated>2017-03-17T18:54:50Z</updated>
<author>
<name>Brandon Williams</name>
<email>bmwill@google.com</email>
</author>
<published>2017-03-17T17:22:54Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=b58a68c1c1874ff155699d82947c9f026f431cb3'/>
<id>urn:sha1:b58a68c1c1874ff155699d82947c9f026f431cb3</id>
<content type='text'>
In a future patch child processes which act on submodules need a little
more context about the original command that was invoked.  This patch
teaches git to use the prefix stored in `GIT_INTERNAL_TOPLEVEL_PREFIX`
instead of the prefix that was potentally found during the git directory
setup process.

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>rebase--helper: add a builtin helper for interactive rebases</title>
<updated>2017-02-09T22:55:26Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2017-02-09T22:23:06Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=4557f1add261b70887136498084e7491a3f9535f'/>
<id>urn:sha1:4557f1add261b70887136498084e7491a3f9535f</id>
<content type='text'>
Git's interactive rebase is still implemented as a shell script, despite
its complexity. This implies that it suffers from the portability point
of view, from lack of expressibility, and of course also from
performance. The latter issue is particularly serious on Windows, where
we pay a hefty price for relying so much on POSIX.

Unfortunately, being such a huge shell script also means that we missed
the train when it would have been relatively easy to port it to C, and
instead piled feature upon feature onto that poor script that originally
never intended to be more than a slightly pimped cherry-pick in a loop.

To open the road toward better performance (in addition to all the other
benefits of C over shell scripts), let's just start *somewhere*.

The approach taken here is to add a builtin helper that at first intends
to take care of the parts of the interactive rebase that are most
affected by the performance penalties mentioned above.

In particular, after we spent all those efforts on preparing the sequencer
to process rebase -i's git-rebase-todo scripts, we implement the `git
rebase -i --continue` functionality as a new builtin, git-rebase--helper.

Once that is in place, we can work gradually on tackling the rest of the
technical debt.

Note that the rebase--helper needs to learn about the transient
--ff/--no-ff options of git-rebase, as the corresponding flag is not
persisted to, and re-read from, the state directory.

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>Merge branch 'sb/unpack-trees-super-prefix'</title>
<updated>2017-02-03T19:25:18Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-02-03T19:25:18Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=2243d229f75be41318db8798fc90399dd6dedb42'/>
<id>urn:sha1:2243d229f75be41318db8798fc90399dd6dedb42</id>
<content type='text'>
"git read-tree" and its underlying unpack_trees() machinery learned
to report problematic paths prefixed with the --super-prefix option.

* sb/unpack-trees-super-prefix:
  unpack-trees: support super-prefix option
  t1001: modernize style
  t1000: modernize style
  read-tree: use OPT_BOOL instead of OPT_SET_INT
</content>
</entry>
<entry>
<title>Merge branch 'js/difftool-builtin'</title>
<updated>2017-01-31T21:15:00Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2017-01-31T21:15:00Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=b7786bb4b09463641f3e39eca18aefc630ee4f38'/>
<id>urn:sha1:b7786bb4b09463641f3e39eca18aefc630ee4f38</id>
<content type='text'>
Rewrite a scripted porcelain "git difftool" in C.

* js/difftool-builtin:
  difftool: hack around -Wzero-length-format warning
  difftool: retire the scripted version
  difftool: implement the functionality in the builtin
  difftool: add a skeleton for the upcoming builtin
</content>
</entry>
</feed>
