Git fork
at reftables-rust 288 lines 12 kB view raw
1Git v2.49 Release Notes 2======================= 3 4UI, Workflows & Features 5------------------------ 6 7 * Completion script updates for zsh 8 9 * "git pack-objects" and its wrapper "git repack" learned an option 10 to use an alternative path-hash function to improve delta-base 11 selection to produce a packfile with deeper history than window 12 size. 13 14 * "git gc" learned the "--expire-to" option and passes it down to 15 underlying "git repack". 16 17 * "[help] autocorrect = 1" used to be a way to say "please wait for 18 0.1 second after suggesting a typofix of the command name before 19 running that command"; now it means "yes, if there is a plausible 20 typofix for the command name, please run it immediately". 21 22 * "git clone" learned to make a shallow clone for a single commit 23 that is not necessarily be at the tip of any branch. 24 25 * Lazy-loading missing files in a blobless clone on demand is costly 26 as it tends to be one-blob-at-a-time. "git backfill" is introduced 27 to help bulk-download necessary files beforehand. 28 29 * "git push --atomic --porcelain" used to ignore failures from the 30 other side, losing the error status from the child process, which 31 has been corrected. 32 33 * "git rev-list --missing=" learned to accept "print-info" that gives 34 known details expected of the missing objects, like path and type. 35 36 * Comes with an updated "gitk". 37 38 * The documentation of "git commit" and "git rebase" now refer to 39 commit titles as such, not "subject". 40 41 * The value of "uname -s" is by default sent over the wire as a part 42 of the "version" capability. 43 44 * "git refs migrate" can optionally be told not to migrate the reflog. 45 46 * The netrc support (via the cURL library) for the HTTP transport has 47 been re-enabled. 48 49 * Removal of ".git/branches" and ".git/remotes" support in the 50 BreakingChanges document has been further clarified. 51 52 * What happens to submodules during merge has been documented in a 53 bit more detail. 54 55 56Performance, Internal Implementation, Development Support etc. 57-------------------------------------------------------------- 58 59 * More -Wsign-compare fixes. 60 61 * meson-based build now supports the unsafe-sha1 build knob. 62 63 * The meson-based build procedure covers contrib/ and other places as 64 well. 65 66 * The code to check LSan results has been simplified and made more 67 robust. 68 (merge 164a2516eb jk/lsan-race-ignore-false-positive later to maint). 69 70 * More code paths have a repository passed through the callchain, 71 instead of assuming the primary the_repository object. 72 73 * Move a few more unit tests to the clar test framework. 74 75 * Introduce a new API to visit objects in batches based on a common 76 path, or by type. 77 78 * Following the procedure we established to introduce breaking 79 changes for Git 3.0, allow an early opt-in for removing support of 80 $GIT_DIR/branches/ and $GIT_DIR/remotes/ directories to configure 81 remotes. 82 83 * The code paths to interact with zlib has been cleaned up in 84 preparation for building with zlib-ng. 85 86 * Foreign language interface for Rust into our code base has been added. 87 88 * All the documentation .txt files have been renamed to .adoc to help 89 content aware editors. 90 91 * "git difftool" code clean-up. 92 93 * Rename processing in the recursive merge backend has seen a micro 94 optimization. 95 96 * The path.[ch] API takes an explicit repository parameter passed 97 throughout the callchain, instead of relying on the_repository 98 singleton instance. 99 100 * Large-object promisor protocol extension has been introduced. 101 102 * The editorconfig file is updated to tell us that bash scripts are 103 similar to general Bourne shell scripts. 104 105 * Meson-based build procedure forgot to build some docs, which has 106 been corrected. 107 108 109Fixes since v2.48 110----------------- 111 112 * "git submodule" learned various ways to spell the same option, 113 e.g. "--branch=B" can be spelled "--branch B" or "-bB". 114 (merge b86f0f9071 re/submodule-parse-opt later to maint). 115 116 * Tweak the help text used for the option value placeholders by 117 parse-options API so that translations can customize the "<>" 118 placeholder signal (e.g. "--option=<value>"). 119 (merge 5b34dd08d0 as/long-option-help-i18n later to maint). 120 121 * CI jobs gave sporadic failures, which turns out that that the 122 object finalization code was giving an error when it did not have 123 to. 124 (merge d7fcbe2c56 ps/object-collision-check later to maint). 125 126 * The code to compute "unique" name used git_rand() which can fail or 127 get stuck; the callsite does not require cryptographic security. 128 Introduce the "insecure" mode and use it appropriately. 129 (merge 0b4f8afef6 ps/reftable-get-random-fix later to maint). 130 131 * A misconfigured "fsck.skiplist" configuration variable was not 132 diagnosed as an error, which has been corrected. 133 (merge ca7158076f jt/fsck-skiplist-parse-fix later to maint). 134 135 * Extended SHA-1 expression parser did not work well when a branch 136 with an unusual name (e.g. "foo{bar") is involved. 137 (merge 191f0c8db2 en/object-name-with-funny-refname-fix later to maint). 138 139 * The meson build procedure looked for the 'version-def.h' file in a 140 wrong directory, which has been corrected. 141 (merge 4771501c0a tc/meson-use-our-version-def-h later to maint). 142 143 * The meson build procedure for Documentation/technical/ hierarchy was 144 missing necessary dependencies, which has been corrected. 145 (merge 1dca492edd sj/meson-doc-technical-dependency-fix later to maint). 146 147 * The "instaweb" bound only to local IP address without "--local" and 148 to all addresses with "--local", which was the other way around, when 149 using Python's http.server class, which has been corrected. 150 (merge 76baf97fa1 ak/instaweb-python-port-binding-fix later to maint). 151 152 * Document that it is insecure to use Personal Access Tokens, which 153 some hosting providers take as username/password, embedded in URLs. 154 (merge a90ff409f0 mh/doc-credential-helpers-with-pat later to maint). 155 156 * The help text from "git $cmd -h" appear on the standard output for 157 some $cmd and the standard error for others. The built-in commands 158 have been fixed to show them on the standard output consistently. 159 (merge f66d1423f5 jc/show-usage-help later to maint). 160 161 * The meson-driven build is now aware of "git-subtree" housed in 162 contrib/subtree hierarchy. 163 (merge 8454b42f94 ps/build-meson-subtree later to maint). 164 165 * It was possible for "git unpack-objects" and "git index-pack" to 166 make an unaligned access, which has been corrected. 167 (merge 98046591b9 jk/pack-header-parse-alignment-fix later to maint). 168 169 * The "cache" credential back-end did not handle authtype correctly, 170 which has been corrected. 171 (merge 0b43274850 mh/credential-cache-authtype-request-fix later to maint). 172 173 * "git branch --sort=..." and "git for-each-ref --format=... --sort=..." 174 did not work as expected with some atoms, which has been corrected. 175 (merge c5490ce9d1 rs/ref-fitler-used-atoms-value-fix later to maint). 176 177 * reflog entries for symbolic ref updates were broken, which has been 178 corrected. 179 (merge 3519492430 kn/reflog-symref-fix later to maint). 180 181 * The trace2 code was not prepared to show a configuration variable 182 that is set to true using the valueless true syntax, which has been 183 corrected. 184 (merge 2fd367cf63 am/trace2-with-valueless-true later to maint). 185 186 * The "git refs migrate" command did not migrate the reflog for 187 refs/stash, which is the contents of the stashes, which has been 188 corrected. 189 (merge a0bea0978f ps/reflog-migration-with-logall-fix later to maint). 190 191 * Doc and short-help text for "show-index" has been clarified to 192 stress that the command reads its data from the standard input. 193 (merge 49edce4ff9 jc/show-index-h-update later to maint). 194 195 * The API around choosing to use unsafe variant of SHA-1 196 implementation has been updated in an attempt to make it harder to 197 abuse. 198 (merge 04292c3796 tb/unsafe-hash-cleanup later to maint). 199 200 * Fix bugs in an earlier attempt to fix "git refs migration". 201 (merge f11f0a5a2d kn/reflog-migration-fix-fix later to maint). 202 203 * The code path used when "git fetch" fetches from a bundle file 204 closed the same file descriptor twice, which sometimes broke things 205 unexpectedly when the file descriptor was reused, which has been 206 corrected. 207 (merge 9a84794ad8 js/bundle-unbundle-fd-reuse-fix later to maint). 208 209 * "git init" to reinitialize a repository that already exists cannot 210 change the hash function and ref backends; such a request is 211 silently ignored now. 212 (merge 7e88640cd1 ps/setup-reinit-fixes later to maint). 213 214 * "git apply" internally uses unsigned long for line numbers and uses 215 strtoul() to parse numbers on the hunk headers. It however forgot 216 to check parse errors. 217 (merge a206058fda pw/apply-ulong-overflow-check later to maint). 218 219 * Two CI tasks, whitespace check and style check, work on the 220 difference from the base version and the version being checked, but 221 the base was computed incorrectly in GitLab CI in some cases, which 222 has been corrected. 223 (merge acc4fb302b jt/gitlab-ci-base-fix later to maint). 224 225 * "git repack --keep-unreachable" to send unreachable objects to the 226 main pack "git repack -ad" produces did not work when there is no 227 existing packs, which has been corrected. 228 (merge 414c82300a ps/repack-keep-unreachable-in-unpacked-repo later to maint). 229 230 * Going into a secondary worktree and asking "is the main worktree 231 bare?" did not work correctly when per-worktree configuration 232 option was in use, which has been corrected. 233 234 * Fetching into a bare repository incorrectly assumed it always used 235 a mirror layout when deciding to update remote-tracking HEAD, which 236 has been corrected. 237 (merge 93dc16483a bf/fetch-set-head-fix later to maint). 238 239 * A thunderbird helper script lost its bashism. 240 (merge 59d26bd961 bc/contrib-thunderbird-patch-inline-fix later to maint). 241 242 * The -G/-S options to the "diff" family of commands caused us to hit 243 a BUG() when they get no values; they have been corrected. 244 (merge a620046b29 bc/diff-reject-empty-arg-to-pickaxe later to maint). 245 246 * "git merge-tree --stdin" has been improved (including a workaround 247 for a deadlock). 248 (merge 6a9ae81015 pw/merge-tree-stdin-deadlock-fix later to maint). 249 250 * Correct the default target in Documentation/Makefile, and 251 future-proof all Makefiles from similar breakages by declaring the 252 default target (which happens to be "all") upfront. 253 (merge 5309c1e9fb ad/set-default-target-in-makefiles later to maint). 254 255 * "git check-mailmap" used to segfault when queried without human 256 readable name. 257 (merge bb60c52131 jk/check-mailmap-wo-name-fix later to maint). 258 259 * Support for renaming of symbolic links on Windows has been improved. 260 261 * "git rebase -i" failed to allow rewording an empty commit that has 262 been fast-forwarded. 263 (merge af8fc7be10 pw/rebase-i-ff-empty-commit later to maint). 264 265 * The use of "paste" command for aggregating the test results have 266 been corrected. 267 (merge ce98863204 dk/test-aggregate-results-paste-fix later to maint). 268 269 * Other code cleanup, docfix, build fix, etc. 270 (merge ddb5287894 jk/t7407-use-test-grep later to maint). 271 (merge 21e1b44865 aj/difftool-config-doc-fix later to maint). 272 (merge 6a63995335 mh/gitattr-doc-markup-fix later to maint). 273 (merge 43850dcf9c sk/unit-test-hash later to maint). 274 (merge 4ad47d2de3 jc/cli-doc-option-and-config later to maint). 275 (merge 2d0ff147e5 jp/t8002-printf-fix later to maint). 276 (merge 69666e6746 ja/doc-restore-markup-update later to maint). 277 (merge d11d003ba5 sk/strlen-returns-size_t later to maint). 278 (merge 77b2d29e91 ja/doc-notes-markup-updates later to maint). 279 (merge 6979bf6f8f jk/combine-diff-cleanup later to maint). 280 (merge 8705c9bd13 kn/pack-write-with-reduced-globals later to maint). 281 (merge 087740d65a ps/leakfixes-0129 later to maint). 282 (merge 6bba6f604b jp/doc-trailer-config later to maint). 283 (merge f1cc562b77 lo/t7603-path-is-file-update later to maint). 284 (merge 45761988ac en/doc-renormalize later to maint). 285 (merge 832f56f06a jc/doc-boolean-synonyms later to maint). 286 (merge 3eeed876a9 ac/doc-http-ssl-type-config later to maint). 287 (merge c268e3285d jc/breaking-changes-early-adopter-option later to maint). 288 (merge 0d03fda6a5 pb/doc-follow-remote-head later to maint).