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.46.0-rc0 #5056

Merged
merged 1,151 commits into from
Jul 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1151 commits
Select commit Hold shift + click to select a range
3ca5c9d
vcxproj: handle libreftable_test, too
dscho Jun 28, 2022
105dade
vcxproj: avoid escaping double quotes in the defines
dscho Jun 28, 2022
e3f1e47
ci: adjust Azure Pipeline for `runs_on_pool`
dscho Jul 9, 2022
1aca19c
ci: stop linking the `prove` cache
dscho Jul 9, 2022
7f39a93
ci: reinstate Azure Pipelines support
dscho Feb 11, 2021
4ca2723
azure-pipeline: drop the `GETTEXT_POISON` job
dscho Mar 29, 2022
7b655db
azure-pipeline: stop hard-coding `apt-get` calls
dscho Mar 29, 2022
90e897c
azure-pipeline: drop the code to write to/read from a file share
dscho Jul 9, 2022
bb5cf06
winansi: check result and Buffer before using Name
1480c1 May 28, 2022
ac8583e
azure-pipeline: use partial clone/parallel checkout to initialize min…
dscho Jul 9, 2022
cf38b3a
azure-pipeline: downcase the job name of the `Linux32` job
dscho Jul 9, 2022
ed563a6
config.mak.uname: add support for clangarm64
dennisameling Oct 4, 2022
fc07bd0
azure-pipeline: run static-analysis on jammy
ttaylorr Feb 8, 2021
8b4bf5f
MinGW: link as terminal server aware
rimrul Jul 10, 2022
9bc98b2
Fix Windows version resources
Mortein Nov 2, 2022
9d1bd22
bswap.h: add support for built-in bswap functions
dennisameling Oct 4, 2022
578a190
ci: create clangarm64-build.yml
dennisameling Oct 4, 2022
a078d6c
status: fix for old-style submodules with commondir
sceptical-coder Oct 28, 2022
584c68a
windows: skip linking `git-<command>` for built-ins
dscho Jan 27, 2023
540775a
windows: fix Repository>Explore Working Copy
dscho Mar 21, 2023
0ef88c8
http: optionally load libcurl lazily
dscho May 6, 2023
06b7556
http: support lazy-loading libcurl also on Windows
dscho May 7, 2023
317bc19
http: when loading libcurl lazily, allow for multiple SSL backends
dscho May 7, 2023
8c624a1
mingw: do load libcurl dynamically by default
dscho May 7, 2023
6b82cdf
Add a GitHub workflow to verify that Git/Scalar work in Nano Server
dscho Nov 2, 2022
b36763e
win32: use native ANSI sequence processing, if possible
dscho Nov 22, 2023
9cb98e1
git.rc: include winuser.h
rimrul Dec 2, 2023
12dc571
build(deps): bump microsoft/setup-msbuild from 1 to 2
dependabot[bot] Feb 12, 2024
59514d2
common-main.c: fflush stdout buffer upon exit
chengzhuo5 Apr 8, 2024
3a1a048
Merge 'remote-hg-prerequisites' into HEAD
dscho Jun 8, 2018
b4fc819
Merge branch 'drive-prefix'
dscho Jun 8, 2018
a7f243f
Merge branch 'dont-clean-junctions'
dscho Jul 30, 2019
5e3c81c
Merge branch 'msys2-python'
dscho May 31, 2019
335df21
Merge branch 'mimalloc-v2.0.9'
dscho Sep 8, 2022
fecbbb9
Merge pull request #2375 from assarbad/reintroduce-sideband-config
dscho Oct 30, 2019
52ff8cb
Merge pull request #2405 from dscho/mingw-setsockopt
dscho Nov 25, 2019
f1827ec
Merge pull request #2449 from dscho/mingw-getcwd-and-symlinks
dscho Jan 3, 2020
a0f1a0b
Merge pull request #2488 from bmueller84/master
dscho Jan 22, 2020
3c8bb8f
Merge pull request #2501 from jeffhostetler/clink-debug-curl
dscho Jan 30, 2020
aed772f
Merge pull request #2504 from dscho/access-repo-via-junction
dscho Feb 1, 2020
a540464
Merge pull request #2506 from dscho/issue-2283
dscho Feb 11, 2020
1e1f03d
Merge pull request #2535 from dscho/schannel-revoke-best-effort
dscho Mar 4, 2020
26bc600
Merge pull request #2618 from dscho/avoid-d/f-conflict-in-vs/master
dscho May 9, 2020
6d379df
Merge 'add-p-many-files'
dscho Jun 8, 2018
e6a734e
Merge pull request #2730 from dscho/crlf-aware-git-add-i
dscho Jul 2, 2020
e0d7916
Merge pull request #2714 from lbonanomi/crlf-scissors
dscho Jul 3, 2020
34b93fe
Merge pull request #2655 from jglathe/jg/t0014_trace_extra_info
dscho Oct 9, 2020
a632086
Merge 'git-gui/js/intent-to-add'
dscho Oct 18, 2020
8583cd1
Merge pull request #2974 from derrickstolee/maintenance-and-headless
dscho Jan 11, 2021
62cbd74
cmake: install headless-git. (#4338)
dscho Mar 13, 2023
2ae8004
Merge pull request #2351 from PhilipOakley/vcpkg-tip
dscho Oct 7, 2019
72a1f3e
Merge pull request #2915 from dennisameling/windows-arm64-support
dscho Dec 9, 2020
b79211d
Merge pull request #3327 from dennisameling/fix-host-cpu
dscho Jul 19, 2021
1fefa03
Merge pull request #3150 from dscho/ci-cache-vcpkg-artifacts-g4w
dscho Mar 28, 2021
2cc0b22
Merge pull request #3165 from dscho/increase-allowed-length-of-interp…
dscho Apr 3, 2021
885274f
Merge pull request #3220 from dscho/there-is-no-vs/master-anymore
dscho May 17, 2021
5203eb1
Merge pull request #3293 from pascalmuller/http-support-automatically…
dscho Jun 24, 2021
20fa71e
Merge pull request #3349 from vdye/feature/ci-subtree-tests
dscho Aug 10, 2021
ce73fc5
Merge pull request #3306 from PhilipOakley/vs-sln
dscho Oct 12, 2021
8e7b2c0
Merge pull request #3417 from dscho/initialize-core.symlinks-earlier
dscho Oct 13, 2021
f9bebf2
Merge branch 'mark-v4-fsmonitor-experimental' into try-v4-fsmonitor
jeffhostetler Sep 29, 2021
225bc96
Merge pull request #3533 from PhilipOakley/hashliteral_t
dscho Dec 15, 2021
c9bd3bd
Merge pull request #3791: Various fixes around `safe.directory`
derrickstolee Apr 13, 2022
3c49a56
Merge pull request #3751 from rkitover/native-term
dscho Apr 21, 2022
0dc3286
Merge pull request #3875 from 1480c1/wine/detect_msys_tty
dscho May 30, 2022
94b60e9
Add config option `windows.appendAtomically`
sunzhuoshi Jan 15, 2022
406afe5
mingw: change core.fsyncObjectFiles = 1 by default
dscho Sep 4, 2017
d33714f
mingw: suggest `windows.appendAtomically` in more cases
dsl101 Jul 28, 2023
907ec73
t5601/t7406(mingw): do run tests with symlink support
dscho Apr 9, 2024
e36580d
win32: ensure that `localtime_r()` is declared even in i686 builds
dscho May 21, 2024
2a5b836
Fallback to AppData if XDG_CONFIG_HOME is unset
ariellourenco Jul 2, 2024
46d14a6
run-command: be helpful with Git LFS fails on Windows 7
dscho Jul 4, 2024
18b605d
cmake: fix build of `t-oidtree`
dscho Jun 28, 2024
810ebe1
Merge branch 'optionally-dont-append-atomically-on-windows'
dscho Jun 23, 2022
985cba1
Merge branch 'fsync-object-files-always'
dscho Oct 11, 2018
2678ed9
Merge branch 'ci-fixes'
dscho Feb 11, 2021
c29bcee
Merge pull request #3942 from rimrul/mingw-tsaware
dscho Jul 27, 2022
71a6ef7
Fix Windows version resources (#4092)
dscho Nov 3, 2022
6e584ea
Merge branch 'builtin-swap-functions'
dscho Nov 23, 2022
756209a
Add support for CLANGARM64 target (#3916)
dscho Oct 28, 2022
6510575
Fix global repository field not being cleared (#4083)
dscho Dec 20, 2022
406c897
Skip linking the "dashed" `git-<command>`s for built-ins (#4252)
dscho Jan 31, 2023
dc29384
Git GUI: fix Repository>Explore Working Copy (#4357)
dscho Mar 21, 2023
6e48188
Lazy load libcurl, allowing for an SSL/TLS backend-specific libcurl (…
dscho May 15, 2023
2b41a7d
Merge branch 'nano-server'
dscho Aug 7, 2023
d79e56b
Additional error checks for issuing the windows.appendAtomically warn…
dscho Aug 7, 2023
067120c
win32: use native ANSI sequence processing, if possible (#4700)
dscho Dec 2, 2023
81e28de
ARM64: Embed manifest properly (#4718)
dscho Dec 7, 2023
7b31ff7
dependabot: help keeping GitHub Actions versions up to date (#4792)
rimrul Feb 7, 2024
4b33e9a
common-main.c: fflush stdout buffer when exit (#4901)
dscho Apr 12, 2024
63b35a6
Merge branch 'run-t5601-and-t7406-with-symlinks-on-windows-10'
dscho Jul 12, 2024
5c8f33c
Merge branch 'Fix-i686-build-with-GCC-v14'
dscho Jul 12, 2024
6019ac9
Merge branch 'Fallback-to-AppData-if-XDG-CONFIG-HOME-is-unset'
dscho Jul 12, 2024
283fdb4
Merge branch 'run-command-be-helpful-when-Git-LFS-fails-on-Windows-7'
dscho Jul 12, 2024
df0da4d
Merge branch 'cmake-vs-t-oidtree'
dscho Jul 12, 2024
691eb43
Win32: make FILETIME conversion functions public
kblees Jul 6, 2013
018bf86
Win32: dirent.c: Move opendir down
kblees Sep 8, 2013
6dc619e
mingw: make the dirent implementation pluggable
kblees Sep 8, 2013
ecfcb3f
Win32: make the lstat implementation pluggable
kblees Sep 8, 2013
9a7efe8
Merge branch 'ready-for-upstream'
dscho Oct 11, 2018
9b7f879
mingw: add infrastructure for read-only file system level caches
kblees Sep 8, 2013
b567155
fscache: add key for GIT_TRACE_FSCACHE
jeffhostetler Jan 24, 2017
d3c4d30
dir.c: make add_excludes aware of fscache during status
jeffhostetler Nov 1, 2017
fa0c711
mingw: add a cache below mingw's lstat and dirent implementations
kblees Oct 1, 2013
fba2496
fscache: remember not-found directories
jeffhostetler Dec 13, 2016
c0e1534
fscache: make fscache_enabled() public
jeffhostetler Dec 20, 2017
b46ee27
fscache: load directories only once
kblees Jun 24, 2014
1953499
fscache: add a test for the dir-not-found optimization
dscho Jan 25, 2017
f49e942
add: use preload-index and fscache for performance
jeffhostetler Nov 22, 2016
98b7d33
dir.c: regression fix for add_excludes with fscache
jeffhostetler Dec 20, 2017
f8d96ca
mem_pool: add GIT_TRACE_MEMPOOL support
benpeart Oct 4, 2018
7238952
fscache: fscache takes an initial size
benpeart Nov 2, 2018
ff7d11e
fscache: update fscache to be thread specific instead of global
benpeart Oct 4, 2018
8d36ca9
fetch-pack.c: enable fscache for stats under .git/objects
Nov 22, 2017
d18a16b
checkout.c: enable fscache for checkout again
Jan 30, 2018
6d59d63
Enable the filesystem cache (fscache) in refresh_index().
benpeart Sep 7, 2018
e0c4eb3
fscache: use FindFirstFileExW to avoid retrieving the short name
benpeart Oct 23, 2018
4232b4c
status: disable and free fscache at the end of the status command
benpeart Nov 1, 2018
f1600f3
fscache: add GIT_TEST_FSCACHE support
benpeart Oct 4, 2018
31dcfeb
fscache: add fscache hit statistics
benpeart Sep 25, 2018
51589d8
fscache: remember the reparse tag for each entry
dscho Dec 11, 2018
9617e3c
git-gui: provide question helper for retry fallback on Windows
hvoigt Feb 21, 2010
4dca0a2
fscache: implement an FSCache-aware is_mount_point()
dscho Dec 11, 2018
193baf6
git gui: set GIT_ASKPASS=git-gui--askpass if not set yet
dscho Jul 23, 2010
d70ee3e
fscache: teach fscache to use mempool
benpeart Nov 2, 2018
bbaa835
fscache: make fscache_enable() thread safe
benpeart Nov 16, 2018
f9f1c11
fscache: teach fscache to use NtQueryDirectoryFile
benpeart Nov 15, 2018
1bc1173
unpack-trees: enable fscache for sparse-checkout
derrickstolee Jun 12, 2019
7d35760
clean: make use of FSCache
dscho Dec 11, 2018
02f6ae8
gitk: Unicode file name support
kblees Feb 4, 2012
dd06904
git-gui--askyesno: fix funny text wrapping
dscho Sep 20, 2017
a2cadcb
gitk: Use an external icon file on Windows
sschuberth Jul 22, 2012
4d0a0a7
git-gui--askyesno: allow overriding the window title
dscho Sep 20, 2017
adf1d89
gitk: fix arrow keys in input fields with Tcl/Tk >= 8.6
dscho Feb 16, 2016
8c02cbb
git-gui--askyesno (mingw): use Git for Windows' icon, if available
dscho Sep 20, 2017
e9f0cbc
Merge 'git-gui' into HEAD
dscho Jun 7, 2018
1f75d11
gitk: make the "list references" default window width wider
sidecut Jan 21, 2016
cb7fe4e
Merge branch 'git-gui-askyesno'
dscho Jun 8, 2018
1f29029
Merge branch 'fscache'
dscho Nov 15, 2018
175a39e
Merge pull request #994 from jeffhostetler/jeffhostetler/fscache_nfd
dscho Jun 8, 2018
38f1dc3
Merge pull request #971 from jeffhostetler/jeffhostetler/add_preload_…
dscho Jun 8, 2018
9747d0d
Merge pull request #1344 from jeffhostetler/perf_add_excludes_with_fs…
dscho Jun 8, 2018
86cea1c
Merge pull request #1426 from atetubou/fetch_pack
dscho Jun 8, 2018
4cd3ec7
Merge 'gitk' into HEAD
dscho Jun 7, 2018
a5e7777
Merge pull request #1468 from atetubou/fscache_checkout_flush
dscho Oct 12, 2018
9ed4a1a
Merge pull request #1827 from benpeart/fscache_refresh_index
dscho Sep 27, 2018
38f39c5
Merge pull request #1908 from benpeart/FindFirstFileEx-gfw
dscho Nov 5, 2018
d1e268e
Merge pull request #1909 from benpeart/free-fscache-after-status-gfw
dscho Nov 5, 2018
c1bace4
Merge pull request #1911 from benpeart/git_test_fscache-gfw
dscho Nov 5, 2018
f07c5f0
Merge pull request #1910 from benpeart/fscache_statistics-gfw
dscho Nov 16, 2018
83af503
Merge remote-tracking branch 'benpeart/fscache-per-thread-gfw'
dscho Nov 16, 2018
6b43eef
Merge pull request #1934 from benpeart/fscache-thread-safe-enable-gfw
dscho Nov 26, 2018
7e4cf26
Merge pull request #1937 from benpeart/fscache-NtQueryDirectoryFile-gfw
dscho Nov 27, 2018
f02d6cf
Merge branch 'fscache-and-sparse-checkout'
derrickstolee Jun 18, 2019
6d57a51
pack-objects (mingw): demonstrate a segmentation fault with large deltas
vangdfang Jan 9, 2014
916c9d7
Merge branch 'dont-clean-junctions-fscache'
dscho Jul 23, 2019
6b3d624
strbuf_readlink: don't call readlink twice if hint is the exact link …
kblees May 11, 2015
9407e23
strbuf_readlink: support link targets that exceed PATH_MAX
kblees May 11, 2015
0bd7c21
lockfile.c: use is_dir_sep() instead of hardcoded '/' checks
kblees May 11, 2015
9c15e7b
mingw: Support `git_terminal_prompt` with more terminals
kblees Mar 19, 2015
9f3d0bd
Win32: don't call GetFileAttributes twice in mingw_lstat()
kblees May 12, 2015
beca37c
mingw: support long paths
kblees Jul 28, 2015
96f7208
compat/terminal.c: only use the Windows console if bash 'read -r' fails
kblees May 9, 2015
4dbf380
Win32: implement stat() with symlink support
kblees May 15, 2015
c60f116
Win32: fix 'lstat("dir/")' with long paths
kblees Jul 4, 2014
cd8d6b6
mingw (git_terminal_prompt): do fall back to CONIN$/CONOUT$ method
dscho Feb 23, 2018
4d4e572
Win32: remove separate do_lstat() function
kblees May 11, 2015
367b7ac
win32(long path support): leave drive-less absolute paths intact
dscho Sep 6, 2023
c92990f
compat/fsmonitor/fsm-*-win32: support long paths
jeffhostetler Mar 25, 2022
cf1ad67
clean: suggest using `core.longPaths` if paths are too long to remove
mathstuf Apr 22, 2022
e53d026
Unbreak interactive GPG prompt upon signing
dscho Sep 6, 2016
be743cb
Win32: let mingw_lstat() error early upon problems with reparse points
kblees May 23, 2015
a151692
mingw: teach fscache and dirent about symlinks
kblees Jan 10, 2017
3b8188d
Win32: lstat(): return adequate stat.st_size for symlinks
kblees May 15, 2015
f4a926e
Win32: factor out retry logic
kblees May 19, 2015
8a49696
Win32: change default of 'core.symlinks' to false
kblees May 23, 2015
770dbc3
Win32: add symlink-specific error codes
kblees May 15, 2015
3e8d847
Win32: mingw_unlink: support symlinks to directories
kblees May 23, 2015
c9180fe
Win32: mingw_rename: support renaming symlinks
kblees May 19, 2015
d02b989
Win32: mingw_chdir: change to symlink-resolved directory
kblees May 23, 2015
25aa677
Win32: implement readlink()
kblees May 23, 2015
632f530
mingw: lstat: compute correct size for symlinks
billziss-gh May 28, 2020
87d8912
Win32: implement basic symlink() functionality (file symlinks only)
kblees May 23, 2015
6201b76
Win32: symlink: add support for symlinks to directories
kblees May 23, 2015
a12ceba
mingw: try to create symlinks without elevated permissions
dscho May 30, 2017
387565c
mingw: emulate stat() a little more faithfully
dscho Mar 2, 2020
be9303f
mingw: special-case index entries for symlinks with buggy size
dscho Jun 4, 2020
90af1a4
mingw: explicitly specify with which cmd to prefix the cmdline
dscho Jul 20, 2017
e3ec150
mingw: when path_lookup() failed, try BusyBox
dscho Jul 20, 2017
0ef2f1c
mingw: introduce code to detect whether we're inside a Windows container
ZCube Apr 23, 2018
22a3d60
Win32: symlink: move phantom symlink creation to a separate function
piscisaureus Oct 26, 2018
d95a157
test-lib: avoid unnecessary Perl invocation
dscho Aug 5, 2017
3c95135
mingw: when running in a Windows container, try to rename() harder
ZCube Apr 23, 2018
4ee0b31
Introduce helper to create symlinks that knows about index_state
dscho Feb 11, 2019
3d2d68a
test-tool: learn to act as a drop-in replacement for `iconv`
dscho Jul 20, 2017
8d5869b
mingw: move the file_attr_to_st_mode() function definition
ZCube Apr 23, 2018
7fe1056
mingw: allow to specify the symlink type in .gitattributes
piscisaureus Oct 26, 2018
4651b3d
tests(mingw): if `iconv` is unavailable, use `test-helper --iconv`
dscho Jul 20, 2017
c9aee6d
mingw: Windows Docker volumes are *not* symbolic links
dscho Apr 23, 2018
4b071ed
mingw: work around rename() failing on a read-only file
dsl101 Jul 28, 2023
bc5aecf
Win32: symlink: add test for `symlink` attribute
piscisaureus Oct 26, 2018
168b479
gitattributes: mark .png files as binary
dscho Oct 11, 2018
c4b6184
tests: move test PNGs into t/lib-diff/
dscho Aug 5, 2017
b5b33c1
tests: only override sort & find if there are usable ones in /usr/bin/
dscho Jul 17, 2017
c3bfaf3
tests: use the correct path separator with BusyBox
dscho Nov 19, 2018
186f9ff
mingw: only use Bash-ism `builtin pwd -W` when available
dscho Jun 29, 2017
71e6861
tests (mingw): remove Bash-specific pwd option
dscho Jun 30, 2017
9d6c96f
test-lib: add BUSYBOX prerequisite
dscho Jul 19, 2017
80d33b6
t5003: use binary file from t/lib-diff/
dscho Aug 5, 2017
ab5b9d1
t5532: workaround for BusyBox on Windows
dscho Jul 21, 2017
3c059e3
t5605: special-case hardlink test for BusyBox-w32
dscho Jul 21, 2017
c5aa28a
t5813: allow for $PWD to be a Windows path
dscho Jul 5, 2017
569f680
t9200: skip tests when $PWD contains a colon
dscho Jul 7, 2017
9d056fa
mingw: kill child processes in a gentler way
dscho May 17, 2017
b98ca57
mingw: add a Makefile target to copy test artifacts
dscho Jul 19, 2017
6240365
mingw: optionally enable wsl compability file mode bits
swigger Jun 7, 2023
c769b84
mingw: really handle SIGINT
dscho Apr 22, 2018
372373f
mingw: do not call xutftowcs_path in mingw_mktemp
neerajsi-msft Oct 27, 2021
0bb4736
Partially un-revert "editor: save and reset terminal after calling ED…
dscho Nov 25, 2021
af7fa6b
Describe Git for Windows' architecture [no ci]
dscho Feb 13, 2023
b7d7731
Modify the Code of Conduct for Git for Windows
dscho Oct 11, 2019
d09e406
CONTRIBUTING.md: add guide for first-time contributors
derrickstolee Mar 1, 2018
b4e02b9
README.md: Add a Windows-specific preamble
dscho Jan 10, 2014
4b7e1f9
Add an issue template
shiftkey Feb 18, 2016
01f7a13
Modify the GitHub Pull Request template (to reflect Git for Windows)
Dec 22, 2017
4890b63
.github: Add configuration for the Sentiment Bot
dscho Feb 20, 2018
323134e
Add a GitHub workflow to monitor component updates
dscho Sep 29, 2020
5a292d5
Document how $HOME is set on Windows
alejandro5042 Mar 9, 2018
a49b209
reset: reinstate support for the deprecated --stdin option
dscho Dec 10, 2019
8d0b6cc
fsmonitor: reintroduce core.useBuiltinFSMonitor
vdye Apr 4, 2022
07fc800
dependabot: help keeping GitHub Actions versions up to date
dscho Feb 6, 2024
7c314ef
SECURITY.md: document Git for Windows' policies
dscho Aug 23, 2019
d7030ad
Merge branch 'gitk-and-git-gui-patches'
dscho Oct 11, 2018
eeeb0c9
Merge branch 'long-paths'
dscho Nov 15, 2018
5ccf910
Merge branch 'fix-v4-fsmonitor-long-paths' into try-v4-fsmonitor
jeffhostetler Sep 29, 2021
497220b
Merge pull request #3817 from mathstuf/name-too-long-advice
dscho Apr 22, 2022
ba74613
Merge branch 'msys2'
dscho Nov 15, 2018
992a9a5
Merge branch 'kblees/kb/symlinks'
dscho Nov 15, 2018
ca48d30
Merge 'docker-volumes-are-no-symlinks'
dscho Oct 12, 2018
9a8b990
mingw: try resetting the read-only bit if rename fails (#4527)
dscho Aug 7, 2023
5aafd3d
Merge pull request #1897 from piscisaureus/symlink-attr
dscho Oct 31, 2018
2c6c5f2
Merge branch 'busybox-w32'
dscho Feb 7, 2019
f36afef
Merge branch 'wsl-file-mode-bits'
dscho Aug 7, 2023
a6eb89c
Merge pull request #1170 from dscho/mingw-kill-process
dscho Oct 11, 2018
3f2f371
Merge pull request #3492 from dscho/ns/batched-fsync
vdye Oct 28, 2021
8481f43
Merge branch 'un-revert-editor-save-and-reset'
dscho Jan 15, 2022
ef5e740
Merge branch 'phase-out-reset-stdin'
dscho Jun 8, 2018
64cca12
Merge branch 'deprecate-core.useBuiltinFSMonitor'
dscho Jan 24, 2023
6ba49ce
Merge pull request #2837 from dscho/monitor-component-updates
dscho Oct 7, 2020
b105301
Merge 'readme' into HEAD
dscho Jun 7, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
67 changes: 4 additions & 63 deletions .github/workflows/check-whitespace.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,66 +26,7 @@ jobs:
- name: git log --check
id: check_out
run: |
baseSha=${{github.event.pull_request.base.sha}}
problems=()
commit=
commitText=
commitTextmd=
goodparent=
while read dash sha etc
do
case "${dash}" in
"---")
if test -z "${commit}"
then
goodparent=${sha}
fi
commit="${sha}"
commitText="${sha} ${etc}"
commitTextmd="[${sha}](https://github.com/${{ github.repository }}/commit/${sha}) ${etc}"
;;
"")
;;
*)
if test -n "${commit}"
then
problems+=("1) --- ${commitTextmd}")
echo ""
echo "--- ${commitText}"
commit=
fi
case "${dash}" in
*:[1-9]*:) # contains file and line number information
dashend=${dash#*:}
problems+=("[${dash}](https://github.com/${{ github.repository }}/blob/${{github.event.pull_request.head.ref}}/${dash%%:*}#L${dashend%:}) ${sha} ${etc}")
;;
*)
problems+=("\`${dash} ${sha} ${etc}\`")
;;
esac
echo "${dash} ${sha} ${etc}"
;;
esac
done <<< $(git log --check --pretty=format:"---% h% s" ${baseSha}..)

if test ${#problems[*]} -gt 0
then
if test -z "${commit}"
then
goodparent=${baseSha: 0:7}
fi
echo "🛑 Please review the Summary output for further information."
echo "### :x: A whitespace issue was found in one or more of the commits." >$GITHUB_STEP_SUMMARY
echo "" >>$GITHUB_STEP_SUMMARY
echo "Run these commands to correct the problem:" >>$GITHUB_STEP_SUMMARY
echo "1. \`git rebase --whitespace=fix ${goodparent}\`" >>$GITHUB_STEP_SUMMARY
echo "1. \`git push --force\`" >>$GITHUB_STEP_SUMMARY
echo " " >>$GITHUB_STEP_SUMMARY
echo "Errors:" >>$GITHUB_STEP_SUMMARY
for i in "${problems[@]}"
do
echo "${i}" >>$GITHUB_STEP_SUMMARY
done

exit 2
fi
./ci/check-whitespace.sh \
"${{github.event.pull_request.base.sha}}" \
"$GITHUB_STEP_SUMMARY" \
"https://github.com/${{github.repository}}"
2 changes: 1 addition & 1 deletion .github/workflows/coverity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:
- run: ci/install-dependencies.sh
if: contains(matrix.os, 'ubuntu') || contains(matrix.os, 'macos')
env:
runs_on_pool: ${{ matrix.os }}
distro: ${{ matrix.os }}

# The Coverity site says the tool is usually updated twice yearly, so the
# MD5 of download can be used to determine whether there's been an update.
Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@ jobs:
CC: ${{matrix.vector.cc}}
CC_PACKAGE: ${{matrix.vector.cc_package}}
jobname: ${{matrix.vector.jobname}}
runs_on_pool: ${{matrix.vector.pool}}
distro: ${{matrix.vector.pool}}
runs-on: ${{matrix.vector.pool}}
steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -340,20 +340,24 @@ jobs:
vector:
- jobname: linux-musl
image: alpine
distro: alpine-latest
- jobname: linux32
image: daald/ubuntu32:xenial
distro: ubuntu32-16.04
- jobname: pedantic
image: fedora
distro: fedora-latest
env:
jobname: ${{matrix.vector.jobname}}
distro: ${{matrix.vector.distro}}
runs-on: ubuntu-latest
container: ${{matrix.vector.image}}
steps:
- uses: actions/checkout@v4
if: matrix.vector.jobname != 'linux32'
- uses: actions/checkout@v1 # cannot be upgraded because Node.js Actions aren't supported in this container
if: matrix.vector.jobname == 'linux32'
- run: ci/install-docker-dependencies.sh
- run: ci/install-dependencies.sh
- run: ci/run-build-and-tests.sh
- name: print test failures
if: failure() && env.FAILED_TEST_ARTIFACTS != ''
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@
/git-rebase
/git-receive-pack
/git-reflog
/git-refs
/git-remote
/git-remote-http
/git-remote-https
Expand Down
33 changes: 31 additions & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ workflow:

test:linux:
image: $image
variables:
CUSTOM_PATH: "/custom"
before_script:
- ./ci/install-docker-dependencies.sh
- ./ci/install-dependencies.sh
script:
- useradd builder --create-home
- chown -R builder "${CI_PROJECT_DIR}"
Expand Down Expand Up @@ -93,12 +95,39 @@ test:osx:
- t/failed-test-artifacts
when: on_failure

test:fuzz-smoke-tests:
image: ubuntu:latest
variables:
CC: clang
before_script:
- ./ci/install-dependencies.sh
script:
- ./ci/run-build-and-minimal-fuzzers.sh

static-analysis:
image: ubuntu:22.04
variables:
jobname: StaticAnalysis
before_script:
- ./ci/install-docker-dependencies.sh
- ./ci/install-dependencies.sh
script:
- ./ci/run-static-analysis.sh
- ./ci/check-directional-formatting.bash

check-whitespace:
image: ubuntu:latest
before_script:
- ./ci/install-dependencies.sh
script:
- ./ci/check-whitespace.sh "$CI_MERGE_REQUEST_TARGET_BRANCH_SHA"
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'

documentation:
image: ubuntu:latest
variables:
jobname: Documentation
before_script:
- ./ci/install-dependencies.sh
script:
- ./ci/test-documentation.sh
135 changes: 135 additions & 0 deletions Documentation/BreakingChanges.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
= Upcoming breaking changes

The Git project aims to ensure backwards compatibility to the best extent
possible. Minor releases will not break backwards compatibility unless there is
a very strong reason to do so, like for example a security vulnerability.

Regardless of that, due to the age of the Git project, it is only natural to
accumulate a backlog of backwards-incompatible changes that will eventually be
required to keep the project aligned with a changing world. These changes fall
into several categories:

* Changes to long established defaults.
* Concepts that have been replaced with a superior design.
* Concepts, commands, configuration or options that have been lacking in major
ways and that cannot be fixed and which will thus be removed without any
replacement.

Explicitly not included in this list are fixes to minor bugs that may cause a
change in user-visible behavior.

The Git project irregularly releases breaking versions that deliberately break
backwards compatibility with older versions. This is done to ensure that Git
remains relevant, safe and maintainable going forward. The release cadence of
breaking versions is typically measured in multiple years. We had the following
major breaking releases in the past:

* Git 1.6.0, released in August 2008.
* Git 2.0, released in May 2014.

We use <major>.<minor> release numbers these days, starting from Git 2.0. For
future releases, our plan is to increment <major> in the release number when we
make the next breaking release. Before Git 2.0, the release numbers were
1.<major>.<minor> with the intention to increment <major> for "usual" breaking
releases, reserving the jump to Git 2.0 for really large backward-compatibility
breaking changes.

The intent of this document is to track upcoming deprecations for future
breaking releases. Furthermore, this document also tracks what will _not_ be
deprecated. This is done such that the outcome of discussions document both
when the discussion favors deprecation, but also when it rejects a deprecation.

Items should have a clear summary of the reasons why we do or do not want to
make the described change that can be easily understood without having to read
the mailing list discussions. If there are alternatives to the changed feature,
those alternatives should be pointed out to our users.

All items should be accompanied by references to relevant mailing list threads
where the deprecation was discussed. These references use message-IDs, which
can visited via

https://lore.kernel.org/git/$message_id/

to see the message and its surrounding discussion. Such a reference is there to
make it easier for you to find how the project reached consensus on the
described item back then.

This is a living document as the environment surrounding the project changes
over time. If circumstances change, an earlier decision to deprecate or change
something may need to be revisited from time to time. So do not take items on
this list to mean "it is settled, do not waste our time bringing it up again".

== Git 3.0

The following subsections document upcoming breaking changes for Git 3.0. There
is no planned release date for this breaking version yet.

Proposed changes and removals only include items which are "ready" to be done.
In other words, this is not supposed to be a wishlist of features that should
be changed to or replaced in case the alternative was implemented already.

=== Changes

* The default hash function for new repositories will be changed from "sha1"
to "sha256". SHA-1 has been deprecated by NIST in 2011 and is nowadays
recommended against in FIPS 140-2 and similar certifications. Furthermore,
there are practical attacks on SHA-1 that weaken its cryptographic properties:
+
** The SHAppening (2015). The first demonstration of a practical attack
against SHA-1 with 2^57 operations.
** SHAttered (2017). Generation of two valid PDF files with 2^63 operations.
** Birthday-Near-Collision (2019). This attack allows for chosen prefix
attacks with 2^68 operations.
** Shambles (2020). This attack allows for chosen prefix attacks with 2^63
operations.
+
While we have protections in place against known attacks, it is expected
that more attacks against SHA-1 will be found by future research. Paired
with the ever-growing capability of hardware, it is only a matter of time
before SHA-1 will be considered broken completely. We want to be prepared
and will thus change the default hash algorithm to "sha256" for newly
initialized repositories.
+
An important requirement for this change is that the ecosystem is ready to
support the "sha256" object format. This includes popular Git libraries,
applications and forges.
+
There is no plan to deprecate the "sha1" object format at this point in time.
+
Cf. <[email protected]>,
<[email protected]>,
<CA+EOSBncr=4a4d8n9xS4FNehyebpmX8JiUwCsXD47EQDE+DiUQ@mail.gmail.com>.

=== Removals

* Support for grafting commits has long been superseded by git-replace(1).
Grafts are inferior to replacement refs:
+
** Grafts are a local-only mechanism and cannot be shared across
repositories.
** Grafts can lead to hard-to-diagnose problems when transferring objects
between repositories.
+
The grafting mechanism has been marked as outdated since e650d0643b (docs: mark
info/grafts as outdated, 2014-03-05) and will be removed.
+
Cf. <[email protected]>.

== Superseded features that will not be deprecated

Some features have gained newer replacements that aim to improve the design in
certain ways. The fact that there is a replacement does not automatically mean
that the old way of doing things will eventually be removed. This section tracks
those features with newer alternatives.

* The features git-checkout(1) offers are covered by the pair of commands
git-restore(1) and git-switch(1). Because the use of git-checkout(1) is still
widespread, and it is not expected that this will change anytime soon, all
three commands will stay.
+
This decision may get revisited in case we ever figure out that there are
almost no users of any of the commands anymore.
+
Cf. <[email protected]>,
<[email protected]>,
<[email protected]>.
74 changes: 74 additions & 0 deletions Documentation/DecisionMaking.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
Decision-Making Process in the Git Project
==========================================

Introduction
------------
This document describes the current decision-making process in the Git
project. It is a descriptive rather than prescriptive doc; that is, we want to
describe how things work in practice rather than explicitly recommending any
particular process or changes to the current process.

Here we document how the project makes decisions for discussions
(with or without patches), in scale larger than an individual patch
series (which is fully covered by the SubmittingPatches document).


Larger Discussions (with patches)
---------------------------------
As with discussions on an individual patch series, starting a larger-scale
discussion often begins by sending a patch or series to the list. This might
take the form of an initial design doc, with implementation following in later
iterations of the series (for example,
link:https://lore.kernel.org/git/0169ce6fb9ccafc089b74ae406db0d1a8ff8ac65.1688165272.git.steadmon@google.com/[adding unit tests] or
link:https://lore.kernel.org/git/[email protected]/[config-based hooks]),
or it might include a full implementation from the beginning.
In either case, discussion progresses the same way for an individual patch series,
until consensus is reached or the topic is dropped.


Larger Discussions (without patches)
------------------------------------
Occasionally, larger discussions might occur without an associated patch series.
These may be very large-scale technical decisions that are beyond the scope of
even a single large patch series, or they may be more open-ended,
policy-oriented discussions (examples:
link:https://lore.kernel.org/git/[email protected]/[introducing Rust]
or link:https://lore.kernel.org/git/[email protected]/[improving submodule UX]).
In either case, discussion progresses as described above for general patch series.

For larger discussions without a patch series or other concrete implementation,
it may be hard to judge when consensus has been reached, as there are not any
official guidelines. If discussion stalls at this point, it may be helpful to
restart discussion with an RFC patch series (such as a partial, unfinished
implementation or proof of concept) that can be more easily debated.

When consensus is reached that it is a good idea, the original
proposer is expected to coordinate the effort to make it happen,
with help from others who were involved in the discussion, as
needed.

For decisions that require code changes, it is often the case that the original
proposer will follow up with a patch series, although it is also common for
other interested parties to provide an implementation (or parts of the
implementation, for very large changes).

For non-technical decisions such as community norms or processes, it is up to
the community as a whole to implement and sustain agreed-upon changes.
The project leadership committe (PLC) may help the implementation of
policy decisions.


Other Discussion Venues
-----------------------
Occasionally decision proposals are presented off-list, e.g. at the semi-regular
Contributors' Summit. While higher-bandwidth face-to-face discussion is often
useful for quickly reaching consensus among attendees, generally we expect to
summarize the discussion in notes that can later be presented on-list. For an
example, see the thread
link:https://lore.kernel.org/git/[email protected]/[Notes
from Git Contributor Summit, Los Angeles (April 5, 2020)] by James Ramsay.

We prefer that "official" discussion happens on the list so that the full
community has opportunity to engage in discussion. This also means that the
mailing list archives contain a more-or-less complete history of project
discussions and decisions.
Loading
Loading