<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/git.c, branch v2.27.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.27.0</id>
<link rel='self' href='https://www.git.shady.money/git/atom?h=v2.27.0'/>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/'/>
<updated>2020-05-13T19:19:18Z</updated>
<entry>
<title>Merge branch 'tb/shallow-cleanup'</title>
<updated>2020-05-13T19:19:18Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2020-05-13T19:19:18Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=896833b2687ce09a4965e5b4f3992daad096a65b'/>
<id>urn:sha1:896833b2687ce09a4965e5b4f3992daad096a65b</id>
<content type='text'>
Code cleanup.

* tb/shallow-cleanup:
  shallow: use struct 'shallow_lock' for additional safety
  shallow.h: document '{commit,rollback}_shallow_file'
  shallow: extract a header file for shallow-related functions
  commit: make 'commit_graft_pos' non-static
</content>
</entry>
<entry>
<title>shallow: extract a header file for shallow-related functions</title>
<updated>2020-04-30T21:19:13Z</updated>
<author>
<name>Taylor Blau</name>
<email>me@ttaylorr.com</email>
</author>
<published>2020-04-30T19:48:50Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=120ad2b0f13b60266fec9760bba3b5abfcd6fb78'/>
<id>urn:sha1:120ad2b0f13b60266fec9760bba3b5abfcd6fb78</id>
<content type='text'>
There are many functions in commit.h that are more related to shallow
repositories than they are to any sort of generic commit machinery.
Likely this began when there were only a few shallow-related functions,
and commit.h seemed a reasonable enough place to put them.

But, now there are a good number of shallow-related functions, and
placing them all in 'commit.h' doesn't make sense.

This patch extracts a 'shallow.h', which takes all of the declarations
from 'commit.h' for functions which already exist in 'shallow.c'. We
will bring the remaining shallow-related functions defined in 'commit.c'
in a subsequent patch.

For now, move only the ones that already are implemented in 'shallow.c',
and update the necessary includes.

Signed-off-by: Taylor Blau &lt;me@ttaylorr.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'js/trace2-env-vars'</title>
<updated>2020-04-22T20:42:44Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2020-04-22T20:42:43Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=810dc6481ad7c1e1a6aacebfeaed308778c6c63f'/>
<id>urn:sha1:810dc6481ad7c1e1a6aacebfeaed308778c6c63f</id>
<content type='text'>
Trace2 enhancement to allow logging of the environment variables.

* js/trace2-env-vars:
  trace2: teach Git to log environment variables
</content>
</entry>
<entry>
<title>trace2: teach Git to log environment variables</title>
<updated>2020-03-23T20:14:53Z</updated>
<author>
<name>Josh Steadmon</name>
<email>steadmon@google.com</email>
</author>
<published>2020-03-20T21:06:15Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=3d3adaad914441a6e7b916eb8dfd5ae638aab068'/>
<id>urn:sha1:3d3adaad914441a6e7b916eb8dfd5ae638aab068</id>
<content type='text'>
Via trace2, Git can already log interesting config parameters (see the
trace2_cmd_list_config() function). However, this can grant an
incomplete picture because many config parameters also allow overrides
via environment variables.

To allow for more complete logs, we add a new trace2_cmd_list_env_vars()
function and supporting implementation, modeled after the pre-existing
config param logging implementation.

Signed-off-by: Josh Steadmon &lt;steadmon@google.com&gt;
Acked-by: Jeff Hostetler &lt;jeffhost@microsoft.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>stash: remove the stash.useBuiltin setting</title>
<updated>2020-03-05T20:50:28Z</updated>
<author>
<name>Thomas Gummerer</name>
<email>t.gummerer@gmail.com</email>
</author>
<published>2020-03-03T17:46:13Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=8a2cd3f5123ac822fd64ca8efc4f84e122a1edb3'/>
<id>urn:sha1:8a2cd3f5123ac822fd64ca8efc4f84e122a1edb3</id>
<content type='text'>
Remove the stash.useBuiltin setting which was added as an escape hatch
to disable the builtin version of stash first released with Git 2.22.

Carrying the legacy version is a maintenance burden, and has in fact
become out of date failing a test since the 2.23 release, without
anyone noticing until now.  So users would be getting a hint to fall
back to a potentially buggy version of the tool.

We used to shell out to git config to get the useBuiltin configuration
to avoid changing any global state before spawning legacy-stash.
However that is no longer necessary, so just use the 'git_config'
function to get the setting instead.

Similar to what we've done in d03ebd411c ("rebase: remove the
rebase.useBuiltin setting", 2019-03-18), where we remove the
corresponding setting for rebase, we leave the documentation in place,
so people can refer back to it when searching for it online, and so we
can refer to it in the commit message.

