Commit Graph

165722 Commits

Author SHA1 Message Date
Johannes Schindelin
92f4ffb010 Fix t0060.221 on Windows/ARM64 (#5610)
Apparently my tests of https://github.com/git-for-windows/git/pull/5586
had been incomplete. This here patch is needed to let t0060.221 pass
(where it verifies that `git.exe` sets `MSYSTEM` correctly if that
environment variable has not yet been set): Simply reverse the order of
the tests whether to set `MINGW64` or `CLANGARM64` to avoid using the
former on Windows/ARM64 by mistake.
2025-04-30 16:33:47 +02:00
Johannes Schindelin
874c21bce6 fixup! mingw: allow git.exe to be used instead of the "Git wrapper"
This patch makes it so that Git really sets the desired `MSYSTEM` on
Windows/ARM64.

The reason this did not work (and my faulty tests did not catch that
before merging https://github.com/git-for-windows/git/pull/5586) is that
clang (at least version 20.1.3 as built from
https://github.com/git-for-windows/MINGW-packages
8df0c2fff4184deff15acce9bfd791fb6e0d60fe) predefines the `__MINGW64__`
constant:

	$ echo | clang -dM -E - | grep -n MINGW64
	249:#define __MINGW64__ 1

Let's just switch the order between the CLANGARM64 and the MINGW64 test;
This will still work for MINGW64 because none of the constants used in
the CLANGARM64 condition are defined for x64 gcc (or for that matter,
clang).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-30 16:23:05 +02:00
Johannes Schindelin
eaeb5b51c3 Upgrade to mimalloc v2.2.3 (#5508)
Git for Windows still carries [mimalloc
v2.1.2](https://github.com/microsoft/mimalloc/releases/tag/v2.1.2),
which is almost 2 years old. Let's upgrade.
2025-04-21 14:13:05 +02:00
Johannes Schindelin
773e41c596 clangarm64: let the tests pass! (#5586)
I encountered these issues that had hitherto escaped us [when I worked
on letting the `ci-artifacts` workflow in git-sdk-arm64 also build Git
and run the test
suite](https://github.com/git-for-windows/git-sdk-arm64/pull/37) by way
of validating the `minimal-sdk` artifact.

Mind, this PR does not only adjust a test case that was previously too
fixated on x86_64. There are two real issues that this PR addresses and
that were found via the test suite:

- When the environment variable `MSYSTEM` is not yet set, it now is set
appropriately even on Windows/ARM64 (and the `PATH` is adjusted
accordingly).
- The tree traversal limit designed to avoid stack overflows needed to
be adjusted for the clangarm64 builds.
2025-04-21 13:34:38 +02:00
Johannes Schindelin
2c3b7795e5 max_tree_depth: lower it for clangarm64 on Windows
Just as in b64d78ad02 (max_tree_depth: lower it for MSVC to avoid
stack overflows, 2023-11-01), I encountered the same problem with the
clang builds on Windows/ARM64.

The symptom is an exit code 127 when t6700 tries to verify that `git
archive big` fails.

This exit code is reserved on Unix/Linux to mean "command not found".
Unfortunately in this case, it is the fall-back chosen by
Cygwin's `pinfo::status_exit()` method when encountering
the NSTATUS `STATUS_STACK_OVERFLOW`, see
https://github.com/cygwin/cygwin/blob/cygwin-3.6.1/winsup/cygwin/pinfo.cc#L171

I verified manually that the stack overflow always happens somewhere
around tree depth 1403, therefore 1280 should be a safe bound in these
instances.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-20 23:54:28 +02:00
Johannes Schindelin
6cb56a7dae fixup! Import the source code of mimalloc v2.2.3
Let's ignore the `static void mi_stat_total_print()` function that is
not actually used. This is code vendored into Git, and we want to
deviate as minimally from upstream mimalloc as possible to make it cheap
to stay up to date.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-20 20:57:33 +02:00
Johannes Schindelin
1cce6a72bc fixup! Import the source code of mimalloc v2.2.3
To support mimalloc-enabled builds also on Linux and on macOS, we need
to ship the respective backends, too.

This helped me diagnose "mimalloc vs reftable" problems much quicker
because Git's birthplace *is* Linux, and its support for debugging on
that platform is still highly unmatched by its support for any other
platform.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-20 20:50:25 +02:00
Johannes Schindelin
07d2876ed3 mimalloc: adjust for building inside Git
We want to compile mimalloc's source code as part of Git, rather than
requiring the code to be built as an external library: mimalloc uses a
CMake-based build, which is not necessarily easy to integrate into the
flavors of Git for Windows (which will be the main benefitting port).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-20 20:42:01 +02:00
Johannes Schindelin
4758e767d0 Import the source code of mimalloc v2.2.3
Update to newer mimalloc versions like this:

  update_mimalloc ()
  {
      test $# = 1 || {
          echo "Need a mimalloc version" 1>&2;
          return 1
      };
      for oneline in 'mimalloc: adjust for building inside Git' 'Import the source code of mimalloc';
      do
          git revert -n HEAD^{/^"$oneline"} && git checkout HEAD -- Makefile && git commit -sm "Temporarily revert \"$oneline\"" -m 'In preparation for upgrading to a newer mimalloc version.' || return 1;
      done;
      for file in $(git show --format='%n' --name-only --diff-filter=A HEAD^{/^"Import the source code of mimalloc "}) compat/mimalloc/arena-abandon.c compat/mimalloc/free.c compat/mimalloc/libc.c compat/mimalloc/prim/prim.c compat/mimalloc/mimalloc-stats.h;
      do
          file2=${file#compat/mimalloc/};
          case "$file2" in
              segment-cache.c)
                  : no longer needed;
                  continue
              ;;
              bitmap.h | *.c)
                  file2=src/$file2
              ;;
              *.h)
                  file2=include/$file2
              ;;
          esac;
          mkdir -p "${file%/*}" && git -C /usr/src/mimalloc/ show "$1":$file2 > "$file" && git add "$file" || {
              echo "Failed: $file2 -> $file" 1>&2;
              return 1
          };
      done;
      conv_sed='sed -n "/^ *eval/d;/      /p"' && git commit -sm "Import the source code of mimalloc $1" -m "Update to newer mimalloc versions like this:" -m "$(set | sed -n '/^update_mimalloc *() *$/,/^}/{s/^./  &/;p}')" -m '  update_mimalloc $MIMALLOC_VERSION' -m 'For convenience, you can set `MIMALLOC_VERSION` and then run:' -m '  eval "$(git show -s <this-commit> | '"$conv_sed"')"' || return 1;
      git cherry-pick HEAD^{/^'mimalloc: adjust for building inside Git'} || return 1
  }

  update_mimalloc $MIMALLOC_VERSION

For convenience, you can set `MIMALLOC_VERSION` and then run:

  eval "$(git show -s <this-commit> | sed -n "/^ *eval/d;/      /p")"

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-20 20:42:01 +02:00
Johannes Schindelin
35f1becaf9 Temporarily revert "Import the source code of mimalloc"
In preparation for upgrading to a newer mimalloc version.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-20 20:41:33 +02:00
Johannes Schindelin
730637aa74 Temporarily revert "mimalloc: adjust for building inside Git"
In preparation for upgrading to a newer mimalloc version.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-20 20:41:32 +02:00
Johannes Schindelin
195bf95a85 fixup! mingw: allow git.exe to be used instead of the "Git wrapper"
When this commit was originally introduced, Windows/ARM64 support was a
fantasy.

In the meantime it is reality and we need to do a better job of setting
`MSYSTEM` and the `PATH`: We want to support Windows/ARM64 properly.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-20 20:35:52 +02:00
Johannes Schindelin
4cf0647f7e fixup! mingw: allow git.exe to be used instead of the "Git wrapper"
Let's make the `.dll` copying a bit more robust. At least in my hands,
the check sometimes failed to detect whether there are any `.dll` files
to be copied.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-20 20:35:51 +02:00
Johannes Schindelin
4c5c47d1e8 fixup! mingw: allow git.exe to be used instead of the "Git wrapper"
The original test case obviously only worked in the x86_64 flavor of Git
for Windows (and since I rarely test on i686, this was not caught).

This completely breaks on Windows/ARM64:

  +++ GIT_DIR=/dev/null
  +++ git diff --no-index --ignore-cr-at-eol -- expect actual
  diff --git a/expect b/actual
  index e0dc09e..2301bbf 100644
  --- a/expect
  +++ b/actual
  @@ -1,3 +1,3 @@
  -MSYSTEM=CLANGARM64
  +MSYSTEM=MINGW64
   mingw64
   usr
  error: last command exited with $?=1
  not ok 221 - MSYSTEM/PATH is adjusted if necessary

To fix that, let's rely on `MINGW_PREFIX` (falling back to constructing
it from `MSYSTEM`, defaulting to `MINGW64` if _that_ is unset, too).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-20 20:35:51 +02:00
Johannes Schindelin
7a18c63e17 Fix CI builds again (#5590)
I noticed that the CI builds of `shears/main` were failing, as well as
the PR builds of #5586. The reasons are outside of Git for Windows, but
the fixes need to be inside anyway.
2025-04-16 16:11:10 +02:00
Johannes Schindelin
419e29e832 ci(pedantic): ensure that awk is installed
The image pointed to by the fedora:latest tag has moved from fedora 41
to 42. The fedora 41 container images have awk installed while the
fedora 42 images do not.  That change is most likely just part of
reducing the size of the base container images.

In both AlmaLinux and Fedora (as well as other RHEL
derivatives/relatives), awk is provided by the gawk package.

On Fedora, `dnf install awk` would work, but for unintended reasons! It
uses the package filelist data to determine that /usr/bin/awk is
provided by gawk and installs gawk as a result.

On AlmaLinux (8 & 9, by my quick testing), that is not the case and
you'd need to use `dnf install gawk` or `dnf install '*bin/awk'` to get
it installed. Having said that, awk _is_ included in the current
AlmaLinux 8 and 9 images, so it isn't strictly needed.  But it's
probably better to be explicit that we need it installed, as a defense
against some future change to the AlmaLinux container removing awk.

Using the package name "gawk" is the right thing to do.

Note that even '*bin/awk' would have worked, but it is less specific.
And who knows, maybe in the far future a BSD variant of awk is offered,
too, and would then cause ambiguities. Best to avoid that.

Suggested-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-16 14:54:46 +02:00
Johannes Schindelin
cc923a4af4 Merge branch 'js/ci-github-update-ubuntu'
This is Exhibit B to make the case that maintenance is always required,
a software is never "done".

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-16 14:54:45 +02:00
Johannes Schindelin
ad810bf3e5 Merge branch 'dd/sparse-glibc-workaround'
This is Exhibit A to make the case that maintenance is always required,
a software is never "done".

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-04-16 14:54:45 +02:00
Johannes Schindelin
832d9f6d0b ci: upgrade sparse to supported build agents
The `sparse` job still uses the `ubuntu-20.04` runner pool, but that
pool is about to go away, so let's stop using it.

There is no `sparse-22.04` artifact provided by the "Build sparse for
Ubuntu" Azure Pipeline, but that is not necessary anyway because Ubuntu
22.04 has the `sparse` package: https://packages.ubuntu.com/jammy/sparse

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-04-09 08:44:26 -07:00
Đoàn Trần Công Danh
da87b58014 sparse: ignore warning from new glibc headers
With at least glibc 2.39, glibc provides a function declaration that
matches with this POSIX interface:

    int regexec(const regex_t *restrict preg, const char *restrict string,
           size_t nmatch, regmatch_t pmatch[restrict], int eflags);

such prototype requires variable-length-array for `pmatch'.

Thus, sparse reports this error:

> ../add-patch.c: note: in included file (through ../git-compat-util.h):
> /usr/include/regex.h:682:41: error: undefined identifier '__nmatch'
> /usr/include/regex.h:682:41: error: bad constant expression type
> /usr/include/regex.h:682:41: error: Variable length array is used.

Note: `__nmatch' is POSIX's nmatch.

The glibc's intention is informing their users to provides a large
enough buffer to hold `__nmatch' results and provides diagnosis if
necessary.  It's merely a glibc' implementation detail.

Hide that usage from sparse by using standard C11's macro:
__STDC_NO_VLA__

Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-04-09 08:42:59 -07:00
Johannes Schindelin
16d82dcdbb fixup! mingw: support long paths (#5550)
When rebasing c8b6c1db91 (mingw: support long paths, 2015-07-28) on
top of 391bceae43 (compat/mingw: support POSIX semantics for atomic
renames, 2024-10-27) a newly introduced MAX_PATH buffer was not
increased to MAX_LONG_PATH.

This fixes https://github.com/git-for-windows/git/issues/5476
2025-04-07 08:50:10 +02:00
Kim Gybels
2cdc2d67e1 fixup! mingw: support long paths
When rebasing c8b6c1db91 (mingw: support long paths, 2015-07-28) on
top of 391bceae43 (compat/mingw: support POSIX semantics for atomic
renames, 2024-10-27) a newly introduced MAX_PATH buffer was not
increased to MAX_LONG_PATH.

This fixes https://github.com/git-for-windows/git/issues/5476

Signed-off-by: Kim Gybels <kgybels@kodkod.be>
2025-04-06 22:27:25 +02:00
Johannes Schindelin
4ca71ba531 mingw_rename: support ReFS on Windows 2022 (#5515)
Git on Windows 2022 fails to write config files on ReFS with the error
message "Function not implemented". The reason is that
`ERROR_NOT_SUPPORTED` is reported (not `ERROR_INVALID_PARAMETER`, as
expected). Let's handle both errors the same: by falling back to the
best-effort option, namely to rename without POSIX semantics.

This fixes https://github.com/git-for-windows/git/issues/5427
2025-03-26 13:21:47 +01:00
Johannes Schindelin
0a94da16d3 mingw_rename: support ReFS on Windows 2022
ReFS is an alternative filesystem to NTFS. On Windows 2022, it seems not
to support the rename operation using POSIX semantics that Git uses on
Windows as of 391bceae43 (compat/mingw: support POSIX semantics for
atomic renames, 2024-10-27).

However, Windows 2022 reports `ERROR_NOT_SUPPORTED` in this instance.
This is in contrast to `ERROR_INVALID_PARAMETER` (as previous Windows
versions would report that do not support POSIX semantics in renames at
all).

Let's handle both errors the same: by falling back to the best-effort
option, namely to rename without POSIX semantics.

This fixes https://github.com/git-for-windows/git/issues/5427

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-26 09:01:33 +01:00
Johannes Schindelin
ff02073598 fixup! mimalloc: offer a build-time option to enable it
Adjust the `Makefile` part for mimalloc v2.2.2.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-25 13:29:16 +01:00
Johannes Schindelin
eedeb85537 mimalloc: adjust for building inside Git
We want to compile mimalloc's source code as part of Git, rather than
requiring the code to be built as an external library: mimalloc uses a
CMake-based build, which is not necessarily easy to integrate into the
flavors of Git for Windows (which will be the main benefitting port).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-25 13:29:13 +01:00
Johannes Schindelin
466c97db9b Import the source code of mimalloc v2.2.2
Update to newer mimalloc versions like this:

  update_mimalloc ()
  {
      test $# = 1 || {
          echo "Need a mimalloc version" 1>&2;
          return 1
      };
      for oneline in 'mimalloc: adjust for building inside Git' 'Import the source code of mimalloc';
      do
          git revert -n HEAD^{/^"$oneline"} && git checkout HEAD -- Makefile && git commit -sm "Temporarily revert \"$oneline\"" -m 'In preparation for upgrading to a newer mimalloc version.' || return 1;
      done;
      for file in $(git show --format='%n' --name-only --diff-filter=A HEAD^{/^"Import the source code of mimalloc "}) compat/mimalloc/arena-abandon.c compat/mimalloc/free.c compat/mimalloc/libc.c compat/mimalloc/prim/prim.c compat/mimalloc/mimalloc-stats.h;
      do
          file2=${file#compat/mimalloc/};
          case "$file2" in
              segment-cache.c)
                  : no longer needed;
                  continue
              ;;
              bitmap.h | *.c)
                  file2=src/$file2
              ;;
              *.h)
                  file2=include/$file2
              ;;
          esac;
          mkdir -p "${file%/*}" && git -C /usr/src/mimalloc/ show "$1":$file2 > "$file" && git add "$file" || {
              echo "Failed: $file2 -> $file" 1>&2;
              return 1
          };
      done;
      conv_sed='sed -n "/^ *eval/d;/      /p"' && git commit -sm "Import the source code of mimalloc $1" -m "Update to newer mimalloc versions like this:" -m "$(set | sed -n '/^update_mimalloc *() *$/,/^}/{s/^./  &/;p}')" -m '  update_mimalloc $MIMALLOC_VERSION' -m 'For convenience, you can set `MIMALLOC_VERSION` and then run:' -m '  eval "$(git show -s <this-commit> | '"$conv_sed"')"' || return 1;
      git cherry-pick HEAD^{/^'mimalloc: adjust for building inside Git'} || return 1
  }

  update_mimalloc $MIMALLOC_VERSION

For convenience, you can set `MIMALLOC_VERSION` and then run:

  eval "$(git show -s <this-commit> | sed -n "/^ *eval/d;/      /p")"

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-25 13:29:13 +01:00
Johannes Schindelin
0c6ee30cd4 Temporarily revert "Import the source code of mimalloc"
In preparation for upgrading to a newer mimalloc version.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-25 13:29:12 +01:00
Johannes Schindelin
9e0588064f Temporarily revert "mimalloc: adjust for building inside Git"
In preparation for upgrading to a newer mimalloc version.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-25 13:29:12 +01:00
Johannes Schindelin
9da41caad3 Revert "mimalloc: use "weak" random seed when statically linked"
In preparation for upgrading to a newer mimalloc version; This patch
will not be needed anymore, as it has been implemented in a slightly
different form in upstream mimalloc: 3e1d800e (potential fix for windows
static linking with thread creation in dll's, 2022-11-07).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-25 13:29:12 +01:00
Johannes Schindelin
5a99a2018d fixup! mimalloc: offer a build-time option to enable it
Instead of trying to "fix" whitespace issues in mimalloc's source,
thereby making it unnecessarily complicated to keep the vendored-in
mimalloc sources in sync, let's just prevent Git from trying to enforce
its coding style rules on said vendored-in source files.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-25 13:29:11 +01:00
Johannes Schindelin
ef773a9a5e fixup! mimalloc: offer a build-time option to enable it
Now that Git is a bit stricter when compiling its own source, we need to
exempt mimalloc a bit more.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-25 13:29:11 +01:00
Johannes Schindelin
357363f92f Replace the superseded wiki URLs (#5495)
This is a follow-up for
https://github.com/git-for-windows/git-for-windows.github.io/pull/59.
2025-03-19 13:37:11 +01:00
Johannes Schindelin
d90f827ac7 fixup! CONTRIBUTING.md: add guide for first-time contributors
Avoid referring to "the Git for Windows wiki", as the link no longer
points there.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-19 13:32:22 +01:00
Johannes Schindelin
81c7023308 fixup! SECURITY.md: document Git for Windows' policies
Git for Windows' wiki pages were moved as part of
https://github.com/git-for-windows/git-for-windows.github.io/pull/59.
Let's adjust the URLs that pointed to the wiki.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-19 11:48:12 +01:00
Johannes Schindelin
bbfef46cf1 fixup! README.md: Add a Windows-specific preamble
Git for Windows' wiki pages were moved as part of
https://github.com/git-for-windows/git-for-windows.github.io/pull/59.
Let's adjust the URLs that pointed to the wiki.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-19 11:48:04 +01:00
Johannes Schindelin
160365505b fixup! CONTRIBUTING.md: add guide for first-time contributors
Git for Windows' wiki pages were moved as part of
https://github.com/git-for-windows/git-for-windows.github.io/pull/59.
Let's adjust the URLs that pointed to the wiki.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-19 11:48:04 +01:00
Johannes Schindelin
cca1f38702 Merge 'readme' into HEAD
Add a README.md for GitHub goodness.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
v2.49.0.windows.1
2025-03-14 22:30:57 +01:00
Johannes Schindelin
15fba4ca3a Merge pull request #2837 from dscho/monitor-component-updates
Start monitoring updates of Git for Windows' component in the open
2025-03-14 22:30:57 +01:00
Johannes Schindelin
f282da5b7a Merge branch 'deprecate-core.useBuiltinFSMonitor'
Originally introduced as `core.useBuiltinFSMonitor` in Git for Windows
and developed, improved and stabilized there, the built-in FSMonitor
only made it into upstream Git (after unnecessarily long hemming and
hawing and throwing overly perfectionist style review sticks into the
spokes) as `core.fsmonitor = true`.

In Git for Windows, with this topic branch, we re-introduce the
now-obsolete config setting, with warnings suggesting to existing users
how to switch to the new config setting, with the intention to
ultimately drop the patch at some stage.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-14 22:30:57 +01:00
Johannes Schindelin
87de84b54f 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>
2025-03-14 22:30:57 +01:00
Johannes Schindelin
df4615554b 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>
2025-03-14 22:30:56 +01:00
Victoria Dye
580b8146bd Merge pull request #3492 from dscho/ns/batched-fsync
Switch to batched fsync by default
2025-03-14 22:30:56 +01:00
Johannes Schindelin
a3b9c50775 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>
2025-03-14 22:30:56 +01:00
Johannes Schindelin
e0024564eb Merge branch 'wsl-file-mode-bits'
This patch introduces support to set special NTFS attributes that are
interpreted by the Windows Subsystem for Linux as file mode bits, UID
and GID.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-14 22:30:56 +01:00
Johannes Schindelin
d024de64c2 Merge branch 'busybox-w32'
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-14 22:30:56 +01:00
Johannes Schindelin
84f0bdc9d6 Merge pull request #1897 from piscisaureus/symlink-attr
Specify symlink type in .gitattributes
2025-03-14 22:30:55 +01:00
Johannes Schindelin
0082dec0ee mingw: try resetting the read-only bit if rename fails (#4527)
With this patch, Git for Windows works as intended on mounted APFS
volumes (where renaming read-only files would fail).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-14 22:30:55 +01:00
Johannes Schindelin
a2b5b7310a 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>
2025-03-14 22:30:55 +01:00
Johannes Schindelin
a58573744c Merge branch 'kblees/kb/symlinks'
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2025-03-14 22:30:55 +01:00