cache: update object ID functions for the_hash_algo
[git.git] / Documentation / RelNotes / 2.19.0.txt
blob2b45b6ff5cb3bf2980ad911b8c84179f27d8d72c
1 Git 2.19 Release Notes
2 ======================
4 Updates since v2.18
5 -------------------
7 UI, Workflows & Features
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.
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.
19 Performance, Internal Implementation, Development Support etc.
21  * The bulk of "git submodule foreach" has been rewritten in C.
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.
28  * A less often used command "git show-index" has been modernized.
29    (merge fb3010c31f jk/show-index later to maint).
31  * The conversion to pass "the_repository" and then "a_repository"
32    throughout the object access API continues.
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.
39  * Separate "rebase -p" codepath out of "rebase -i" implementation to
40    slim down the latter and make it easier to manage.
42  * Make refspec parsing codepath more robust.
44  * Some flaky tests have been fixed.
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.
51  * Build and test procedure for netrc credential helper (in contrib/)
52    has been updated.
55 Fixes since v2.18
56 -----------------
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).
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).
68  * Fix for 2.17-era regression around `core.safecrlf`.
69    (merge 6cb09125be as/safecrlf-quiet-fix later to maint).
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).
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).
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).
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).
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.
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).