| 1 | Git 2.15 Release Notes |
| 2 | ====================== |
| 3 | |
| 4 | Backward compatibility notes and other notable changes. |
| 5 | |
| 6 | * Use of an empty string as a pathspec element that is used for |
| 7 | 'everything matches' is still warned and Git asks users to use a |
| 8 | more explicit '.' for that instead. The hope is that existing |
| 9 | users will not mind this change, and eventually the warning can be |
| 10 | turned into a hard error, upgrading the deprecation into removal of |
| 11 | this (mis)feature. That is now scheduled to happen in Git v2.16, |
| 12 | the next major release after this one. |
| 13 | |
| 14 | * Git now avoids blindly falling back to ".git" when the setup |
| 15 | sequence said we are _not_ in Git repository. A corner case that |
| 16 | happens to work right now may be broken by a call to BUG(). |
| 17 | We've tried hard to locate such cases and fixed them, but there |
| 18 | might still be cases that need to be addressed--bug reports are |
| 19 | greatly appreciated. |
| 20 | |
| 21 | * "branch --set-upstream" that has been deprecated in Git 1.8 has |
| 22 | finally been retired. |
| 23 | |
| 24 | |
| 25 | Updates since v2.14 |
| 26 | ------------------- |
| 27 | |
| 28 | UI, Workflows & Features |
| 29 | |
| 30 | * An example that is now obsolete has been removed from a sample hook, |
| 31 | and an old example in it that added a sign-off manually has been |
| 32 | improved to use the interpret-trailers command. |
| 33 | |
| 34 | * The advice message given when "git rebase" stops for conflicting |
| 35 | changes has been improved. |
| 36 | |
| 37 | * The "rerere-train" script (in contrib/) learned the "--overwrite" |
| 38 | option to allow overwriting existing recorded resolutions. |
| 39 | |
| 40 | * "git contacts" (in contrib/) now lists the address on the |
| 41 | "Reported-by:" trailer to its output, in addition to those on |
| 42 | S-o-b: and other trailers, to make it easier to notify (and thank) |
| 43 | the original bug reporter. |
| 44 | |
| 45 | * "git rebase", especially when it is run by mistake and ends up |
| 46 | trying to replay many changes, spent long time in silence. The |
| 47 | command has been taught to show progress report when it spends |
| 48 | long time preparing these many changes to replay (which would give |
| 49 | the user a chance to abort with ^C). |
| 50 | |
| 51 | * "git merge" learned a "--signoff" option to add the Signed-off-by: |
| 52 | trailer with the committer's name. |
| 53 | |
| 54 | * "git diff" learned to optionally paint new lines that are the same |
| 55 | as deleted lines elsewhere differently from genuinely new lines. |
| 56 | |
| 57 | * "git interpret-trailers" learned to take the trailer specifications |
| 58 | from the command line that overrides the configured values. |
| 59 | |
| 60 | * "git interpret-trailers" has been taught a "--parse" and a few |
| 61 | other options to make it easier for scripts to grab existing |
| 62 | trailer lines from a commit log message. |
| 63 | |
| 64 | * The "--format=%(trailers)" option "git log" and its friends take |
| 65 | learned to take the 'unfold' and 'only' modifiers to normalize its |
| 66 | output, e.g. "git log --format=%(trailers:only,unfold)". |
| 67 | |
| 68 | * "gitweb" shows a link to visit the 'raw' contents of blobs in the |
| 69 | history overview page. |
| 70 | |
| 71 | * "[gc] rerereResolved = 5.days" used to be invalid, as the variable |
| 72 | is defined to take an integer counting the number of days. It now |
| 73 | is allowed. |
| 74 | |
| 75 | * The code to acquire a lock on a reference (e.g. while accepting a |
| 76 | push from a client) used to immediately fail when the reference is |
| 77 | already locked---now it waits for a very short while and retries, |
| 78 | which can make it succeed if the lock holder was holding it during |
| 79 | a read-only operation. |
| 80 | |
| 81 | * "branch --set-upstream" that has been deprecated in Git 1.8 has |
| 82 | finally been retired. |
| 83 | |
| 84 | * The codepath to call external process filter for smudge/clean |
| 85 | operation learned to show the progress meter. |
| 86 | |
| 87 | * "git rev-parse" learned "--is-shallow-repository", that is to be |
| 88 | used in a way similar to existing "--is-bare-repository" and |
| 89 | friends. |
| 90 | |
| 91 | * "git describe --match <pattern>" has been taught to play well with |
| 92 | the "--all" option. |
| 93 | |
| 94 | * "git branch" learned "-c/-C" to create a new branch by copying an |
| 95 | existing one. |
| 96 | |
| 97 | * Some commands (most notably "git status") makes an opportunistic |
| 98 | update when performing a read-only operation to help optimize later |
| 99 | operations in the same repository. The new "--no-optional-locks" |
| 100 | option can be passed to Git to disable them. |
| 101 | |
| 102 | * "git for-each-ref --format=..." learned a new format element, |
| 103 | %(trailers), to show only the commit log trailer part of the log |
| 104 | message. |
| 105 | |
| 106 | |
| 107 | Performance, Internal Implementation, Development Support etc. |
| 108 | |
| 109 | * Conversion from uchar[20] to struct object_id continues. |
| 110 | |
| 111 | * Start using selected c99 constructs in small, stable and |
| 112 | essential part of the system to catch people who care about |
| 113 | older compilers that do not grok them. |
| 114 | |
| 115 | * The filter-process interface learned to allow a process with long |
| 116 | latency give a "delayed" response. |
| 117 | |
| 118 | * Many uses of comparison callback function the hashmap API uses |
| 119 | cast the callback function type when registering it to |
| 120 | hashmap_init(), which defeats the compile time type checking when |
| 121 | the callback interface changes (e.g. gaining more parameters). |
| 122 | The callback implementations have been updated to take "void *" |
| 123 | pointers and cast them to the type they expect instead. |
| 124 | |
| 125 | * Because recent Git for Windows do come with a real msgfmt, the |
| 126 | build procedure for git-gui has been updated to use it instead of a |
| 127 | hand-rolled substitute. |
| 128 | |
| 129 | * "git grep --recurse-submodules" has been reworked to give a more |
| 130 | consistent output across submodule boundary (and do its thing |
| 131 | without having to fork a separate process). |
| 132 | |
| 133 | * A helper function to read a single whole line into strbuf |
| 134 | mistakenly triggered OOM error at EOF under certain conditions, |
| 135 | which has been fixed. |
| 136 | |
| 137 | * The "ref-store" code reorganization continues. |
| 138 | |
| 139 | * "git commit" used to discard the index and re-read from the filesystem |
| 140 | just in case the pre-commit hook has updated it in the middle; this |
| 141 | has been optimized out when we know we do not run the pre-commit hook. |
| 142 | (merge 680ee550d7 kw/commit-keep-index-when-pre-commit-is-not-run later to maint). |
| 143 | |
| 144 | * Updates to the HTTP layer we made recently unconditionally used |
| 145 | features of libCurl without checking the existence of them, causing |
| 146 | compilation errors, which has been fixed. Also migrate the code to |
| 147 | check feature macros, not version numbers, to cope better with |
| 148 | libCurl that vendor ships with backported features. |
| 149 | |
| 150 | * The API to start showing progress meter after a short delay has |
| 151 | been simplified. |
| 152 | (merge 8aade107dd jc/simplify-progress later to maint). |
| 153 | |
| 154 | * Code clean-up to avoid mixing values read from the .gitmodules file |
| 155 | and values read from the .git/config file. |
| 156 | |
| 157 | * We used to spend more than necessary cycles allocating and freeing |
| 158 | piece of memory while writing each index entry out. This has been |
| 159 | optimized. |
| 160 | |
| 161 | * Platforms that ship with a separate sha1 with collision detection |
| 162 | library can link to it instead of using the copy we ship as part of |
| 163 | our source tree. |
| 164 | |
| 165 | * Code around "notes" have been cleaned up. |
| 166 | (merge 3964281524 mh/notes-cleanup later to maint). |
| 167 | |
| 168 | * The long-standing rule that an in-core lockfile instance, once it |
| 169 | is used, must not be freed, has been lifted and the lockfile and |
| 170 | tempfile APIs have been updated to reduce the chance of programming |
| 171 | errors. |
| 172 | |
| 173 | * Our hashmap implementation in hashmap.[ch] is not thread-safe when |
| 174 | adding a new item needs to expand the hashtable by rehashing; add |
| 175 | an API to disable the automatic rehashing to work it around. |
| 176 | |
| 177 | * Many of our programs consider that it is OK to release dynamic |
| 178 | storage that is used throughout the life of the program by simply |
| 179 | exiting, but this makes it harder to leak detection tools to avoid |
| 180 | reporting false positives. Plug many existing leaks and introduce |
| 181 | a mechanism for developers to mark that the region of memory |
| 182 | pointed by a pointer is not lost/leaking to help these tools. |
| 183 | |
| 184 | * As "git commit" to conclude a conflicted "git merge" honors the |
| 185 | commit-msg hook, "git merge" that records a merge commit that |
| 186 | cleanly auto-merges should, but it didn't. |
| 187 | |
| 188 | * The codepath for "git merge-recursive" has been cleaned up. |
| 189 | |
| 190 | * Many leaks of strbuf have been fixed. |
| 191 | |
| 192 | * "git imap-send" has our own implementation of the protocol and also |
| 193 | can use more recent libCurl with the imap protocol support. Update |
| 194 | the latter so that it can use the credential subsystem, and then |
| 195 | make it the default option to use, so that we can eventually |
| 196 | deprecate and remove the former. |
| 197 | |
| 198 | * "make style" runs git-clang-format to help developers by pointing |
| 199 | out coding style issues. |
| 200 | |
| 201 | * A test to demonstrate "git mv" failing to adjust nested submodules |
| 202 | has been added. |
| 203 | (merge c514167df2 hv/mv-nested-submodules-test later to maint). |
| 204 | |
| 205 | * On Cygwin, "ulimit -s" does not report failure but it does not work |
| 206 | at all, which causes an unexpected success of some tests that |
| 207 | expect failures under a limited stack situation. This has been |
| 208 | fixed. |
| 209 | |
| 210 | * Many codepaths have been updated to squelch -Wimplicit-fallthrough |
| 211 | warnings from Gcc 7 (which is a good code hygiene). |
| 212 | |
| 213 | * Add a helper for DLL loading in anticipation for its need in a |
| 214 | future topic RSN. |
| 215 | |
| 216 | * "git status --ignored", when noticing that a directory without any |
| 217 | tracked path is ignored, still enumerated all the ignored paths in |
| 218 | the directory, which is unnecessary. The codepath has been |
| 219 | optimized to avoid this overhead. |
| 220 | |
| 221 | * The final batch to "git rebase -i" updates to move more code from |
| 222 | the shell script to C has been merged. |
| 223 | |
| 224 | * Operations that do not touch (majority of) packed refs have been |
| 225 | optimized by making accesses to packed-refs file lazy; we no longer |
| 226 | pre-parse everything, and an access to a single ref in the |
| 227 | packed-refs does not touch majority of irrelevant refs, either. |
| 228 | |
| 229 | * Add comment to clarify that the style file is meant to be used with |
| 230 | clang-5 and the rules are still work in progress. |
| 231 | |
| 232 | * Many variables that points at a region of memory that will live |
| 233 | throughout the life of the program have been marked with UNLEAK |
| 234 | marker to help the leak checkers concentrate on real leaks.. |
| 235 | |
| 236 | * Plans for weaning us off of SHA-1 has been documented. |
| 237 | |
| 238 | * A new "oidmap" API has been introduced and oidset API has been |
| 239 | rewritten to use it. |
| 240 | |
| 241 | |
| 242 | Also contains various documentation updates and code clean-ups. |
| 243 | |
| 244 | |
| 245 | Fixes since v2.14 |
| 246 | ----------------- |
| 247 | |
| 248 | * "%C(color name)" in the pretty print format always produced ANSI |
| 249 | color escape codes, which was an early design mistake. They now |
| 250 | honor the configuration (e.g. "color.ui = never") and also tty-ness |
| 251 | of the output medium. |
| 252 | |
| 253 | * The http.{sslkey,sslCert} configuration variables are to be |
| 254 | interpreted as a pathname that honors "~[username]/" prefix, but |
| 255 | weren't, which has been fixed. |
| 256 | |
| 257 | * Numerous bugs in walking of reflogs via "log -g" and friends have |
| 258 | been fixed. |
| 259 | |
| 260 | * "git commit" when seeing an totally empty message said "you did not |
| 261 | edit the message", which is clearly wrong. The message has been |
| 262 | corrected. |
| 263 | |
| 264 | * When a directory is not readable, "gitweb" fails to build the |
| 265 | project list. Work this around by skipping such a directory. |
| 266 | |
| 267 | * Some versions of GnuPG fails to kill gpg-agent it auto-spawned |
| 268 | and such a left-over agent can interfere with a test. Work it |
| 269 | around by attempting to kill one before starting a new test. |
| 270 | |
| 271 | * A recently added test for the "credential-cache" helper revealed |
| 272 | that EOF detection done around the time the connection to the cache |
| 273 | daemon is torn down were flaky. This was fixed by reacting to |
| 274 | ECONNRESET and behaving as if we got an EOF. |
| 275 | |
| 276 | * "git log --tag=no-such-tag" showed log starting from HEAD, which |
| 277 | has been fixed---it now shows nothing. |
| 278 | |
| 279 | * The "tag.pager" configuration variable was useless for those who |
| 280 | actually create tag objects, as it interfered with the use of an |
| 281 | editor. A new mechanism has been introduced for commands to enable |
| 282 | pager depending on what operation is being carried out to fix this, |
| 283 | and then "git tag -l" is made to run pager by default. |
| 284 | |
| 285 | * "git push --recurse-submodules $there HEAD:$target" was not |
| 286 | propagated down to the submodules, but now it is. |
| 287 | |
| 288 | * Commands like "git rebase" accepted the --rerere-autoupdate option |
| 289 | from the command line, but did not always use it. This has been |
| 290 | fixed. |
| 291 | |
| 292 | * "git clone --recurse-submodules --quiet" did not pass the quiet |
| 293 | option down to submodules. |
| 294 | |
| 295 | * Test portability fix for OBSD. |
| 296 | |
| 297 | * Portability fix for OBSD. |
| 298 | |
| 299 | * "git am -s" has been taught that some input may end with a trailer |
| 300 | block that is not Signed-off-by: and it should refrain from adding |
| 301 | an extra blank line before adding a new sign-off in such a case. |
| 302 | |
| 303 | * "git svn" used with "--localtime" option did not compute the tz |
| 304 | offset for the timestamp in question and instead always used the |
| 305 | current time, which has been corrected. |
| 306 | |
| 307 | * Memory leak in an error codepath has been plugged. |
| 308 | |
| 309 | * "git stash -u" used the contents of the committed version of the |
| 310 | ".gitignore" file to decide which paths are ignored, even when the |
| 311 | file has local changes. The command has been taught to instead use |
| 312 | the locally modified contents. |
| 313 | |
| 314 | * bash 4.4 or newer gave a warning on NUL byte in command |
| 315 | substitution done in "git stash"; this has been squelched. |
| 316 | |
| 317 | * "git grep -L" and "git grep --quiet -L" reported different exit |
| 318 | codes; this has been corrected. |
| 319 | |
| 320 | * When handshake with a subprocess filter notices that the process |
| 321 | asked for an unknown capability, Git did not report what program |
| 322 | the offending subprocess was running. This has been corrected. |
| 323 | |
| 324 | * "git apply" that is used as a better "patch -p1" failed to apply a |
| 325 | taken from a file with CRLF line endings to a file with CRLF line |
| 326 | endings. The root cause was because it misused convert_to_git() |
| 327 | that tried to do "safe-crlf" processing by looking at the index |
| 328 | entry at the same path, which is a nonsense---in that mode, "apply" |
| 329 | is not working on the data in (or derived from) the index at all. |
| 330 | This has been fixed. |
| 331 | |
| 332 | * Killing "git merge --edit" before the editor returns control left |
| 333 | the repository in a state with MERGE_MSG but without MERGE_HEAD, |
| 334 | which incorrectly tells the subsequent "git commit" that there was |
| 335 | a squash merge in progress. This has been fixed. |
| 336 | |
| 337 | * "git archive" did not work well with pathspecs and the |
| 338 | export-ignore attribute. |
| 339 | |
| 340 | * In addition to "cc: <a@dd.re.ss> # cruft", "cc: a@dd.re.ss # cruft" |
| 341 | was taught to "git send-email" as a valid way to tell it that it |
| 342 | needs to also send a carbon copy to <a@dd.re.ss> in the trailer |
| 343 | section. |
| 344 | |
| 345 | * "git branch -M a b" while on a branch that is completely unrelated |
| 346 | to either branch a or branch b misbehaved when multiple worktree |
| 347 | was in use. This has been fixed. |
| 348 | (merge 31824d180d nd/worktree-kill-parse-ref later to maint). |
| 349 | |
| 350 | * "git gc" and friends when multiple worktrees are used off of a |
| 351 | single repository did not consider the index and per-worktree refs |
| 352 | of other worktrees as the root for reachability traversal, making |
| 353 | objects that are in use only in other worktrees to be subject to |
| 354 | garbage collection. |
| 355 | |
| 356 | * A regression to "gitk --bisect" by a recent update has been fixed. |
| 357 | |
| 358 | * "git -c submodule.recurse=yes pull" did not work as if the |
| 359 | "--recurse-submodules" option was given from the command line. |
| 360 | This has been corrected. |
| 361 | |
| 362 | * Unlike "git commit-tree < file", "git commit-tree -F file" did not |
| 363 | pass the contents of the file verbatim and instead completed an |
| 364 | incomplete line at the end, if exists. The latter has been updated |
| 365 | to match the behaviour of the former. |
| 366 | |
| 367 | * Many codepaths did not diagnose write failures correctly when disks |
| 368 | go full, due to their misuse of write_in_full() helper function, |
| 369 | which have been corrected. |
| 370 | (merge f48ecd38cb jk/write-in-full-fix later to maint). |
| 371 | |
| 372 | * "git help co" now says "co is aliased to ...", not "git co is". |
| 373 | (merge b3a8076e0d ks/help-alias-label later to maint). |
| 374 | |
| 375 | * "git archive", especially when used with pathspec, stored an empty |
| 376 | directory in its output, even though Git itself never does so. |
| 377 | This has been fixed. |
| 378 | |
| 379 | * API error-proofing which happens to also squelch warnings from GCC. |
| 380 | |
| 381 | * The explanation of the cut-line in the commit log editor has been |
| 382 | slightly tweaked. |
| 383 | (merge 8c4b1a3593 ks/commit-do-not-touch-cut-line later to maint). |
| 384 | |
| 385 | * "git gc" tries to avoid running two instances at the same time by |
| 386 | reading and writing pid/host from and to a lock file; it used to |
| 387 | use an incorrect fscanf() format when reading, which has been |
| 388 | corrected. |
| 389 | |
| 390 | * The scripts to drive TravisCI has been reorganized and then an |
| 391 | optimization to avoid spending cycles on a branch whose tip is |
| 392 | tagged has been implemented. |
| 393 | (merge 8376eb4a8f ls/travis-scriptify later to maint). |
| 394 | |
| 395 | * The test linter has been taught that we do not like "echo -e". |
| 396 | |
| 397 | * Code cmp.std.c nitpick. |
| 398 | |
| 399 | * A regression fix for 2.11 that made the code to read the list of |
| 400 | alternate object stores overrun the end of the string. |
| 401 | (merge f0f7bebef7 jk/info-alternates-fix later to maint). |
| 402 | |
| 403 | * "git describe --match" learned to take multiple patterns in v2.13 |
| 404 | series, but the feature ignored the patterns after the first one |
| 405 | and did not work at all. This has been fixed. |
| 406 | |
| 407 | * "git filter-branch" cannot reproduce a history with a tag without |
| 408 | the tagger field, which only ancient versions of Git allowed to be |
| 409 | created. This has been corrected. |
| 410 | (merge b2c1ca6b4b ic/fix-filter-branch-to-handle-tag-without-tagger later to maint). |
| 411 | |
| 412 | * "git cat-file --textconv" started segfaulting recently, which |
| 413 | has been corrected. |
| 414 | |
| 415 | * The built-in pattern to detect the "function header" for HTML did |
| 416 | not match <H1>..<H6> elements without any attributes, which has |
| 417 | been fixed. |
| 418 | |
| 419 | * "git mailinfo" was loose in decoding quoted printable and produced |
| 420 | garbage when the two letters after the equal sign are not |
| 421 | hexadecimal. This has been fixed. |
| 422 | |
| 423 | * The machinery to create xdelta used in pack files received the |
| 424 | sizes of the data in size_t, but lost the higher bits of them by |
| 425 | storing them in "unsigned int" during the computation, which is |
| 426 | fixed. |
| 427 | |
| 428 | * The delta format used in the packfile cannot reference data at |
| 429 | offset larger than what can be expressed in 4-byte, but the |
| 430 | generator for the data failed to make sure the offset does not |
| 431 | overflow. This has been corrected. |
| 432 | |
| 433 | * The documentation for '-X<option>' for merges was misleadingly |
| 434 | written to suggest that "-s theirs" exists, which is not the case. |
| 435 | |
| 436 | * "git fast-export" with -M/-C option issued "copy" instruction on a |
| 437 | path that is simultaneously modified, which was incorrect. |
| 438 | (merge b3e8ca89cf jt/fast-export-copy-modify-fix later to maint). |
| 439 | |
| 440 | * Many codepaths have been updated to squelch -Wsign-compare |
| 441 | warnings. |
| 442 | (merge 071bcaab64 rj/no-sign-compare later to maint). |
| 443 | |
| 444 | * Memory leaks in various codepaths have been plugged. |
| 445 | (merge 4d01a7fa65 ma/leakplugs later to maint). |
| 446 | |
| 447 | * Recent versions of "git rev-parse --parseopt" did not parse the |
| 448 | option specification that does not have the optional flags (*=?!) |
| 449 | correctly, which has been corrected. |
| 450 | (merge a6304fa4c2 bc/rev-parse-parseopt-fix later to maint). |
| 451 | |
| 452 | * The checkpoint command "git fast-import" did not flush updates to |
| 453 | refs and marks unless at least one object was created since the |
| 454 | last checkpoint, which has been corrected, as these things can |
| 455 | happen without any new object getting created. |
| 456 | (merge 30e215a65c er/fast-import-dump-refs-on-checkpoint later to maint). |
| 457 | |
| 458 | * Spell the name of our system as "Git" in the output from |
| 459 | request-pull script. |
| 460 | |
| 461 | * Fixes for a handful memory access issues identified by valgrind. |
| 462 | |
| 463 | * Backports a moral equivalent of 2015 fix to the poll() emulation |
| 464 | from the upstream gnulib to fix occasional breakages on HPE NonStop. |
| 465 | |
| 466 | * Users with "color.ui = always" in their configuration were broken |
| 467 | by a recent change that made plumbing commands to pay attention to |
| 468 | them as the patch created internally by "git add -p" were colored |
| 469 | (heh) and made unusable. This has been fixed by reverting the |
| 470 | offending change. |
| 471 | |
| 472 | * In the "--format=..." option of the "git for-each-ref" command (and |
| 473 | its friends, i.e. the listing mode of "git branch/tag"), "%(atom:)" |
| 474 | (e.g. "%(refname:)", "%(body:)" used to error out. Instead, treat |
| 475 | them as if the colon and an empty string that follows it were not |
| 476 | there. |
| 477 | |
| 478 | * An ancient bug that made Git misbehave with creation/renaming of |
| 479 | refs has been fixed. |
| 480 | |
| 481 | * "git fetch <there> <src>:<dst>" allows an object name on the <src> |
| 482 | side when the other side accepts such a request since Git v2.5, but |
| 483 | the documentation was left stale. |
| 484 | (merge 83558a412a jc/fetch-refspec-doc-update later to maint). |
| 485 | |
| 486 | * Update the documentation for "git filter-branch" so that the filter |
| 487 | options are listed in the same order as they are applied, as |
| 488 | described in an earlier part of the doc. |
| 489 | (merge 07c4984508 dg/filter-branch-filter-order-doc later to maint). |
| 490 | |
| 491 | * A possible oom error is now caught as a fatal error, instead of |
| 492 | continuing and dereferencing NULL. |
| 493 | (merge 55d7d15847 ao/path-use-xmalloc later to maint). |
| 494 | |
| 495 | * Other minor doc, test and build updates and code cleanups. |
| 496 | (merge f094b89a4d ma/parse-maybe-bool later to maint). |
| 497 | (merge 6cdf8a7929 ma/ts-cleanups later to maint). |
| 498 | (merge 7560f547e6 ma/up-to-date later to maint). |
| 499 | (merge 0db3dc75f3 rs/apply-epoch later to maint). |
| 500 | (merge 276d0e35c0 ma/split-symref-update-fix later to maint). |
| 501 | (merge f777623514 ks/branch-tweak-error-message-for-extra-args later to maint). |
| 502 | (merge 33f3c683ec ks/verify-filename-non-option-error-message-tweak later to maint). |
| 503 | (merge 7cbbf9d6a2 ls/filter-process-delayed later to maint). |
| 504 | (merge 488aa65c8f wk/merge-options-gpg-sign-doc later to maint). |
| 505 | (merge e61cb19a27 jc/branch-force-doc-readability-fix later to maint). |
| 506 | (merge 32fceba3fd np/config-path-doc later to maint). |
| 507 | (merge e38c681fb7 sb/rev-parse-show-superproject-root later to maint). |
| 508 | (merge 4f851dc883 sg/rev-list-doc-reorder-fix later to maint). |