Commit Graph

156530 Commits

Author SHA1 Message Date
Alexander Shopov
330e4198b8 l10n: bg.po: Updated Bulgarian translation (5610t)
Signed-off-by: Alexander Shopov <ash@kambanaria.org>
2024-02-16 09:39:04 +01:00
Peter Krefting
20657a8b43 l10n: sv.po: Update Swedish translation
Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
2024-02-16 07:59:21 +01:00
Jordi Mas
6f5e31bec7 l10n: Update Catalan translation
Signed-off-by: Jordi Mas <jmas@softcatala.org>
2024-02-16 07:18:20 +01:00
Bagas Sanjaya
c293cf8c47 l10n: po-id for 2.44 (round 1)
Update following components:

  * builtin/replay.c
  * command-list.h
  * commit-graph.c
  * pack-bitmap.c
  * sequencer.c

Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
2024-02-16 11:01:11 +07:00
Jiang Xin
1bb7fcbffc l10n: ci: disable cache for setup-go to suppress warnings
After we upgraded actions/setup-go to v5, the following warning message
was reported every time we ran the CI.

    Restore cache failed: Dependencies file is not found ...

Disable cache to suppress warning messages as described in the solution
below.

    https://github.com/actions/setup-go/issues/427

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2024-02-16 11:51:19 +08:00
Jiang Xin
4d733f09f0 l10n: ci: remove unused param for add-pr-comment@v2
When we upgraded GitHub Actions "mshick/add-pr-comment" to v2, the
following warning message was reported every time we ran the CI.

    Unexpected input(s) 'repo-token-user-login', valid inputs ...

Removed the obsolete parameter "repo-token-user-login" to suppress
warning messages.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2024-02-16 11:40:58 +08:00
Arkadii Yakovets
a2e183e065 l10n: uk: v2.44 update (round 3)
Signed-off-by: Arkadii Yakovets <ark@cho.red>
2024-02-15 18:05:05 -08:00
Arkadii Yakovets
6ad5961c91 l10n: uk: v2.44 update (round 2)
Signed-off-by: Arkadii Yakovets <ark@cho.red>
2024-02-15 18:02:14 -08:00
Arkadii Yakovets
ed8e89ec8c l10n: uk: v2.44 localization update
Co-authored-by: Kate Golovanova <kate@kgthreads.com>
Signed-off-by: Arkadii Yakovets <ark@cho.red>
Signed-off-by: Kate Golovanova <kate@kgthreads.com>
2024-02-15 18:02:13 -08:00
Jiang Xin
c68ee9b9cc Merge branch 'master' of github.com:git/git
* 'master' of github.com:git/git:
  diff: mark param1 and param2 as placeholders
2024-02-16 09:39:06 +08:00
Junio C Hamano
3e0d3cd5c7 Merge branch 'jx/dirstat-parseopt-help'
The mark-up of diff options has been updated to help translators.

* jx/dirstat-parseopt-help:
  diff: mark param1 and param2 as placeholders
2024-02-15 15:14:48 -08:00
Bo Anderson
83e6eb7d7a t/lib-credential: clean additional credential
71201ab0e5 (t/lib-credential.sh: ensure credential helpers handle long
headers, 2023-05-01) added a test which stores credentials with the host
victim.example.com but this was never cleaned up, leaving residual data
in the credential store after running the tests.

Add a cleanup call for this credential to resolve this issue.

Signed-off-by: Bo Anderson <mail@boanderson.me>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-02-15 14:16:38 -08:00
Patrick Steinhardt
5918f30b65 t7003: ensure filter-branch prunes reflogs with the reftable backend
In t7003 we conditionally check whether the reflog for branches pruned
by git-filter-branch(1) get deleted based on whether or not we use the
"files" backend. Same as with the preceding commit, this condition was
added because in its initial iteration the "reftable" backend did not
delete reflogs when their corresponding ref was deleted. Since then, the
backend has been aligned to behave the same as the "files" backend
though, which makes this check unnecessary.

Remove it.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-02-15 10:12:31 -08:00
Patrick Steinhardt
f85a032c67 t2011: exercise D/F conflicts with HEAD with the reftable backend
Some of the tests in t2011 exercise whether it is possible to move away
from a symbolic HEAD ref whose target ref has a directory-file conflict
with another, preexisting ref. These tests don't use git-symbolic-ref(1)
but manually write HEAD. This is supposedly done to avoid using logic
that we're about to exercise, but it makes it impossible to verify
whether the logic also works for ref backends other than "files".

Refactor the code to use git-symbolic-ref(1) instead so that the tests
work with the "reftable" backend, as well. We already have lots of tests
in t1404 that ensure that both git-update-ref(1) and git-symbolic-ref(1)
work in such a scenario, so it should be safe to rely on it here.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-02-15 10:12:30 -08:00
Patrick Steinhardt
c4e3af6d97 t1405: remove unneeded cleanup step
In 5e00514745 (t1405: explictly delete reflogs for reftable, 2022-01-31)
we have added a test that explicitly deletes the reflog when not using
the "files" backend. This was required because back then, the "reftable"
backend didn't yet delete reflogs when deleting their corresponding
branches, and thus subsequent tests would fail because some unexpected
reflogs still exist.

The "reftable" backend was eventually changed though so that it behaves
the same as the "files" backend and deletes reflogs when deleting refs.
This was done to make the "reftable" backend behave like the "files"
backend as closely as possible so that it can act as a drop-in
replacement.

The cleanup-style test is thus not required anymore. Remove it.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-02-15 10:12:30 -08:00
Patrick Steinhardt
3f87bb2c2b t1404: make D/F conflict tests compatible with reftable backend
Some of the tests in t1404 exercise whether Git correctly aborts
transactions when there is a directory/file conflict with ref names.
While these tests are all marked to require the "files" backend, they do
in fact apply to the "reftable" backend as well.

