forked from git/git
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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.47.0-rc0 #5176
Merged
Merged
Rebase to v2.47.0-rc0 #5176
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add a new environment variable to opt-in to the --full-name-hash option in 'git pack-objects'. This allows for extra testing of the feature without repeating all of the test scenarios. But this option isn't free. There are a few tests that change behavior with the variable enabled. First, there are a few tests that are very sensitive to certain delta bases being picked. These are both involving the generation of thin bundles and then counting their objects via 'git index-pack --fix-thin' which pulls the delta base into the new packfile. For these tests, disable the option as a decent long-term option. Second, there are two tests in t5616-partial-clone.sh that I believe are actually broken scenarios. While the client is set up to clone the 'promisor-server' repo via a treeless partial clone filter (tree:0), that filter does not translate to the 'server' repo. Thus, fetching from these repos causes the server to think that the client has all reachable trees and blobs from the commits advertised as 'haves'. This leads the server to providing a thin pack assuming those objects as delta bases. Changing the name-hash algorithm presents new delta bases and thus breaks the expectations of these tests. An alternative could be to set up 'server' as a promisor server with the correct filter enabled. This may also point out more issues with partial clone being set up as a remote-based filtering mechanism and not a repository-wide setting. For now, do the minimal change to make the test work by disabling the test variable. Signed-off-by: Derrick Stolee <stolee@gmail.com>
This also adds the '--full-name-hash' option introduced in the previous change and adds newlines to the synopsis. Signed-off-by: Derrick Stolee <stolee@gmail.com>
As custom options are added to 'git pack-objects' and 'git repack' to adjust how compression is done, use this new performance test script to demonstrate their effectiveness in performance and size. The recently-added --full-name-hash option swaps the default name-hash algorithm with one that attempts to uniformly distribute the hashes based on the full path name instead of the last 16 characters. This has a dramatic effect on full repacks for repositories with many versions of most paths. It can have a negative impact on cases such as pushing a single change. This can be seen by running pt5313 on the open source fluentui repository [1]. Most commits will have this kind of output for the thin and big pack cases, though certain commits (such as [2]) will have problematic thin pack size for other reasons. [1] https://github.com/microsoft/fluentui [2] a637a06df05360ce5ff21420803f64608226a875 Checked out at the parent of [2], I see the following statistics: Test this tree ------------------------------------------------------------------ 5313.2: thin pack 0.02(0.01+0.01) 5313.3: thin pack size 1.1K 5313.4: thin pack with --full-name-hash 0.02(0.01+0.00) 5313.5: thin pack size with --full-name-hash 3.0K 5313.6: big pack 1.65(3.35+0.24) 5313.7: big pack size 58.0M 5313.8: big pack with --full-name-hash 1.53(2.52+0.18) 5313.9: big pack size with --full-name-hash 57.6M 5313.10: repack 176.52(706.60+3.53) 5313.11: repack size 446.7K 5313.12: repack with --full-name-hash 37.47(134.18+3.06) 5313.13: repack size with --full-name-hash 183.1K Note that this demonstrates a 3x size _increase_ in the case that simulates a small "git push". The size change is neutral on the case of pushing the difference between HEAD and HEAD~1000. However, the full repack case is both faster and more efficient. Signed-off-by: Derrick Stolee <stolee@gmail.com>
Add a new test-tool helper, name-hash, to output the value of the name-hash algorithms for the input list of strings, one per line. Since the name-hash values can be stored in the .bitmap files, it is important that these hash functions do not change across Git versions. Add a simple test to t5310-pack-bitmaps.sh to provide some testing of the current values. Due to how these functions are implemented, it would be difficult to change them without disturbing these values. Create a performance test that uses test_size to demonstrate how collisions occur for these hash algorithms. This test helps inform someone as to the behavior of the name-hash algorithms for their repo based on the paths at HEAD. My copy of the Git repository shows modest statistics around the collisions of the default name-hash algorithm: Test this tree ----------------------------------------------------------------- 5314.1: paths at head 4.5K 5314.2: number of distinct name-hashes 4.1K 5314.3: number of distinct full-name-hashes 4.5K 5314.4: maximum multiplicity of name-hashes 13 5314.5: maximum multiplicity of fullname-hashes 1 Here, the maximum collision multiplicity is 13, but around 10% of paths have a collision with another path. In a more interesting example, the microsoft/fluentui [1] repo had these statistics at time of committing: Test this tree ----------------------------------------------------------------- 5314.1: paths at head 19.6K 5314.2: number of distinct name-hashes 8.2K 5314.3: number of distinct full-name-hashes 19.6K 5314.4: maximum multiplicity of name-hashes 279 5314.5: maximum multiplicity of fullname-hashes 1 [1] https://github.com/microsoft/fluentui That demonstrates that of the nearly twenty thousand path names, they are assigned around eight thousand distinct values. 279 paths are assigned to a single value, leading the packing algorithm to sort objects from those paths together, by size. In this repository, no collisions occur for the full-name-hash algorithm. In a more extreme example, an internal monorepo had a much worse collision rate: Test this tree ----------------------------------------------------------------- 5314.1: paths at head 221.6K 5314.2: number of distinct name-hashes 72.0K 5314.3: number of distinct full-name-hashes 221.6K 5314.4: maximum multiplicity of name-hashes 14.4K 5314.5: maximum multiplicity of fullname-hashes 2 Even in this repository with many more paths at HEAD, the collision rate was low and the maximum number of paths being grouped into a single bucket by the full-path-name algorithm was two. Signed-off-by: Derrick Stolee <stolee@gmail.com>
This topic branch extends the protections introduced for Git GUI's CVE-2022-41953 to cover `gitk`, too. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This option is still under discussion on the Git mailing list. We still would like to have some real-world data, and the best way to get it is to get a Git for Windows release into users' hands so that they can test it. Nevertheless, without the official blessing of the Git maintainer, this optionis experimental, and we need to be clear about that. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
These fixes were necessary for Sverre Rabbelier's remote-hg to work, but for some magic reason they are not necessary for the current remote-hg. Makes you wonder how that one gets away with it. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This topic branch allows us to specify absolute paths without the drive prefix e.g. when cloning. Example: C:\Users\me> git clone https://github.com/git/git \upstream-git This will clone into a new directory C:\upstream-git, in line with how Windows interprets absolute paths. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This topic branch teaches `git clean` to respect NTFS junctions and Unix bind mounts: it will now stop at those boundaries. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In MSYS2, we have two Python interpreters at our disposal, so we can include the Python stuff in the build. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This topic vendors in mimalloc v2.0.9, a fast allocator that allows Git for Windows to perform efficiently. Switch Git for Windows to using mimalloc instead of nedmalloc
Config option to disable side-band-64k for transport
Make sure `errno` is set when socket operations fail
Do resolve symlinks in `getcwd()`
mingw: fix fatal error working on mapped network drives on Windows
clink.pl: fix MSVC compile script to handle libcurl-d.lib
Handle `git add <file>` where <file> traverses an NTFS junction
Allow running Git directly from `C:\Program Files\Git\mingw64\bin\git.exe`
Introduce and use the new "best effort" strategy for Secure Channel revoke checking
ci: avoid d/f conflict in vs/master
This topic branch allows `add -p` and `add -i` with a large number of files. It is kind of a hack that was never really meant to be upstreamed. Let's see if we can do better in the built-in `add -p`. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
git add -i: handle CR/LF line endings in the interactive input
Rationalize line endings for scissors-cleanup
t/t0014: fix: eliminate additional lines from trace
This merges the current version of the patch that tries to address Git GUI's problems with intent-to-add files. This patch will likely be improved substantially before it is merged into Git GUI's main branch, but we want to have _something_ resembling a fix already in Git for Windows v2.29.0. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Include Windows-specific maintenance and headless-git
Even if CMake is not the canonical way to build Git for Windows, but CMake support merely exists in Git to support building Git for Windows using Visual Studio, we should include `headless-git` in such a scenario when installing the binaries to a given location.
Vcpkg Install: detect lack of working Git, and note possible vcpkg time outs
Windows arm64 support
cmake(): allow setting HOST_CPU for cross-compilation
Git for Windows accepts pull requests; Core Git does not. Therefore we need to adjust the template (because it only matches core Git's project management style, not ours). Also: direct Git for Windows enhancements to their contributions page, space out the text for easy reading, and clarify that the mailing list is plain text, not HTML. Signed-off-by: Philip Oakley <philipoakley@iee.org> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
The sentiment bot will help detect when things get too heated. Hopefully. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Git documentation refers to $HOME and $XDG_CONFIG_HOME often, but does not specify how or where these values come from on Windows where neither is set by default. The new documentation reflects the behavior of setup_windows_environment() in compat/mingw.c. Signed-off-by: Alejandro Barreto <alejandro.barreto@ni.com>
This is the recommended way on GitHub to describe policies revolving around security issues and about supported versions. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
These are Git for Windows' Git GUI and gitk patches. We will have to decide at some point what to do about them, but that's a little lower priority (as Git GUI seems to be unmaintained for the time being, and the gitk maintainer keeps a very low profile on the Git mailing list, too). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
clean: suggest using `core.longPaths` if paths are too long to remove
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This was pull request #1645 from ZCube/master Support windows container. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
With this patch, Git for Windows works as intended on mounted APFS volumes (where renaming read-only files would fail). Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Specify symlink type in .gitattributes
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This patch introduces support to set special NTFS attributes that are interpreted by the Windows Subsystem for Linux as file mode bits, UID and GID. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Handle Ctrl+C in Git Bash nicely Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Switch to batched fsync by default
A fix for calling `vim` in Windows Terminal caused a regression and was reverted. We partially un-revert this, to get the fix again. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This topic branch re-adds the deprecated --stdin/-z options to `git reset`. Those patches were overridden by a different set of options in the upstream Git project before we could propose `--stdin`. We offered this in MinGit to applications that wanted a safer way to pass lots of pathspecs to Git, and these applications will need to be adjusted. Instead of `--stdin`, `--pathspec-from-file=-` should be used, and instead of `-z`, `--pathspec-file-nul`. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Originally introduced as `core.useBuiltinFSMonitor` in Git for Windows and developed, improved and stabilized there, the built-in FSMonitor only made it into upstream Git (after unnecessarily long hemming and hawing and throwing overly perfectionist style review sticks into the spokes) as `core.fsmonitor = true`. In Git for Windows, with this topic branch, we re-introduce the now-obsolete config setting, with warnings suggesting to existing users how to switch to the new config setting, with the intention to ultimately drop the patch at some stage. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Start monitoring updates of Git for Windows' component in the open
Add a README.md for GitHub goodness. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
/git-artifacts The The |
/release The |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Range-diff relative to main
1: f09bdca = 1: 42c72f6 gitk(Windows): avoid inadvertently calling executables in the worktree
4: 0d5ed89 = 2: 75259a3 t9350: point out that refs are not updated correctly
5: fc564e3 = 3: 2950204 transport-helper: add trailing --
6: 0a8e3f5 = 4: f6a1087 remote-helper: check helper status after import/export
7: 17bba8e = 5: f577d4f mingw: demonstrate a problem with certain absolute paths
8: d806221 = 6: 932c431 clean: do not traverse mount points
9: 5686029 = 7: bc5dcde mingw: include the Python parts in the build
10: e6653f9 = 8: 3f57ab8 Always auto-gc after calling a fast-import transport
11: 9ff3a3d = 9: 4b660c2 mingw: allow absolute paths without drive prefix
12: 8bb6c1e = 10: 0c35494 clean: remove mount points when possible
13: 672e4f2 ! 11: 61f6465 win32/pthread: avoid name clashes with winpthread
14: 09876dd = 12: a55ffbd git-compat-util: avoid redeclaring _DEFAULT_SOURCE
15: d68cf6d = 13: be7959f Import the source code of mimalloc v2.1.2
16: b9c4eb2 = 14: 89248e7 mimalloc: adjust for building inside Git
17: d5ee8ff = 15: c9ca751 mimalloc: offer a build-time option to enable it
18: 4530a6b = 16: b3e07b9 mimalloc: use "weak" random seed when statically linked
19: 721eec2 = 17: 260111b mingw: use mimalloc
20: 31160bb ! 18: 6965bc6 transport: optionally disable side-band-64k
27: 14c3501 = 19: 8289990 mingw: demonstrate a
git add
issue with NTFS junctions21: 3ba8c79 = 20: 8984fef mingw: make sure
errno
is set correctly when socket operations fail22: afee39f = 21: 53d32ae mingw: do resolve symlinks in
getcwd()
23: 32bad31 = 22: 7fb700b mingw: fix fatal error working on mapped network drives on Windows
24: e6ec509 = 23: b4fa6a6 clink.pl: fix MSVC compile script to handle libcurl-d.lib
26: c561389 = 24: 89be22f mingw: ensure valid CTYPE
29: b314796 = 25: cbbb7f6 mingw: allow
git.exe
to be used instead of the "Git wrapper"30: 367af8a = 26: 977e2f0 strbuf_realpath(): use platform-dependent API if available
32: d83f5e8 = 27: c5ffba6 mingw: ignore HOMEDRIVE/HOMEPATH if it points to Windows' system directory
34: 884fbfb = 28: c985261 mingw: implement a platform-specific
strbuf_realpath()
25: 8801afc = 29: 10567fe vcxproj: unclash project directories with build outputs
28: 189d1cd = 30: cf6faf0 t5505/t5516: allow running without
.git/branches/
in the templates31: fc86e02 = 31: 6a86813 t5505/t5516: fix white-space around redirectors
33: 27e161a = 32: 0a7c029 http: use new "best effort" strategy for Secure Channel revoke checking
35: 68c871f = 33: 6525eb8 t3701: verify that we can add lots of files interactively
41: c7efa04 = 34: d79c625 git add -i: handle CR/LF line endings in the interactive input
42: 96f3555 = 35: 0446698 commit: accept "scissors" with CR/LF line endings
43: 2415aa8 = 36: 5b5e5de t0014: fix indentation
44: caaf8ac = 37: 1ca48ed git-gui: accommodate for intent-to-add files
36: d0963a2 = 38: 0756a77 clink.pl: fix libexpatd.lib link error when using MSVC
37: 347d2d3 = 39: 5f048eb Makefile: clean up .ilk files when MSVC=1
38: c6ee424 = 40: 6b9547e vcbuild: add support for compiling Windows resource files
39: 3f1f131 = 41: c9c34c3 config.mak.uname: add git.rc to MSVC builds
40: 3a12e6d = 42: 84fd96a clink.pl: ignore no-stack-protector arg on MSVC=1 builds
48: bbdb2e3 = 43: 3a4cc66 clink.pl: move default linker options for MSVC=1 builds
50: 5dcf680 = 44: 79964ea buildsystems: remove duplicate clause
52: e7b1310 = 45: 455cd80 vcxproj: handle resource files, too
54: 1f8310d = 46: 2f1c159 vcxproj: ignore -fno-stack-protector and -fno-common
56: 179e8ac = 47: c4431a6 vcxproj: handle GUI programs, too
45: de50978 = 48: 2210374 vcpkg_install: detect lack of Git
58: 00848d0 = 49: ead04e0 cmake: install headless-git.
46: 12048b5 = 50: 19199f2 vcpkg_install: add comment regarding slow network connections
47: 3a2a268 = 51: 820f045 vcxproj: support building Windows/ARM64 binaries
49: e1cdf71 = 52: 182255b vcbuild: install ARM64 dependencies when building ARM64 binaries
51: e63298f = 53: 06e20e7 vcbuild: add an option to install individual 'features'
53: 99c4bda = 54: b3b6334 cmake: allow building for Windows/ARM64
55: abb12a3 = 55: 8be6669 ci(vs-build) also build Windows/ARM64 artifacts
57: 14b7459 = 56: 4b9eb75 Add schannel to curl installation
59: 7e4f229 = 57: f015e72 cmake(): allow setting HOST_CPU for cross-compilation
64: b8b1296 = 58: c4da4b2 mingw: allow for longer paths in
parse_interpreter()
65: cab2b72 = 59: 31c45b2 compat/vcbuild: document preferred way to build in Visual Studio
66: ed39322 = 60: 7425303 http: optionally send SSL client certificate
60: b38a487 = 61: 9b96cc1 CMake: default Visual Studio generator has changed
61: 5ba4177 = 62: 0d7a5df .gitignore: add Visual Studio CMakeSetting.json file
62: 9282eff = 63: 97bfd92 subtree: update
contrib/subtree
test
target63: 8cfea37 = 64: e19671a CMakeLists: add default "x64-windows" arch for Visual Studio
67: c7cf32d = 65: d052839 ci: run
contrib/subtree
tests in CI builds68: 4ad003d = 66: c80fe50 CMake: show Win32 and Generator_platform build-option values
70: f02954c = 67: 51f2c96 hash-object: demonstrate a >4GB/LLP64 problem
71: 7eff60f = 68: 26250d7 write_object_file_literally(): use size_t
72: eb7bc6b = 69: 0e2f164 object-file.c: use size_t for header lengths
69: 404d93b = 70: f365901 init: do parse all core.* settings early
78: a77fce4 ! 71: 8c54e26 Enable the built-in FSMonitor as an experimental feature
73: 6faae20 = 72: 1660078 hash algorithms: use size_t for section lengths
74: fc3e62e = 73: c6506c2 hash-object --stdin: verify that it works with >4GB/LLP64
75: 0f5221e = 74: 1df41f8 hash-object: add another >4GB/LLP64 test case
76: 1023670 = 75: 385fcc4 setup: properly use "%(prefix)/" when in WSL
79: c4fe288 = 76: b6d1f32 hash-object: add a >4GB/LLP64 test case using filtered input
80: f86fa9f = 77: a4d2995 compat/mingw.c: do not warn when failing to get owner
81: f5db3d8 = 78: 8f16ccb mingw: $env:TERM="xterm-256color" for newer OSes
82: cb96a6e = 79: f9b0c49 winansi: check result and Buffer before using Name
77: 14c432a ! 80: b18d107 Add config option
windows.appendAtomically
97: d6c73a5 = 81: a850019 mingw: change core.fsyncObjectFiles = 1 by default
83: 340965d = 82: 37bc490 vcxproj: allow building with
NO_PERL
again84: b399e4d = 83: 4b37b41 vcxproj: require C11
85: da2f86c = 84: 4f98a72 vcxproj: ignore the
-pedantic
option86: dae1de2 = 85: 12432c6 vcxproj: include reftable when committing
.vcxproj
files87: 22cf792 = 86: 6503c82 vcxproj: handle libreftable_test, too
88: 2d16464 = 87: 44cd22c vcxproj: avoid escaping double quotes in the defines
89: ca24900 = 88: accc435 ci: adjust Azure Pipeline for
runs_on_pool
90: d43e0c8 = 89: 240dd56 ci: stop linking the
prove
cache91: 800490f = 90: f50e8b0 ci: reinstate Azure Pipelines support
92: a599e1b = 91: 62700f3 azure-pipeline: drop the
GETTEXT_POISON
job93: 1fa3bab = 92: 2976f8a azure-pipeline: stop hard-coding
apt-get
calls94: 2fa96e0 = 93: c7a8171 azure-pipeline: drop the code to write to/read from a file share
95: f10d160 = 94: 48622b4 azure-pipeline: use partial clone/parallel checkout to initialize minimal-sdk
96: fac5243 = 95: 09e3a1b azure-pipeline: downcase the job name of the
Linux32
job98: dd17e89 = 96: 998692f azure-pipeline: run static-analysis on jammy
100: f28be8b = 97: 106ae5e bswap.h: add support for built-in bswap functions
99: b528f18 = 98: 5747657 MinGW: link as terminal server aware
102: c8feee1 = 99: e05606d config.mak.uname: add support for clangarm64
104: 7be890e = 100: 874decc Fix Windows version resources
101: 6f296a1 = 101: 1bbe8cf http: optionally load libcurl lazily
105: 1dd84d1 = 102: 6f04ab6 ci: create clangarm64-build.yml
106: 521b0e0 = 103: 06e72a4 status: fix for old-style submodules with commondir
107: 6697363 = 104: 413fcfe windows: skip linking
git-<command>
for built-ins108: 8266ae8 = 105: 6559f8c windows: fix Repository>Explore Working Copy
103: 7015b7e = 106: 0850d0f http: support lazy-loading libcurl also on Windows
109: e463c5f = 107: 9d0520d http: when loading libcurl lazily, allow for multiple SSL backends
110: 246c049 = 108: 126c854 mingw: do load libcurl dynamically by default
111: 6f841b3 = 109: abde14f Add a GitHub workflow to verify that Git/Scalar work in Nano Server
112: 54f725f = 110: 162c2ec mingw: suggest
windows.appendAtomically
in more cases113: ba87a0d = 111: b7739dd win32: use native ANSI sequence processing, if possible
114: e9fc25a = 112: dcb5075 git.rc: include winuser.h
115: db40bb9 = 113: baafe37 common-main.c: fflush stdout buffer upon exit
116: 55a95de = 114: 0373585 t5601/t7406(mingw): do run tests with symlink support
2: f35db51 = 115: f8426a9 ci: work around a problem with HTTP/2 vs libcurl v8.10.0
3: e346cc0 (upstream: e1e0d30) < -: ------------ t5512.40 sometimes dies by SIGPIPE
117: 0b4961d = 116: 74a7247 win32: ensure that
localtime_r()
is declared even in i686 builds119: 391cd2a = 117: bc45485 Fallback to AppData if XDG_CONFIG_HOME is unset
118: 3f2c20a ! 118: 0ef4a4e pack-objects: add --full-name-hash option
121: 10680be = 119: 3f79411 repack: test --full-name-hash option
122: 2d1854f ! 120: e05e2cd pack-objects: add GIT_TEST_FULL_NAME_HASH
123: 8f25388 = 121: c5297f2 git-repack: update usage to match docs
124: d2791c1 = 122: a9be155 p5313: add size comparison test
125: 5f29863 ! 123: 385283b test-tool: add helper for name-hash values
126: d020fb4 ! 124: bd5a2db repack/pack-objects: mark
--full-name-hash
as experimental244: bd4446e = 125: e5c11f5 path-walk: introduce an object walk by path
245: ce11b59 = 126: 017e36a t6601: add helper for testing path-walk API
246: c76e9e7 = 127: 3289262 path-walk: allow consumer to specify object types
247: 7a85f9a = 128: a5f2805 path-walk: allow visiting tags
248: 0ab378d = 129: b6785fd revision: create mark_trees_uninteresting_dense()
249: ac60e11 = 130: d1e895f path-walk: add prune_all_uninteresting option
250: fda0d77 ! 131: 8a73f51 pack-objects: extract should_attempt_deltas()
251: 318fd94 ! 132: bb182d9 pack-objects: add --path-walk option
252: 9d7c5cb ! 133: f403cae pack-objects: introduce GIT_TEST_PACK_PATH_WALK
253: c417efb ! 134: 0aa7820 repack: add --path-walk option
254: ebc52fc ! 135: a004ba9 pack-objects: enable --path-walk via config
255: f3c46f9 = 136: 6749045 scalar: enable path-walk during push via config
256: 940c8a2 ! 137: 3c063bb pack-objects: refactor path-walk delta phase
257: d9fc474 = 138: c599014 pack-objects: thread the path-based compression
120: 2d4c3f4 ! 139: 6ed4dbe run-command: be helpful with Git LFS fails on Windows 7
258: ce757fa ! 140: 30b5cf7 backfill: add builtin boilerplate
259: ad7a519 ! 141: 19cbfed backfill: basic functionality and tests
260: bed08ea ! 142: 34b077a backfill: add --batch-size= option
261: 9dc751a ! 143: a05ddaa backfill: add --sparse option
262: d95811c ! 144: 65ea334 backfill: assume --sparse when sparse-checkout is enabled
263: 3793d09 = 145: f3d90f9 backfill: mark it as experimental
264: 3a8cd93 ! 146: c162f25 survey: stub in new experimental 'git-survey' command
265: c08fa91 ! 147: 25da397 survey: add command line opts to select references
266: 2c0755d ! 148: 30f822b survey: start pretty printing data in table form
267: 9e2f0af ! 149: 0c4bec0 survey: add object count summary
268: 947c2c5 = 150: 45bdbf0 survey: summarize total sizes by object type
269: 4e42826 = 151: 6be5118 survey: show progress during object walk
270: 2a99b7c = 152: 62548a9 survey: add ability to track prioritized lists
271: af8bd64 = 153: 545bf8c survey: add report of "largest" paths
272: f18c0c2 ! 154: afc60cf survey: add --top= option and config
273: d28dc5b ! 155: bb6ebd1 survey: clearly note the experimental nature in the output
127: 20bfc1f = 156: 69522da Win32: make FILETIME conversion functions public
128: 58f9dfe = 157: 5b0c984 Win32: dirent.c: Move opendir down
129: 071ce86 = 158: f1662b8 mingw: make the dirent implementation pluggable
130: 1913d2b = 159: 7b4a13f Win32: make the lstat implementation pluggable
131: 6d42e40 ! 160: 8a07e6c mingw: add infrastructure for read-only file system level caches
132: e574b79 ! 161: 7aa8425 mingw: add a cache below mingw's lstat and dirent implementations
133: 1d30c43 = 162: cf70e90 fscache: load directories only once
134: 583d8aa = 163: c4473a9 fscache: add key for GIT_TRACE_FSCACHE
135: 61d45de = 164: 1b4f462 fscache: remember not-found directories
136: 664e8ac = 165: eb91130 fscache: add a test for the dir-not-found optimization
137: 0ae9145 ! 166: 617c2d1 add: use preload-index and fscache for performance
138: 851b171 = 167: 7678e5c dir.c: make add_excludes aware of fscache during status
139: 0a4e8f8 = 168: 4b39ba5 fscache: make fscache_enabled() public
140: 5ea907f = 169: 6ef3cc7 dir.c: regression fix for add_excludes with fscache
141: 4579d69 = 170: 6346624 fetch-pack.c: enable fscache for stats under .git/objects
142: af3cee0 = 171: c97a8dd checkout.c: enable fscache for checkout again
143: 532b6f5 = 172: 4c3505c Enable the filesystem cache (fscache) in refresh_index().
144: baf0136 = 173: 62a9ebc fscache: use FindFirstFileExW to avoid retrieving the short name
145: 174e972 ! 174: 8b379b1 status: disable and free fscache at the end of the status command
146: 26798fc = 175: 7dfd5d4 fscache: add GIT_TEST_FSCACHE support
147: 57d95da = 176: 9f0398d fscache: add fscache hit statistics
148: 203101d = 177: 898a7b0 mem_pool: add GIT_TRACE_MEMPOOL support
149: 1746116 ! 178: be72b30 fscache: fscache takes an initial size
150: db35cf5 = 179: 6325d20 fscache: update fscache to be thread specific instead of global
151: ea24769 = 180: 34fe22c fscache: teach fscache to use mempool
152: e01925b = 181: f085223 fscache: make fscache_enable() thread safe
154: f0ac738 = 182: 1dda695 fscache: teach fscache to use NtQueryDirectoryFile
156: c702d42 = 183: c2ff9e3 unpack-trees: enable fscache for sparse-checkout
158: a39b0cb = 184: 752e625 fscache: remember the reparse tag for each entry
160: 0275f96 = 185: 5effe01 fscache: implement an FSCache-aware is_mount_point()
163: cbc3820 ! 186: 7335e91 clean: make use of FSCache
153: 614b54a = 187: ab36404 git-gui: provide question helper for retry fallback on Windows
155: 55a60a1 = 188: f9bcdc7 git gui: set GIT_ASKPASS=git-gui--askpass if not set yet
157: 302c46d = 189: 8134f3d git-gui--askyesno: fix funny text wrapping
159: bb4a2c1 = 190: 8694acf git-gui--askyesno: allow overriding the window title
161: 9014b9b = 191: 18c726e gitk: Unicode file name support
162: c5d4535 = 192: 9a4a9e2 git-gui--askyesno (mingw): use Git for Windows' icon, if available
164: 0a75037 = 193: b897abc gitk: Use an external icon file on Windows
165: 95ad775 = 194: fd6437d gitk: fix arrow keys in input fields with Tcl/Tk >= 8.6
166: 0f60870 = 195: 2fabe46 gitk: make the "list references" default window width wider
167: 44f756b = 196: f970a6f pack-objects (mingw): demonstrate a segmentation fault with large deltas
168: 021726e ! 197: e91062d mingw: support long paths
169: f4942ce = 198: f6d060b Win32: fix 'lstat("dir/")' with long paths
170: b6b464a = 199: a78e081 win32(long path support): leave drive-less absolute paths intact
175: c867250 = 200: 42a535e compat/fsmonitor/fsm-*-win32: support long paths
176: 21c96ac ! 201: 057f6d4 clean: suggest using
core.longPaths
if paths are too long to remove171: 781e463 = 202: d8d09ab mingw: Support
git_terminal_prompt
with more terminals172: fc0ca2b = 203: 13aad84 compat/terminal.c: only use the Windows console if bash 'read -r' fails
173: 7a21b9d = 204: b32df1e mingw (git_terminal_prompt): do fall back to CONIN$/CONOUT$ method
174: a77944a < -: ------------ Unbreak interactive GPG prompt upon signing
177: f2c265b = 205: d792ed3 strbuf_readlink: don't call readlink twice if hint is the exact link size
178: 25eee7c = 206: a15c613 strbuf_readlink: support link targets that exceed PATH_MAX
179: 1925b12 = 207: 6275390 lockfile.c: use is_dir_sep() instead of hardcoded '/' checks
180: b40940a = 208: 768c262 Win32: don't call GetFileAttributes twice in mingw_lstat()
181: e22994d = 209: 86f1eae Win32: implement stat() with symlink support
182: a05b027 = 210: 22bf97f Win32: remove separate do_lstat() function
183: 6ac21c8 = 211: adc69e9 Win32: let mingw_lstat() error early upon problems with reparse points
184: 0240aa2 = 212: 49cc901 mingw: teach fscache and dirent about symlinks
185: d78d40a = 213: 9c27ec7 Win32: lstat(): return adequate stat.st_size for symlinks
186: 07ad87a = 214: e943c58 Win32: factor out retry logic
187: 4d77b6c = 215: b105378 Win32: change default of 'core.symlinks' to false
188: 93348ea = 216: f0f022d Win32: add symlink-specific error codes
189: fb3c384 = 217: faa04b5 Win32: mingw_unlink: support symlinks to directories
190: 1802cf2 = 218: 8e50d25 Win32: mingw_rename: support renaming symlinks
191: b32ff9a = 219: c720d21 Win32: mingw_chdir: change to symlink-resolved directory
192: 0137e5b ! 220: a9938d0 Win32: implement readlink()
193: 7cbbc7e = 221: 92f6f6c mingw: lstat: compute correct size for symlinks
194: d9676dc ! 222: f372e99 Win32: implement basic symlink() functionality (file symlinks only)
195: 3d785fc ! 223: fd7535d Win32: symlink: add support for symlinks to directories
196: db59bc4 = 224: 6203204 mingw: try to create symlinks without elevated permissions
197: 1ebcc99 = 225: fcef52a mingw: emulate stat() a little more faithfully
198: dc6fbc7 = 226: 1917acd mingw: special-case index entries for symlinks with buggy size
199: 410c9d4 = 227: f9e8663 mingw: introduce code to detect whether we're inside a Windows container
201: 0c61ae8 = 228: ae7ce1b mingw: when running in a Windows container, try to rename() harder
203: c394ccc = 229: e4d85dd mingw: move the file_attr_to_st_mode() function definition
205: 722a834 = 230: 8a7b14f mingw: Windows Docker volumes are not symbolic links
207: fba86f6 = 231: 2191e90 mingw: work around rename() failing on a read-only file
200: b9b2adc = 232: 7a5d265 Win32: symlink: move phantom symlink creation to a separate function
202: 9e51a9a ! 233: 2c414ca Introduce helper to create symlinks that knows about index_state
204: 38f7ed5 = 234: 880d387 mingw: allow to specify the symlink type in .gitattributes
206: bda809d = 235: c30acd3 Win32: symlink: add test for
symlink
attribute208: 850e3ca = 236: bf3bbc3 mingw: explicitly specify with which cmd to prefix the cmdline
209: 4127450 = 237: b8dc8ab mingw: when path_lookup() failed, try BusyBox
210: 864e8d8 = 238: bf25de0 test-lib: avoid unnecessary Perl invocation
211: 0542732 = 239: 49ea6d6 test-tool: learn to act as a drop-in replacement for
iconv
212: 2d2de6c = 240: 0656ea5 tests(mingw): if
iconv
is unavailable, usetest-helper --iconv
213: d2062cc = 241: cfebe5d gitattributes: mark .png files as binary
214: fb41649 = 242: eb3d3e6 tests: move test PNGs into t/lib-diff/
215: a78bf1f = 243: e9e724b tests: only override sort & find if there are usable ones in /usr/bin/
216: 06fc9fc ! 244: 2fcd9d9 tests: use the correct path separator with BusyBox
217: ec5232f = 245: 4e9c7a2 mingw: only use Bash-ism
builtin pwd -W
when available218: 91d1456 = 246: 3a0450e tests (mingw): remove Bash-specific pwd option
219: 3d148a6 = 247: f3d15bb test-lib: add BUSYBOX prerequisite
220: c282e1d = 248: 522f574 t5003: use binary file from t/lib-diff/
221: 1faeaf0 = 249: 709c8bc t5532: workaround for BusyBox on Windows
222: 4623aee = 250: 80230b3 t5605: special-case hardlink test for BusyBox-w32
223: b0095e8 = 251: dcd9dd4 t5813: allow for $PWD to be a Windows path
224: 401cb93 = 252: da3aba0 t9200: skip tests when $PWD contains a colon
225: bdf7fec = 253: 4826cd4 mingw: add a Makefile target to copy test artifacts
226: a3a2b32 = 254: ce3085a mingw: kill child processes in a gentler way
227: 703d0da = 255: 6b8ce47 mingw: optionally enable wsl compability file mode bits
231: a34a4d3 = 256: b95b626 mingw: do not call xutftowcs_path in mingw_mktemp
228: c9076df = 257: b04f22e mingw: really handle SIGINT
234: 778b3f0 = 258: 09a0526 Partially un-revert "editor: save and reset terminal after calling EDITOR"
232: 4d02bc6 = 259: 35dcdd9 Add a GitHub workflow to monitor component updates
235: aed93ff ! 260: eab4d9d reset: reinstate support for the deprecated --stdin option
236: c841d6e ! 261: c10b13c fsmonitor: reintroduce core.useBuiltinFSMonitor
237: 12224bb = 262: c5ea125 dependabot: help keeping GitHub Actions versions up to date
229: 25eeae7 = 263: 1e3450a Describe Git for Windows' architecture [no ci]
230: a4538e1 = 264: 2aebbed Modify the Code of Conduct for Git for Windows
233: dd7859a = 265: 8426302 CONTRIBUTING.md: add guide for first-time contributors
238: 89a6099 = 266: f6204b6 README.md: Add a Windows-specific preamble
239: 2a5e47a = 267: 03bc833 Add an issue template
240: 8a0c069 = 268: cccb602 Modify the GitHub Pull Request template (to reflect Git for Windows)
241: 526471d = 269: d081204 .github: Add configuration for the Sentiment Bot
242: e2b472d = 270: bbd23b4 Document how $HOME is set on Windows
243: d726d6c = 271: 418a02d SECURITY.md: document Git for Windows' policies
Lots of added
UNUSED
, context changes, transitioning away fromthe_repository
... But also one change I meant to make earlier:It seems that this patch is no longer needed, so let's drop it.