<feed xmlns='http://www.w3.org/2005/Atom'>
<title>git/git.c, branch v2.23.2</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/git/git.git/
</subtitle>
<id>https://git.shady.money/git/atom?h=v2.23.2</id>
<link rel='self' href='https://git.shady.money/git/atom?h=v2.23.2'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/'/>
<updated>2019-08-02T20:12:02Z</updated>
<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://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://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://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>
<entry>
<title>Merge branch 'ab/test-env'</title>
<updated>2019-07-25T20:59:20Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-07-25T20:59:20Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=023ff4cdf5793437313f481b4ef5b1ec247f2301'/>
<id>urn:sha1:023ff4cdf5793437313f481b4ef5b1ec247f2301</id>
<content type='text'>
Many GIT_TEST_* environment variables control various aspects of
how our tests are run, but a few followed "non-empty is true, empty
or unset is false" while others followed the usual "there are a few
ways to spell true, like yes, on, etc., and also ways to spell
false, like no, off, etc." convention.

* ab/test-env:
  env--helper: mark a file-local symbol as static
  tests: make GIT_TEST_FAIL_PREREQS a boolean
  tests: replace test_tristate with "git env--helper"
  tests README: re-flow a previously changed paragraph
  tests: make GIT_TEST_GETTEXT_POISON a boolean
  t6040 test: stop using global "script" variable
  config.c: refactor die_bad_number() to not call gettext() early
  env--helper: new undocumented builtin wrapping git_env_*()
  config tests: simplify include cycle test
</content>
</entry>
<entry>
<title>git: mark cmd_rebase as requiring a worktree</title>
<updated>2019-07-25T15:58:13Z</updated>
<author>
<name>Johannes Schindelin</name>
<email>johannes.schindelin@gmx.de</email>
</author>
<published>2019-07-24T21:15:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=80dfc9242ebaba357ffedececd88641a1a752411'/>
<id>urn:sha1:80dfc9242ebaba357ffedececd88641a1a752411</id>
<content type='text'>
We skipped marking the "rebase" built-in as requiring a .git/ directory
and a worktree only to allow to spawn the scripted version of `git
rebase`.

Now that we no longer have that escape hatch, we can change that to the
canonical form.

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 'nd/switch-and-restore'</title>
<updated>2019-07-09T22:25:44Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-07-09T22:25:44Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=f496b064fc1135e0dded7f93d85d72eb0b302c22'/>
<id>urn:sha1:f496b064fc1135e0dded7f93d85d72eb0b302c22</id>
<content type='text'>
Two new commands "git switch" and "git restore" are introduced to
split "checking out a branch to work on advancing its history" and
"checking out paths out of the index and/or a tree-ish to work on
advancing the current history" out of the single "git checkout"
command.

* nd/switch-and-restore: (46 commits)
  completion: disable dwim on "git switch -d"
  switch: allow to switch in the middle of bisect
  t2027: use test_must_be_empty
  Declare both git-switch and git-restore experimental
  help: move git-diff and git-reset to different groups
  doc: promote "git restore"
  user-manual.txt: prefer 'merge --abort' over 'reset --hard'
  completion: support restore
  t: add tests for restore
  restore: support --patch
  restore: replace --force with --ignore-unmerged
  restore: default to --source=HEAD when only --staged is specified
  restore: reject invalid combinations with --staged
  restore: add --worktree and --staged
  checkout: factor out worktree checkout code
  restore: disable overlay mode by default
  restore: make pathspec mandatory
  restore: take tree-ish from --source option instead
  checkout: split part of it to new command 'restore'
  doc: promote "git switch"
  ...
</content>
</entry>
<entry>
<title>env--helper: new undocumented builtin wrapping git_env_*()</title>
<updated>2019-06-21T16:42:49Z</updated>
<author>
<name>Ævar Arnfjörð Bjarmason</name>
<email>avarab@gmail.com</email>
</author>
<published>2019-06-21T10:18:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=b4f207f339469e604260bdf6da8673db9c9c9105'/>
<id>urn:sha1:b4f207f339469e604260bdf6da8673db9c9c9105</id>
<content type='text'>
We have many GIT_TEST_* variables that accept a &lt;boolean&gt; because
they're implemented in C, and then some that take &lt;non-empty?&gt; because
they're implemented at least partially in shellscript.

Add a helper that wraps git_env_bool() and git_env_ulong() as the
first step in fixing this. This isn't being added as a test-tool mode
because some of these are used outside the test suite.

Part of what this tool does can be done via a trick with "git config"
added in 83d842dc8c ("tests: turn on network daemon tests by default",
2014-02-10) for test_tristate(), i.e.:

    git -c magic.variable="$1" config --bool magic.variable 2&gt;/dev/null

But as subsequent changes will show being able to pass along the
default value makes all the difference, and we'll be able to replace
test_tristate() itself with that.

The --type=bool option will be used by subsequent patches, but not
--type=ulong. I figured it was easy enough to add it &amp; test for it so
I left it in so we'd have wrappers for both git_env_*() functions, and
to have a template to make it obvious how we'd add --type=int etc. if
it's needed in the future.

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>Merge branch 'po/git-help-on-git-itself'</title>
<updated>2019-06-17T17:15:19Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-06-17T17:15:19Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=d4fdeed00639b27c45856dfef338d46ec60b419e'/>
<id>urn:sha1:d4fdeed00639b27c45856dfef338d46ec60b419e</id>
<content type='text'>
"git help git" was hard to discover (well, at least for some
people).

* po/git-help-on-git-itself:
  Doc: git.txt: remove backticks from link and add git-scm.com/docs
  git.c: show usage for accessing the git(1) help page
</content>
</entry>
<entry>
<title>git.c: show usage for accessing the git(1) help page</title>
<updated>2019-05-16T01:44:09Z</updated>
<author>
<name>Philip Oakley</name>
<email>philipoakley@iee.org</email>
</author>
<published>2019-05-15T22:47:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=e55f36b8b3e1248ebdc4cddfd9b08f2e86b638fb'/>
<id>urn:sha1:e55f36b8b3e1248ebdc4cddfd9b08f2e86b638fb</id>
<content type='text'>
It is not immediately obvious how to use the `git help` system to show
the git(1) page, with its overview and its background and coordinating
material, such as environment variables.

Let's simply list it as the last few words of the last usage line.

Signed-off-by: Philip Oakley &lt;philipoakley@iee.org&gt;
Signed-off-by: Junio C Hamano &lt;gitster@pobox.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'js/misc-doc-fixes'</title>
<updated>2019-05-08T15:37:27Z</updated>
<author>
<name>Junio C Hamano</name>
<email>gitster@pobox.com</email>
</author>
<published>2019-05-08T15:37:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/git/commit/?id=caa227ff458f34155ef4e974ba9e57c857c02c01'/>
<id>urn:sha1:caa227ff458f34155ef4e974ba9e57c857c02c01</id>
<content type='text'>
"make check-docs", "git help -a", etc. did not account for cases
where a particular build may deliberately omit some subcommands,
which has been corrected.

* js/misc-doc-fixes:
  Turn `git serve` into a test helper
  test-tool: handle the `-C &lt;directory&gt;` option just like `git`
  check-docs: do not bother checking for legacy scripts' documentation
  docs: exclude documentation for commands that have been excluded
  check-docs: allow command-list.txt to contain excluded commands
  help -a: do not list commands that are excluded from the build
  Makefile: drop the NO_INSTALL variable
  remote-testgit: move it into the support directory for t5801
</content>
</entry>
</feed>