This may not make much sense on the surface: D/F conflicts only exist
because the "files" backend uses the filesystem to store loose refs, and
thus the restriction theoretically shouldn't apply to the "reftable"
backend. But for now, the "reftable" backend artificially restricts the
creation of such conflicting refs so that it is a drop-in replacement
for the "files" backend. This also ensures that the "reftable" backend
can easily be used on the server side without causing issues for clients
which only know to use the "files" backend.

The only difference between the "files" and "reftable" backends is a
slightly different error message. Adapt the tests to accomodate for this
difference and remove the REFFILES prerequisite so that we start testing
with both backends.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-02-15 10:12:30 -08:00
Patrick Steinhardt
129a169874 t1400: exercise reflog with gaps with reftable backend
In t1400, we have a test that exercises whether we print a warning
message as expected when the reflog contains entries which have a gap
between the old entry's new object ID and the new entry's old object ID.
While the logic should apply to all ref backends, the test setup writes
into `.git/logs` directly and is thus "files"-backend specific.

Refactor the test to instead use `git reflog delete` to create the gap
and drop the REFFILES prerequisite.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-02-15 10:12:30 -08:00
Patrick Steinhardt
e98839843b t0410: convert tests to use DEFAULT_REPO_FORMAT prereq
In t0410 we have two tests which exercise how partial clones behave in
the context of a repository with extensions. These tests are marked to
require a repository using SHA1 and the "files" backend because we
explicitly set the repository format version to 0, and setting up either
the "objectFormat" or "refStorage" extensions requires a repository
format version of 1.

We have recently introduced a new DEFAULT_REPO_FORMAT prerequisite.
Despite capturing the intent more directly, it also has the added
benefit that it can easily be extended in the future in case we add new
repository extensions. Adapt the tests to use it.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-02-15 10:12:30 -08:00
Patrick Steinhardt
161d981641 t: move tests exercising the "files" backend
We still have a bunch of tests scattered across our test suites that
exercise on-disk files of the "files" backend directly:

  - t1301 exercises permissions of reflog files when the config
    "core.sharedRepository" is set.

  - t1400 exercises whether empty directories in the ref store are
    handled correctly.

  - t3200 exercises what happens when there are symlinks in the ref
    store.

  - t3400 also exercises what happens when ".git/logs" is a symlink.

All of these are inherently low-level tests specific to the "files"
backend. Move them into "t0600-reffiles-backend.sh" to reflect this.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-02-15 10:12:30 -08:00
Jiang Xin
f98643fcb2 Merge branch 'master' of github.com:git/git
* 'master' of github.com:git/git: (51 commits)
  Hopefully the last batch of fixes before 2.44 final
  Git 2.43.2
  A few more fixes before -rc1
  write-or-die: fix the polarity of GIT_FLUSH environment variable
  A few more topics before -rc1
  completion: add and use __git_compute_second_level_config_vars_for_section
  completion: add and use __git_compute_first_level_config_vars_for_section
  completion: complete 'submodule.*' config variables
  completion: add space after config variable names also in Bash 3
  receive-pack: use find_commit_header() in check_nonce()
  ci(linux32): add a note about Actions that must not be updated
  ci: bump remaining outdated Actions versions
  unit-tests: do show relative file paths on non-Windows, too
  receive-pack: use find_commit_header() in check_cert_push_options()
  prune: mark rebase autostash and orig-head as reachable
  sequencer: unset GIT_CHERRY_PICK_HELP for 'exec' commands
  ref-filter.c: sort formatted dates by byte value
  ssh signing: signal an error with a negative return value
  bisect: document command line arguments for "bisect start"
  bisect: document "terms" subcommand more fully
  ...
2024-02-15 09:48:25 +08:00
Junio C Hamano
4fc51f00ef Hopefully the last batch of fixes before 2.44 final
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-02-14 15:36:06 -08:00
Junio C Hamano
89400c3615 Merge branch 'pb/complete-config'
The command line completion script (in contrib/) learned to
complete configuration variable names better.

* pb/complete-config:
  completion: add and use __git_compute_second_level_config_vars_for_section
  completion: add and use __git_compute_first_level_config_vars_for_section
  completion: complete 'submodule.*' config variables
  completion: add space after config variable names also in Bash 3
2024-02-14 15:36:06 -08:00
Junio C Hamano
c59ba68ea7 Merge branch 'js/check-null-from-read-object-file'
The code paths that call repo_read_object_file() have been
tightened to react to errors.

* js/check-null-from-read-object-file:
  Always check the return value of `repo_read_object_file()`
2024-02-14 15:36:06 -08:00
Junio C Hamano
e864023188 Merge branch 'rs/receive-pack-remove-find-header'
Code simplification.

* rs/receive-pack-remove-find-header:
  receive-pack: use find_commit_header() in check_nonce()
  receive-pack: use find_commit_header() in check_cert_push_options()
2024-02-14 15:36:05 -08:00
Junio C Hamano
c036a145c3 Merge branch 'vn/rebase-with-cherry-pick-authorship'
"git cherry-pick" invoked during "git rebase -i" session lost
the authorship information, which has been corrected.

* vn/rebase-with-cherry-pick-authorship:
  sequencer: unset GIT_CHERRY_PICK_HELP for 'exec' commands
2024-02-14 15:36:05 -08:00
Junio C Hamano
09e0aa64b3 Merge branch 'pw/gc-during-rebase'
The sequencer machinery does not use the ref API and instead
records names of certain objects it needs for its correct operation
in temporary files, which makes these objects susceptible to loss
by garbage collection.  These temporary files have been added as
starting points for reachability analysis to fix this.

