1Git 2.19 Release Notes 2====================== 3 4Updates since v2.18 5------------------- 6 7UI, Workflows & Features 8 9 * "git diff" compares the index and the working tree. For paths 10 added with intent-to-add bit, the command shows the full contents 11 of them as added, but the paths themselves were not marked as new 12 files. They are now shown as new by default. 13 14 "git apply" learned the "--intent-to-add" option so that an 15 otherwise working-tree-only application of a patch will add new 16 paths to the index marked with the "intent-to-add" bit. 17 18 19Performance, Internal Implementation, Development Support etc. 20 21 * The bulk of "git submodule foreach" has been rewritten in C. 22 23 * The in-core "commit" object had an all-purpose "void *util" field, 24 which was tricky to use especially in library-ish part of the 25 code. All of the existing uses of the field has been migrated to a 26 more dedicated "commit-slab" mechanism and the field is eliminated. 27 28 * A less often used command "git show-index" has been modernized. 29 (merge fb3010c31f jk/show-index later to maint). 30 31 * The conversion to pass "the_repository" and then "a_repository" 32 throughout the object access API continues. 33 34 * Continuing with the idea to programatically enumerate various 35 pieces of data required for command line completion, teach the 36 codebase to report the list of configuration variables 37 subcommands care about to help complete them. 38 39 * Separate "rebase -p" codepath out of "rebase -i" implementation to 40 slim down the latter and make it easier to manage. 41 42 * Make refspec parsing codepath more robust. 43 44 * Some flaky tests have been fixed. 45 46 * Continuing with the idea to programmatically enumerate various 47 pieces of data required for command line completion, the codebase 48 has been taught to enumerate options prefixed with "--no-" to 49 negate them. 50 51 * Build and test procedure for netrc credential helper (in contrib/) 52 has been updated. 53 54 55Fixes since v2.18 56----------------- 57 58 * "git remote update" can take both a single remote nickname and a 59 nickname for remote groups, and the completion script (in contrib/) 60 has been taught about it. 61 (merge 9cd4382ad5 ls/complete-remote-update-names later to maint). 62 63 * "git fetch --shallow-since=<cutoff>" that specifies the cut-off 64 point that is newer than the existing history used to end up 65 grabbing the entire history. Such a request now errors out. 66 (merge e34de73c56 nd/reject-empty-shallow-request later to maint). 67 68 * Fix for 2.17-era regression around `core.safecrlf`. 69 (merge 6cb09125be as/safecrlf-quiet-fix later to maint). 70 71 * The recent addition of "partial clone" experimental feature kicked 72 in when it shouldn't, namely, when there is no partial-clone filter 73 defined even if extensions.partialclone is set. 74 (merge cac1137dc4 jh/partial-clone later to maint). 75 76 * "git send-pack --signed" (hence "git push --signed" over the http 77 transport) did not read user ident from the config mechanism to 78 determine whom to sign the push certificate as, which has been 79 corrected. 80 (merge d067d98887 ms/send-pack-honor-config later to maint). 81 82 * "git fetch-pack --all" used to unnecessarily fail upon seeing an 83 annotated tag that points at an object other than a commit. 84 (merge c12c9df527 jk/fetch-all-peeled-fix later to maint). 85 86 * When user edits the patch in "git add -p" and the user's editor is 87 set to strip trailing whitespaces indiscriminately, an empty line 88 that is unchanged in the patch would become completely empty 89 (instead of a line with a sole SP on it). The code introduced in 90 Git 2.17 timeframe failed to parse such a patch, but now it learned 91 to notice the situation and cope with it. 92 (merge f4d35a6b49 pw/add-p-recount later to maint). 93 94 * The code to try seeing if a fetch is necessary in a submodule 95 during a fetch with --recurse-submodules got confused when the path 96 to the submodule was changed in the range of commits in the 97 superproject, sometimes showing "(null)". This has been corrected. 98 99 * Code cleanup. 100 (merge aee9be2ebe sg/update-ref-stdin-cleanup later to maint). 101 (merge 037714252f jc/clean-after-sanity-tests later to maint).