Junio C Hamano | a7d14a4 | 2020-03-25 13:37:05 -0700 | [diff] [blame] | 1 | Git 2.27 Release Notes |
| 2 | ====================== |
| 3 | |
| 4 | Updates since v2.26 |
| 5 | ------------------- |
| 6 | |
Junio C Hamano | 3bab5d5 | 2020-03-26 17:00:57 -0700 | [diff] [blame] | 7 | Backward compatibility notes |
| 8 | |
| 9 | * When "git describe C" finds that commit C is pointed by a signed or |
| 10 | annotated tag, which records T as its tagname in the object, the |
| 11 | command gives T as its answer. Even if the user renames or moves |
| 12 | such a tag from its natural location in the "refs/tags/" hierarchy, |
| 13 | "git describe C" would still give T as the answer, but in such a |
| 14 | case "git show T^0" would no longer work as expected. There may be |
| 15 | nothing at "refs/tags/T" or even worse there may be a different tag |
| 16 | instead. |
| 17 | |
| 18 | Starting from this version, "git describe" will always use the |
| 19 | "long" version, as if the "--long" option were given, when giving |
| 20 | its output based on such a misplaced tag to work around the problem. |
| 21 | |
| 22 | * "git pull" issues a warning message until the pull.rebase |
| 23 | configuration variable is explicitly given, which some existing |
| 24 | users may find annoying---those who prefer not to rebase need to |
| 25 | set the variable to false to squelch the warning. |
| 26 | |
Junio C Hamano | 2d5e9f3 | 2020-05-26 09:38:13 -0700 | [diff] [blame] | 27 | * The transport protocol version 2, which was promoted to the default |
| 28 | in Git 2.26 release, turned out to have some remaining rough edges, |
| 29 | so it has been demoted from the default. |
| 30 | |
Junio C Hamano | 3bab5d5 | 2020-03-26 17:00:57 -0700 | [diff] [blame] | 31 | |
Junio C Hamano | a7d14a4 | 2020-03-25 13:37:05 -0700 | [diff] [blame] | 32 | UI, Workflows & Features |
| 33 | |
| 34 | * A handful of options to configure SSL when talking to proxies have |
| 35 | been added. |
| 36 | |
Junio C Hamano | 3bab5d5 | 2020-03-26 17:00:57 -0700 | [diff] [blame] | 37 | * Smudge/clean conversion filters are now given more information |
| 38 | (e.g. the object of the tree-ish in which the blob being converted |
| 39 | appears, in addition to its path, which has already been given). |
| 40 | |
| 41 | * When "git describe C" finds an annotated tag with tagname A to be |
| 42 | the best name to explain commit C, and the tag is stored in a |
| 43 | "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the |
| 44 | command gave a warning message but used A (not B) to describe C. |
| 45 | If C is exactly at the tag, the describe output would be "A", but |
| 46 | "git rev-parse A^0" would not be equal as "git rev-parse C^0". The |
| 47 | behavior of the command has been changed to use the "long" form |
| 48 | i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse. |
| 49 | |
| 50 | * "git pull" learned to warn when no pull.rebase configuration |
| 51 | exists, and neither --[no-]rebase nor --ff-only is given (which |
| 52 | would result a merge). |
| 53 | |
Junio C Hamano | e870325 | 2020-04-22 13:42:29 -0700 | [diff] [blame] | 54 | * "git p4" learned four new hooks and also "--no-verify" option to |
| 55 | bypass them (and the existing "p4-pre-submit" hook). |
| 56 | |
| 57 | * "git pull" shares many options with underlying "git fetch", but |
| 58 | some of them were not documented and some of those that would make |
| 59 | sense to pass down were not passed down. |
| 60 | |
| 61 | * "git rebase" learned the "--no-gpg-sign" option to countermand |
| 62 | commit.gpgSign the user may have. |
| 63 | |
| 64 | * The output from "git format-patch" uses RFC 2047 encoding for |
| 65 | non-ASCII letters on From: and Subject: headers, so that it can |
| 66 | directly be fed to e-mail programs. A new option has been added |
| 67 | to produce these headers in raw. |
| 68 | |
| 69 | * "git log" learned "--show-pulls" that helps pathspec limited |
| 70 | history views; a merge commit that takes the whole change from a |
| 71 | side branch, which is normally omitted from the output, is shown |
| 72 | in addition to the commits that introduce real changes. |
| 73 | |
| 74 | * The interactive input from various codepaths are consolidated and |
| 75 | any prompt possibly issued earlier are fflush()ed before we read. |
| 76 | |
| 77 | * Allow "git rebase" to reapply all local commits, even if the may be |
| 78 | already in the upstream, without checking first. |
| 79 | |
| 80 | * The 'pack.useSparse' configuration variable now defaults to 'true', |
| 81 | enabling an optimization that has been experimental since Git 2.21. |
| 82 | |
Junio C Hamano | 86ab15c | 2020-04-28 15:50:33 -0700 | [diff] [blame] | 83 | * "git rebase" happens to call some hooks meant for "checkout" and |
| 84 | "commit" by this was not a designed behaviour than historical |
| 85 | accident. This has been documented. |
| 86 | |
Junio C Hamano | d61d20c | 2020-04-29 16:15:42 -0700 | [diff] [blame] | 87 | * "git merge" learns the "--autostash" option. |
| 88 | |
| 89 | * "sparse-checkout" UI improvements. |
| 90 | |
| 91 | * "git update-ref --stdin" learned a handful of new verbs to let the |
| 92 | user control ref update transactions more explicitly, which helps |
| 93 | as an ingredient to implement two-phase commit-style atomic |
| 94 | ref-updates across multiple repositories. |
| 95 | |
Junio C Hamano | b34789c | 2020-05-01 13:37:35 -0700 | [diff] [blame] | 96 | * "git commit-graph write" learned different ways to write out split |
| 97 | files. |
| 98 | |
| 99 | * Introduce an extension to the commit-graph to make it efficient to |
| 100 | check for the paths that were modified at each commit using Bloom |
| 101 | filters. |
| 102 | |
Junio C Hamano | 07d8ea5 | 2020-05-05 14:51:29 -0700 | [diff] [blame] | 103 | * The approxidate parser learns to parse seconds with fraction and |
| 104 | ignore fractional part. |
| 105 | |
Junio C Hamano | b994622 | 2020-05-08 14:24:44 -0700 | [diff] [blame] | 106 | * The userdiff patterns for Markdown documents have been added. |
| 107 | |
| 108 | * The sparse-checkout patterns have been forbidden from excluding all |
| 109 | paths, leaving an empty working tree, for a long time. This |
| 110 | limitation has been lifted. |
| 111 | |
| 112 | * "git restore --staged --worktree" now defaults to take the contents |
| 113 | out of "HEAD", instead of erring out. |
| 114 | |
Junio C Hamano | efcab5b | 2020-05-14 14:39:28 -0700 | [diff] [blame] | 115 | * "git p4" learned to recover from a (broken) state where a directory |
| 116 | and a file are recorded at the same path in the Perforce repository |
| 117 | the same way as their clients do. |
| 118 | |
| 119 | * "git multi-pack-index repack" has been taught to honor some |
| 120 | repack.* configuration variables. |
| 121 | |
Junio C Hamano | a7d14a4 | 2020-03-25 13:37:05 -0700 | [diff] [blame] | 122 | |
| 123 | Performance, Internal Implementation, Development Support etc. |
| 124 | |
| 125 | * The advise API has been revamped to allow more systematic enumeration of |
| 126 | advice knobs in the future. |
| 127 | |
Junio C Hamano | 3bab5d5 | 2020-03-26 17:00:57 -0700 | [diff] [blame] | 128 | * SHA-256 transition continues. |
| 129 | |
| 130 | * The code to interface with GnuPG has been refactored. |
| 131 | |
| 132 | * "git stash" has kept an escape hatch to use the scripted version |
| 133 | for a few releases, which got stale. It has been removed. |
| 134 | |
Junio C Hamano | e870325 | 2020-04-22 13:42:29 -0700 | [diff] [blame] | 135 | * Enable tests that require GnuPG on Windows. |
| 136 | |
| 137 | * Minor test usability improvement. |
| 138 | |
| 139 | * Trace2 enhancement to allow logging of the environment variables. |
| 140 | |
| 141 | * Test clean-up continues. |
| 142 | |
| 143 | * Perf-test update. |
| 144 | |
| 145 | * A Windows-specific test element has been made more robust against |
| 146 | misuse from both user's environment and programmer's errors. |
| 147 | |
Junio C Hamano | 86ab15c | 2020-04-28 15:50:33 -0700 | [diff] [blame] | 148 | * Various tests have been updated to work around issues found with |
| 149 | shell utilities that come with busybox etc. |
| 150 | |
| 151 | * The config API made mixed uses of int and size_t types to represent |
| 152 | length of various pieces of text it parsed, which has been updated |
| 153 | to use the correct type (i.e. size_t) throughout. |
| 154 | |
| 155 | * The "--decorate-refs" and "--decorate-refs-exclude" options "git |
| 156 | log" takes have learned a companion configuration variable |
| 157 | log.excludeDecoration that sits at the lowest priority in the |
| 158 | family. |
| 159 | |
Junio C Hamano | d61d20c | 2020-04-29 16:15:42 -0700 | [diff] [blame] | 160 | * A new CI job to build and run test suite on linux with musl libc |
| 161 | has been added. |
| 162 | |
| 163 | * Update the CI configuration to use GitHub Actions, retiring the one |
| 164 | based on Azure Pipelines. |
| 165 | |
| 166 | * The directory traversal code had redundant recursive calls which |
| 167 | made its performance characteristics exponential with respect to |
| 168 | the depth of the tree, which was corrected. |
| 169 | |
Junio C Hamano | b34789c | 2020-05-01 13:37:35 -0700 | [diff] [blame] | 170 | * "git blame" learns to take advantage of the "changed-paths" Bloom |
| 171 | filter stored in the commit-graph file. |
| 172 | |
| 173 | * The "bugreport" tool has been added. |
| 174 | |
Junio C Hamano | 172e8ff | 2020-05-13 11:31:14 -0700 | [diff] [blame] | 175 | * The object walk with object filter "--filter=tree:0" can now take |
| 176 | advantage of the pack bitmap when available. |
| 177 | |
| 178 | * Instead of always building all branches at GitHub via Actions, |
| 179 | users can specify which branches to build. |
| 180 | |
Junio C Hamano | efcab5b | 2020-05-14 14:39:28 -0700 | [diff] [blame] | 181 | * Codepaths that show progress meter have been taught to also use the |
| 182 | start_progress() and the stop_progress() calls as a "region" to be |
| 183 | traced. |
| 184 | |
Junio C Hamano | 87680d3 | 2020-05-20 08:33:55 -0700 | [diff] [blame] | 185 | * Instead of downloading Windows SDK for CI jobs for windows builds |
| 186 | from an external site (wingit.blob.core.windows.net), use the one |
| 187 | created in the windows-build job, to work around quota issues at |
| 188 | the external site. |
| 189 | |
Junio C Hamano | a7d14a4 | 2020-03-25 13:37:05 -0700 | [diff] [blame] | 190 | |
| 191 | Fixes since v2.26 |
| 192 | ----------------- |
| 193 | |
| 194 | * The real_path() convenience function can easily be misused; with a |
| 195 | bit of code refactoring in the callers' side, its use has been |
| 196 | eliminated. |
| 197 | (merge 49d3c4b481 am/real-path-fix later to maint). |
| 198 | |
| 199 | * Update "git p4" to work with Python 3. |
| 200 | (merge 6bb40ed20a yz/p4-py3 later to maint). |
| 201 | |
| 202 | * The mechanism to prevent "git commit" from making an empty commit |
| 203 | or amending during an interrupted cherry-pick was broken during the |
| 204 | rewrite of "git rebase" in C, which has been corrected. |
| 205 | (merge 430b75f720 pw/advise-rebase-skip later to maint). |
| 206 | |
Junio C Hamano | 3bab5d5 | 2020-03-26 17:00:57 -0700 | [diff] [blame] | 207 | * Fix "git checkout --recurse-submodules" of a nested submodule |
| 208 | hierarchy. |
| 209 | (merge 846f34d351 pb/recurse-submodules-fix later to maint). |
| 210 | |
| 211 | * The "--fork-point" mode of "git rebase" regressed when the command |
| 212 | was rewritten in C back in 2.20 era, which has been corrected. |
| 213 | (merge f08132f889 at/rebase-fork-point-regression-fix later to maint). |
| 214 | |
Junio C Hamano | e870325 | 2020-04-22 13:42:29 -0700 | [diff] [blame] | 215 | * The import-tars importer (in contrib/fast-import/) used to create |
| 216 | phony files at the top-level of the repository when the archive |
| 217 | contains global PAX headers, which made its own logic to detect and |
| 218 | omit the common leading directory ineffective, which has been |
| 219 | corrected. |
| 220 | (merge c839fcff65 js/import-tars-do-not-make-phony-files-from-pax-headers later to maint). |
| 221 | |
| 222 | * Simplify the commit ancestry connectedness check in a partial clone |
| 223 | repository in which "promised" objects are assumed to be obtainable |
| 224 | lazily on-demand from promisor remote repositories. |
| 225 | (merge 2b98478c6f jt/connectivity-check-optim-in-partial-clone later to maint). |
| 226 | |
| 227 | * The server-end of the v2 protocol to serve "git clone" and "git |
| 228 | fetch" was not prepared to see a delim packets at unexpected |
| 229 | places, which led to a crash. |
| 230 | (merge cacae4329f jk/harden-protocol-v2-delim-handling later to maint). |
| 231 | |
| 232 | * When fed a midx that records no objects, some codepaths tried to |
| 233 | loop from 0 through (num_objects-1), which, due to integer |
| 234 | arithmetic wrapping around, made it nonsense operation with out of |
| 235 | bounds array accesses. The code has been corrected to reject such |
| 236 | an midx file. |
| 237 | (merge 796d61cdc0 dr/midx-avoid-int-underflow later to maint). |
| 238 | |
| 239 | * Utitiles run via the run_command() API were not spawned correctly |
| 240 | on Cygwin, when the paths to them are given as a full path with |
| 241 | backslashes. |
| 242 | (merge 05ac8582bc ak/run-command-on-cygwin-fix later to maint). |
| 243 | |
| 244 | * "git pull --rebase" tried to run a rebase even after noticing that |
| 245 | the pull results in a fast-forward and no rebase is needed nor |
| 246 | sensible, for the past few years due to a mistake nobody noticed. |
| 247 | (merge fbae70ddc6 en/pull-do-not-rebase-after-fast-forwarding later to maint). |
| 248 | |
| 249 | * "git rebase" with the merge backend did not work well when the |
| 250 | rebase.abbreviateCommands configuration was set. |
| 251 | (merge de9f1d3ef4 ag/rebase-merge-allow-ff-under-abbrev-command later to maint). |
| 252 | |
| 253 | * The logic to auto-follow tags by "git clone --single-branch" was |
| 254 | not careful to avoid lazy-fetching unnecessary tags, which has been |
| 255 | corrected. |
| 256 | (merge 167a575e2d jk/use-quick-lookup-in-clone-for-tag-following later to maint). |
| 257 | |
| 258 | * "git rebase -i" did not leave the reflog entries correctly. |
| 259 | (merge 1f6965f994 en/sequencer-reflog-action later to maint). |
| 260 | |
| 261 | * The more aggressive updates to remote-tracking branches we had for |
| 262 | the past 7 years or so were not reflected in the documentation, |
| 263 | which has been corrected. |
| 264 | (merge a44088435c pb/pull-fetch-doc later to maint). |
| 265 | |
| 266 | * We've left the command line parsing of "git log :/a/b/" broken for |
| 267 | about a full year without anybody noticing, which has been |
| 268 | corrected. |
| 269 | (merge 0220461071 jc/missing-ref-store-fix later to maint). |
| 270 | |
| 271 | * Misc fixes for Windows. |
| 272 | (merge 3efc128cd5 js/mingw-fixes later to maint). |
| 273 | |
| 274 | * "git rebase" (again) learns to honor "--no-keep-empty", which lets |
| 275 | the user to discard commits that are empty from the beginning (as |
| 276 | opposed to the ones that become empty because of rebasing). The |
| 277 | interactive rebase also marks commits that are empty in the todo. |
| 278 | (merge 50ed76148a en/rebase-no-keep-empty later to maint). |
| 279 | |
| 280 | * Parsing the host part out of URL for the credential helper has been corrected. |
| 281 | (merge 4c5971e18a jk/credential-parsing-end-of-host-in-URL later to maint). |
| 282 | |
Junio C Hamano | 86ab15c | 2020-04-28 15:50:33 -0700 | [diff] [blame] | 283 | * Document the recommended way to abort a failing test early (e.g. by |
| 284 | exiting a loop), which is to say "return 1". |
| 285 | (merge 7cc112dc95 jc/doc-test-leaving-early later to maint). |
| 286 | |
| 287 | * The code that refreshes the last access and modified time of |
| 288 | on-disk packfiles and loose object files have been updated. |
| 289 | (merge 312cd76130 lr/freshen-file-fix later to maint). |
| 290 | |
| 291 | * Validation of push certificate has been made more robust against |
| 292 | timing attacks. |
| 293 | (merge 719483e547 bc/constant-memequal later to maint). |
| 294 | |
| 295 | * The custom hash function used by "git fast-import" has been |
| 296 | replaced with the one from hashmap.c, which gave us a nice |
| 297 | performance boost. |
| 298 | (merge d8410a816b jk/fast-import-use-hashmap later to maint). |
| 299 | |
| 300 | * The "git submodule" command did not initialize a few variables it |
| 301 | internally uses and was affected by variable settings leaked from |
| 302 | the environment. |
| 303 | (merge 65d100c4dd lx/submodule-clear-variables later to maint). |
| 304 | |
| 305 | * Raise the minimum required version of docbook-xsl package to 1.74, |
| 306 | as 1.74.0 was from late 2008, which is more than 10 years old, and |
| 307 | drop compatibility cruft from our documentation suite. |
| 308 | (merge 3c255ad660 ma/doc-discard-docbook-xsl-1.73 later to maint). |
| 309 | |
| 310 | * "git log" learns "--[no-]mailmap" as a synonym to "--[no-]use-mailmap" |
| 311 | (merge 88acccda38 jc/log-no-mailmap later to maint). |
| 312 | |
| 313 | * "git commit-graph write --expire-time=<timestamp>" did not use the |
| 314 | given timestamp correctly, which has been corrected. |
| 315 | (merge b09b785c78 ds/commit-graph-expiry-fix later to maint). |
| 316 | |
| 317 | * Tests update to use "test-chmtime" instead of "touch -t". |
| 318 | (merge e892a56845 ds/t5319-touch-fix later to maint). |
| 319 | |
| 320 | * "git diff" in a partial clone learned to avoid lazy loading blob |
| 321 | objects in more casese when they are not needed. |
| 322 | (merge 95acf11a3d jt/avoid-prefetch-when-able-in-diff later to maint). |
| 323 | |
| 324 | * "git push --atomic" used to show failures for refs that weren't |
| 325 | even pushed, which has been corrected. |
| 326 | (merge dfe1b7f19c jx/atomic-push later to maint). |
| 327 | |
| 328 | * Code in builtin/*, i.e. those can only be called from within |
| 329 | built-in subcommands, that implements bulk of a couple of |
| 330 | subcommands have been moved to libgit.a so that they could be used |
| 331 | by others. |
| 332 | (merge 9460fd48b5 dl/libify-a-few later to maint). |
| 333 | |
| 334 | * Allowing the user to split a patch hunk while "git stash -p" does |
| 335 | not work well; a band-aid has been added to make this (partially) |
| 336 | work better. |
| 337 | |
| 338 | * "git diff-tree --pretty --notes" used to hit an assertion failure, |
| 339 | as it forgot to initialize the notes subsystem. |
| 340 | (merge 5778b22b3d tb/diff-tree-with-notes later to maint). |
| 341 | |
| 342 | * "git range-diff" fixes. |
| 343 | (merge 8d1675eb7f vd/range-diff-with-custom-pretty-format-fix later to maint). |
| 344 | |
| 345 | * "git grep" did not quote a path with unusual character like other |
| 346 | commands (like "git diff", "git status") do, but did quote when run |
| 347 | from a subdirectory, both of which has been corrected. |
| 348 | (merge 45115d8490 mt/grep-cquote-path later to maint). |
| 349 | |
| 350 | * GNU/Hurd is also among the ones that need the fopen() wrapper. |
| 351 | (merge 274a1328fb jc/gnu-hurd-lets-fread-read-dirs later to maint). |
| 352 | |
| 353 | * Those fetching over protocol v2 from linux-next and other kernel |
| 354 | repositories are reporting that v2 often fetches way too much than |
| 355 | needed. |
| 356 | (merge 11c7f2a30b jn/demote-proto2-from-default later to maint). |
| 357 | |
Junio C Hamano | b34789c | 2020-05-01 13:37:35 -0700 | [diff] [blame] | 358 | * The upload-pack protocol v2 gave up too early before finding a |
| 359 | common ancestor, resulting in a wasteful fetch from a fork of a |
| 360 | project. This has been corrected to match the behaviour of v0 |
| 361 | protocol. |
| 362 | (merge 2f0a093dd6 jt/v2-fetch-nego-fix later to maint). |
| 363 | |
| 364 | * The build procedure did not use the libcurl library and its include |
| 365 | files correctly for a custom-built installation. |
| 366 | (merge 0573831950 jk/build-with-right-curl later to maint). |
| 367 | |
| 368 | * Tighten "git mailinfo" to notice and error out when decoded result |
| 369 | contains NUL in it. |
| 370 | (merge 3919997447 dd/mailinfo-with-nul later to maint). |
| 371 | |
| 372 | * Fix in-core inconsistency after fetching into a shallow repository |
| 373 | that broke the code to write out commit-graph. |
| 374 | (merge 37b9dcabfc tb/reset-shallow later to maint). |
| 375 | |
| 376 | * The commit-graph code exhausted file descriptors easily when it |
| 377 | does not have to. |
| 378 | (merge c8828530b7 tb/commit-graph-fd-exhaustion-fix later to maint). |
| 379 | |
| 380 | * The multi-pack-index left mmapped file descriptors open when it |
| 381 | does not have to. |
| 382 | (merge 6c7ff7cf7f ds/multi-pack-index later to maint). |
| 383 | |
| 384 | * Recent update to Homebrew used by macOS folks breaks build by |
| 385 | moving gettext library and necessary headers. |
| 386 | (merge a0b3108618 ds/build-homebrew-gettext-fix later to maint). |
| 387 | |
| 388 | * Incompatible options "--root" and "--fork-point" of "git rebase" |
| 389 | have been marked and documented as being incompatible. |
| 390 | (merge a35413c378 en/rebase-root-and-fork-point-are-incompatible later to maint). |
| 391 | |
| 392 | * Error and verbose trace messages from "git push" did not redact |
| 393 | credential material embedded in URLs. |
| 394 | (merge d192fa5006 js/anonymise-push-url-in-errors later to maint). |
| 395 | |
Junio C Hamano | 07d8ea5 | 2020-05-05 14:51:29 -0700 | [diff] [blame] | 396 | * Update the parser used for credential.<URL>.<variable> |
| 397 | configuration, to handle <URL>s with '/' in them correctly. |
| 398 | (merge b44d0118ac bc/wildcard-credential later to maint). |
| 399 | |
| 400 | * Recent updates broke parsing of "credential.<url>.<key>" where |
| 401 | <url> is not a full URL (e.g. [credential "https://"] helper = ...) |
| 402 | stopped working, which has been corrected. |
| 403 | (merge 9a121b0d22 js/partial-urlmatch-2.17 later to maint). |
| 404 | (merge cd93e6c029 js/partial-urlmatch later to maint). |
| 405 | |
| 406 | * Some of the files commit-graph subsystem keeps on disk did not |
| 407 | correctly honor the core.sharedRepository settings and some were |
| 408 | left read-write. |
| 409 | |
Junio C Hamano | b994622 | 2020-05-08 14:24:44 -0700 | [diff] [blame] | 410 | * In error messages that "git switch" mentions its option to create a |
| 411 | new branch, "-b/-B" options were shown, where "-c/-C" options |
| 412 | should be, which has been corrected. |
| 413 | (merge 7c16ef7577 dl/switch-c-option-in-error-message later to maint). |
| 414 | |
| 415 | * With the recent tightening of the code that is used to parse |
| 416 | various parts of a URL for use in the credential subsystem, a |
| 417 | hand-edited credential-store file causes the credential helper to |
| 418 | die, which is a bit too harsh to the users. Demote the error |
| 419 | behaviour to just ignore and keep using well-formed lines instead. |
| 420 | (merge c03859a665 cb/credential-store-ignore-bogus-lines later to maint). |
| 421 | |
| 422 | * The samples in the credential documentation has been updated to |
| 423 | make it clear that we depict what would appear in the .git/config |
| 424 | file, by adding appropriate quotes as needed.. |
| 425 | (merge 177681a07e jk/credential-sample-update later to maint). |
| 426 | |
| 427 | * "git branch" and other "for-each-ref" variants accepted multiple |
| 428 | --sort=<key> options in the increasing order of precedence, but it |
| 429 | had a few breakages around "--ignore-case" handling, and tie-breaking |
| 430 | with the refname, which have been fixed. |
| 431 | (merge 7c5045fc18 jk/for-each-ref-multi-key-sort-fix later to maint). |
| 432 | |
| 433 | * The coding guideline for shell scripts instructed to refer to a |
| 434 | variable with dollar-sign inside arithmetic expansion to work |
| 435 | around a bug in old versions of dash, which is a thing of the past. |
| 436 | Now we are not forbidden from writing $((var+1)). |
| 437 | (merge 32b5fe7f0e jk/arith-expansion-coding-guidelines later to maint). |
| 438 | |
| 439 | * The <stdlib.h> header on NetBSD brings in its own definition of |
| 440 | hmac() function (eek), which conflicts with our own and unrelated |
| 441 | function with the same name. Our function has been renamed to work |
| 442 | around the issue. |
| 443 | (merge 3013118eb8 cb/avoid-colliding-with-netbsd-hmac later to maint). |
| 444 | |
| 445 | * The basic test did not honor $TEST_SHELL_PATH setting, which has |
| 446 | been corrected. |
| 447 | (merge 0555e4af58 cb/t0000-use-the-configured-shell later to maint). |
| 448 | |
Junio C Hamano | 172e8ff | 2020-05-13 11:31:14 -0700 | [diff] [blame] | 449 | * Minor in-code comments and documentation updates around credential |
| 450 | API. |
| 451 | (merge 1aed817f99 cb/credential-doc-fixes later to maint). |
| 452 | |
| 453 | * Teach "am", "commit", "merge" and "rebase", when they are run with |
| 454 | the "--quiet" option, to pass "--quiet" down to "gc --auto". |
| 455 | (merge 7c3e9e8cfb jc/auto-gc-quiet later to maint). |
| 456 | |
| 457 | * The code to skip unmerged paths in the index when sparse checkout |
| 458 | is in use would have made out-of-bound access of the in-core index |
| 459 | when the last path was unmerged, which has been corrected. |
| 460 | |
| 461 | * Serving a "git fetch" client over "git://" and "ssh://" protocols |
| 462 | using the on-wire protocol version 2 was buggy on the server end |
| 463 | when the client needs to make a follow-up request to |
| 464 | e.g. auto-follow tags. |
| 465 | (merge 08450ef791 cc/upload-pack-v2-fetch-fix later to maint). |
| 466 | |
Junio C Hamano | efcab5b | 2020-05-14 14:39:28 -0700 | [diff] [blame] | 467 | * "git bisect replay" had trouble with input files when they used |
| 468 | CRLF line ending, which has been corrected. |
| 469 | (merge 6c722cbe5a cw/bisect-replay-with-dos later to maint). |
| 470 | |
| 471 | * "rebase -i" segfaulted when rearranging a sequence that has a |
| 472 | fix-up that applies another fix-up (which may or may not be a |
| 473 | fix-up of yet another step). |
| 474 | (merge 02471e7e20 js/rebase-autosquash-double-fixup-fix later to maint). |
| 475 | |
| 476 | * "git fsck" ensures that the paths recorded in tree objects are |
| 477 | sorted and without duplicates, but it failed to notice a case where |
| 478 | a blob is followed by entries that sort before a tree with the same |
| 479 | name. This has been corrected. |
| 480 | (merge 9068cfb20f rs/fsck-duplicate-names-in-trees later to maint). |
| 481 | |
Junio C Hamano | 87680d3 | 2020-05-20 08:33:55 -0700 | [diff] [blame] | 482 | * Code clean-up by removing a compatibility implementation of a |
| 483 | function we no longer use. |
| 484 | (merge 84b0115f0d cb/no-more-gmtime later to maint). |
| 485 | |
| 486 | * When a binary file gets modified and renamed on both sides of history |
| 487 | to different locations, both files would be written to the working |
| 488 | tree but both would have the contents from "ours". This has been |
| 489 | corrected so that the path from each side gets their original content. |
| 490 | |
Junio C Hamano | d2ecc46 | 2020-05-24 18:13:53 -0700 | [diff] [blame] | 491 | * Fix for a copy-and-paste error introduced during 2.20 era. |
| 492 | (merge e68a5272b1 ds/multi-pack-verify later to maint). |
| 493 | |
| 494 | * Update an unconditional use of "grep -a" with a perl script in a test. |
| 495 | (merge 1eb7371236 dd/t5703-grep-a-fix later to maint). |
| 496 | |
Junio C Hamano | a7d14a4 | 2020-03-25 13:37:05 -0700 | [diff] [blame] | 497 | * Other code cleanup, docfix, build fix, etc. |
| 498 | (merge 564956f358 jc/maintain-doc later to maint). |
| 499 | (merge 7422b2a0a1 sg/commit-slab-clarify-peek later to maint). |
| 500 | (merge 9c688735f6 rs/doc-passthru-fetch-options later to maint). |
| 501 | (merge 757c2ba3e2 en/oidset-uninclude-hashmap later to maint). |
| 502 | (merge 8312aa7d74 jc/config-tar later to maint). |
| 503 | (merge d00a5bdd50 ss/submodule-foreach-cb later to maint). |
Junio C Hamano | e870325 | 2020-04-22 13:42:29 -0700 | [diff] [blame] | 504 | (merge 64d1022e14 ar/test-style-fixes later to maint). |
| 505 | (merge 4a465443a6 ds/doc-clone-filter later to maint). |
| 506 | (merge bb2dbe301b jk/t3419-drop-expensive-tests later to maint). |
| 507 | (merge d3507cc712 js/test-junit-finalization-fix later to maint). |
| 508 | (merge 2149b6748f bc/faq later to maint). |
| 509 | (merge 12dc0879f1 jk/test-cleanup later to maint). |
| 510 | (merge 344420bf0f pb/rebase-doc-typofix later to maint). |
| 511 | (merge 7cd54d37dc dl/wrapper-fix-indentation later to maint). |
| 512 | (merge 78725ebda9 jc/allow-strlen-substitution-in-shell-scripts later to maint). |
| 513 | (merge 2ecfcdecc6 jm/gitweb-fastcgi-utf8 later to maint). |
| 514 | (merge 0740d0a5d3 jk/oid-array-cleanups later to maint). |
| 515 | (merge a1aba0c95c js/t0007-typofix later to maint). |
| 516 | (merge 76ba7fa225 ma/config-doc-fix later to maint). |
Junio C Hamano | 86ab15c | 2020-04-28 15:50:33 -0700 | [diff] [blame] | 517 | (merge 826f0c0df2 js/subtree-doc-update-to-asciidoctor-2 later to maint). |
| 518 | (merge 88eaf361e0 eb/mboxrd-doc later to maint). |
| 519 | (merge 051cc54941 tm/zsh-complete-switch-restore later to maint). |
| 520 | (merge 39102cf4fe ms/doc-revision-illustration-fix later to maint). |
Junio C Hamano | b34789c | 2020-05-01 13:37:35 -0700 | [diff] [blame] | 521 | (merge 4d9378bfad eb/gitweb-more-trailers later to maint). |
| 522 | (merge bdccbf7047 mt/doc-worktree-ref later to maint). |
Junio C Hamano | 07d8ea5 | 2020-05-05 14:51:29 -0700 | [diff] [blame] | 523 | (merge ce9baf234f dl/push-recurse-submodules-fix later to maint). |
Junio C Hamano | b994622 | 2020-05-08 14:24:44 -0700 | [diff] [blame] | 524 | (merge 4153274052 bc/doc-credential-helper-value later to maint). |
Junio C Hamano | efcab5b | 2020-05-14 14:39:28 -0700 | [diff] [blame] | 525 | (merge 5c7bb0146e jc/codingstyle-compare-with-null later to maint). |