Commit Graph

108481 Commits

Author SHA1 Message Date
Johannes Schindelin
241daffb5b Merge branch 'ready-for-upstream'
This is the branch thicket of patches in Git for Windows that are
considered ready for upstream. To keep them in a ready-to-submit shape,
they are kept as close to the beginning of the branch thicket as
possible.
2020-04-08 16:45:52 +02:00
Johannes Schindelin
6120e0ee9b Merge pull request #2577 from dscho/github-action+musl
Add a CI/PR workflow based on GitHub Actions
2020-04-08 16:45:43 +02:00
Johannes Schindelin
35850b8bc8 Merge pull request #2574 from rimrul/ucrt-strftime
mingw: use modern strftime implementation if possible
2020-04-08 16:45:43 +02:00
Johannes Schindelin
1815c6f771 Merge branch 'subtree-and-docbook'
This patch pulls `contrib/subtree` on par with the AsciiDoctor 2 fixes
done to `Documentation/`.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:43 +02:00
Johannes Schindelin
e80a817626 Merge pull request #2535 from dscho/schannel-revoke-best-effort
Introduce and use the new "best effort" strategy for Secure Channel revoke checking
2020-04-08 16:45:42 +02:00
Johannes Schindelin
72adff28ec Merge pull request #2516 from nyckyta/crlf-aware-git-credential
credential.c: fix credential reading with regards to CR/LF
2020-04-08 16:45:42 +02:00
Johannes Schindelin
257c56aebf Merge pull request #2506 from dscho/issue-2283
Allow running Git directly from `C:\Program Files\Git\mingw64\bin\git.exe`
2020-04-08 16:45:41 +02:00
Johannes Schindelin
ce88aac5a9 Merge pull request #2504 from dscho/access-repo-via-junction
Handle `git add <file>` where <file> traverses an NTFS junction
2020-04-08 16:45:41 +02:00
Johannes Schindelin
672245043c Merge pull request #2501 from jeffhostetler/clink-debug-curl
clink.pl: fix MSVC compile script to handle libcurl-d.lib
2020-04-08 16:45:41 +02:00
Johannes Schindelin
0fee0a5ddf Merge pull request #2488 from bmueller84/master
mingw: fix fatal error working on mapped network drives on Windows
2020-04-08 16:45:40 +02:00
Johannes Schindelin
f0da8e8de8 Merge pull request #2473 from dscho/com0-is-not-a-reserved-name
Do not mistake `COM0` for a reserved file name
2020-04-08 16:45:40 +02:00
Johannes Schindelin
bf62fffbed Merge pull request #2449 from dscho/mingw-getcwd-and-symlinks
Do resolve symlinks in `getcwd()`
2020-04-08 16:45:40 +02:00
Johannes Schindelin
886953c3d3 Merge pull request #2405 from dscho/mingw-setsockopt
Make sure `errno` is set when socket operations fail
2020-04-08 16:45:39 +02:00
Johannes Schindelin
5030f467cf Merge pull request #2375 from assarbad/reintroduce-sideband-config
Config option to disable side-band-64k for transport
2020-04-08 16:45:39 +02:00
Johannes Schindelin
0227b9a63c Merge branch 'msys2-python'
In MSYS2, we have two Python interpreters at our disposal, so we can
include the Python stuff in the build.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:39 +02:00
Johannes Schindelin
f5bd51e99f Merge branch 'move-gfw-system-config-to-top-level'
Make `git config --system` work like you think it should on Windows: it
should edit the file that is located in `<Git>\etc\gitconfig`.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:38 +02:00
Johannes Schindelin
d51ba043a6 Merge pull request #2351 from PhilipOakley/vcpkg-tip
Vcpkg Install: detect lack of working Git, and note possible vcpkg time outs
2020-04-08 16:45:38 +02:00
Johannes Schindelin
8959b10a82 Merge pull request #2316 from carenas/win-pcre1-cleanup
config.mak.uname: PCRE1 cleanup
2020-04-08 16:45:38 +02:00
Johannes Schindelin
dc504b8679 Merge branch 'work-around-isilon'
It would appear that least the Isilon network filesystem (and possibly
other network filesystems, too), report non-standard error values when
trying to access a non-existing directory.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:37 +02:00
Johannes Schindelin
e0ad4c0983 Merge branch 'dont-clean-junctions'
This topic branch teaches `git clean` to respect NTFS junctions and Unix
bind mounts: it will now stop at those boundaries.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:37 +02:00
Johannes Schindelin
a9201d8f28 Merge branch 'msys2-strace'
Debugging support on MSYS2.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:36 +02:00
Johannes Schindelin
f522422faf Merge branch 'robustify-is-hidden-tests'
In Git for Windows, there is an option to mark the .git directory as
hidden. Our test cases verify this by using the system utility
`attrib.exe`.

This file name is unfortunately quite generic, and overlaps with a
Unix-y utility that might be hiding the system one in the `PATH`.

