| 1 | Git v2.45.3 Release Notes |
| 2 | ========================= |
| 3 | |
| 4 | This release merges up the fix that appears in v2.40.4, v2.41.3, |
| 5 | v2.42.4, v2.43.6 and v2.44.3 to address the security issues |
| 6 | CVE-2024-50349 and CVE-2024-52006; see the release notes for |
| 7 | these versions for details. |
| 8 | |
| 9 | This version also backports various small fixes accumulated on the |
| 10 | 'master' front during the development towards Git 2.46, the next |
| 11 | feature release. |
| 12 | |
| 13 | |
| 14 | Fixes since v2.45.2 |
| 15 | ------------------- |
| 16 | |
| 17 | * Git-GUI has a new maintainer, Johannes Sixt. |
| 18 | |
| 19 | * Tests that try to corrupt in-repository files in chunked format did |
| 20 | not work well on macOS due to its broken "mv", which has been |
| 21 | worked around. |
| 22 | |
| 23 | * The maximum size of attribute files is enforced more consistently. |
| 24 | |
| 25 | * Unbreak CI jobs so that we do not attempt to use Python 2 that has |
| 26 | been removed from the platform. |
| 27 | |
| 28 | * Git 2.43 started using the tree of HEAD as the source of attributes |
| 29 | in a bare repository, which has severe performance implications. |
| 30 | For now, revert the change, without ripping out a more explicit |
| 31 | support for the attr.tree configuration variable. |
| 32 | |
| 33 | * Windows CI running in GitHub Actions started complaining about the |
| 34 | order of arguments given to calloc(); the imported regex code uses |
| 35 | the wrong order almost consistently, which has been corrected. |
| 36 | |
| 37 | * The SubmittingPatches document now refers folks to manpages |
| 38 | translation project. |
| 39 | |
| 40 | * "git rebase --signoff" used to forget that it needs to add a |
| 41 | sign-off to the resulting commit when told to continue after a |
| 42 | conflict stops its operation. |
| 43 | |
| 44 | * The procedure to build multi-pack-index got confused by the |
| 45 | replace-refs mechanism, which has been corrected by disabling the |
| 46 | latter. |
| 47 | |
| 48 | * "git stash -S" did not handle binary files correctly, which has |
| 49 | been corrected. |
| 50 | |
| 51 | * A scheduled "git maintenance" job is expected to work on all |
| 52 | repositories it knows about, but it stopped at the first one that |
| 53 | errored out. Now it keeps going. |
| 54 | |
| 55 | * zsh can pretend to be a normal shell pretty well except for some |
| 56 | glitches that we tickle in some of our scripts. Work them around |
| 57 | so that "vimdiff" and our test suite works well enough with it. |
| 58 | |
| 59 | * Command line completion support for zsh (in contrib/) has been |
| 60 | updated to stop exposing internal state to end-user shell |
| 61 | interaction. |
| 62 | |
| 63 | * The documentation for "git diff --name-only" has been clarified |
| 64 | that it is about showing the names in the post-image tree. |
| 65 | |
| 66 | * The chainlint script (invoked during "make test") did nothing when |
| 67 | it failed to detect the number of available CPUs. It now falls |
| 68 | back to 1 CPU to avoid the problem. |
| 69 | |
| 70 | * "git init" in an already created directory, when the user |
| 71 | configuration has includeif.onbranch, started to fail recently, |
| 72 | which has been corrected. |
| 73 | |
| 74 | * The safe.directory configuration knob has been updated to |
| 75 | optionally allow leading path matches. |
| 76 | |
| 77 | * An overly large ".gitignore" files are now rejected silently. |
| 78 | |
| 79 | * Fix for an embarrassing typo that prevented Python2 tests from running |
| 80 | anywhere. |
| 81 | |
| 82 | * Varargs functions that are unannotated as printf-like or execl-like |
| 83 | have been annotated as such. |
| 84 | |
| 85 | * The "-k" and "--rfc" options of "format-patch" will now error out |
| 86 | when used together, as one tells us not to add anything to the |
| 87 | title of the commit, and the other one tells us to add "RFC" in |
| 88 | addition to "PATCH". |
| 89 | |
| 90 | * When the user adds to "git rebase -i" instruction to "pick" a merge |
| 91 | commit, the error experience is not pleasant. Such an error is now |
| 92 | caught earlier in the process that parses the todo list. |
| 93 | |
| 94 | * We forgot to normalize the result of getcwd() to NFC on macOS where |
| 95 | all other paths are normalized, which has been corrected. This still |
| 96 | does not address the case where core.precomposeUnicode configuration |
| 97 | is not defined globally. |
| 98 | |
| 99 | * Earlier we stopped using the tree of HEAD as the default source of |
| 100 | attributes in a bare repository, but failed to document it. This |
| 101 | has been corrected. |
| 102 | |
| 103 | * An unused extern declaration for mingw has been removed to prevent |
| 104 | it from causing build failure. |
| 105 | |
| 106 | * A helper function shared between two tests had a copy-paste bug, |
| 107 | which has been corrected. |
| 108 | |
| 109 | * "git fetch-pack -k -k" without passing "--lock-pack" (which we |
| 110 | never do ourselves) did not work at all, which has been corrected. |
| 111 | |
| 112 | Also contains various documentation updates and code clean-ups. |