Fifth batch for 2.20

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Junio C Hamano committed Oct 19, 2018 at 13:52 UTC c4df23f7927d8d00e666a3c8d1b3375f1dc8a3c1
1 file changed +82
Documentation/RelNotes/2.20.0.txt
+82
@@ -14,6 +14,9 @@ Backward Compatibility Notes
14 which means some fetches of tags that did not fail with older
15 version of Git will fail without "--force" with this version.
16
17 + * "git help -a" now gives verbose output (same as "git help -av").
18 + Those who want the old output may say "git help --no-verbose -a"..
19 +
20
21 Updates since v2.19
22 -------------------
@@ -69,6 +72,35 @@ UI, Workflows & Features
72 * The completion script (in contrib/) learned to complete a handful of
73 options "git stash list" command takes.
74
75 + * The completion script (in contrib/) learned that "git fetch
76 + --multiple" only takes remote names as arguments and no refspecs.
77 +
78 + * "git status" learns to show progress bar when refreshing the index
79 + takes a long time.
80 + (merge ae9af12287 nd/status-refresh-progress later to maint).
81 +
82 + * "git help -a" and "git help -av" give different pieces of
83 + information, and generally the "verbose" version is more friendly
84 + to the new users. "git help -a" by default now uses the more
85 + verbose output (with "--no-verbose", you can go back to the
86 + original). Also "git help -av" now lists aliases and external
87 + commands, which it did not used to.
88 +
89 + * Unlike "grep", "git grep" by default recurses to the whole tree.
90 + The command learned "git grep --recursive" option, so that "git
91 + grep --no-recursive" can serve as a synonym to setting the
92 + max-depth to 0.
93 +
94 + * When pushing into a repository that borrows its objects from an
95 + alternate object store, "git receive-pack" that responds to the
96 + push request on the other side lists the tips of refs in the
97 + alternate to reduce the amount of objects transferred. This
98 + sometimes is detrimental when the number of refs in the alternate
99 + is absurdly large, in which case the bandwidth saved in potentially
100 + fewer objects transferred is wasted in excessively large ref
101 + advertisement. The alternate refs that are advertised are now
102 + configurable with a pair of configuration variables.
103 +
104
105 Performance, Internal Implementation, Development Support etc.
106
@@ -132,6 +164,38 @@ Performance, Internal Implementation, Development Support etc.
164 point running gc to improve the situation); we used to exit with
165 failure in such a case.
166
167 + * Various codepaths in the core-ish part learned to work on an
168 + arbitrary in-core index structure, not necessarily the default
169 + instance "the_index".
170 + (merge b3c7eef9b0 nd/the-index later to maint).
171 +
172 + * Code clean-up in the internal machinery used by "git status" and
173 + "git commit --dry-run".
174 + (merge 73ba5d78b4 ss/wt-status-committable later to maint).
175 +
176 + * Some environment variables that control the runtime options of Git
177 + used during tests are getting renamed for consistency.
178 + (merge 4231d1ba99 bp/rename-test-env-var later to maint).
179 +
180 + * A new extension to the index file has been introduced, which allows
181 + the index file to be read in parallel for performance.
182 +
183 + * The oidset API was built on top of the oidmap API which in turn is
184 + on the hashmap API. Replace the implementation to build on top of
185 + the khash API and gain performance.
186 +
187 + * Over some transports, fetching objects with an exact commit object
188 + name can be done without first seeing the ref advertisements. The
189 + code has been optimized to exploit this.
190 +
191 + * In a partial clone that will lazily be hydrated from the
192 + originating repository, we generally want to avoid "does this
193 + object exist (locally)?" on objects that we deliberately omitted
194 + when we created the clone. The cache-tree codepath (which is used
195 + to write a tree object out of the index) however insisted that the
196 + object exists, even for paths that are outside of the partial
197 + checkout area. The code has been updated to avoid such a check.
198 +
199
200 Fixes since v2.19
201 -----------------
@@ -209,6 +273,23 @@ Fixes since v2.19
273 used for the first run, which has been corrected.
274 (merge 3e73cc62c0 en/status-multiple-renames-to-the-same-target-fix later to maint).
275
276 + * "git fetch $repo $object" in a partial clone did not correctly
277 + fetch the asked-for object that is referenced by an object in
278 + promisor packfile, which has been fixed.
279 +
280 + * A corner-case bugfix.
281 + (merge c5cbb27cb5 sm/show-superproject-while-conflicted later to maint).
282 +
283 + * Various fixes to "diff --color-moved-ws".
284 +
285 + * A partial clone that is configured to lazily fetch missing objects
286 + will on-demand issue a "git fetch" request to the originating
287 + repository to fill not-yet-obtained objects. The request has been
288 + optimized for requesting a tree object (and not the leaf blob
289 + objects contained in it) by telling the originating repository that
290 + no blobs are needed.
291 + (merge 4c7f9567ea jt/non-blob-lazy-fetch later to maint).
292 +
293 * Code cleanup, docfix, build fix, etc.
294 (merge 96a7501aad ts/doc-build-manpage-xsl-quietly later to maint).
295 (merge b9b07efdb2 tg/conflict-marker-size later to maint).
@@ -231,3 +312,4 @@ Fixes since v2.19
312 (merge c56170a0c4 ma/mailing-list-address-in-git-help later to maint).
313 (merge 6e8fc70fce rs/sequencer-oidset-insert-avoids-dups later to maint).
314 (merge ad0b8f9575 mw/doc-typofixes later to maint).
315 + (merge d9f079ad1a jc/how-to-document-api later to maint).