* pw/gc-during-rebase:
  prune: mark rebase autostash and orig-head as reachable
2024-02-14 15:36:05 -08:00
Johannes Schindelin
e74f1e05be Rebase to v2.44.0-rc1 (#4816)
<details><summary>Range-diff relative to main</summary>



* 1: eb7ae2c9e2 = 1: b85851bbae gitk(Windows): avoid inadvertently
calling executables in the worktree
* 2: 8ec17633c2 = 2: e300ee03cd t9350: point out that refs are not
updated correctly
* 3: b23a328cb5 = 3: 4c2bec34c4 transport-helper: add trailing --
* 4: ed0a8447ac = 4: 4773f563b0 remote-helper: check helper status
after import/export
* 5: 795df8948c = 5: 1beb2a05bd mingw: demonstrate a problem with
certain absolute paths
* 8: 4df7f74d31 = 6: 5bc0a876fd Always auto-gc after calling a
fast-import transport
* 7: d356b8512a = 7: 6ed6c401c8 mingw: include the Python parts in
the build
* 11: 713527b076 = 8: 9b84468f00 win32/pthread: avoid name clashes
with winpthread
* 6: cf1302569f = 9: 3c8a4f9590 clean: do not traverse mount points
* 12: 3d44f1710a = 10: 1437592ed8 git-compat-util: avoid redeclaring
_DEFAULT_SOURCE
* 9: 868992b35d = 11: b4584a13fa mingw: allow absolute paths without
drive prefix
* 10: d7814f950b = 12: 92d9ad73e0 clean: remove mount points when
possible
* 13: 349f77716a = 13: 4edc85e25d Import the source code of mimalloc
v2.1.2
* 14: e206f41544 = 14: db92376c36 mimalloc: adjust for building
inside Git
* 15: f2ddbf3029 = 15: b11790071c mimalloc: offer a build-time
option to enable it
* 16: d31fba57e8 = 16: f32c0135ce mimalloc: use "weak" random seed
when statically linked
* 17:  9ce9df328d =  17:  dc533b3e2e mingw: use mimalloc
* 18: 24eeb1864a = 18: 97286b5645 transport: optionally disable
side-band-64k
* 19: 6a694f1165 = 19: 8e70da535b mingw: make sure `errno` is set
correctly when socket operations fail
* 20: c649490ba6 = 20: a3f4269569 mingw: do resolve symlinks in
`getcwd()`
* 21: 76dc36c2ed = 21: cae8b70c64 mingw: fix fatal error working on
mapped network drives on Windows
* 27: e53cde2b79 = 22: 08745e0ce3 clink.pl: fix MSVC compile script
to handle libcurl-d.lib
* 22:  bab3249853 =  23:  e3d760aab3 mingw: ensure valid CTYPE
* 23: 0110f9aec4 = 24: 1376236995 mingw: demonstrate a `git add`
issue with NTFS junctions
* 24: 3560b11f58 = 25: a59f3296e1 mingw: allow `git.exe` to be used
instead of the "Git wrapper"
* 25: 9ada5ded71 = 26: 84eeb35804 strbuf_realpath(): use
platform-dependent API if available
* 26: 1ccff877e5 = 27: a9495cf5bc mingw: ignore HOMEDRIVE/HOMEPATH
if it points to Windows' system directory
* 28: 470a863dc3 = 28: f73d1cce36 mingw: implement a
platform-specific `strbuf_realpath()`
* 29: 99dfbb5a4f = 29: cb1934bca7 vcxproj: unclash project
directories with build outputs
* 30: 4e42bbcbe8 = 30: 2adbc19279 t5505/t5516: allow running without
`.git/branches/` in the templates
* 31: 176457165e = 31: 933ca80eda t5505/t5516: fix white-space
around redirectors
* 32: 8617793473 = 32: 34e850d96f http: use new "best effort"
strategy for Secure Channel revoke checking
* 33: b4325252f2 = 33: 6a80a39249 t3701: verify that we can add
*lots* of files interactively
* 34: ff98b84b63 = 34: 49dc0427f4 git add -i: handle CR/LF line
endings in the interactive input
* 35: c80db0f067 = 35: a43a6d9e1b commit: accept "scissors" with
CR/LF line endings
* 39:  d9819aaa6f =  36:  8910fa988f t0014: fix indentation
* 40: 12ec6cbc10 = 37: 9a6441e715 git-gui: accommodate for
intent-to-add files
* 36: d339319eb1 = 38: a4f2b128ed clink.pl: fix libexpatd.lib link
error when using MSVC
* 37: 6701301085 = 39: 4922bcc3b3 Makefile: clean up .ilk files when
MSVC=1
* 38: e759b02a31 = 40: b521997495 vcbuild: add support for compiling
Windows resource files
* 41: bc1981478b = 41: 2235fbb3bf config.mak.uname: add git.rc to
MSVC builds
* 42: 96d5def900 = 42: 4642b4258e clink.pl: ignore
no-stack-protector arg on MSVC=1 builds
* 43: 38be60622c = 43: 048ccb36a1 clink.pl: move default linker
options for MSVC=1 builds
* 44: acf87e9b5b = 44: 35c0d1847f buildsystems: remove duplicate
clause
* 45: f9b959b815 = 45: 31e3ed7cc2 vcxproj: handle resource files,
too
* 46: 9ad52f9058 = 46: 19e9453e93 vcxproj: ignore
-fno-stack-protector and -fno-common
* 48: e48e3608c0 = 47: ff5b0c706d vcxproj: handle GUI programs, too
* 47: e447a1ef24 = 48: eacd5f8943 vcpkg_install: detect lack of Git
* 49: 8f19423255 = 49: e2e27125a2 vcpkg_install: add comment
regarding slow network connections
* 51: b07c00c636 = 50: 0b4976dedc vcxproj: support building
Windows/ARM64 binaries
* 52: d609b857ec = 51: b766f3a60c vcbuild: install ARM64
dependencies when building ARM64 binaries
* 53: 4c84da2c48 = 52: 1810941cbe vcbuild: add an option to install
individual 'features'
* 54: 8b7fdd9b28 = 53: b58fc39d3f cmake: allow building for
Windows/ARM64
* 50:  e657e64932 =  54:  8d047436f1 cmake: install headless-git.
* 55: a4477677a0 ! 55: 736513deb3 ci(vs-build) also build
Windows/ARM64 artifacts

   ``````diff
   @@ .github/workflows/main.yml: jobs:
    +      group: vs-build-${{ github.ref }}-${{ matrix.arch }}
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes'
}}
         steps:
   -     - uses: actions/checkout@v3
   +     - uses: actions/checkout@v4
    @@ .github/workflows/main.yml: jobs:
           uses: microsoft/setup-msbuild@v1
         - name: copy dlls to root
   @@ .github/workflows/main.yml: jobs:
           env:
    @@ .github/workflows/main.yml: jobs:
         - name: upload tracked files and build artifacts
   -       uses: actions/upload-artifact@v3
   +       uses: actions/upload-artifact@v4
           with:
    -        name: vs-artifacts
    +        name: vs-artifacts-${{ matrix.arch }}
   @@ .github/workflows/main.yml: jobs:
         name: win+VS test
    @@ .github/workflows/main.yml: jobs:
         - name: download tracked files and build artifacts
   -       uses: actions/download-artifact@v3
   +       uses: actions/download-artifact@v4
           with:
    -        name: vs-artifacts
    +        name: vs-artifacts-x64
   ``````