Let's specify explicitly which `attrib` to use.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:36 +02:00
Johannes Schindelin
759dd10856 Merge branch 'fflush-in-git-clean'
After writing to `stdout` and before reading from `stdin`, it is a good
idea to flush the former.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:36 +02:00
Johannes Schindelin
87f75b352b Merge pull request #2170 from dscho/gitk-long-cmdline
Fix gitk (long cmdline)
2020-04-08 16:45:35 +02:00
Johannes Schindelin
f01f4c2c7f Merge branch 'fsync-object-files-always'
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:35 +02:00
Johannes Schindelin
375bfeda6b Merge remote-tracking branch 'dscho/add-p' into add-p-g4w
Let's test this for a while.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:35 +02:00
Johannes Schindelin
48b2759642 Merge branch 'dont-spawn-gzip-in-archive'
This topic branch avoids spawning `gzip` when asking `git archive` to
create `.tar.gz` files.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:35 +02:00
Johannes Schindelin
545e396ce7 Merge branch 'mingw-expand-absolute-user-path'
When compiling Git with a runtime prefix (so that it can be installed
into any location, finding its libexec/ directory relative to the
location of the `git` executable), it is convenient to provide
"absolute" Unix-y paths e.g. for http.sslCAInfo, and have those absolute
paths be resolved relative to the runtime prefix.

This patch makes it so for Windows. It is up for discussion whether we
want this for other platforms, too, as long as building with
RUNTIME_PREFIX.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:34 +02:00
Johannes Schindelin
1a3264a04f Merge branch 'drive-prefix'
This topic branch allows us to specify absolute paths without the drive
prefix e.g. when cloning.

Example:

	C:\Users\me> git clone https://github.com/git/git \upstream-git

This will clone into a new directory C:\upstream-git, in line with how
Windows interprets absolute paths.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:34 +02:00
Johannes Schindelin
17fbe895ef Merge pull request #996 from jeffhostetler/jeffhostetler/register_rename_src
diffcore-rename: speed up register_rename_src
2020-04-08 16:45:34 +02:00
Johannes Schindelin
1c2f4f8f68 Merge 'sgn/github-action-latest'
This topic thicket defines a Continuous Integration/Pull Request build
using GitHub Actions, and retires our Azure Pipeline in return.

The secondary change in this topic thicket is to make sure that Git
works with musl's libc and with BusyBox (which simplifies/changes a
couple of Git for Windows' own BusyBox patches, too).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:33 +02:00
Johannes Schindelin
ef3b4ba1e9 Merge 'remote-hg-prerequisites' into HEAD
These fixes were necessary for Sverre Rabbelier's remote-hg to work,
but for some magic reason they are not necessary for the current
remote-hg. Makes you wonder how that one gets away with it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:33 +02:00
Johannes Schindelin
3af8a55f5c Merge branch 'sgn/github-action-v4-on-2.26.0'
This topic branch replaces the Azure Pipeline with a GitHub workflow.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:33 +02:00
Johannes Schindelin
d69c28d0fd Merge branch 'dd/test-with-busybox'
This topic branch is actually _required_ for `dd/ci-musl-libc` to work.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:32 +02:00
Johannes Schindelin
8b85a629e8 ci: let GitHub Actions upload failed tests' directories
Arguably, CI builds' most important task is to not only identify
regressions, but to make it as easy as possible to investigate what went
wrong.

In that light, we will want to provide users with a way to inspect the
tests' output as well as the corresponding directories.

This commit adds build steps that are only executed when tests failed,
uploading the relevant information as build artifacts. These artifacts
can then be downloaded by interested parties to diagnose the failures
more efficiently.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
2020-04-08 16:45:32 +02:00
Johannes Schindelin
d6575e6a88 Merge branch 'dd/ci-musl-libc'
A new CI job to build and run test suite on linux with musl libc has
been added.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2020-04-08 16:45:32 +02:00
Johannes Schindelin
ac80b32afb ci: add a problem matcher for GitHub Actions
With this patch, test failures will be annotated with a helpful,
clickable message in GitHub Actions. For details, see
https://github.com/actions/toolkit/blob/master/docs/problem-matchers.md

Note: we need to set `TEST_SHELL_PATH` to Bash so that the problem
matcher is fed a file and line number for each test failure.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
2020-04-08 16:45:32 +02:00
Johannes Schindelin
6f89b6c40d tests: when run in Bash, annotate test failures with file name/line number
When a test fails, it is nice to see where the corresponding code lives
in the worktree. Sadly, it seems that only Bash allows us to infer this
information. Let's do it when we detect that we're running in a Bash.

