Commit Graph

130792 Commits

Author SHA1 Message Date
Dennis Ameling
7964b3584e Add schannel to curl installation
Signed-off-by: Dennis Ameling <dennis@dennisameling.com>
2022-04-08 14:34:19 -07:00
Dennis Ameling
47b821f141 ci(vs-build) also build Windows/ARM64 artifacts
There are no Windows/ARM64 agents in GitHub Actions yet, therefore we
just skip adjusting the `vs-test` job for now.

Signed-off-by: Dennis Ameling <dennis@dennisameling.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-08 14:34:19 -07:00
Dennis Ameling
36130ed624 cmake: allow building for Windows/ARM64
Signed-off-by: Dennis Ameling <dennis@dennisameling.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-08 14:34:19 -07:00
Ian Bearman
12c9ac63f5 vcbuild: add an option to install individual 'features'
In this context, a "feature" is a dependency combined with its own
dependencies.

Signed-off-by: Dennis Ameling <dennis@dennisameling.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-08 14:34:19 -07:00
Ian Bearman
eaeb690fd5 vcbuild: install ARM64 dependencies when building ARM64 binaries
Co-authored-by: Dennis Ameling <dennis@dennisameling.com>
Signed-off-by: Ian Bearman <ianb@microsoft.com>
Signed-off-by: Dennis Ameling <dennis@dennisameling.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-08 14:34:19 -07:00
Ian Bearman
740476284f vcxproj: support building Windows/ARM64 binaries
Signed-off-by: Ian Bearman <ianb@microsoft.com>
Signed-off-by: Dennis Ameling <dennis@dennisameling.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-08 14:34:19 -07:00
Philip Oakley
2ef30ea8e7 vcpkg_install: add comment regarding slow network connections
The vcpkg downloads may not succeed. Warn careful readers of the time out.

A simple retry will usually resolve the issue.

Signed-off-by: Philip Oakley <philipoakley@iee.email>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-08 14:34:19 -07:00
Philip Oakley
fd0cc80d3b vcpkg_install: detect lack of Git
The vcpkg_install batch file depends on the availability of a
working Git on the CMD path. This may not be present if the user
has selected the 'bash only' option during Git-for-Windows install.

Detect and tell the user about their lack of a working Git in the CMD
window.

Fixes #2348.
A separate PR https://github.com/git-for-windows/build-extra/pull/258
now highlights the recommended path setting during install.

Signed-off-by: Philip Oakley <philipoakley@iee.email>
2022-04-08 14:34:19 -07:00
Victoria Dye
9c975963d6 Start the merging-rebase to v2.36.0-rc1
This commit starts the rebase of b00077e34a to 5d9a0a7465
2022-04-08 14:34:18 -07:00
Junio C Hamano
ab1f2765f7 Git 2.36-rc1
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-04-08 13:54:49 -07:00
Junio C Hamano
e7109d5c7c Merge branch 'ld/sparse-index-bash-completion'
Test regression fix.

* ld/sparse-index-bash-completion:
  t9902: split test to run on appropriate systems
2022-04-08 13:53:48 -07:00
Junio C Hamano
c42977afe0 Merge branch 'tl/ls-tree-oid-only'
Docfix.

* tl/ls-tree-oid-only:
  ls-tree doc: document interaction with submodules