* 56: f7954f54a5 = 56: dfc7f1464b Add schannel to curl installation
* 57: d762b9deba = 57: cd7caf5cc4 cmake(): allow setting HOST_CPU
for cross-compilation
* 58: 05eba3609c = 58: 5f98f73ce1 ci(vs-build): download the vcpkg
artifacts using a dedicated Action
* 59: 1c9a318f4b = 59: de0ecc69f9 mingw: allow for longer paths in
`parse_interpreter()`
* 61: 95f0b13ad5 = 60: ae60138ec9 compat/vcbuild: document preferred
way to build in Visual Studio
* 64: 3710340427 = 61: f0cadf356a CMake: default Visual Studio
generator has changed
* 65: b23eb9ff03 = 62: c7ae2169e4 .gitignore: add Visual Studio
CMakeSetting.json file
* 60: c855be1da8 = 63: 567e802814 subtree: update `contrib/subtree`
`test` target
* 66: 809634c9f8 = 64: 1582f5ff52 CMakeLists: add default
"x64-windows" arch for Visual Studio
* 62: 7aaa6dcd18 = 65: 7ffc93abab http: optionally send SSL client
certificate
* 63: 065c692a46 = 66: f60c5eb01a ci: run `contrib/subtree` tests in
CI builds
* 67: 414841d01a = 67: a07e77cf6e CMake: show Win32 and
Generator_platform build-option values
* 68: 1667cfccef = 68: 3887dd85bb init: do parse _all_ core.*
settings early
* 69: 66dc4f62b6 ! 69: d6a9e8d49b Enable the built-in FSMonitor as
an experimental feature

   ``````diff
   @@ repo-settings.c
