Skip to content

Rebase to v2.50.0-rc1 #5655

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 397 commits into from
Jun 4, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
397 commits
Select commit Hold shift + click to select a range
bd31250
mingw: $env:TERM="xterm-256color" for newer OSes
rkitover Apr 12, 2022
84ae8e9
winansi: check result and Buffer before using Name
1480c1 May 28, 2022
8eaef44
Add config option `windows.appendAtomically`
sunzhuoshi Jan 15, 2022
facac87
mingw: change core.fsyncObjectFiles = 1 by default
dscho Sep 4, 2017
8d12eab
MinGW: link as terminal server aware
rimrul Jul 10, 2022
a73fa66
Fix Windows version resources
Mortein Nov 2, 2022
b40b1d8
status: fix for old-style submodules with commondir
sceptical-coder Oct 28, 2022
ec0cd76
http: optionally load libcurl lazily
dscho May 6, 2023
0653184
http: support lazy-loading libcurl also on Windows
dscho May 7, 2023
9c7b2e0
http: when loading libcurl lazily, allow for multiple SSL backends
dscho May 7, 2023
e69b8b5
windows: skip linking `git-<command>` for built-ins
dscho Jan 27, 2023
dbe6980
windows: fix Repository>Explore Working Copy
dscho Mar 21, 2023
cbb91fb
mingw: do load libcurl dynamically by default
dscho May 7, 2023
ce991ce
Add a GitHub workflow to verify that Git/Scalar work in Nano Server
dscho Nov 2, 2022
212e946
mingw: suggest `windows.appendAtomically` in more cases
dsl101 Jul 28, 2023
8bc6dbe
win32: use native ANSI sequence processing, if possible
dscho Nov 22, 2023
722c1b6
git.rc: include winuser.h
rimrul Dec 2, 2023
f58a926
common-main.c: fflush stdout buffer upon exit
chengzhuo5 Apr 8, 2024
a0cf8bc
t5601/t7406(mingw): do run tests with symlink support
dscho Apr 9, 2024
2039c57
win32: ensure that `localtime_r()` is declared even in i686 builds
dscho May 21, 2024
578840a
revision: create mark_trees_uninteresting_dense()
derrickstolee Sep 6, 2024
a01a7d1
pack-objects: extract should_attempt_deltas()
derrickstolee Sep 24, 2024
26d98e9
pack-objects: add --path-walk option
derrickstolee Sep 5, 2024
3246aa9
pack-objects: introduce GIT_TEST_PACK_PATH_WALK
derrickstolee Sep 6, 2024
845797f
repack: add --path-walk option
derrickstolee Sep 5, 2024
15f290b
pack-objects: enable --path-walk via config
derrickstolee Sep 5, 2024
1904c8b
Fallback to AppData if XDG_CONFIG_HOME is unset
ariellourenco Jul 2, 2024
097e770
run-command: be helpful with Git LFS fails on Windows 7
dscho Jul 4, 2024
0cc4fd0
ci: work around a problem with HTTP/2 vs libcurl v8.10.0
dscho Sep 24, 2024
46662ea
survey: stub in new experimental 'git-survey' command
Apr 29, 2024
2b4ad11
survey: add command line opts to select references
Apr 29, 2024
bf0b2c3
survey: start pretty printing data in table form
derrickstolee Sep 1, 2024
1749e4d
survey: add object count summary
derrickstolee Sep 2, 2024
cee2d14
scalar: enable path-walk during push via config
derrickstolee Sep 5, 2024
2773ccb
survey: summarize total sizes by object type
derrickstolee Sep 2, 2024
ad567f3
pack-objects: refactor path-walk delta phase
derrickstolee Sep 18, 2024
60fdd4b
survey: show progress during object walk
derrickstolee Sep 2, 2024
9c3f548
pack-objects: thread the path-based compression
derrickstolee Sep 18, 2024
acadf50
mingw: make sure `errno` is set correctly when socket operations fail
dscho Nov 14, 2019
a3509d2
survey: add ability to track prioritized lists
derrickstolee Sep 2, 2024
0bea82c
compat/mingw: handle WSA errors in strerror
rimrul Dec 22, 2024
ddf29d2
survey: add report of "largest" paths
derrickstolee Sep 2, 2024
7d4fe9b
compat/mingw: drop outdated comment
rimrul Dec 22, 2024
0c7d1c5
survey: add --top=<N> option and config
derrickstolee Sep 23, 2024
4c96ef2
t0301: actually test credential-cache on Windows
rimrul Dec 29, 2024
9e3ee33
survey: clearly note the experimental nature in the output
dscho Jul 1, 2024
465a3ea
credential-cache: handle ECONNREFUSED gracefully
rimrul Dec 22, 2024
d333b01
mingw_open_existing: handle directories better
rimrul Jan 4, 2025
05b64cb
mingw: drop Windows 7-specific work-around
dscho Mar 4, 2025
d0265b7
mingw_rename: support ReFS on Windows 2022
dscho Mar 26, 2025
a0e654f
max_tree_depth: lower it for clangarm64 on Windows
dscho Apr 15, 2025
c8b30f3
reftable: do make sure to use custom allocators
dscho Mar 6, 2025
16fab91
Merge branch 'organize-mingw-includes'
dscho Jun 2, 2025
3dbe359
Merge 'remote-hg-prerequisites' into HEAD
dscho Jun 8, 2018
d29dcb7
Merge branch 'drive-prefix'
dscho Jun 8, 2018
3ddd87a
check-whitespace: avoid alerts about upstream commits
dscho Jun 3, 2025
d2e94cd
Merge branch 'dont-clean-junctions'
dscho Jul 30, 2019
2a2e9b7
Merge branch 'msys2-python'
dscho May 31, 2019
c93bd29
Merge branch 'mimalloc-v2.2.3'
dscho Sep 8, 2022
4ca2bab
Merge pull request #2375 from assarbad/reintroduce-sideband-config
dscho Oct 30, 2019
ded9b19
Merge pull request #2449 from dscho/mingw-getcwd-and-symlinks
dscho Jan 3, 2020
8ac63d3
Merge pull request #2488 from bmueller84/master
dscho Jan 22, 2020
062c1ff
Merge pull request #2501 from jeffhostetler/clink-debug-curl
dscho Jan 30, 2020
c01e477
Merge pull request #2504 from dscho/access-repo-via-junction
dscho Feb 1, 2020
2c7ab62
Merge pull request #2506 from dscho/issue-2283
dscho Feb 11, 2020
088bfef
Merge pull request #2535 from dscho/schannel-revoke-best-effort
dscho Mar 4, 2020
a75527a
Merge pull request #2618 from dscho/avoid-d/f-conflict-in-vs/master
dscho May 9, 2020
5178f25
Merge 'add-p-many-files'
dscho Jun 8, 2018
6437ac4
Merge pull request #2730 from dscho/crlf-aware-git-add-i
dscho Jul 2, 2020
887aafd
Merge pull request #2714 from lbonanomi/crlf-scissors
dscho Jul 3, 2020
5a25fba
Merge pull request #2655 from jglathe/jg/t0014_trace_extra_info
dscho Oct 9, 2020
715ac31
Merge 'git-gui/js/intent-to-add'
dscho Oct 18, 2020
97104e5
Merge pull request #2974 from derrickstolee/maintenance-and-headless
dscho Jan 11, 2021
0f4e843
cmake: install headless-git. (#4338)
dscho Mar 13, 2023
c876ba5
Merge pull request #2351 from PhilipOakley/vcpkg-tip
dscho Oct 7, 2019
a1a54f6
Merge pull request #2915 from dennisameling/windows-arm64-support
dscho Dec 9, 2020
63a37de
Merge pull request #3327 from dennisameling/fix-host-cpu
dscho Jul 19, 2021
1a81953
Merge pull request #3165 from dscho/increase-allowed-length-of-interp…
dscho Apr 3, 2021
07e4950
Merge pull request #3220 from dscho/there-is-no-vs/master-anymore
dscho May 17, 2021
a9d1d14
Merge pull request #3293 from pascalmuller/http-support-automatically…
dscho Jun 24, 2021
b06f0d6
Merge pull request #3349 from vdye/feature/ci-subtree-tests
dscho Aug 10, 2021
c6aa9f3
Merge pull request #3306 from PhilipOakley/vs-sln
dscho Oct 12, 2021
1fc2dd3
Merge pull request #3417 from dscho/initialize-core.symlinks-earlier
dscho Oct 13, 2021
bae37c7
Merge pull request #3533 from PhilipOakley/hashliteral_t
dscho Dec 15, 2021
27e79d9
Merge pull request #3791: Various fixes around `safe.directory`
derrickstolee Apr 13, 2022
e04c02e
Merge pull request #3751 from rkitover/native-term
dscho Apr 21, 2022
9ed4824
Merge pull request #3875 from 1480c1/wine/detect_msys_tty
dscho May 30, 2022
d0eb21b
Merge branch 'optionally-dont-append-atomically-on-windows'
dscho Jun 23, 2022
7393b78
Merge branch 'fsync-object-files-always'
dscho Oct 11, 2018
b360fd9
Merge pull request #3942 from rimrul/mingw-tsaware
dscho Jul 27, 2022
3d24712
Fix Windows version resources (#4092)
dscho Nov 3, 2022
f391d78
Fix global repository field not being cleared (#4083)
dscho Dec 20, 2022
9a08a7b
Skip linking the "dashed" `git-<command>`s for built-ins (#4252)
dscho Jan 31, 2023
0092787
Git GUI: fix Repository>Explore Working Copy (#4357)
dscho Mar 21, 2023
2b4e0cd
Lazy load libcurl, allowing for an SSL/TLS backend-specific libcurl (…
dscho May 15, 2023
80985dc
Merge branch 'nano-server'
dscho Aug 7, 2023
fa2679f
Additional error checks for issuing the windows.appendAtomically warn…
dscho Aug 7, 2023
b33d073
win32: use native ANSI sequence processing, if possible (#4700)
dscho Dec 2, 2023
081d30b
ARM64: Embed manifest properly (#4718)
dscho Dec 7, 2023
be77963
common-main.c: fflush stdout buffer when exit (#4901)
dscho Apr 12, 2024
cdfea48
Merge branch 'run-t5601-and-t7406-with-symlinks-on-windows-10'
dscho Jul 12, 2024
fa38832
Merge branch 'Fix-i686-build-with-GCC-v14'
dscho Jul 12, 2024
6648238
Merge branch 'Fallback-to-AppData-if-XDG-CONFIG-HOME-is-unset'
dscho Jul 12, 2024
c240452
Merge branch 'run-command-be-helpful-when-Git-LFS-fails-on-Windows-7'
dscho Jul 12, 2024
6f6b391
pack-objects: create new name-hash algorithm (#5157)
dscho Sep 24, 2024
27880ff
Add path walk API and its use in 'git pack-objects' (#5171)
derrickstolee Sep 25, 2024
ee8ba24
Add experimental 'git survey' builtin (#5174)
dscho Sep 26, 2024
f446622
credential-cache: handle ECONNREFUSED gracefully (#5329)
dscho Jan 1, 2025
48de88b
mingw_open_existing: handle directories better (#5342)
dscho Jan 23, 2025
240968f
Drop support for `core.restrictInheritedHandles`, as it targeted Wind…
dscho Mar 4, 2025
56a9212
mingw_rename: support ReFS on Windows 2022 (#5515)
dscho Mar 26, 2025
c01928f
clangarm64: let the tests pass! (#5586)
dscho Apr 21, 2025
5e883bf
Merge branch 'reftable-vs-custom-allocators'
dscho Jun 2, 2025
7026404
Merge branch 'check-whitespace-only-downstream'
dscho Jun 3, 2025
4e5c950
git-gui--askyesno: fix funny text wrapping
dscho Sep 20, 2017
26cce2d
git-gui: provide question helper for retry fallback on Windows
hvoigt Feb 21, 2010
2d032e5
git-gui--askyesno: allow overriding the window title
dscho Sep 20, 2017
1914172
git gui: set GIT_ASKPASS=git-gui--askpass if not set yet
dscho Jul 23, 2010
136a522
git-gui--askyesno (mingw): use Git for Windows' icon, if available
dscho Sep 20, 2017
ea87252
Merge branch 'ready-for-upstream'
dscho Oct 11, 2018
a9dcdcc
Win32: make FILETIME conversion functions public
kblees Jul 6, 2013
7d8b781
Win32: dirent.c: Move opendir down
kblees Sep 8, 2013
b3b1a69
mingw: make the dirent implementation pluggable
kblees Sep 8, 2013
2ede2e9
Win32: make the lstat implementation pluggable
kblees Sep 8, 2013
7385ae3
mingw: add infrastructure for read-only file system level caches
kblees Sep 8, 2013
adf7094
mingw: add a cache below mingw's lstat and dirent implementations
kblees Oct 1, 2013
272745b
fscache: load directories only once
kblees Jun 24, 2014
649d0cd
fscache: add key for GIT_TRACE_FSCACHE
jeffhostetler Jan 24, 2017
31e5a52
fscache: remember not-found directories
jeffhostetler Dec 13, 2016
5e3be13
fscache: add a test for the dir-not-found optimization
dscho Jan 25, 2017
2a63cea
Merge 'git-gui' into HEAD
dscho Jun 7, 2018
c239a34
add: use preload-index and fscache for performance
jeffhostetler Nov 22, 2016
a2c6c8a
Merge branch 'git-gui-askyesno'
dscho Jun 8, 2018
38741f8
dir.c: make add_excludes aware of fscache during status
jeffhostetler Nov 1, 2017
cb660ed
fscache: make fscache_enabled() public
jeffhostetler Dec 20, 2017
a7347b4
dir.c: regression fix for add_excludes with fscache
jeffhostetler Dec 20, 2017
eea15ef
fetch-pack.c: enable fscache for stats under .git/objects
Nov 22, 2017
60d2112
checkout.c: enable fscache for checkout again
Jan 30, 2018
3fd471e
Enable the filesystem cache (fscache) in refresh_index().
benpeart Sep 7, 2018
16813eb
mem_pool: add GIT_TRACE_MEMPOOL support
benpeart Oct 4, 2018
8d391ba
fscache: use FindFirstFileExW to avoid retrieving the short name
benpeart Oct 23, 2018
2bdad05
fscache: fscache takes an initial size
benpeart Nov 2, 2018
079e4e1
fscache: add GIT_TEST_FSCACHE support
benpeart Oct 4, 2018
d24a7b5
fscache: update fscache to be thread specific instead of global
benpeart Oct 4, 2018
d2fcf71
fscache: add fscache hit statistics
benpeart Sep 25, 2018
8e86a5c
fscache: teach fscache to use mempool
benpeart Nov 2, 2018
312522d
unpack-trees: enable fscache for sparse-checkout
derrickstolee Jun 12, 2019
8ec3253
status: disable and free fscache at the end of the status command
benpeart Nov 1, 2018
7b6849d
fscache: remember the reparse tag for each entry
dscho Dec 11, 2018
6ad5a4f
fscache: make fscache_enable() thread safe
benpeart Nov 16, 2018
0677d44
Merge branch 'fscache'
dscho Nov 15, 2018
9a9d0dc
fscache: implement an FSCache-aware is_mount_point()
dscho Dec 11, 2018
1e58253
fscache: teach fscache to use NtQueryDirectoryFile
benpeart Nov 15, 2018
5cf953c
Merge pull request #1909 from benpeart/free-fscache-after-status-gfw
dscho Nov 5, 2018
f6f65dc
clean: make use of FSCache
dscho Dec 11, 2018
9a018c3
Merge remote-tracking branch 'benpeart/fscache-per-thread-gfw'
dscho Nov 16, 2018
7e357ba
Merge branch 'dont-clean-junctions-fscache'
dscho Jul 23, 2019
41e7b4b
pack-objects (mingw): demonstrate a segmentation fault with large deltas
vangdfang Jan 9, 2014
0b015d9
mingw: support long paths
kblees Jul 28, 2015
7b6deb6
Win32: fix 'lstat("dir/")' with long paths
kblees Jul 4, 2014
a63e512
win32(long path support): leave drive-less absolute paths intact
dscho Sep 6, 2023
a6f8a39
mingw: Support `git_terminal_prompt` with more terminals
kblees Mar 19, 2015
48c84a0
strbuf_readlink: don't call readlink twice if hint is the exact link …
kblees May 11, 2015
ba6c04a
compat/fsmonitor/fsm-*-win32: support long paths
jeffhostetler Mar 25, 2022
0b4d8e2
compat/terminal.c: only use the Windows console if bash 'read -r' fails
kblees May 9, 2015
2df2e82
strbuf_readlink: support link targets that exceed PATH_MAX
kblees May 11, 2015
4780290
clean: suggest using `core.longPaths` if paths are too long to remove
mathstuf Apr 22, 2022
1cd55e4
mingw (git_terminal_prompt): do fall back to CONIN$/CONOUT$ method
dscho Feb 23, 2018
9f7e78e
lockfile.c: use is_dir_sep() instead of hardcoded '/' checks
kblees May 11, 2015
c86d667
Win32: don't call GetFileAttributes twice in mingw_lstat()
kblees May 12, 2015
e721421
Win32: implement stat() with symlink support
kblees May 15, 2015
0b7ee0c
Win32: remove separate do_lstat() function
kblees May 11, 2015
04fde20
Win32: let mingw_lstat() error early upon problems with reparse points
kblees May 23, 2015
4c7e6a1
mingw: teach fscache and dirent about symlinks
kblees Jan 10, 2017
363ab11
Win32: lstat(): return adequate stat.st_size for symlinks
kblees May 15, 2015
190451b
Win32: factor out retry logic
kblees May 19, 2015
e7b6ee4
Win32: change default of 'core.symlinks' to false
kblees May 23, 2015
249347d
Win32: add symlink-specific error codes
kblees May 15, 2015
ec7a8a7
Win32: mingw_unlink: support symlinks to directories
kblees May 23, 2015
c318843
Win32: mingw_rename: support renaming symlinks
kblees May 19, 2015
f88a3d2
Win32: mingw_chdir: change to symlink-resolved directory
kblees May 23, 2015
ba00e4a
Win32: implement readlink()
kblees May 23, 2015
657af5f
mingw: lstat: compute correct size for symlinks
billziss-gh May 28, 2020
55227de
Win32: implement basic symlink() functionality (file symlinks only)
kblees May 23, 2015
a4d3841
Win32: symlink: add support for symlinks to directories
kblees May 23, 2015
6fc690d
mingw: try to create symlinks without elevated permissions
dscho May 30, 2017
7940803
mingw: emulate stat() a little more faithfully
dscho Mar 2, 2020
6c51221
mingw: introduce code to detect whether we're inside a Windows container
ZCube Apr 23, 2018
882331d
Win32: symlink: move phantom symlink creation to a separate function
piscisaureus Oct 26, 2018
4c574ee
mingw: when running in a Windows container, try to rename() harder
ZCube Apr 23, 2018
2ac053a
Introduce helper to create symlinks that knows about index_state
dscho Feb 11, 2019
9ccfb07
mingw: explicitly specify with which cmd to prefix the cmdline
dscho Jul 20, 2017
736e406
mingw: move the file_attr_to_st_mode() function definition
ZCube Apr 23, 2018
21874db
mingw: allow to specify the symlink type in .gitattributes
piscisaureus Oct 26, 2018
3713e1b
mingw: when path_lookup() failed, try BusyBox
dscho Jul 20, 2017
bb36858
mingw: special-case index entries for symlinks with buggy size
dscho Jun 4, 2020
8495182
mingw: Windows Docker volumes are *not* symbolic links
dscho Apr 23, 2018
ef31bcf
mingw: work around rename() failing on a read-only file
dsl101 Jul 28, 2023
3806230
Win32: symlink: add test for `symlink` attribute
piscisaureus Oct 26, 2018
3e4400f
test-tool: learn to act as a drop-in replacement for `iconv`
dscho Jul 20, 2017
f99dbcd
tests(mingw): if `iconv` is unavailable, use `test-helper --iconv`
dscho Jul 20, 2017
1824307
gitattributes: mark .png files as binary
dscho Oct 11, 2018
777c8cf
tests: move test PNGs into t/lib-diff/
dscho Aug 5, 2017
4def7f7
tests: only override sort & find if there are usable ones in /usr/bin/
dscho Jul 17, 2017
86c5c54
tests: use the correct path separator with BusyBox
dscho Nov 19, 2018
84c709a
mingw: only use Bash-ism `builtin pwd -W` when available
dscho Jun 29, 2017
8cd24d3
tests (mingw): remove Bash-specific pwd option
dscho Jun 30, 2017
3dad2f7
test-lib: add BUSYBOX prerequisite
dscho Jul 19, 2017
6428689
t5003: use binary file from t/lib-diff/
dscho Aug 5, 2017
fc4af1f
t5532: workaround for BusyBox on Windows
dscho Jul 21, 2017
56ae74b
t5605: special-case hardlink test for BusyBox-w32
dscho Jul 21, 2017
4ae69ab
t5813: allow for $PWD to be a Windows path
dscho Jul 5, 2017
3afe2df
t9200: skip tests when $PWD contains a colon
dscho Jul 7, 2017
088ff47
mingw: kill child processes in a gentler way
dscho May 17, 2017
4658c1e
mingw: add a Makefile target to copy test artifacts
dscho Jul 19, 2017
5961162
mingw: optionally enable wsl compability file mode bits
swigger Jun 7, 2023
6b4057b
mingw: really handle SIGINT
dscho Apr 22, 2018
33e922d
mingw: do not call xutftowcs_path in mingw_mktemp
neerajsi-msft Oct 27, 2021
aa0f3f9
Partially un-revert "editor: save and reset terminal after calling ED…
dscho Nov 25, 2021
3b85add
Describe Git for Windows' architecture [no ci]
dscho Feb 13, 2023
d85de55
Modify the Code of Conduct for Git for Windows
dscho Oct 11, 2019
f34f3e8
CONTRIBUTING.md: add guide for first-time contributors
derrickstolee Mar 1, 2018
9aee88f
README.md: Add a Windows-specific preamble
dscho Jan 10, 2014
25145bd
Add an issue template
shiftkey Feb 18, 2016
2aa8aca
Add a GitHub workflow to monitor component updates
dscho Sep 29, 2020
32d639c
Modify the GitHub Pull Request template (to reflect Git for Windows)
Dec 22, 2017
da2498e
reset: reinstate support for the deprecated --stdin option
dscho Dec 10, 2019
af976c0
fsmonitor: reintroduce core.useBuiltinFSMonitor
vdye Apr 4, 2022
6bf56e7
dependabot: help keeping GitHub Actions versions up to date
dscho Feb 6, 2024
852fedb
SECURITY.md: document Git for Windows' policies
dscho Aug 23, 2019
5f0dfa9
Merge branch 'gitk-and-git-gui-patches'
dscho Oct 11, 2018
470687f
Merge branch 'long-paths'
dscho Nov 15, 2018
bc0abb9
Merge branch 'msys2'
dscho Nov 15, 2018
7213f69
Merge branch 'kblees/kb/symlinks'
dscho Nov 15, 2018
a98d101
Merge 'docker-volumes-are-no-symlinks'
dscho Oct 12, 2018
88c160d
mingw: try resetting the read-only bit if rename fails (#4527)
dscho Aug 7, 2023
ec6d782
Merge pull request #1897 from piscisaureus/symlink-attr
dscho Oct 31, 2018
e20f109
Merge branch 'busybox-w32'
dscho Feb 7, 2019
4a09fb0
Merge branch 'wsl-file-mode-bits'
dscho Aug 7, 2023
bb76f9b
Merge pull request #1170 from dscho/mingw-kill-process
dscho Oct 11, 2018
6768c04
Merge pull request #3492 from dscho/ns/batched-fsync
vdye Oct 28, 2021
d9b8cc6
Merge branch 'un-revert-editor-save-and-reset'
dscho Jan 15, 2022
4c34938
Merge branch 'phase-out-reset-stdin'
dscho Jun 8, 2018
cb654f7
Merge branch 'deprecate-core.useBuiltinFSMonitor'
dscho Jan 24, 2023
6cbc355
Merge pull request #2837 from dscho/monitor-component-updates
dscho Oct 7, 2020
a9189ba
Merge 'readme' into HEAD
dscho Jun 7, 2018
fca69d2
fixup! mimalloc: offer a build-time option to enable it
dscho Jun 4, 2025
5a05d17
mimalloc: avoid excessive memory retention
dscho Jun 4, 2025
2b65033
refs: forbid clang to complain about unreachable code
dscho Jun 4, 2025
6792aa8
curl: pass `long` values where expected
dscho Jun 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 38 additions & 3 deletions Documentation/RelNotes/2.50.0.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ UI, Workflows & Features
check, which can be useful when the repository arranges to ensure
connectivity by some other means.

* "git notes --help" documentation updates.


Performance, Internal Implementation, Development Support etc.
--------------------------------------------------------------
Expand All @@ -100,7 +102,9 @@ Performance, Internal Implementation, Development Support etc.
* "git fsck" becomes more careful when checking the refs.

* "git fast-export | git fast-import" learns to deal with commit and
tag objects with embedded signatures a bit better.
tag objects with embedded signatures a bit better. This is highly
experimental and the format of the data stream may change in the
future without compatibility guarantees.

* The code paths to check whether a refname X is available (by seeing
if another ref X/Y exists, etc.) have been optimized.
Expand Down Expand Up @@ -193,6 +197,10 @@ Performance, Internal Implementation, Development Support etc.
do not pass the leak checker tests, as they should no longer be
needed.

* When a stale .midx file refers to .pack files that no longer exist,
we ended up checking for these non-existent files repeatedly, which
has been optimized by memoizing the non-existence.


Fixes since v2.49
-----------------
Expand Down Expand Up @@ -292,7 +300,7 @@ Fixes since v2.49
(merge e7ef4be7c2 mh/left-right-limited later to maint).

* Document the convention to disable hooks altogether by setting the
hooksPath configuration variable to /dev/nulll
hooksPath configuration variable to /dev/null.
(merge 1b2eee94f1 ds/doc-disable-hooks later to maint).

* Make sure outage of third-party sites that supply P4, Git-LFS, and
Expand All @@ -310,6 +318,7 @@ Fixes since v2.49

* Update to arm64 Windows port.
(merge 436a42215e js/windows-arm64 later to maint).

* hashmap API clean-up to ensure hashmap_clear() leaves a cleared map
in a reusable state.
(merge 9481877de3 en/hashmap-clear-fix later to maint).
Expand Down Expand Up @@ -343,7 +352,7 @@ Fixes since v2.49
(merge 5dbaec628d pw/sequencer-reflog-use-after-free later to maint).

* win+Meson CI pipeline, unlike other pipelines for Windows,
used to build artifacts in develper mode, which has been changed to
used to build artifacts in developer mode, which has been changed to
build them in release mode for consistency.
(merge 184abdcf05 js/ci-build-win-in-release-mode later to maint).

Expand All @@ -355,6 +364,31 @@ Fixes since v2.49
expand sparse-index while working.
(merge ecf9ba20e3 ds/sparse-apply-add-p later to maint).

* Avoid adding directory path to a sparse-index tree entries to the
name-hash, since they would bloat the hashtable without anybody
querying for them. This was done already for a single threaded
part of the code, but now the multi-threaded code also does the
same.
(merge 2e60aabc75 am/sparse-index-name-hash-fix later to maint).

* Recent versions of Perl started warning against "! A =~ /pattern/"
which does not negate the result of the matching. As it turns out
that the problematic function is not even called, it was removed.
(merge 67cae845d2 op/cvsserver-perl-warning later to maint).

* "git apply --index/--cached" when applying a deletion patch in
reverse failed to give the mode bits of the path "removed" by the
patch to the file it creates, which has been corrected.

* "git verify-refs" (and hence "git fsck --reference") started
erroring out in a repository in which secondary worktrees were
prepared with Git 2.43 or lower.
(merge d5b3c38b8a sj/ref-contents-check-fix later to maint).

* Update total_ram() functrion on BSD variants.

* Update online_cpus() functrion on BSD variants.

* Other code cleanup, docfix, build fix, etc.
(merge 227c4f33a0 ja/doc-block-delimiter-markup-fix later to maint).
(merge 2bfd3b3685 ab/decorate-code-cleanup later to maint).
Expand Down Expand Up @@ -387,3 +421,4 @@ Fixes since v2.49
(merge 91db6c735d ly/reftable-writer-leakfix later to maint).
(merge 20e4e9ad0b jc/doc-synopsis-option-markup later to maint).
(merge cddcee7f64 es/meson-configure-build-options-fix later to maint).
(merge cea9f55f00 wk/sparse-checkout-doc-fix later to maint).
14 changes: 7 additions & 7 deletions Documentation/config/checkout.adoc
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
checkout.defaultRemote::
`checkout.defaultRemote`::
When you run `git checkout <something>`
or `git switch <something>` and only have one
remote, it may implicitly fall back on checking out and
tracking e.g. `origin/<something>`. This stops working as soon
as you have more than one remote with a `<something>`
as you have more than one remote with a _<something>_
reference. This setting allows for setting the name of a
preferred remote that should always win when it comes to
disambiguation. The typical use-case is to set this to
Expand All @@ -12,31 +12,31 @@ checkout.defaultRemote::
Currently this is used by linkgit:git-switch[1] and
linkgit:git-checkout[1] when `git checkout <something>`
or `git switch <something>`
will checkout the `<something>` branch on another remote,
will checkout the _<something>_ branch on another remote,
and by linkgit:git-worktree[1] when `git worktree add` refers to a
remote branch. This setting might be used for other checkout-like
commands or functionality in the future.

checkout.guess::
`checkout.guess`::
Provides the default value for the `--guess` or `--no-guess`
option in `git checkout` and `git switch`. See
linkgit:git-switch[1] and linkgit:git-checkout[1].

checkout.workers::
`checkout.workers`::
The number of parallel workers to use when updating the working tree.
The default is one, i.e. sequential execution. If set to a value less
than one, Git will use as many workers as the number of logical cores
available. This setting and `checkout.thresholdForParallelism` affect
all commands that perform checkout. E.g. checkout, clone, reset,
sparse-checkout, etc.
+
Note: Parallel checkout usually delivers better performance for repositories
NOTE: Parallel checkout usually delivers better performance for repositories
located on SSDs or over NFS. For repositories on spinning disks and/or machines
with a small number of cores, the default sequential checkout often performs
better. The size and compression level of a repository might also influence how
well the parallel version performs.

checkout.thresholdForParallelism::
`checkout.thresholdForParallelism`::
When running parallel checkout with a small number of files, the cost
of subprocess spawning and inter-process communication might outweigh
the parallelization gains. This setting allows you to define the minimum
Expand Down
7 changes: 4 additions & 3 deletions Documentation/config/commit.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,11 @@ endif::git-commit[]
This setting overrides the default of the `--cleanup` option in
`git commit`. {see-git-commit} Changing the default can be useful
when you always want to keep lines that begin
with the comment character `#` in your log message, in which case you
with the comment character (`core.commentChar`, default `#`)
in your log message, in which case you
would do `git config commit.cleanup whitespace` (note that you will
have to remove the help lines that begin with `#` in the commit log
template yourself, if you do this).
have to remove the help lines that begin with the comment character
in the commit log template yourself, if you do this).

`commit.gpgSign`::
A boolean to specify whether all commits should be GPG signed.
Expand Down
8 changes: 4 additions & 4 deletions Documentation/config/fmt-merge-msg.adoc
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
merge.branchdesc::
`merge.branchdesc`::
In addition to branch names, populate the log message with
the branch description text associated with them. Defaults
to false.

merge.log::
`merge.log`::
In addition to branch names, populate the log message with at
most the specified number of one-line descriptions from the
actual commits that are being merged. Defaults to false, and
true is a synonym for 20.

merge.suppressDest::
`merge.suppressDest`::
By adding a glob that matches the names of integration
branches to this multi-valued configuration variable, the
default merge message computed for merges into these
integration branches will omit "into <branch name>" from
integration branches will omit "into _<branch-name>_" from
its title.
+
An element with an empty value can be used to clear the list
Expand Down
84 changes: 44 additions & 40 deletions Documentation/config/merge.adoc
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
merge.conflictStyle::
`merge.conflictStyle`::
Specify the style in which conflicted hunks are written out to
working tree files upon merge. The default is "merge", which
shows a `<<<<<<<` conflict marker, changes made by one side,
shows a +<<<<<<<+ conflict marker, changes made by one side,
a `=======` marker, changes made by the other side, and then
a `>>>>>>>` marker. An alternate style, "diff3", adds a `|||||||`
a +>>>>>>>+ marker. An alternate style, "diff3", adds a +|||||||+
marker and the original text before the `=======` marker. The
"merge" style tends to produce smaller conflict regions than diff3,
both because of the exclusion of the original text, and because
Expand All @@ -13,17 +13,17 @@ merge.conflictStyle::
the conflict region when those matching lines appear near either
the beginning or end of a conflict region.

merge.defaultToUpstream::
`merge.defaultToUpstream`::
If merge is called without any commit argument, merge the upstream
branches configured for the current branch by using their last
observed values stored in their remote-tracking branches.
The values of the `branch.<current branch>.merge` that name the
branches at the remote named by `branch.<current branch>.remote`
branches at the remote named by `branch.<current-branch>.remote`
are consulted, and then they are mapped via `remote.<remote>.fetch`
to their corresponding remote-tracking branches, and the tips of
these tracking branches are merged. Defaults to true.

merge.ff::
`merge.ff`::
By default, Git does not create an extra merge commit when merging
a commit that is a descendant of the current commit. Instead, the
tip of the current branch is fast-forwarded. When set to `false`,
Expand All @@ -33,94 +33,98 @@ merge.ff::
allowed (equivalent to giving the `--ff-only` option from the
command line).

merge.verifySignatures::
If true, this is equivalent to the --verify-signatures command
`merge.verifySignatures`::
If true, this is equivalent to the `--verify-signatures` command
line option. See linkgit:git-merge[1] for details.

include::fmt-merge-msg.adoc[]

merge.renameLimit::
`merge.renameLimit`::
The number of files to consider in the exhaustive portion of
rename detection during a merge. If not specified, defaults
to the value of diff.renameLimit. If neither
merge.renameLimit nor diff.renameLimit are specified,
to the value of `diff.renameLimit`. If neither
`merge.renameLimit` nor `diff.renameLimit` are specified,
currently defaults to 7000. This setting has no effect if
rename detection is turned off.

merge.renames::
Whether Git detects renames. If set to "false", rename detection
is disabled. If set to "true", basic rename detection is enabled.
`merge.renames`::
Whether Git detects renames. If set to `false`, rename detection
is disabled. If set to `true`, basic rename detection is enabled.
Defaults to the value of diff.renames.

merge.directoryRenames::
`merge.directoryRenames`::
Whether Git detects directory renames, affecting what happens at
merge time to new files added to a directory on one side of
history when that directory was renamed on the other side of
history. If merge.directoryRenames is set to "false", directory
rename detection is disabled, meaning that such new files will be
left behind in the old directory. If set to "true", directory
rename detection is enabled, meaning that such new files will be
moved into the new directory. If set to "conflict", a conflict
will be reported for such paths. If merge.renames is false,
merge.directoryRenames is ignored and treated as false. Defaults
to "conflict".

merge.renormalize::
history. Possible values are:
+
--
`false`;; Directory rename detection is disabled, meaning that such new files will be
left behind in the old directory.
`true`;; Directory rename detection is enabled, meaning that such new files will be
moved into the new directory.
`conflict`;; A conflict will be reported for such paths.
--
+
If `merge.renames` is `false`, `merge.directoryRenames` is ignored and treated
as `false`. Defaults to `conflict`.

`merge.renormalize`::
Tell Git that canonical representation of files in the
repository has changed over time (e.g. earlier commits record
text files with CRLF line endings, but recent ones use LF line
text files with _CRLF_ line endings, but recent ones use _LF_ line
endings). In such a repository, for each file where a
three-way content merge is needed, Git can convert the data
recorded in commits to a canonical form before performing a
merge to reduce unnecessary conflicts. For more information,
see section "Merging branches with differing checkin/checkout
attributes" in linkgit:gitattributes[5].

merge.stat::
Whether to print the diffstat between ORIG_HEAD and the merge result
`merge.stat`::
Whether to print the diffstat between `ORIG_HEAD` and the merge result
at the end of the merge. True by default.

merge.autoStash::
When set to true, automatically create a temporary stash entry
`merge.autoStash`::
When set to `true`, automatically create a temporary stash entry
before the operation begins, and apply it after the operation
ends. This means that you can run merge on a dirty worktree.
However, use with care: the final stash application after a
successful merge might result in non-trivial conflicts.
This option can be overridden by the `--no-autostash` and
`--autostash` options of linkgit:git-merge[1].
Defaults to false.
Defaults to `false`.

merge.tool::
`merge.tool`::
Controls which merge tool is used by linkgit:git-mergetool[1].
The list below shows the valid built-in values.
Any other value is treated as a custom merge tool and requires
that a corresponding mergetool.<tool>.cmd variable is defined.
that a corresponding `mergetool.<tool>.cmd` variable is defined.

merge.guitool::
`merge.guitool`::
Controls which merge tool is used by linkgit:git-mergetool[1] when the
-g/--gui flag is specified. The list below shows the valid built-in values.
`-g`/`--gui` flag is specified. The list below shows the valid built-in values.
Any other value is treated as a custom merge tool and requires that a
corresponding mergetool.<guitool>.cmd variable is defined.
corresponding `mergetool.<guitool>.cmd` variable is defined.

include::{build_dir}/mergetools-merge.adoc[]

merge.verbosity::
`merge.verbosity`::
Controls the amount of output shown by the recursive merge
strategy. Level 0 outputs nothing except a final error
message if conflicts were detected. Level 1 outputs only
conflicts, 2 outputs conflicts and file changes. Level 5 and
above outputs debugging information. The default is level 2.
Can be overridden by the `GIT_MERGE_VERBOSITY` environment variable.

merge.<driver>.name::
`merge.<driver>.name`::
Defines a human-readable name for a custom low-level
merge driver. See linkgit:gitattributes[5] for details.

merge.<driver>.driver::
`merge.<driver>.driver`::
Defines the command that implements a custom low-level
merge driver. See linkgit:gitattributes[5] for details.

merge.<driver>.recursive::
`merge.<driver>.recursive`::
Names a low-level merge driver to be used when
performing an internal merge between common ancestors.
See linkgit:gitattributes[5] for details.
Loading
Loading