Signed-off-by: Thomas Gummerer &lt;t.gummerer@gmail.com&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>sparse-checkout: create builtin with 'list' subcommand</title>
<updated>2019-11-22T07:11:43Z</updated>
<author>
<name>Derrick Stolee</name>
<email>dstolee@microsoft.com</email>
</author>
<published>2019-11-21T22:04:33Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=94c0956b60969bbbb3ead19638d52591a59d713c'/>
<id>urn:sha1:94c0956b60969bbbb3ead19638d52591a59d713c</id>
<content type='text'>
The sparse-checkout feature is mostly hidden to users, as its
only documentation is supplementary information in the docs for
'git read-tree'. In addition, users need to know how to edit the
.git/info/sparse-checkout file with the right patterns, then run
the appropriate 'git read-tree -mu HEAD' command. Keeping the
working directory in sync with the sparse-checkout file requires
care.

Begin an effort to make the sparse-checkout feature a porcelain
feature by creating a new 'git sparse-checkout' builtin. This
builtin will be the preferred mechanism for manipulating the
sparse-checkout file and syncing the working directory.

The documentation provided is adapted from the "git read-tree"
documentation with a few edits for clarity in the new context.
Extra sections are added to hint toward a future change to
a more restricted pattern set.

Helped-by: Elijah Newren &lt;newren@gmail.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>git: use COPY_ARRAY and MOVE_ARRAY in handle_alias()</title>
<updated>2019-09-20T18:11:26Z</updated>
<author>
<name>René Scharfe</name>
<email>l.s.r@web.de</email>
</author>
<published>2019-09-19T20:48:30Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=7bd97d6dff3b09600465b818163a413115dad217'/>
<id>urn:sha1:7bd97d6dff3b09600465b818163a413115dad217</id>
<content type='text'>
Use the macro COPY_ARRAY to copy array elements and MOVE_ARRAY to do the
same for moving them backwards in an array with potential overlap.  The
result is shorter and safer, as it infers the element type automatically
and does a (very) basic type compatibility check for its first two
arguments.

These cases were missed by Coccinelle and contrib/coccinelle/array.cocci
because the type of the elements is "const char *", not "char *", and
the rules in the semantic patch cautiously insist on the sizeof operator
being used on exactly the same type to avoid generating transformations
that introduce subtle bugs into tricky code.

Signed-off-by: René 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 'js/visual-studio'</title>
<updated>2019-08-02T20:12:02Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-08-02T20:12:02Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=c62bc49139f1d18e922fc98e35bb08b1aadbcafc'/>
<id>urn:sha1:c62bc49139f1d18e922fc98e35bb08b1aadbcafc</id>
<content type='text'>
Support building Git with Visual Studio

The bits about .git/branches/* have been dropped from the series.
We may want to drop the support for it, but until that happens, the
tests should rely on the existence of the support to pass.

* js/visual-studio: (23 commits)
  git: avoid calling aliased builtins via their dashed form
  bin-wrappers: append `.exe` to target paths if necessary
  .gitignore: ignore Visual Studio's temporary/generated files
  .gitignore: touch up the entries regarding Visual Studio
  vcxproj: also link-or-copy builtins
  msvc: add a Makefile target to pre-generate the Visual Studio solution
  contrib/buildsystems: add a backend for modern Visual Studio versions
  contrib/buildsystems: handle options starting with a slash
  contrib/buildsystems: also handle -lexpat
  contrib/buildsystems: handle libiconv, too
  contrib/buildsystems: handle the curl library option
  contrib/buildsystems: error out on unknown option
  contrib/buildsystems: optionally capture the dry-run in a file
  contrib/buildsystems: redirect errors of the dry run into a log file
  contrib/buildsystems: ignore gettext stuff
  contrib/buildsystems: handle quoted spaces in filenames
  contrib/buildsystems: fix misleading error message
  contrib/buildsystems: ignore irrelevant files in Generators/
  contrib/buildsystems: ignore invalidcontinue.obj
  Vcproj.pm: urlencode '&lt;' and '&gt;' when generating VC projects
  ...
</content>
</entry>
<entry>
<title>git: avoid calling aliased builtins via their dashed form</title>
<updated>2019-07-29T21:51:43Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2019-07-29T20:08:16Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=b91408400757d021b10876c36280ef891b502420'/>
<id>urn:sha1:b91408400757d021b10876c36280ef891b502420</id>
<content type='text'>
This is one of the few places where Git violates its own deprecation of
the dashed form. It is not necessary, either.

As of 595d59e2b53 (git.c: ignore pager.* when launching builtin as
dashed external, 2017-08-02), Git wants to ignore the pager.* config
setting when expanding aliases. So let's strip out the
check_pager_config(&lt;command-name&gt;) call from the copy-edited code.

This code actually made it into upstream git.git already, but it was
disabled in `#if 0 ... #endif` guards so far.

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 'js/rebase-cleanup'</title>
<updated>2019-07-29T19:39:14Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-07-29T19:39:13Z</published>
<link rel='alternate' type='text/html' href='https://www.git.shady.money/git/commit/?id=38dac334d78fd8f0568180b714554bee1b23b6a0'/>
<id>urn:sha1:38dac334d78fd8f0568180b714554bee1b23b6a0</id>
<content type='text'>
A few leftover cleanup to "git rebase" in C.

* js/rebase-cleanup:
  git: mark cmd_rebase as requiring a worktree
  rebase: fix white-space
</content>
</entry>
</feed>
