Skip to content
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

Rebase to v2.48.0 #5361

Merged
merged 429 commits into from
Jan 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
429 commits
Select commit Hold shift + click to select a range
9e9b294
test-tool: add helper for name-hash values
derrickstolee Sep 9, 2024
a3d393b
path-walk: allow visiting tags
derrickstolee Sep 9, 2024
36064b6
repack/pack-objects: mark `--full-name-hash` as experimental
dscho Sep 24, 2024
e35f96d
revision: create mark_trees_uninteresting_dense()
derrickstolee Sep 6, 2024
ee8deef
path-walk: add prune_all_uninteresting option
derrickstolee Sep 4, 2024
f997fc8
pack-objects: extract should_attempt_deltas()
derrickstolee Sep 24, 2024
7075c09
pack-objects: add --path-walk option
derrickstolee Sep 5, 2024
2d88d3f
pack-objects: introduce GIT_TEST_PACK_PATH_WALK
derrickstolee Sep 6, 2024
1d621e1
repack: add --path-walk option
derrickstolee Sep 5, 2024
91c1e93
pack-objects: enable --path-walk via config
derrickstolee Sep 5, 2024
14f998c
scalar: enable path-walk during push via config
derrickstolee Sep 5, 2024
4bad79d
pack-objects: refactor path-walk delta phase
derrickstolee Sep 18, 2024
58eb7f1
backfill: add builtin boilerplate
derrickstolee Jun 7, 2024
ebd1692
backfill: basic functionality and tests
derrickstolee Sep 1, 2024
6bbc831
backfill: add --batch-size=<n> option
derrickstolee Sep 1, 2024
4f329aa
backfill: add --sparse option
derrickstolee Sep 1, 2024
2787935
survey: stub in new experimental 'git-survey' command
Apr 29, 2024
5126f20
backfill: assume --sparse when sparse-checkout is enabled
derrickstolee Sep 1, 2024
81a04f4
survey: add command line opts to select references
Apr 29, 2024
0603e43
pack-objects: thread the path-based compression
derrickstolee Sep 18, 2024
23ae924
path-walk API: avoid adding a root tree more than once
dscho Oct 7, 2024
d0bd4c0
backfill: mark it as experimental
dscho Sep 26, 2024
3ee79f0
survey: start pretty printing data in table form
derrickstolee Sep 1, 2024
2f3acdf
survey: add object count summary
derrickstolee Sep 2, 2024
ea53fbb
survey: summarize total sizes by object type
derrickstolee Sep 2, 2024
e073a42
survey: show progress during object walk
derrickstolee Sep 2, 2024
2c1b163
survey: add ability to track prioritized lists
derrickstolee Sep 2, 2024
64b2ec2
survey: add report of "largest" paths
derrickstolee Sep 2, 2024
59481d1
survey: add --top=<N> option and config
derrickstolee Sep 23, 2024
31789fd
survey: clearly note the experimental nature in the output
dscho Jul 1, 2024
c847baa
path-walk: improve path-walk speed with many tags
derrickstolee Oct 9, 2024
5c96513
mingw: make sure `errno` is set correctly when socket operations fail
dscho Nov 14, 2019
78e72dc
compat/mingw: handle WSA errors in strerror
rimrul Dec 22, 2024
fd6b18f
compat/mingw: drop outdated comment
rimrul Dec 22, 2024
d516c8f
Merge branch 'safe-PATH-lookup-in-gitk-on-Windows'
dscho Jan 21, 2023
5ae96a2
t0301: actually test credential-cache on Windows
rimrul Dec 29, 2024
3224f80
Merge 'remote-hg-prerequisites' into HEAD
dscho Jun 8, 2018
09fe109
credential-cache: handle ECONNREFUSED gracefully
rimrul Dec 22, 2024
d3bb6bc
Merge branch 'drive-prefix'
dscho Jun 8, 2018
eafefa0
Merge branch 'dont-clean-junctions'
dscho Jul 30, 2019
08a8550
Merge branch 'msys2-python'
dscho May 31, 2019
8188ac3
Merge branch 'mimalloc-v2.0.9'
dscho Sep 8, 2022
db27e72
Merge pull request #2375 from assarbad/reintroduce-sideband-config
dscho Oct 30, 2019
6239a8f
Merge pull request #2449 from dscho/mingw-getcwd-and-symlinks
dscho Jan 3, 2020
d713b0d
Merge pull request #2488 from bmueller84/master
dscho Jan 22, 2020
1e64ce5
Merge pull request #2501 from jeffhostetler/clink-debug-curl
dscho Jan 30, 2020
b337de4
Merge pull request #2504 from dscho/access-repo-via-junction
dscho Feb 1, 2020
ed17cfb
Merge pull request #2506 from dscho/issue-2283
dscho Feb 11, 2020
435cb7b
Merge pull request #2535 from dscho/schannel-revoke-best-effort
dscho Mar 4, 2020
b0169e4
Merge pull request #2618 from dscho/avoid-d/f-conflict-in-vs/master
dscho May 9, 2020
6f4dc2a
Merge 'add-p-many-files'
dscho Jun 8, 2018
2265923
Merge pull request #2730 from dscho/crlf-aware-git-add-i
dscho Jul 2, 2020
0ec7eca
Merge pull request #2714 from lbonanomi/crlf-scissors
dscho Jul 3, 2020
3390aa1
Merge pull request #2655 from jglathe/jg/t0014_trace_extra_info
dscho Oct 9, 2020
d0b7a1d
Merge 'git-gui/js/intent-to-add'
dscho Oct 18, 2020
5601703
Merge pull request #2974 from derrickstolee/maintenance-and-headless
dscho Jan 11, 2021
64a361a
cmake: install headless-git. (#4338)
dscho Mar 13, 2023
32819f4
Merge pull request #2351 from PhilipOakley/vcpkg-tip
dscho Oct 7, 2019
f669294
Merge pull request #2915 from dennisameling/windows-arm64-support
dscho Dec 9, 2020
ce547a6
Merge pull request #3327 from dennisameling/fix-host-cpu
dscho Jul 19, 2021
8b1def0
Merge pull request #3165 from dscho/increase-allowed-length-of-interp…
dscho Apr 3, 2021
ef1924c
Merge pull request #3220 from dscho/there-is-no-vs/master-anymore
dscho May 17, 2021
1889b7f
Merge pull request #3293 from pascalmuller/http-support-automatically…
dscho Jun 24, 2021
ba53689
Merge pull request #3349 from vdye/feature/ci-subtree-tests
dscho Aug 10, 2021
01aeb2e
Merge pull request #3306 from PhilipOakley/vs-sln
dscho Oct 12, 2021
34012b7
Merge pull request #3417 from dscho/initialize-core.symlinks-earlier
dscho Oct 13, 2021
b1441c0
Merge pull request #3533 from PhilipOakley/hashliteral_t
dscho Dec 15, 2021
88b418e
Merge pull request #3791: Various fixes around `safe.directory`
derrickstolee Apr 13, 2022
9c2fbec
Merge pull request #3751 from rkitover/native-term
dscho Apr 21, 2022
d56b451
Merge pull request #3875 from 1480c1/wine/detect_msys_tty
dscho May 30, 2022
9443af7
Merge branch 'optionally-dont-append-atomically-on-windows'
dscho Jun 23, 2022
eb10a5f
Merge branch 'fsync-object-files-always'
dscho Oct 11, 2018
83beff3
Merge branch 'ci-fixes'
dscho Feb 11, 2021
b0945e9
Merge pull request #3942 from rimrul/mingw-tsaware
dscho Jul 27, 2022
5d80b34
Fix Windows version resources (#4092)
dscho Nov 3, 2022
825355b
Merge branch 'builtin-swap-functions'
dscho Nov 23, 2022
6551810
Add support for CLANGARM64 target (#3916)
dscho Oct 28, 2022
b571b15
Fix global repository field not being cleared (#4083)
dscho Dec 20, 2022
ddeb793
Skip linking the "dashed" `git-<command>`s for built-ins (#4252)
dscho Jan 31, 2023
2e1a997
Git GUI: fix Repository>Explore Working Copy (#4357)
dscho Mar 21, 2023
566d2f7
Lazy load libcurl, allowing for an SSL/TLS backend-specific libcurl (…
dscho May 15, 2023
1b4274a
Merge branch 'nano-server'
dscho Aug 7, 2023
c6d0e62
Additional error checks for issuing the windows.appendAtomically warn…
dscho Aug 7, 2023
f6b7f5c
win32: use native ANSI sequence processing, if possible (#4700)
dscho Dec 2, 2023
1c1f137
ARM64: Embed manifest properly (#4718)
dscho Dec 7, 2023
a3b43fa
common-main.c: fflush stdout buffer when exit (#4901)
dscho Apr 12, 2024
4965ee1
Merge branch 'run-t5601-and-t7406-with-symlinks-on-windows-10'
dscho Jul 12, 2024
626eda0
Merge branch 'Fix-i686-build-with-GCC-v14'
dscho Jul 12, 2024
3a5f2bb
Merge branch 'Fallback-to-AppData-if-XDG-CONFIG-HOME-is-unset'
dscho Jul 12, 2024
6137fa4
Merge branch 'run-command-be-helpful-when-Git-LFS-fails-on-Windows-7'
dscho Jul 12, 2024
434d35b
pack-objects: create new name-hash algorithm (#5157)
dscho Sep 24, 2024
be05531
Add path walk API and its use in 'git pack-objects' (#5171)
derrickstolee Sep 25, 2024
829307e
path-walk API: avoid adding a root tree more than once (#5195)
dscho Oct 8, 2024
8b5c075
Introduce 'git backfill' to get missing blobs in a partial clone (#5172)
dscho Sep 26, 2024
16de090
Add experimental 'git survey' builtin (#5174)
dscho Sep 26, 2024
7ee7b57
path-walk: improve path-walk speed with many tags (#5205)
dscho Oct 11, 2024
e96b511
credential-cache: handle ECONNREFUSED gracefully (#5329)
dscho Jan 1, 2025
8765262
Win32: make FILETIME conversion functions public
kblees Jul 6, 2013
afb6c97
Win32: dirent.c: Move opendir down
kblees Sep 8, 2013
5394912
mingw: make the dirent implementation pluggable
kblees Sep 8, 2013
4d6c9ae
Win32: make the lstat implementation pluggable
kblees Sep 8, 2013
6d933f6
mingw: add infrastructure for read-only file system level caches
kblees Sep 8, 2013
0b4d50d
fscache: add key for GIT_TRACE_FSCACHE
jeffhostetler Jan 24, 2017
4bd5d05
mingw: add a cache below mingw's lstat and dirent implementations
kblees Oct 1, 2013
22e59f4
fscache: remember not-found directories
jeffhostetler Dec 13, 2016
ac62ab4
fscache: load directories only once
kblees Jun 24, 2014
6f5197b
fscache: add a test for the dir-not-found optimization
dscho Jan 25, 2017
6b3627f
add: use preload-index and fscache for performance
jeffhostetler Nov 22, 2016
b551fda
Merge branch 'ready-for-upstream'
dscho Oct 11, 2018
bd69cf7
dir.c: make add_excludes aware of fscache during status
jeffhostetler Nov 1, 2017
3de1d72
fscache: make fscache_enabled() public
jeffhostetler Dec 20, 2017
3d55d81
mem_pool: add GIT_TRACE_MEMPOOL support
benpeart Oct 4, 2018
b8686d7
dir.c: regression fix for add_excludes with fscache
jeffhostetler Dec 20, 2017
b2c8d16
fetch-pack.c: enable fscache for stats under .git/objects
Nov 22, 2017
2bdea05
checkout.c: enable fscache for checkout again
Jan 30, 2018
ade2577
Enable the filesystem cache (fscache) in refresh_index().
benpeart Sep 7, 2018
72e7282
fscache: use FindFirstFileExW to avoid retrieving the short name
benpeart Oct 23, 2018
24990f9
status: disable and free fscache at the end of the status command
benpeart Nov 1, 2018
17b2ca1
fscache: add GIT_TEST_FSCACHE support
benpeart Oct 4, 2018
71c001b
fscache: add fscache hit statistics
benpeart Sep 25, 2018
b0d0b14
fscache: fscache takes an initial size
benpeart Nov 2, 2018
5fc6a7c
fscache: remember the reparse tag for each entry
dscho Dec 11, 2018
d042571
fscache: update fscache to be thread specific instead of global
benpeart Oct 4, 2018
014d3fe
fscache: implement an FSCache-aware is_mount_point()
dscho Dec 11, 2018
7182f92
git-gui: provide question helper for retry fallback on Windows
hvoigt Feb 21, 2010
f5368b6
fscache: teach fscache to use mempool
benpeart Nov 2, 2018
31d4005
fscache: make fscache_enable() thread safe
benpeart Nov 16, 2018
cf693a8
fscache: teach fscache to use NtQueryDirectoryFile
benpeart Nov 15, 2018
e47cadc
unpack-trees: enable fscache for sparse-checkout
derrickstolee Jun 12, 2019
bc90e75
clean: make use of FSCache
dscho Dec 11, 2018
138f2a2
gitk: Unicode file name support
kblees Feb 4, 2012
e1f73ec
git-gui--askyesno: fix funny text wrapping
dscho Sep 20, 2017
5c6b2a6
gitk: Use an external icon file on Windows
sschuberth Jul 22, 2012
b532ee6
git-gui--askyesno: allow overriding the window title
dscho Sep 20, 2017
25f46e3
git gui: set GIT_ASKPASS=git-gui--askpass if not set yet
dscho Jul 23, 2010
4a5f1dc
gitk: fix arrow keys in input fields with Tcl/Tk >= 8.6
dscho Feb 16, 2016
d033151
git-gui--askyesno (mingw): use Git for Windows' icon, if available
dscho Sep 20, 2017
0da9072
Merge 'git-gui' into HEAD
dscho Jun 7, 2018
17d1088
gitk: make the "list references" default window width wider
sidecut Jan 21, 2016
4246813
Merge branch 'git-gui-askyesno'
dscho Jun 8, 2018
f0584d7
Merge branch 'fscache'
dscho Nov 15, 2018
651e5b7
Merge pull request #994 from jeffhostetler/jeffhostetler/fscache_nfd
dscho Jun 8, 2018
f262fef
Merge pull request #971 from jeffhostetler/jeffhostetler/add_preload_…
dscho Jun 8, 2018
416e6f8
Merge pull request #1344 from jeffhostetler/perf_add_excludes_with_fs…
dscho Jun 8, 2018
fa18b41
Merge pull request #1426 from atetubou/fetch_pack
dscho Jun 8, 2018
c85bcdc
Merge 'gitk' into HEAD
dscho Jun 7, 2018
0270bfe
Merge pull request #1468 from atetubou/fscache_checkout_flush
dscho Oct 12, 2018
40e475f
Merge pull request #1827 from benpeart/fscache_refresh_index
dscho Sep 27, 2018
d87edd0
Merge pull request #1908 from benpeart/FindFirstFileEx-gfw
dscho Nov 5, 2018
8042f16
Merge pull request #1909 from benpeart/free-fscache-after-status-gfw
dscho Nov 5, 2018
8dcd1a1
Merge pull request #1911 from benpeart/git_test_fscache-gfw
dscho Nov 5, 2018
7330a64
Merge pull request #1910 from benpeart/fscache_statistics-gfw
dscho Nov 16, 2018
7a4e994
Merge remote-tracking branch 'benpeart/fscache-per-thread-gfw'
dscho Nov 16, 2018
8cf0023
Merge pull request #1934 from benpeart/fscache-thread-safe-enable-gfw
dscho Nov 26, 2018
b05eb5c
Merge pull request #1937 from benpeart/fscache-NtQueryDirectoryFile-gfw
dscho Nov 27, 2018
1b168e1
Merge branch 'fscache-and-sparse-checkout'
derrickstolee Jun 18, 2019
549ba34
Merge branch 'dont-clean-junctions-fscache'
dscho Jul 23, 2019
6adb8e4
pack-objects (mingw): demonstrate a segmentation fault with large deltas
vangdfang Jan 9, 2014
94378c1
mingw: support long paths
kblees Jul 28, 2015
072902e
mingw: Support `git_terminal_prompt` with more terminals
kblees Mar 19, 2015
a5d11ab
Win32: fix 'lstat("dir/")' with long paths
kblees Jul 4, 2014
e79bbe4
compat/terminal.c: only use the Windows console if bash 'read -r' fails
kblees May 9, 2015
37575e0
strbuf_readlink: don't call readlink twice if hint is the exact link …
kblees May 11, 2015
3c4cd62
win32(long path support): leave drive-less absolute paths intact
dscho Sep 6, 2023
314d9aa
compat/fsmonitor/fsm-*-win32: support long paths
jeffhostetler Mar 25, 2022
2286800
clean: suggest using `core.longPaths` if paths are too long to remove
mathstuf Apr 22, 2022
0449fa6
mingw (git_terminal_prompt): do fall back to CONIN$/CONOUT$ method
dscho Feb 23, 2018
16ba97e
strbuf_readlink: support link targets that exceed PATH_MAX
kblees May 11, 2015
3bbb298
lockfile.c: use is_dir_sep() instead of hardcoded '/' checks
kblees May 11, 2015
014c9ba
Win32: don't call GetFileAttributes twice in mingw_lstat()
kblees May 12, 2015
a5e362e
Win32: implement stat() with symlink support
kblees May 15, 2015
70e161c
Win32: remove separate do_lstat() function
kblees May 11, 2015
6a57f09
Win32: let mingw_lstat() error early upon problems with reparse points
kblees May 23, 2015
d1a637d
mingw: teach fscache and dirent about symlinks
kblees Jan 10, 2017
b160896
Win32: lstat(): return adequate stat.st_size for symlinks
kblees May 15, 2015
3b126ac
Win32: factor out retry logic
kblees May 19, 2015
60b07ae
Win32: change default of 'core.symlinks' to false
kblees May 23, 2015
eddaa17
Win32: add symlink-specific error codes
kblees May 15, 2015
db44028
Win32: mingw_unlink: support symlinks to directories
kblees May 23, 2015
9be895c
Win32: mingw_rename: support renaming symlinks
kblees May 19, 2015
0ee6c2c
Win32: mingw_chdir: change to symlink-resolved directory
kblees May 23, 2015
6fa7f53
Win32: implement readlink()
kblees May 23, 2015
16c8396
mingw: lstat: compute correct size for symlinks
billziss-gh May 28, 2020
4bcc8a5
Win32: implement basic symlink() functionality (file symlinks only)
kblees May 23, 2015
0a04e07
Win32: symlink: add support for symlinks to directories
kblees May 23, 2015
e4a2ade
mingw: try to create symlinks without elevated permissions
dscho May 30, 2017
cffe5af
mingw: emulate stat() a little more faithfully
dscho Mar 2, 2020
71f5ae4
mingw: special-case index entries for symlinks with buggy size
dscho Jun 4, 2020
3b7f7fa
mingw: introduce code to detect whether we're inside a Windows container
ZCube Apr 23, 2018
7cd902e
mingw: when running in a Windows container, try to rename() harder
ZCube Apr 23, 2018
11f08d4
mingw: move the file_attr_to_st_mode() function definition
ZCube Apr 23, 2018
f558a61
mingw: Windows Docker volumes are *not* symbolic links
dscho Apr 23, 2018
07d0a7a
mingw: explicitly specify with which cmd to prefix the cmdline
dscho Jul 20, 2017
132edae
mingw: when path_lookup() failed, try BusyBox
dscho Jul 20, 2017
95e3587
test-lib: avoid unnecessary Perl invocation
dscho Aug 5, 2017
249fd8a
Win32: symlink: move phantom symlink creation to a separate function
piscisaureus Oct 26, 2018
bcec4b7
test-tool: learn to act as a drop-in replacement for `iconv`
dscho Jul 20, 2017
4d5a59a
Introduce helper to create symlinks that knows about index_state
dscho Feb 11, 2019
cf2505f
tests(mingw): if `iconv` is unavailable, use `test-helper --iconv`
dscho Jul 20, 2017
61e072f
mingw: allow to specify the symlink type in .gitattributes
piscisaureus Oct 26, 2018
6c4d258
gitattributes: mark .png files as binary
dscho Oct 11, 2018
e333dec
mingw: work around rename() failing on a read-only file
dsl101 Jul 28, 2023
b093fc0
Win32: symlink: add test for `symlink` attribute
piscisaureus Oct 26, 2018
7a8d524
tests: move test PNGs into t/lib-diff/
dscho Aug 5, 2017
dbd5f28
tests: only override sort & find if there are usable ones in /usr/bin/
dscho Jul 17, 2017
1064509
tests: use the correct path separator with BusyBox
dscho Nov 19, 2018
d442413
mingw: only use Bash-ism `builtin pwd -W` when available
dscho Jun 29, 2017
14549d6
tests (mingw): remove Bash-specific pwd option
dscho Jun 30, 2017
ace3077
test-lib: add BUSYBOX prerequisite
dscho Jul 19, 2017
332f414
t5003: use binary file from t/lib-diff/
dscho Aug 5, 2017
5099904
t5532: workaround for BusyBox on Windows
dscho Jul 21, 2017
680c136
t5605: special-case hardlink test for BusyBox-w32
dscho Jul 21, 2017
bb27736
t5813: allow for $PWD to be a Windows path
dscho Jul 5, 2017
ac2fe47
t9200: skip tests when $PWD contains a colon
dscho Jul 7, 2017
9db019a
mingw: add a Makefile target to copy test artifacts
dscho Jul 19, 2017
1ecb133
mingw: kill child processes in a gentler way
dscho May 17, 2017
c4cee35
mingw: optionally enable wsl compability file mode bits
swigger Jun 7, 2023
0eaad07
mingw: really handle SIGINT
dscho Apr 22, 2018
4238ff7
mingw: do not call xutftowcs_path in mingw_mktemp
neerajsi-msft Oct 27, 2021
e1a61a8
Partially un-revert "editor: save and reset terminal after calling ED…
dscho Nov 25, 2021
6071d7a
Describe Git for Windows' architecture [no ci]
dscho Feb 13, 2023
d94525a
Modify the Code of Conduct for Git for Windows
dscho Oct 11, 2019
6e5660d
CONTRIBUTING.md: add guide for first-time contributors
derrickstolee Mar 1, 2018
07c3ffc
README.md: Add a Windows-specific preamble
dscho Jan 10, 2014
126f900
Add an issue template
shiftkey Feb 18, 2016
fc4f4cd
Add a GitHub workflow to monitor component updates
dscho Sep 29, 2020
a1fc7cd
Modify the GitHub Pull Request template (to reflect Git for Windows)
Dec 22, 2017
e4fe80e
reset: reinstate support for the deprecated --stdin option
dscho Dec 10, 2019
c3c769b
fsmonitor: reintroduce core.useBuiltinFSMonitor
vdye Apr 4, 2022
b18e4dc
dependabot: help keeping GitHub Actions versions up to date
dscho Feb 6, 2024
ed5a452
SECURITY.md: document Git for Windows' policies
dscho Aug 23, 2019
25b735c
Merge branch 'gitk-and-git-gui-patches'
dscho Oct 11, 2018
cc15f36
Merge branch 'long-paths'
dscho Nov 15, 2018
dcaceab
Merge branch 'fix-v4-fsmonitor-long-paths' into try-v4-fsmonitor
jeffhostetler Sep 29, 2021
e770804
Merge pull request #3817 from mathstuf/name-too-long-advice
dscho Apr 22, 2022
31a5139
Merge branch 'msys2'
dscho Nov 15, 2018
561051c
Merge branch 'kblees/kb/symlinks'
dscho Nov 15, 2018
f6259a6
Merge 'docker-volumes-are-no-symlinks'
dscho Oct 12, 2018
674bd14
mingw: try resetting the read-only bit if rename fails (#4527)
dscho Aug 7, 2023
bdbe803
Merge pull request #1897 from piscisaureus/symlink-attr
dscho Oct 31, 2018
466a05b
Merge branch 'busybox-w32'
dscho Feb 7, 2019
31d0501
Merge branch 'wsl-file-mode-bits'
dscho Aug 7, 2023
4352a8e
Merge pull request #1170 from dscho/mingw-kill-process
dscho Oct 11, 2018
b16def4
Merge pull request #3492 from dscho/ns/batched-fsync
vdye Oct 28, 2021
07a2cb6
Merge branch 'un-revert-editor-save-and-reset'
dscho Jan 15, 2022
34acea6
Merge branch 'phase-out-reset-stdin'
dscho Jun 8, 2018
3645531
Merge branch 'deprecate-core.useBuiltinFSMonitor'
dscho Jan 24, 2023
ede6c1e
Merge pull request #2837 from dscho/monitor-component-updates
dscho Oct 7, 2020
81e36ea
Merge 'readme' into HEAD
dscho Jun 7, 2018
1c07901
Merge tag 'v2.47.1.windows.2' into rebase-to-v2.48.0
dscho Jan 16, 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
25 changes: 12 additions & 13 deletions Documentation/RelNotes/2.48.0.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,15 +47,15 @@ Performance, Internal Implementation, Development Support etc.

* The way AsciiDoc is used for SYNOPSIS part of the manual pages has
been revamped. The sources, at least for the simple cases, got
vastly pleasant to work with.
vastly more pleasant to work with.

* The reftable library is now prepared to expect that the memory
allocation function given to it may fail to allocate and to deal
with such an error.

* An extra worktree attached to a repository points at each other to
allow finding the repository from the worktree and vice versa
possible. Turn this linkage to relative paths.
allow finding the repository from the worktree (and vice versa)
possible. Use relative paths for this linkage.

* Enable Windows-based CI in GitLab.

Expand Down Expand Up @@ -94,7 +94,7 @@ Performance, Internal Implementation, Development Support etc.
* Update the project's CodingGuidelines to discourage naming functions
with a "_1()" suffix.

* Updates the '.clang-format' to match project conventions.
* Update '.clang-format' to match project conventions.

* Centralize documentation for repository extensions into a single place.

Expand All @@ -116,7 +116,7 @@ Performance, Internal Implementation, Development Support etc.
* The migration procedure between two ref backends has been optimized.

* "git fsck" learned to issue warnings on "curiously formatted" ref
contents that have always been taken valid but something Git
contents that have always been treated as valid but that Git
wouldn't have written itself (e.g., missing terminating end-of-line
after the full object name).

Expand All @@ -127,13 +127,13 @@ Performance, Internal Implementation, Development Support etc.

* Drop support for ancient environments in various CI jobs.

* Isolates the reftable subsystem from the rest of Git's codebase by
* Isolate the reftable subsystem from the rest of Git's codebase by
using fewer pieces of Git's infrastructure.

* Optimize reading random references out of the reftable backend by
allowing reuse of iterator objects.

* Backport oss-fuzz tests for us to our codebase.
* Backport oss-fuzz tests to our codebase.

* Introduce a new repository extension to prevent older Git versions
from mis-interpreting worktrees created with relative paths.
Expand Down Expand Up @@ -173,13 +173,13 @@ Fixes since v2.47
-----------------

* Doc update to clarify how periodical maintenance are scheduled,
spread across time to avoid thundering hurds.
spread across time to avoid thundering herds.

* Use after free and double freeing at the end in "git log -L... -p"
had been identified and fixed.

* On macOS, fsmonitor can fall into a race condition that results in
a client waiting forever to be notified for an event that have
a client waiting forever to be notified about an event that has
already happened. This problem has been corrected.

* "git maintenance start" crashed due to an uninitialized variable
Expand All @@ -203,7 +203,7 @@ Fixes since v2.47
* The dumb-http code regressed when the result of re-indexing a pack
yielded an *.idx file that differs in content from the *.idx file
it downloaded from the remote. This has been corrected by no longer
relying on: the *.idx file we got from the remote.
relying on the *.idx file we got from the remote.

* When called with '--left-right' and '--use-bitmap-index', 'rev-list'
will produce output without any left/right markers, which has been
Expand All @@ -227,7 +227,7 @@ Fixes since v2.47
* "git gc" discards any objects that are outside promisor packs that
are referred to by an object in a promisor pack, and we do not
refetch them from the promisor at runtime, resulting an unusable
repository. Work it around by including these objects in the
repository. Work around it by including these objects in the
referring promisor pack at the receiving end of the fetch.

* Avoid build/test breakage on a system without working malloc debug
Expand Down Expand Up @@ -282,9 +282,8 @@ Fixes since v2.47
on the path, which was not documented, which has been corrected.
(merge bc1a980759 kk/doc-ancestry-path later to maint).


* "git tag" has been taught to refuse to create refs/tags/HEAD
as such a tag will be confusing in the context of UI provided by
since such a tag will be confusing in the context of the UI provided by
the Git Porcelain commands.
(merge bbd445d5ef jc/forbid-head-as-tagname later to maint).

Expand Down
2 changes: 2 additions & 0 deletions Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -524,6 +524,8 @@ include::config/sequencer.txt[]

include::config/showbranch.txt[]

include::config/sideband.txt[]

include::config/sparse.txt[]

include::config/splitindex.txt[]
Expand Down
11 changes: 11 additions & 0 deletions Documentation/config/credential.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,17 @@ credential.useHttpPath::
or https URL to be important. Defaults to false. See
linkgit:gitcredentials[7] for more information.

credential.sanitizePrompt::
By default, user names and hosts that are shown as part of the
password prompt are not allowed to contain control characters (they
will be URL-encoded by default). Configure this setting to `false` to
override that behavior.

credential.protectProtocol::
By default, Carriage Return characters are not allowed in the protocol
that is used when Git talks to a credential helper. This setting allows
users to override this default.

credential.username::
If no username is set for a network authentication, use this username
by default. See credential.<context>.* below, and
Expand Down
16 changes: 16 additions & 0 deletions Documentation/config/sideband.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
sideband.allowControlCharacters::
By default, control characters that are delivered via the sideband
are masked, except ANSI color sequences. This prevents potentially
unwanted ANSI escape sequences from being sent to the terminal. Use
this config setting to override this behavior:
+
--
color::
Allow ANSI color sequences, line feeds and horizontal tabs,
but mask all other control characters. This is the default.
false::
Mask all control characters other than line feeds and
horizontal tabs.
true::
Allow all control characters to be sent to the terminal.
--
10 changes: 5 additions & 5 deletions GIT-VERSION-GEN
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/sh

DEF_VER=v2.48.0-rc2
DEF_VER=v2.48.0

LF='
'
Expand Down Expand Up @@ -86,11 +86,11 @@ sed -e "s|@GIT_VERSION@|$GIT_VERSION|" \
-e "s|@GIT_BUILT_FROM_COMMIT@|$GIT_BUILT_FROM_COMMIT|" \
-e "s|@GIT_USER_AGENT@|$GIT_USER_AGENT|" \
-e "s|@GIT_DATE@|$GIT_DATE|" \
"$INPUT" >"$OUTPUT".$$
"$INPUT" >"$OUTPUT".$$+

if ! test -f "$OUTPUT" || ! cmp "$OUTPUT".$$ "$OUTPUT" >/dev/null
if ! test -f "$OUTPUT" || ! cmp "$OUTPUT".$$+ "$OUTPUT" >/dev/null
then
mv "$OUTPUT".$$ "$OUTPUT"
mv "$OUTPUT".$$+ "$OUTPUT"
else
rm "$OUTPUT".$$
rm "$OUTPUT".$$+
fi
16 changes: 5 additions & 11 deletions builtin/blame.c
Original file line number Diff line number Diff line change
Expand Up @@ -476,13 +476,6 @@ static void emit_other(struct blame_scoreboard *sb, struct blame_entry *ent, int
size_t length = (opt & OUTPUT_LONG_OBJECT_NAME) ?
the_hash_algo->hexsz : (size_t) abbrev;

/*
* Leave enough space for ^, * and ? indicators (boundary,
* unblamable, ignored).
*/
if (length > GIT_MAX_HEXSZ + 3)
length = GIT_MAX_HEXSZ + 3;

if (opt & OUTPUT_COLOR_LINE) {
if (cnt > 0) {
color = repeated_meta_color;
Expand All @@ -496,9 +489,9 @@ static void emit_other(struct blame_scoreboard *sb, struct blame_entry *ent, int
fputs(color, stdout);

if (suspect->commit->object.flags & UNINTERESTING) {
if (blank_boundary)
memset(hex, ' ', length);
else if (!(opt & OUTPUT_ANNOTATE_COMPAT)) {
if (blank_boundary) {
memset(hex, ' ', strlen(hex));
} else if (!(opt & OUTPUT_ANNOTATE_COMPAT)) {
length--;
putchar('^');
}
Expand All @@ -512,7 +505,8 @@ static void emit_other(struct blame_scoreboard *sb, struct blame_entry *ent, int
length--;
putchar('?');
}
printf("%.*s", (int)length, hex);

printf("%.*s", (int)(length < GIT_MAX_HEXSZ ? length : GIT_MAX_HEXSZ), hex);
if (opt & OUTPUT_ANNOTATE_COMPAT) {
const char *name;
if (opt & OUTPUT_SHOW_EMAIL)
Expand Down
4 changes: 2 additions & 2 deletions builtin/fetch.c
Original file line number Diff line number Diff line change
Expand Up @@ -1588,8 +1588,8 @@ static void set_head_advice_msg(const char *remote, const char *head_name)
N_("Run 'git remote set-head %s %s' to follow the change, or set\n"
"'remote.%s.followRemoteHEAD' configuration option to a different value\n"
"if you do not want to see this message. Specifically running\n"
"'git config set remote.%s.followRemoteHEAD %s' will disable the warning\n"
"until the remote changes HEAD to something else.");
"'git config set remote.%s.followRemoteHEAD warn-if-not-branch-%s'\n"
"will disable the warning until the remote changes HEAD to something else.");

advise_if_enabled(ADVICE_FETCH_SET_HEAD_WARN, _(message_advice_set_head),
remote, head_name, remote, remote, head_name);
Expand Down
49 changes: 31 additions & 18 deletions credential.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,10 @@ static int credential_config_callback(const char *var, const char *value,
}
else if (!strcmp(key, "usehttppath"))
c->use_http_path = git_config_bool(var, value);
else if (!strcmp(key, "sanitizeprompt"))
c->sanitize_prompt = git_config_bool(var, value);
else if (!strcmp(key, "protectprotocol"))
c->protect_protocol = git_config_bool(var, value);

return 0;
}
Expand Down Expand Up @@ -227,7 +231,8 @@ static void credential_format(struct credential *c, struct strbuf *out)
strbuf_addch(out, '@');
}
if (c->host)
strbuf_addstr(out, c->host);
strbuf_add_percentencode(out, c->host,
STRBUF_ENCODE_HOST_AND_PORT);
if (c->path) {
strbuf_addch(out, '/');
strbuf_add_percentencode(out, c->path, 0);
Expand All @@ -241,7 +246,10 @@ static char *credential_ask_one(const char *what, struct credential *c,
struct strbuf prompt = STRBUF_INIT;
char *r;

credential_describe(c, &desc);
if (c->sanitize_prompt)
credential_format(c, &desc);
else
credential_describe(c, &desc);
if (desc.len)
strbuf_addf(&prompt, "%s for '%s': ", what, desc.buf);
else
Expand Down Expand Up @@ -382,7 +390,8 @@ int credential_read(struct credential *c, FILE *fp,
return 0;
}

static void credential_write_item(FILE *fp, const char *key, const char *value,
static void credential_write_item(const struct credential *c,
FILE *fp, const char *key, const char *value,
int required)
{
if (!value && required)
Expand All @@ -391,41 +400,45 @@ static void credential_write_item(FILE *fp, const char *key, const char *value,
return;
if (strchr(value, '\n'))
die("credential value for %s contains newline", key);
if (c->protect_protocol && strchr(value, '\r'))
die("credential value for %s contains carriage return\n"
"If this is intended, set `credential.protectProtocol=false`",
key);
fprintf(fp, "%s=%s\n", key, value);
}

void credential_write(const struct credential *c, FILE *fp,
enum credential_op_type op_type)
{
if (credential_has_capability(&c->capa_authtype, op_type))
credential_write_item(fp, "capability[]", "authtype", 0);
credential_write_item(c, fp, "capability[]", "authtype", 0);
if (credential_has_capability(&c->capa_state, op_type))
credential_write_item(fp, "capability[]", "state", 0);
credential_write_item(c, fp, "capability[]", "state", 0);

if (credential_has_capability(&c->capa_authtype, op_type)) {
credential_write_item(fp, "authtype", c->authtype, 0);
credential_write_item(fp, "credential", c->credential, 0);
credential_write_item(c, fp, "authtype", c->authtype, 0);
credential_write_item(c, fp, "credential", c->credential, 0);
if (c->ephemeral)
credential_write_item(fp, "ephemeral", "1", 0);
credential_write_item(c, fp, "ephemeral", "1", 0);
}
credential_write_item(fp, "protocol", c->protocol, 1);
credential_write_item(fp, "host", c->host, 1);
credential_write_item(fp, "path", c->path, 0);
credential_write_item(fp, "username", c->username, 0);
credential_write_item(fp, "password", c->password, 0);
credential_write_item(fp, "oauth_refresh_token", c->oauth_refresh_token, 0);
credential_write_item(c, fp, "protocol", c->protocol, 1);
credential_write_item(c, fp, "host", c->host, 1);
credential_write_item(c, fp, "path", c->path, 0);
credential_write_item(c, fp, "username", c->username, 0);
credential_write_item(c, fp, "password", c->password, 0);
credential_write_item(c, fp, "oauth_refresh_token", c->oauth_refresh_token, 0);
if (c->password_expiry_utc != TIME_MAX) {
char *s = xstrfmt("%"PRItime, c->password_expiry_utc);
credential_write_item(fp, "password_expiry_utc", s, 0);
credential_write_item(c, fp, "password_expiry_utc", s, 0);
free(s);
}
for (size_t i = 0; i < c->wwwauth_headers.nr; i++)
credential_write_item(fp, "wwwauth[]", c->wwwauth_headers.v[i], 0);
credential_write_item(c, fp, "wwwauth[]", c->wwwauth_headers.v[i], 0);
if (credential_has_capability(&c->capa_state, op_type)) {
if (c->multistage)
credential_write_item(fp, "continue", "1", 0);
credential_write_item(c, fp, "continue", "1", 0);
for (size_t i = 0; i < c->state_headers_to_send.nr; i++)
credential_write_item(fp, "state[]", c->state_headers_to_send.v[i], 0);
credential_write_item(c, fp, "state[]", c->state_headers_to_send.v[i], 0);
}
}

Expand Down
6 changes: 5 additions & 1 deletion credential.h
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,9 @@ struct credential {
multistage: 1,
quit:1,
use_http_path:1,
username_from_proto:1;
username_from_proto:1,
sanitize_prompt:1,
protect_protocol:1;

struct credential_capability capa_authtype;
struct credential_capability capa_state;
Expand All @@ -195,6 +197,8 @@ struct credential {
.wwwauth_headers = STRVEC_INIT, \
.state_headers = STRVEC_INIT, \
.state_headers_to_send = STRVEC_INIT, \
.sanitize_prompt = 1, \
.protect_protocol = 1, \
}

/* Initialize a credential structure, setting all fields to empty. */
Expand Down
1 change: 1 addition & 0 deletions perl/FromCPAN/Mail/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ test_dependencies += custom_target(
command: generate_perl_command,
install: true,
install_dir: get_option('datadir') / 'perl5/FromCPAN/Mail',
depends: [git_version_file],
)
1 change: 1 addition & 0 deletions perl/FromCPAN/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ test_dependencies += custom_target(
command: generate_perl_command,
install: true,
install_dir: get_option('datadir') / 'perl5/FromCPAN',
depends: [git_version_file],
)

subdir('Mail')
1 change: 1 addition & 0 deletions perl/Git/LoadCPAN/Mail/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ test_dependencies += custom_target(
command: generate_perl_command,
install: true,
install_dir: get_option('datadir') / 'perl5/Git/LoadCPAN/Mail',
depends: [git_version_file],
)
1 change: 1 addition & 0 deletions perl/Git/LoadCPAN/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ test_dependencies += custom_target(
command: generate_perl_command,
install: true,
install_dir: get_option('datadir') / 'perl5/Git/LoadCPAN',
depends: [git_version_file],
)

subdir('Mail')
1 change: 1 addition & 0 deletions perl/Git/SVN/Memoize/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ test_dependencies += custom_target(
command: generate_perl_command,
install: true,
install_dir: get_option('datadir') / 'perl5/Git/SVN',
depends: [git_version_file],
)
1 change: 1 addition & 0 deletions perl/Git/SVN/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ foreach source : [
command: generate_perl_command,
install: true,
install_dir: get_option('datadir') / 'perl5/Git/SVN',
depends: [git_version_file],
)
endforeach

Expand Down
1 change: 1 addition & 0 deletions perl/Git/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ foreach source : [
command: generate_perl_command,
install: true,
install_dir: get_option('datadir') / 'perl5/Git',
depends: [git_version_file],
)
endforeach

Expand Down
1 change: 1 addition & 0 deletions perl/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ test_dependencies += custom_target(
command: generate_perl_command,
install: true,
install_dir: get_option('datadir') / 'perl5',
depends: [git_version_file],
)

subdir('Git')
Expand Down
Loading
Loading