Git fork

Sync with Git 2.51.1

+60 -7
+60 -7
Documentation/RelNotes/2.51.1.adoc
··· 3 3 4 4 There shouldn't be anything exciting to see here. This is primarily 5 5 to flush the "do you still use it?" improvements that has landed on 6 - the master front, together with a handful of low-hanging low-impact 6 + the master front, together with a handful of low-hanging, low-impact 7 7 fixes that should be safe. 8 8 9 9 ··· 22 22 * Manual page for "gitk" is updated with the current maintainer's 23 23 name. 24 24 25 - * Update the instruction to use of GGG in the MyFirstContribution 25 + * Update the instructions for using GGG in the MyFirstContribution 26 26 document to say that a GitHub PR could be made against `git/git` 27 27 instead of `gitgitgadget/git`. 28 28 29 - * Clang-format update to let our control macros formatted the way we 29 + * Clang-format update to let our control macros be formatted the way we 30 30 had them traditionally, e.g., "for_each_string_list_item()" without 31 31 space before the parentheses. 32 32 33 - * A few places where an size_t value was cast to curl_off_t without 33 + * A few places where a size_t value was cast to curl_off_t without 34 34 checking has been updated to use the existing helper function. 35 35 36 36 * The start_delayed_progress() function in the progress eye-candy API ··· 38 38 larger than 1 second ineffective, which has been corrected. 39 39 40 40 * Makefile tried to run multiple "cargo build" which would not work 41 - very well; serialize their execution to work it around. 41 + very well; serialize their execution to work around this problem. 42 42 43 - * Adjust to the way newer versions of cURL selectivel enables tracing 43 + * Adjust to the way newer versions of cURL selectively enable tracing 44 44 options, so that our tests can continue to work. 45 45 46 - Also contains various documentation updates, code clean-ups and minor fixups. 46 + * During interactive rebase, using 'drop' on a merge commit led to 47 + an error, which has been corrected. 48 + 49 + * "git refs migrate" to migrate the reflog entries from a refs 50 + backend to another had a handful of bugs squashed. 51 + 52 + * "git push" had a code path that led to BUG() but it should have 53 + been a die(), as it is a response to a usual but invalid end-user 54 + action to attempt pushing an object that does not exist. 55 + 56 + * Various bugs about rename handling in "ort" merge strategy have 57 + been fixed. 58 + 59 + * "git diff --no-index" run inside a subdirectory under control of a 60 + Git repository operated at the top of the working tree and stripped 61 + the prefix from the output, and oddballs like "-" (stdin) did not 62 + work correctly because of it. Correct the set-up by undoing what 63 + the set-up sequence did to cwd and prefix. 64 + 65 + * Various options to "git diff" that make comparison ignore certain 66 + aspects of the differences (like "space changes are ignored", 67 + "differences in lines that match these regular expressions are 68 + ignored") did not work well with "--name-only" and friends. 69 + 70 + * Under a race against another process that is repacking the 71 + repository, especially a partially cloned one, "git fetch" may 72 + mistakenly think some objects we do have are missing, which has 73 + been corrected. 74 + 75 + * "git repack --path-walk" lost objects in some corner cases, which 76 + has been corrected. 77 + cf. <CABPp-BHFxxGrqKc0m==TjQNjDGdO=H5Rf6EFsf2nfE1=TuraOQ@mail.gmail.com> 78 + 79 + * Fixes multiple crashes around midx write-out codepaths. 80 + 81 + * A broken or malicious "git fetch" can say that it has the same 82 + object for many many times, and the upload-pack serving it can 83 + exhaust memory storing them redundantly, which has been corrected. 84 + 85 + * A corner case bug in "git log -L..." has been corrected. 86 + 87 + * Some among "git add -p" and friends ignored color.diff and/or 88 + color.ui configuration variables, which is an old regression, which 89 + has been corrected. 90 + 91 + * "git rebase -i" failed to clean-up the commit log message when the 92 + command commits the final one in a chain of "fixup" commands, which 93 + has been corrected. 94 + 95 + * Deal more gracefully with directory / file conflicts when the files 96 + backend is used for ref storage, by failing only the ones that are 97 + involved in the conflict while allowing others. 98 + 99 + Also contains various documentation updates, code cleanups and minor fixups.