Commit Graph

152284 Commits

Author SHA1 Message Date
Philip Oakley
09ec9512e4 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>
2024-02-20 18:19:37 +01:00
Johannes Schindelin
908a802142 Merge branch 'safe-PATH-lookup-in-gitk-on-Windows'
This topic branch extends the protections introduced for Git GUI's
CVE-2022-41953 to cover `gitk`, too.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-02-20 18:19:33 +01:00
Johannes Schindelin
7205caab8e Start the merging-rebase to v2.44.0-rc2
This commit starts the rebase of 947f438f47 to 7d33cecf1022
2024-02-20 18:19:32 +01:00
Johannes Schindelin
62fcd7bd0b gitk(Windows): avoid inadvertently calling executables in the worktree
Just like CVE-2022-41953 for Git GUI, there exists a vulnerability of
`gitk` where it looks for `taskkill.exe` in the current directory before
searching `PATH`.

Note that the many `exec git` calls are unaffected, due to an obscure
quirk in Tcl's `exec` function. Typically, `git.exe` lives next to
`wish.exe` (i.e. the program that is run to execute `gitk` or Git GUI)
in Git for Windows, and that is the saving grace for `git.exe because
`exec` searches the directory where `wish.exe` lives even before the
current directory, according to
https://www.tcl-lang.org/man/tcl/TclCmd/exec.htm#M24:

	If a directory name was not specified as part of the application
	name, the following directories are automatically searched in
	order when attempting to locate the application:

	    The directory from which the Tcl executable was loaded.

	    The current directory.

	    The Windows 32-bit system directory.

	    The Windows home directory.

	    The directories listed in the path.

The same is not true, however, for `taskkill.exe`: it lives in the
Windows system directory (never mind the 32-bit, Tcl's documentation is
outdated on that point, it really means `C:\Windows\system32`).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2024-02-20 18:19:32 +01:00
Junio C Hamano
f41f85c9ec Git 2.44-rc2
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-02-19 21:01:01 -08:00
Junio C Hamano
58aa645fc0 Merge branch 'la/trailer-cleanups'
Fix to an already-graduated topic.

* la/trailer-cleanups:
  trailer: fix comment/cut-line regression with opts->no_divider
2024-02-19 20:58:06 -08:00
Jeff King
bc47139f4f trailer: fix comment/cut-line regression with opts->no_divider
Commit 97e9d0b78a (trailer: find the end of the log message, 2023-10-20)
combined two code paths for finding the end of the log message. For the
"no_divider" case, we used to use find_trailer_end(), and that has now
been rolled into find_end_of_log_message(). But there's a regression;
that function returns early when no_divider is set, returning the whole
string.

That's not how find_trailer_end() behaved. Although it did skip the
"---" processing (which is what "no_divider" is meant to do), we should
still respect ignored_log_message_bytes(), which covers things like
comments, "commit -v" cut lines, and so on.

The bug is actually in the interpret-trailers command, but the obvious
way to experience it is by running "commit -v" with a "--trailer"
option. The new trailer will be added at the end of the verbose diff,
rather than before it (and consequently will be ignored entirely, since
everything after the diff's intro scissors line is thrown away).

I've added two tests here: one for interpret-trailers directly, which
shows the bug via the parsing routines, and one for "commit -v".

The fix itself is pretty simple: instead of returning early, no_divider
just skips the "---" handling but still calls ignored_log_message_bytes().

Reported-by: Philippe Blain <levraiphilippeblain@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-02-19 19:06:18 -08:00
Junio C Hamano
96c8a0712e Merge tag 'l10n-2.44.0-rnd3' of https://github.com/git-l10n/git-po
l10n-2.44.0-rnd3

* tag 'l10n-2.44.0-rnd3' of https://github.com/git-l10n/git-po:
  l10n: zh_TW: Git 2.44
  l10n: zh_CN: for git 2.44 rounds
  l10n: Update German translation
  l10n: tr: Update Turkish translations for 2.44
  l10n: fr.po: v2.44.0 round 3
  l10n: bg.po: Updated Bulgarian translation (5610t)
  l10n: sv.po: Update Swedish translation
  l10n: Update Catalan translation
  l10n: po-id for 2.44 (round 1)
  l10n: ci: disable cache for setup-go to suppress warnings
  l10n: ci: remove unused param for add-pr-comment@v2
  l10n: uk: v2.44 update (round 3)
  l10n: uk: v2.44 update (round 2)
  l10n: uk: v2.44 localization update
  l10n: bump Actions versions in l10n.yml
2024-02-19 08:35:40 -08:00
Yi-Jyun Pan
5fdd5b989c l10n: zh_TW: Git 2.44
Co-Authored-By: lumynou5 <lumynou5.tw@gmail.com>
Signed-off-by: Yi-Jyun Pan <pan93412@gmail.com>
2024-02-18 21:03:43 +08:00
Jiang Xin
63e81f22a6 Merge branch 'master' of github.com:ralfth/git
* 'master' of github.com:ralfth/git:
  l10n: Update German translation
2024-02-18 20:33:01 +08:00
Jiang Xin
9c4289b3db Merge branch 'po-id' of github.com:bagasme/git-po
* 'po-id' of github.com:bagasme/git-po:
  l10n: po-id for 2.44 (round 1)
2024-02-18 20:31:55 +08:00
Jiang Xin
3a00233815 Merge branch '2.44-uk-update' of github.com:arkid15r/git-ukrainian-l10n
* '2.44-uk-update' of github.com:arkid15r/git-ukrainian-l10n:
  l10n: uk: v2.44 update (round 3)
  l10n: uk: v2.44 update (round 2)
  l10n: uk: v2.44 localization update
2024-02-18 20:30:05 +08:00
Jiang Xin
ce2f6a001f Merge branch 'master' of github.com:alshopov/git-po
* 'master' of github.com:alshopov/git-po:
  l10n: bg.po: Updated Bulgarian translation (5610t)
2024-02-18 20:28:57 +08:00
Jiang Xin
499f952da0 Merge branch 'tr-l10n' of github.com:bitigchi/git-po
* 'tr-l10n' of github.com:bitigchi/git-po:
  l10n: tr: Update Turkish translations for 2.44
2024-02-18 20:27:47 +08:00
Jiang Xin
45ebe3fcf6 Merge branch 'fr_2.44.0' of github.com:jnavila/git
* 'fr_2.44.0' of github.com:jnavila/git:
  l10n: fr.po: v2.44.0 round 3
2024-02-18 20:26:45 +08:00
Jiang Xin
61ad0f6484 Merge branch 'catalan-l10n' of github.com:Softcatala/git-po
* 'catalan-l10n' of github.com:Softcatala/git-po:
  l10n: Update Catalan translation
2024-02-18 20:25:32 +08:00
Jiang Xin
362f27f8a8 Merge branch 'master' of github.com:nafmo/git-l10n-sv
* 'master' of github.com:nafmo/git-l10n-sv:
  l10n: sv.po: Update Swedish translation
2024-02-18 20:24:48 +08:00
Teng Long
3c58354a53 l10n: zh_CN: for git 2.44 rounds
In addition to the localized translation in 2.44, for zh_CN, we have
uniformly modified the translation of the word "commit-graph" to make it
more consistent with language usage habits.

Signed-off-by: Teng Long <dyroneteng@gmail.com>
2024-02-18 11:48:52 +08:00
Todd Zullinger
d44a018852 RelNotes: minor typo fixes in 2.44.0 draft
Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-02-17 10:11:55 -08:00
Ralf Thielow
37c2ad6535 l10n: Update German translation
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
2024-02-17 18:14:54 +01:00
Emir SARI
b927408183 l10n: tr: Update Turkish translations for 2.44
Signed-off-by: Emir SARI <emir_sari@icloud.com>
2024-02-16 22:06:18 +03:00
Jean-Noël Avila
2675562081 l10n: fr.po: v2.44.0 round 3
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
2024-02-16 19:20:07 +01:00
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
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