This will come in handy in the next commit, where we teach the GitHub
Actions workflow to annotate failed test runs with this information.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
2020-04-08 16:45:32 +02:00
Johannes Schindelin
0d44e98df0 ci: retire the Azure Pipelines definition
We have GitHub Actions now. Running the same builds and tests in Azure
Pipelines would be redundant, and a waste of energy.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
2020-04-08 16:45:32 +02:00
Johannes Schindelin
e6c289dd3f README: add a build badge for the GitHub Actions runs
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
2020-04-08 16:45:32 +02:00
Đoàn Trần Công Danh
a5f303bbed ci: configure GitHub Actions for CI/PR
This patch adds CI builds via GitHub Actions. While the underlying
technology is at least _very_ similar to that of Azure Pipelines, GitHub
Actions are much easier to set up than Azure Pipelines:

- no need to install a GitHub App,

- no need to set up an Azure DevOps account,

- all you need to do is push to your fork on GitHub.

Therefore, it makes a lot of sense for us to have a working GitHub
Actions setup.

While copy/editing `azure-pipelines.yml` into
`.github/workflows/main.yml`, we also use the opportunity to accelerate
the step that sets up a minimal subset of Git for Windows' SDK in the
Windows-build job:

- we now download a `.tar.xz` stored in Azure Blobs and extract it
  simultaneously by calling `curl` and piping the result to `tar`,

- decompressing via `xz`,

- all three utilities are installed together with Git for Windows

At the same time, we also make use of the matrix build feature, which
reduces the amount of repeated text by quite a bit.

Also, we do away with the parts that try to mount a file share on which
`prove` can store data between runs. It is just too complicated to set
up, and most times the tree changes anyway, so there is little return on
investment there.

Initial-patch-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
2020-04-08 16:45:32 +02:00
Đoàn Trần Công Danh
08de3ce463 t5703: feed raw data into test-tool unpack-sideband
busybox's sed isn't binary clean.
Thus, triggers false-negative on this test.

We could replace sed with perl on this usecase.
But, we could slightly modify the helper to discard unwanted data in the
beginning.

Fix the false negative by updating this helper.

Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-08 16:45:31 +02:00
Johannes Schindelin
edf8766b1e ci: run gem with sudo to install asciidoctor
In a later patch, we will run Documentation job in GitHub Actions.
The job will run without elevated permission.

Run `gem` with `sudo` to elevate permission in order to be able to
install to system location.
This will also keep this installation in-line with other installation in
our Linux system for CI.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
[Danh: reword commit message]
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
2020-04-08 16:45:31 +02:00
Đoàn Trần Công Danh
ee7ad8e521 t4124: tweak test so that non-compliant diff(1) can also be used
The diff(1) implementation of busybox produces the unified context
format even without being asked, and it cannot produce the default
format, but a test in this script relies on.

We could rewrite the test so that we count the lines in the
postimage out of the unified context format, but the format is not
supported by some implementations of diff (e.g. HP-UX).

Accomodate busybox by adding a fallback code to count postimage
lines in unified context output, when counting in the output in the
default format finds nothing.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
[jc: applied Documentation/CodingGuidelines and tweaked the log message]
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-08 16:45:31 +02:00
Đoàn Trần Công Danh
4568c423b3 ci: explicit install all required packages
In a later patch, we will support GitHub Action.

Explicitly install all of our build dependencies.
Since GitHub Action VM hasn't install our build dependencies, yet.
And there're no harm to reinstall them (in Travis)

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
2020-04-08 16:45:31 +02:00
Đoàn Trần Công Danh
9f7c136e6c t7063: drop non-POSIX argument "-ls" from find(1)
Since commit 6b7728db81, (t7063: work around FreeBSD's lazy mtime
update feature, 2016-08-03), we started to use ls as a trick to update
directory's mtime.

However, `-ls` flag isn't required by POSIX's find(1), and
busybox(1) doesn't implement it.

Use "-exec ls -ld {} +" instead.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-08 16:45:31 +02:00
Johannes Schindelin
e625ef2e49 ci: fix the jobname of the GETTEXT_POISON job
In 6cdccfce1e (i18n: make GETTEXT_POISON a runtime option,
2018-11-08), the `jobname` was adjusted to have the `GIT_TEST_` prefix,
but that prefix makes no sense in this context.

Co-authored-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
2020-04-08 16:45:31 +02:00
Đoàn Trần Công Danh
1b5b08d5cf t5616: use rev-parse instead to get HEAD's object_id
Only HEAD's object_id is necessary, rev-list is an overkill.

Despite POSIX requires grep(1) treat single pattern with <newline>
as multiple patterns.
busybox's grep(1) (as of v1.31.1) haven't implemented it yet.

Use rev-parse to simplify the test and avoid busybox unimplemented
features.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-08 16:45:31 +02:00
Đoàn Trần Công Danh
6b6d9f02dc ci/lib: set TERM environment variable if not exist
GitHub Action doesn't set TERM environment variable, which is required
by "tput".

Fallback to dumb if it's not set.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
2020-04-08 16:45:31 +02:00
Đoàn Trần Công Danh
e864d190dc t5003: skip conversion test if unzip -a is unavailable
Alpine Linux's default unzip(1) doesn't support `-a`.

Skip those tests on that platform.

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-04-08 16:45:31 +02:00