2022-04-08 13:53:48 -07:00
Adam Dinwoodie
6d340dfaef t9902: split test to run on appropriate systems
The "FUNNYNAMES" test prerequisite passes on Cygwin, as the Cygwin
file system interface has a workaround for the underlying operating
system's lack of support for tabs, newlines or quotes.  However, it does
not add support for backslash, which is treated as a directory
separator, meaning one of the tests added by 48803821b1 ("completion:
handle unusual characters for sparse-checkout", 2022-02-07) will fail on
Cygwin.

To avoid this failure while still getting maximal test coverage, split
that test into two: test handling of paths that include tabs on anything
that has the FUNNYNAMES prerequisite, but skip testing handling of paths
that include backslashes unless both FUNNYNAMES is set and the system is
not Cygwin.

It might be nice to have more granularity than "FUNNYNAMES" and its
sibling "FUNNIERNAMES" provide, so that tests could be run based on
specific individual characters supported by the file system being
tested, but that seems like it would make the prerequisite checks in
this area much more verbose for very little gain.

Signed-off-by: Adam Dinwoodie <adam@dinwoodie.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-04-08 12:56:31 -07:00
Ævar Arnfjörð Bjarmason
acd34fd5f6 ls-tree doc: document interaction with submodules
The ls-tree documentation had never been updated after it learned to
interact with submodules to explicitly mention them. The initial
support was added in f35a6d3bce (Teach core object handling functions
about gitlinks, 2007-04-09). E.g. the discussion of --long added in
f35a6d3bce (Teach core object handling functions about gitlinks,
2007-04-09) didn't explicitly mention them.

But this documentation added in 455923e0a1 (ls-tree: introduce
"--format" option, 2022-03-23) had no such excuse, and was actively
misleading by providing an exhaustive but incomplete list of object
types we'd emit.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-04-08 11:21:11 -07:00
Junio C Hamano
bf23fe5c37 Merge branch 'jc/cat-file-batch-commands'
Doc fix.

* jc/cat-file-batch-commands:
  Documentation: add --batch-command to cat-file synopsis
2022-04-07 15:04:19 -07:00
Johannes Schindelin
8c57cbacc8 Merge pull request #3773 from dscho/tone-down-fsmonitor-warning
Try to advise about core.useBuiltinFSMonitor's deprecation only once
2022-04-07 22:59:26 +02:00
Ævar Arnfjörð Bjarmason
473fa2df08 Documentation: add --batch-command to cat-file synopsis
440c705ea6 (cat-file: add --batch-command mode, 2022-02-18) added
the new option and operating mode without listing it to the synopsis
section.  Fix it.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-04-07 13:31:54 -07:00
Junio C Hamano
07135d6be7 Merge branch 'tz/doc-litdd-fixes'
Documentation markup fix.

* tz/doc-litdd-fixes:
  doc: replace "--" with {litdd} in credential-cache/fsmonitor
2022-04-07 12:23:47 -07:00
Junio C Hamano
b2a7c2cfcd Merge branch 'js/apply-partial-clone-filters-recursively'
Typofix

* js/apply-partial-clone-filters-recursively:
  submodule-helper: fix usage string
2022-04-07 12:23:31 -07:00
Junio C Hamano
77da6db57f Merge branch 'tl/ls-tree-oid-only'
* tl/ls-tree-oid-only:
  git-ls-tree.txt: fix the name of "%(objectsize:padded)"
2022-04-07 12:23:23 -07:00
Martin Ågren
5e65dac9c8 git-ls-tree.txt: fix the name of "%(objectsize:padded)"
Commit 455923e0a1 ("ls-tree: introduce "--format" option", 2022-03-23)
introduced `--format` and the various placeholders it can take, such as
%(objectname) and %(objectsize).

At some point when that patch was being developed, those placeholders
had shorter names, e.g., %(name) and %(size), which can be seen in the
commit message of 455923e0a1. One instance of "%(size:padded)" also
managed to enter the documentation in the final version of the patch.
Correct it to "%(objectsize:padded)".

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-04-07 10:11:20 -07:00
Fangyi Zhou
5da9560ebc submodule-helper: fix usage string
The missing space at the end of the line makes the closing square
bracket sticking to the dash in the next line

Found during localisation v2.36.0 round 1

Signed-off-by: Fangyi Zhou <me@fangyi.io>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-04-07 07:46:23 -07:00
Johannes Schindelin
80da22829c fixup! fsmonitor: reintroduce core.useBuiltinFSMonitor
Under certain (not quite easy to force, apparently) circumstances, a Git
process that just warned about the deprecated config setting will spawn
another Git process that then _also_ warns about that config setting.

Let's try to tone that down by setting an environment variable that
indicates that this process and all of its children no longer need to
tell the user about this deprecation.

Note: This patch does not help in situations where, say, scripts call
Git multiple times and each of those times Git prints this deprecation
notice. It is unclear whether we can do anything about this because
those Git processes would have to signal to their _parent_ process that
the advice was already provided.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-07 10:57:13 +02:00
Todd Zullinger
f3ea4bed2a doc: replace "--" with {litdd} in credential-cache/fsmonitor
Asciidoc renders `--` as em-dash.  This is not appropriate for command
names.  It also breaks linkgit links to these commands.

Fix git-credential-cache--daemon and git-fsmonitor--daemon.  The latter
was added 3248486920 (fsmonitor: document builtin fsmonitor, 2022-03-25)
and included several links.  A check for broken links in the HTML docs
turned this up.

Manually inspecting the other Documentation/git-*--*.txt files turned up
the issue in git-credential-cache--daemon.

While here, quote `git credential-cache--daemon` in the synopsis to
match the vast majority of our other documentation.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-04-06 16:06:06 -07:00
Junio C Hamano
07330a41d6 Merge branch 'tl/ls-tree-oid-only'
"git ls-tree" learns "--oid-only" option, similar to "--name-only",
and more generalized "--format" option.
source: <cover.1648026472.git.dyroneteng@gmail.com>

* tl/ls-tree-oid-only:
  ls-tree: `-l` should not imply recursive listing
2022-04-06 15:21:59 -07:00
Junio C Hamano
95acb13a55 Merge branch 'bc/csprng-mktemps'
Build fix.

* bc/csprng-mktemps:
  git-compat-util: really support openssl as a source of entropy
2022-04-06 15:21:59 -07:00
Junio C Hamano
327933fbbc Merge branch 'ns/core-fsyncmethod'
A couple of fix-up to a topic that is now in 'master'.
source: <pull.1193.git.1648663716891.gitgitgadget@gmail.com>

* ns/core-fsyncmethod:
  configure.ac: fix HAVE_SYNC_FILE_RANGE definition
2022-04-06 15:21:58 -07:00
Junio C Hamano
0f0303a479 Merge branch 'ab/make-optim-noop'
A micro fix to a topic earlier merged to 'master'
source: <patch-1.1-05949221e3f-20220319T002715Z-avarab@gmail.com>

* ab/make-optim-noop:
  contrib/scalar: fix 'all' target in Makefile
  Documentation/Makefile: fix "make info" regression in dad9cd7d51
2022-04-06 15:21:58 -07:00
Victoria Dye
f2a2876f5a contrib/scalar: fix 'all' target in Makefile
Add extra ':' to second 'all' target definition to allow 'scalar' to build.
Without this fix, the 'all:' and 'all::' targets together cause a build
failure when 'scalar' build is enabled with 'INCLUDE_SCALAR':

    Makefile:14: *** target file `all' has both : and :: entries.  Stop.

Signed-off-by: Victoria Dye <vdye@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-04-06 10:19:57 -07:00
Ævar Arnfjörð Bjarmason
8af0699b7a Documentation/Makefile: fix "make info" regression in dad9cd7d51
Fix a regression in my dad9cd7d51 (Makefile: move ".SUFFIXES" rule to
shared.mak, 2022-03-03). As explained in the GNU make documentation
for the $* variable, available at:

	info make --index-search='$*'

This rule relied on ".texi" being in the default list of suffixes, as
seen at:

	make -f/dev/null -p | grep -v -e ^# -e ^$|grep -F .SUFFIXES

The documentation explains what was going on here:

	In an explicit rule, there is no stem; so '$*' cannot be determined
	in that way.  Instead, if the target name ends with a recognized
	suffix (*note Old-Fashioned Suffix Rules: Suffix Rules.), '$*' is
	set to the target name minus the suffix.  For example, if the
	target name is 'foo.c', then '$*' is set to 'foo', since '.c' is a
	suffix.  GNU 'make' does this bizarre thing only for compatibility
	with other implementations of 'make'.  You should generally avoid
	using '$*' except in implicit rules or static pattern rules.

	If the target name in an explicit rule does not end with a
	recognized suffix, '$*' is set to the empty string for that rule.

I.e. this rule added back in 5cefc33bff (Documentation: add
gitman.info target, 2007-12-10) was resolving gitman.texi from
gitman.info. We can instead just use the more obvious $< variable
referring to the prerequisite.

This was the only use of $* in our Makefiles in an explicit rule, the
three remaining ones are all implicit rules, and therefore didn't
depend on the ".SUFFIXES" list.

Reported-by: Adam Dinwoodie <adam@dinwoodie.org>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Tested-by: Adam Dinwoodie <adam@dinwoodie.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-04-06 09:43:48 -07:00
Adam Dinwoodie
2e37594797 configure.ac: fix HAVE_SYNC_FILE_RANGE definition
If sync_file_range is not available when building the configure script,
there is a cosmetic bug when running that script reporting
"HAVE_SYNC_FILE_RANGE: command not found".  Remove that error message by
defining HAVE_SYNC_FILE_RANGE to an empty string, rather than generating
a script where that appears as a bare command.

Signed-off-by: Adam Dinwoodie <adam@dinwoodie.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-04-06 09:36:19 -07:00
Carlo Marcelo Arenas Belón
5b52d9f15e git-compat-util: really support openssl as a source of entropy
05cd988dce (wrapper: add a helper to generate numbers from a CSPRNG,
2022-01-17), configure openssl as the source for entropy in NON-STOP
but doesn't add the needed header or link options.

Since the only system that is configured to use openssl as a source
of entropy is NON-STOP, add the header unconditionally, and -lcrypto
to the list of external libraries.

An additional change is required to make sure a NO_OPENSSL=1 build
will be able to work as well (tested on Linux with a modified value
of CSPRNG_METHOD = openssl), and the more complex logic that allows
for compatibility with APPLE_COMMON_CRYPTO or allowing for simpler
ways to link (without libssl) has been punted for now.

Reported-by: Randall Becker <rsbecker@nexbridge.com>
Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-04-06 09:04:50 -07:00
Josh Steadmon
350296cc78 ls-tree: -l should not imply recursive listing
In 9c4d58ff2c (ls-tree: split up "fast path" callbacks, 2022-03-23), a
refactoring of the various read_tree_at() callbacks caused us to
unconditionally recurse into directories if `-l` (long format) was
passed on the command line, regardless of whether or not we also pass
the `-r` (recursive) flag.

Fix this by making show_tree_long() return the value of `recurse`,
rather than always returning 1. This value is interpreted by
read_tree_at() to be a signal on whether or not to recurse.

Signed-off-by: Josh Steadmon <steadmon@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-04-06 08:41:25 -07:00
Johannes Schindelin
c61dcf9cfa Merge pull request #3708 from PhilipOakley/die_preserve
Update the die() preserve-merges messages to help some users
v2.36.0-rc0.windows.1
2022-04-05 08:14:42 -07:00
Johannes Schindelin
80d1641549 Merge 'readme' into HEAD
Add a README.md for GitHub goodness.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-05 08:14:42 -07:00
Philip Oakley
4a389d66c6 rebase: preserve is also a pull option, tell dying users
The `--preserve-merges` option was removed by v2.35.0. However
users may not be aware that it is also a Pull option, and it is
still offered by major IDE vendors such as Visual Studio.

Extend the `--preserve-merges` die message to direct users to
this option and it's locations.

Signed-off-by: Philip Oakley <philipoakley@iee.email>
2022-04-05 08:14:42 -07:00
Johannes Schindelin
2bb36feb98 Merge pull request #2837 from dscho/monitor-component-updates
Start monitoring updates of Git for Windows' component in the open
2022-04-05 08:14:42 -07:00
Philip Oakley
1fa952d66f rebase: help user when dying with preserve-merges`
Git will die if a "rebase --preserve-merges" is in progress.
Users cannot --quit, --abort or --continue the rebase.

This sceario can occur if the user updates their Git, or switches
to another newer version, after starting a preserve-merges rebase,
commonly via the pull setting.

One trigger is an unexpectedly difficult to resolve conflict, as
reported on the `git-users` group.
(https://groups.google.com/g/git-for-windows/c/3jMWbBlXXHM)

Tell the user the cause, i.e. the existence of the directory.
The problem must be resolved manually, `git rebase --<option>`
commands will die, or the user must downgrade. Also, note that
the deleted options are no longer shown in the documentation.

Signed-off-by: Philip Oakley <philipoakley@iee.email>
2022-04-05 08:14:42 -07:00
Johannes Schindelin
08fd1f8a54 Merge branch 'deprecate-old-runtime-prefix-path-interpolation'
Previously, we interpolated paths in config variables that start with a
forward-slash as relative to the runtime prefix. This was not portable
and has been replaced with `%(prefix)/`.

Let's warn users when they use the now-deprecated form.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-05 08:14:42 -07:00
Johannes Schindelin
a897d0bf92 Merge branch 'phase-out-reset-stdin'
This topic branch re-adds the deprecated --stdin/-z options to `git
reset`. Those patches were overridden by a different set of options in
the upstream Git project before we could propose `--stdin`.

We offered this in MinGit to applications that wanted a safer way to
pass lots of pathspecs to Git, and these applications will need to be
adjusted.

Instead of `--stdin`, `--pathspec-from-file=-` should be used, and
instead of `-z`, `--pathspec-file-nul`.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-05 08:14:42 -07:00
Johannes Schindelin
de186e67ae Merge pull request #1354 from dscho/phase-out-show-ignored-directory-gracefully
Phase out `--show-ignored-directory` gracefully
2022-04-05 08:14:42 -07:00
Johannes Schindelin
6d48a5afae Merge branch 'status-no-lock-index'
This branch allows third-party tools to call `git status
--no-lock-index` to avoid lock contention with the interactive Git usage
of the actual human user.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-05 08:14:42 -07:00
Johannes Schindelin
661eefdd21 Merge branch 'un-revert-editor-save-and-reset'
A fix for calling `vim` in Windows Terminal caused a regression and was
reverted. We partially un-revert this, to get the fix again.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-05 08:14:42 -07:00
Victoria Dye
6505014043 Merge pull request #3492 from dscho/ns/batched-fsync
Switch to batched fsync by default
2022-04-05 08:14:42 -07:00
Johannes Schindelin
5a69de905d Merge pull request #1170 from dscho/mingw-kill-process
Handle Ctrl+C in Git Bash nicely

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-05 08:14:42 -07:00
Johannes Schindelin
a84577baca Merge branch 'busybox-w32'
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-05 08:14:42 -07:00
Johannes Schindelin
2cc25a482a Merge pull request #1897 from piscisaureus/symlink-attr
Specify symlink type in .gitattributes
2022-04-05 08:14:41 -07:00
Johannes Schindelin
b3ee75cd19 Merge 'docker-volumes-are-no-symlinks'
This was pull request #1645 from ZCube/master

Support windows container.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2022-04-05 08:14:41 -07:00
Johannes Schindelin
a51385d222 Merge branch 'kblees/kb/symlinks' 2022-04-05 08:14:41 -07:00
Johannes Schindelin
70ea8ae920 Merge branch 'msys2' 2022-04-05 08:14:41 -07:00