static void repo_cfg_bool(struct repository *r, const char *key, int
*dest,
     			  int def)
    @@ repo-settings.c: void prepare_repo_settings(struct repository *r)
   - 	if (experimental) {
r->settings.fetch_negotiation_algorithm = FETCH_NEGOTIATION_SKIPPING;
     		r->settings.pack_use_bitmap_boundary_traversal = 1;
   + 		r->settings.pack_use_multi_pack_reuse = 1;
    +
    +		/*
    +		 * Force enable the builtin FSMonitor (unless the repo
   ``````

* 70: 68bb0cce98 = 70: 236135f1b8 hash-object: demonstrate a
>4GB/LLP64 problem
* 71: 254707b032 = 71: 54e92593b7 write_object_file_literally(): use
size_t
* 72: 0b4a921e55 = 72: 516c82973d object-file.c: use size_t for
header lengths
* 73: a7172a5e51 = 73: f3220f45be hash algorithms: use size_t for
section lengths
* 74: bd50e8cca2 = 74: 3353257f4c hash-object --stdin: verify that
it works with >4GB/LLP64
* 75: c752b1d62d = 75: 1edb6272cb hash-object: add another
>4GB/LLP64 test case
* 76: 8beb33aff6 = 76: 407d577771 setup: properly use "%(prefix)/"
when in WSL
* 77: adfa9afbc3 = 77: e5bcb59769 hash-object: add a >4GB/LLP64 test
case using filtered input
* 81: 4194acdd9b = 78: e966001f3f Add config option
`windows.appendAtomically`
* 78: 4d5f6bc3e0 = 79: 122b22160a compat/mingw.c: do not warn when
failing to get owner
* 79: 09b582e1e8 = 80: 80220c7d04 mingw: $env:TERM="xterm-256color"
for newer OSes
* 80: ee671646c0 = 81: becda22f23 winansi: check result and Buffer
before using Name
* 87: 6af63c9241 = 82: 37512822f5 mingw: change
core.fsyncObjectFiles = 1 by default
* 82: 4dd10121a6 = 83: dae381f048 vcxproj: allow building with
`NO_PERL` again
* 83:  75b29d554a =  84:  16b0f2b1d8 vcxproj: require C11
* 84: 5f42f98ddf = 85: e143213377 vcxproj: ignore the `-pedantic`
option
* 85: b1dce6117b = 86: aec61319ce vcxproj: include reftable when
committing `.vcxproj` files
* 86: 1398194115 = 87: d4ee719dec vcxproj: handle libreftable_test,
too
* 88: bdda4a98bf = 88: 46bf8d4e38 vcxproj: avoid escaping double
quotes in the defines
* 89: 9356e8ae51 = 89: a87c891148 ci: adjust Azure Pipeline for
`runs_on_pool`
* 90: e5e341851a = 90: e601a63d14 ci: stop linking the `prove` cache
* 91: bf1de07baa = 91: 8950ff343c ci: reinstate Azure Pipelines
support
* 92: 9f2a9887e0 = 92: c6f2362ba2 azure-pipeline: drop the
`GETTEXT_POISON` job
* 93: 90d5aa1fff = 93: 21036e5edd azure-pipeline: stop hard-coding
`apt-get` calls
* 94: 2efc68247c = 94: 2ee6500029 azure-pipeline: drop the code to
write to/read from a file share
* 95: f02cef7bd0 = 95: de3fc61d54 azure-pipeline: use partial
clone/parallel checkout to initialize minimal-sdk
* 96: f89636b72d = 96: c4a26913a7 azure-pipeline: downcase the job
name of the `Linux32` job
* 98: fc4ba85bea = 97: e570cb668a bswap.h: add support for built-in
bswap functions
* 97: 4d7fc2f2a0 = 98: 1977b0d7df MinGW: link as terminal server
aware
* 99: e7164dfc0f = 99: 398e99bd92 azure-pipeline: run
static-analysis on jammy
* 100:  0d4081bdbf = 100:  793a4aa76c Fix Windows version resources
* 118: af7ae49ed5 = 101: d5a0c15028 config.mak.uname: add support
for clangarm64
* 101: 8c72ab3357 = 102: 456b68479a http: optionally load libcurl
lazily
* 119: 2849c150f5 = 103: 38db021508 ci: create clangarm64-build.yml
* 104: d48d4a1b93 = 104: 1a15f97a49 status: fix for old-style
submodules with commondir
* 105: 575360de15 = 105: a7f576636b windows: skip linking
`git-<command>` for built-ins
* 106: 758eb7604b = 106: a0a0f819b9 windows: fix Repository>Explore
Working Copy
* 102: 359804e7e8 = 107: afdf1c3232 http: support lazy-loading
libcurl also on Windows
* 103: df832a2b92 = 108: db80eabdab http: when loading libcurl
lazily, allow for multiple SSL backends
* 107: 5f391ca188 = 109: a6c04513f5 mingw: do load libcurl
dynamically by default
* 120: a8f4b84e1d = 110: 653444feb4 Add a GitHub workflow to verify
that Git/Scalar work in Nano Server
* 108: f8c5c67b81 = 111: 598d6705db mingw: suggest
`windows.appendAtomically` in more cases
* 109: ad1a318b31 = 112: 87137c3bcb win32: use native ANSI sequence
processing, if possible
* 110:  c6e18ad5f1 = 113:  9bd36bc728 git.rc: include winuser.h
* 113: 742b547d0f = 114: 1f57497bf1 build(deps): bump
mshick/add-pr-comment from 1 to 2
* 114: b3ee228c8c = 115: ec2d8db264 build(deps): bump
actions/setup-go from 2 to 5
* 239: 49981fa2f8 ! 116: 82d6f85551 build(deps): bump
microsoft/setup-msbuild from 1 to 2

   ``````diff
   @@ Commit message
    
     ## .github/workflows/main.yml ##
    @@ .github/workflows/main.yml: jobs:
   -         repository: git/git
   -         definitionId: 9
   +         Expand-Archive compat.zip -DestinationPath . -Force
   +         Remove-Item compat.zip
         - name: add msbuild to PATH
    -      uses: microsoft/setup-msbuild@v1
    +      uses: microsoft/setup-msbuild@v2
         - name: copy dlls to root
           shell: cmd
- run: compat\vcbuild\vcpkg_copy_dlls.bat release ${{ matrix.arch
}}-windows
   +       run: compat\vcbuild\vcpkg_copy_dlls.bat release
   ``````

* 121: 4619239ea1 = 117: 1fc651a2a7 Win32: make FILETIME conversion
functions public
* 122: b8f812cef6 = 118: 7392f0b6f0 Win32: dirent.c: Move opendir
down
* 123: 73027edb68 = 119: 50ca74a9ce mingw: make the dirent
implementation pluggable
* 124: 32d5356b2c = 120: 029bfbb192 Win32: make the lstat
implementation pluggable
* 125: abb83bcc6a = 121: ddad2ed9ec mingw: add infrastructure for
read-only file system level caches
* 126: bc9194e529 = 122: a708aacf0e mingw: add a cache below mingw's
lstat and dirent implementations
* 127: 2b2895f145 = 123: b2aa80ae22 fscache: load directories only
once
* 128: 8a0b4db0c0 = 124: 78eaedc699 fscache: add key for
GIT_TRACE_FSCACHE
* 129: d6d8974d94 = 125: 0fa5fc23d4 fscache: remember not-found
directories
* 130: 8dbd53253e = 126: 843f261613 fscache: add a test for the
dir-not-found optimization
* 131: 8650575223 = 127: b935fb6a8a add: use preload-index and
fscache for performance
* 132: ae4b42e481 = 128: 52e530319b dir.c: make add_excludes aware
of fscache during status
* 133: 6a2343d054 = 129: 3f51586037 fscache: make fscache_enabled()
public
* 134: c1585e265e = 130: c9e4f541a0 dir.c: regression fix for
add_excludes with fscache
* 135: 717aa9ad61 = 131: d7a8910fc5 fetch-pack.c: enable fscache for
stats under .git/objects
* 136: 058b1ac2e2 = 132: c28e607afe checkout.c: enable fscache for
checkout again
* 137: 556779e8a5 = 133: bbd50d0a14 Enable the filesystem cache
(fscache) in refresh_index().
* 138: 8985e6da55 = 134: c17775123e fscache: use FindFirstFileExW to
avoid retrieving the short name
* 139: c0e9478948 = 135: 56b5f03084 status: disable and free fscache
at the end of the status command
* 140: 0f9047d20f = 136: 56d493ebdb fscache: add GIT_TEST_FSCACHE
support
* 141: 601a472e20 = 137: 6453004b6d fscache: add fscache hit
statistics
* 142: 5242cc1d6f = 138: f66b44d5ba mem_pool: add GIT_TRACE_MEMPOOL
support
* 143: 217332c07b = 139: 3f6d11ba98 fscache: fscache takes an
initial size
* 144: 87a49f204b = 140: e4fa72c493 fscache: update fscache to be
thread specific instead of global
* 145: d2d53d5796 = 141: aa996e0088 fscache: teach fscache to use
mempool
* 146: 80126ad65c = 142: 049d093bee fscache: make fscache_enable()
thread safe
* 147: ae387da367 = 143: 6e11a86004 fscache: teach fscache to use
NtQueryDirectoryFile
* 148: 4d2d6ae53a = 144: 487504c16c unpack-trees: enable fscache for
sparse-checkout
* 149: a1ff8e8529 = 145: 4cb1b2b1f4 fscache: remember the reparse
tag for each entry
* 150: 7f6d364672 = 146: 565c51cc7d fscache: implement an
FSCache-aware is_mount_point()
* 156:  c3775094dd = 147:  02af368ca1 clean: make use of FSCache
* 151: 4b1b1b29d7 = 148: 1e5089b58e git-gui: provide question helper
for retry fallback on Windows
* 152: 78e1b53020 = 149: b6bd66607b git gui: set
GIT_ASKPASS=git-gui--askpass if not set yet
* 153: b15d3d9249 = 150: 3c2ef68f3e git-gui--askyesno: fix funny
text wrapping
* 154: aedb111156 = 151: 4515dcd0b0 git-gui--askyesno: allow
overriding the window title
* 157: b78ed88d76 = 152: 081cd825e2 gitk: Unicode file name support
* 155: 35800e645e = 153: d812052fb3 git-gui--askyesno (mingw): use
Git for Windows' icon, if available
* 158: 0fac83d127 = 154: 08088d45a8 gitk: Use an external icon file
on Windows
* 159: c93db98aa2 = 155: 631e5e1ae5 gitk: fix arrow keys in input
fields with Tcl/Tk >= 8.6
* 160: f74888f1a6 = 156: 67f2b2a055 gitk: make the "list references"
default window width wider
* 161: e9683b83a5 = 157: 2d3e5bd779 pack-objects (mingw):
demonstrate a segmentation fault with large deltas
* 162:  c4f7e1eb16 = 158:  3d97521739 mingw: support long paths
* 163: 32624bb6c8 = 159: 2938bf5357 Win32: fix 'lstat("dir/")' with
long paths
* 164: 1b6d157718 = 160: 835aab16bd win32(long path support): leave
drive-less absolute paths intact
* 167: 7b3ecaa66c = 161: d3f9f3561a mingw: Support
`git_terminal_prompt` with more terminals
* 165: c020f14507 = 162: 7a2bc382b7 compat/fsmonitor/fsm-*-win32:
support long paths
* 166: 9c161b16f4 = 163: 91db5cdb2a clean: suggest using
`core.longPaths` if paths are too long to remove
* 168: d4a2b5653c = 164: 88898ca009 compat/terminal.c: only use the
Windows console if bash 'read -r' fails
* 169: 83d310ac65 = 165: fae9178093 mingw (git_terminal_prompt): do
fall back to CONIN$/CONOUT$ method
* 170: fede48b61e = 166: e19ba9b516 Unbreak interactive GPG prompt
upon signing
* 171: 34a933a726 = 167: 64f19935a7 strbuf_readlink: don't call
readlink twice if hint is the exact link size
* 172: 42cf85d79b = 168: ff3bcfe62e strbuf_readlink: support link
targets that exceed PATH_MAX
* 173: fa1bf3817e = 169: 9eedc45ea3 lockfile.c: use is_dir_sep()
instead of hardcoded '/' checks
* 174: 6f1a739a93 = 170: 02fcad47ee Win32: don't call
GetFileAttributes twice in mingw_lstat()
* 175: dada6d060a = 171: 9a0406c561 Win32: implement stat() with
symlink support
* 176: 2a2665c230 = 172: ebb4cbd407 Win32: remove separate
do_lstat() function
* 177: 996eb09957 = 173: ca4eb31984 Win32: let mingw_lstat() error
early upon problems with reparse points
* 178: 185b2043db = 174: 1f0dd078b9 mingw: teach fscache and dirent
about symlinks
* 179: 113ca09b47 = 175: 293d18a8d2 Win32: lstat(): return adequate
stat.st_size for symlinks
* 180:  534a752781 = 176:  d9a2b0c868 Win32: factor out retry logic
* 181: 179020ec97 = 177: a0ded62497 Win32: change default of
'core.symlinks' to false
* 182: 1d95e40a03 = 178: 81dd006ec0 Win32: add symlink-specific
error codes
* 183: 3148b500ff = 179: 2d56f472e3 Win32: mingw_unlink: support
symlinks to directories
* 184: 4491333241 = 180: 3495257c87 Win32: mingw_rename: support
renaming symlinks
* 185: 2a19c8ec43 = 181: 0f4229a743 Win32: mingw_chdir: change to
symlink-resolved directory
* 186:  977b781bd8 = 182:  83b9eea8ba Win32: implement readlink()
* 187: fccf2150db = 183: 41f21df79e mingw: lstat: compute correct
size for symlinks
* 188: 18ca6d479d = 184: 8a9711d56a Win32: implement basic symlink()
functionality (file symlinks only)
* 189: aceda067ba = 185: a57efa62f0 Win32: symlink: add support for
symlinks to directories
* 190: a6b014ce40 = 186: 4a23132ba8 mingw: try to create symlinks
without elevated permissions
* 191: 1dc87ff8f9 = 187: a02e6a723e mingw: emulate stat() a little
more faithfully
* 192: b24bb5cb3c = 188: 80afdbd698 mingw: special-case index
entries for symlinks with buggy size
* 193: 8f4dae0ede = 189: be1959472a mingw: introduce code to detect
whether we're inside a Windows container
* 194: b13757e045 = 190: 33d504ee74 mingw: when running in a Windows
container, try to rename() harder
* 196: 2852c4ef03 = 191: cf77157b59 mingw: move the
file_attr_to_st_mode() function definition
* 195: 7c0eb61661 = 192: d954fc6fb6 Win32: symlink: move phantom
symlink creation to a separate function
* 197: c6fd0ea075 = 193: 1882c46a1b Introduce helper to create
symlinks that knows about index_state
* 199: 3b567547cd = 194: a28a0f86da mingw: allow to specify the
symlink type in .gitattributes
* 198: 3d21db01f1 = 195: b0068a2c6d mingw: Windows Docker volumes
are *not* symbolic links
* 201: 4a500ff622 = 196: 26480830ff Win32: symlink: add test for
`symlink` attribute
* 200: 8732850675 = 197: 1309f48179 mingw: work around rename()
failing on a read-only file
* 202: 3f4790bc30 = 198: 64c8e893cc mingw: explicitly specify with
which cmd to prefix the cmdline
* 203: ab039e9066 = 199: d183f32cc3 mingw: when path_lookup()
failed, try BusyBox
* 204: 35e72040c1 = 200: e046af6c04 test-lib: avoid unnecessary Perl
invocation
* 205: 9dd05209fc = 201: c13d5f0ee4 test-tool: learn to act as a
drop-in replacement for `iconv`
* 206: ee66969336 = 202: 8d6a91e20f tests(mingw): if `iconv` is
unavailable, use `test-helper --iconv`
* 207: 6cfa349972 = 203: 39deb53e3f gitattributes: mark .png files
as binary
* 208: f941f5581e = 204: 1b12d2e280 tests: move test PNGs into
t/lib-diff/
* 209: 6bf2469602 = 205: f69fa032e7 tests: only override sort & find
if there are usable ones in /usr/bin/
* 210: 4a15dc6f96 = 206: c619329cc7 tests: use the correct path
separator with BusyBox
* 211: 9b21147031 = 207: 1f509e7306 mingw: only use Bash-ism
`builtin pwd -W` when available
* 212: 1432f3b2a9 = 208: 67acbe80c0 tests (mingw): remove
Bash-specific pwd option
* 213: ee9645fe03 = 209: a18a0f882a test-lib: add BUSYBOX
prerequisite
* 214: 32f116db2a = 210: 6b2142ba7d t5003: use binary file from
t/lib-diff/
* 215: 27e1ff9a15 = 211: 6e490c1ea9 t5532: workaround for BusyBox on
Windows
* 216: 388ddea9df = 212: d4287d2419 t5605: special-case hardlink
test for BusyBox-w32
* 217: 4135380ce1 = 213: 15b88e752f t5813: allow for $PWD to be a
Windows path
* 218: 4e1c3caa01 = 214: 891b29f038 t9200: skip tests when $PWD
contains a colon
* 219: 58dfc2b135 = 215: f8c17f3a55 mingw: add a Makefile target to
copy test artifacts
* 220: 8a79bc2d95 = 216: 4a2ec98f12 mingw: kill child processes in a
gentler way
* 221: b29a9ac697 = 217: d5e288173e mingw: optionally enable wsl
compability file mode bits
* 222:  57cc6f20a5 = 218:  5aa9ec7400 mingw: really handle SIGINT
* 223: f95abb6471 = 219: 875251fd73 mingw: do not call
xutftowcs_path in mingw_mktemp
* 224: 1606d619a0 = 220: fe47e0903d Partially un-revert "editor:
save and reset terminal after calling EDITOR"
* 225: 052add787b = 221: 576d1c3c8c reset: reinstate support for the
deprecated --stdin option
* 226: 6fc41b6fa6 = 222: 315f0ea1d4 fsmonitor: reintroduce
core.useBuiltinFSMonitor
* 227: 7db097fe54 = 223: b0702abec7 Describe Git for Windows'
architecture [no ci]
* 229: 666c5959a2 = 224: 04e2a5283a Modify the Code of Conduct for
Git for Windows
* 230: 8d8b80e55e = 225: 213f046fea CONTRIBUTING.md: add guide for
first-time contributors
* 231: 80818bce93 = 226: 2bc7f44779 README.md: Add a
Windows-specific preamble
* 232:  2be1a7be5e = 227:  76c1e92222 Add an issue template
* 228: 7a503f1e59 = 228: 2cec3293de Add a GitHub workflow to monitor
component updates
* 233: 08ec415a38 ! 229: c3d7282342 Modify the GitHub Pull Request
template (to reflect Git for Windows)

   ``````diff
   @@ .github/PULL_REQUEST_TEMPLATE.md
+Nevertheless, you can use GitGitGadget
(https://gitgitgadget.github.io/)
to conveniently send your Pull Requests commits to our mailing list.
     
   - Please read the "guidelines for contributing" linked above!
+ For a single-commit pull request, please *leave the pull request
description
   ``````

* 111: dc95f4d8ec = 230: 9e7f27a42d dependabot: help keeping GitHub
Actions versions up to date
* 112: 9471bc6690 < -: ------------ build(deps): bump actions/cache
from 3 to 4
* 115: ac09146e34 < -: ------------ build(deps): bump
actions/download-artifact from 3 to 4
* 116: 8d2729e3a6 (upstream: 820a340085) < -: ------------ ci: bump
actions/upload-artifact to v4
* 117: dd7556150d (upstream: e94dec0c1d) < -: ------------
build(deps): bump actions/checkout from 3 to 4
* 234: f9944c3366 = 231: e01cfabab2 .github: Add configuration for
the Sentiment Bot
* 235: 4d421e51c2 = 232: 4ac6362abb Document how $HOME is set on
Windows
* 236: a5db93a8eb = 233: 3fb190d782 SECURITY.md: document Git for
Windows' policies
* 237: ffbfa3bbdb < -: ------------ build(deps): bump actions/checkout
from 1 to 4
* 238: 50bb27309f (upstream: c4ddbe043e) < -: ------------
build(deps): bump actions/github-script from 6 to 7

</details>
2024-02-14 23:38:05 +01:00
Johannes Schindelin
d201bddd92 Merge 'readme' into HEAD
Add a README.md for GitHub goodness.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
v2.44.0-rc1.windows.1
2024-02-14 22:52:58 +01:00
Johannes Schindelin
f6550ef992 Merge pull request #2837 from dscho/monitor-component-updates
Start monitoring updates of Git for Windows' component in the open
2024-02-14 22:52:57 +01:00
Johannes Schindelin
e3b305c49e 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>
2024-02-14 22:52:57 +01:00
Johannes Schindelin
e48015513d 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>
2024-02-14 22:52:57 +01:00
Johannes Schindelin
7b740afc5e 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>
2024-02-14 22:52:56 +01:00
Victoria Dye
5dd570d142 Merge pull request #3492 from dscho/ns/batched-fsync
Switch to batched fsync by default
2024-02-14 22:52:56 +01:00
Johannes Schindelin
0e7f9c5fac 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>
2024-02-14 22:52:56 +01:00
Johannes Schindelin
c9b62a00e0 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>
2024-02-14 22:52:55 +01:00
Johannes Schindelin
2eaa36852a Merge branch 'busybox-w32'
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-02-14 22:52:55 +01:00
Johannes Schindelin
0c4975d02d Merge pull request #1897 from piscisaureus/symlink-attr
Specify symlink type in .gitattributes
2024-02-14 22:52:55 +01:00
Johannes Schindelin
b6fc2f4ec1 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>
2024-02-14 22:52:54 +01:00
Johannes Schindelin
e8d3660c43 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>
2024-02-14 22:52:54 +01:00
Johannes Schindelin
06791669f0 Merge branch 'kblees/kb/symlinks' 2024-02-14 22:52:54 +01:00
Johannes Schindelin
1df927755c Merge branch 'msys2' 2024-02-14 22:52:53 +01:00
Johannes Schindelin
15fb439958 Merge pull request #3817 from mathstuf/name-too-long-advice
clean: suggest using `core.longPaths` if paths are too long to remove
2024-02-14 22:52:53 +01:00
Jeff Hostetler
6a93306f80 Merge branch 'fix-v4-fsmonitor-long-paths' into try-v4-fsmonitor 2024-02-14 22:52:53 +01:00
Johannes Schindelin
fbcb073bc9 Merge branch 'long-paths' 2024-02-14 22:52:53 +01:00
Johannes Schindelin
3fb190d782 SECURITY.md: document Git for Windows' policies
This is the recommended way on GitHub to describe policies revolving around
security issues and about supported versions.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-02-14 22:52:52 +01:00
Johannes Schindelin
f23df7903b Merge branch 'gitk-and-git-gui-patches'
These are Git for Windows' Git GUI and gitk patches. We will have to
decide at some point what to do about them, but that's a little lower
priority (as Git GUI seems to be unmaintained for the time being, and
the gitk maintainer keeps a very low profile on the Git mailing list,
too).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-02-14 22:52:52 +01:00
Alejandro Barreto
4ac6362abb Document how $HOME is set on Windows
Git documentation refers to $HOME and $XDG_CONFIG_HOME often, but does not specify how or where these values come from on Windows where neither is set by default. The new documentation reflects the behavior of setup_windows_environment() in compat/mingw.c.

Signed-off-by: Alejandro Barreto <alejandro.barreto@ni.com>
2024-02-14 22:52:52 +01:00
Johannes Schindelin
e01cfabab2 .github: Add configuration for the Sentiment Bot
The sentiment bot will help detect when things get too heated.
Hopefully.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-02-14 22:52:52 +01:00
Johannes Schindelin
9e7f27a42d dependabot: help keeping GitHub Actions versions up to date
See https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot#enabling-dependabot-version-updates-for-actions for details.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-02-14 22:52:51 +01:00
Philip Oakley
c3d7282342 Modify the GitHub Pull Request template (to reflect Git for Windows)
Git for Windows accepts pull requests; Core Git does not. Therefore we
need to adjust the template (because it only matches core Git's
project management style, not ours).

Also: direct Git for Windows enhancements to their contributions page,
space out the text for easy reading, and clarify that the mailing list
is plain text, not HTML.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-02-14 22:52:51 +01:00