@@ -133,6 +133,16 @@ Performance, Internal Implementation, Development Support etc.
133133 * The codepath in "git fsck" to detect malformed tree objects has
134134 been updated not to die but keep going after detecting them.
135135
136+ * We call "qsort(array, nelem, sizeof(array[0]), fn)", and most of
137+ the time third parameter is redundant. A new QSORT() macro lets us
138+ omit it.
139+
140+ * "git pack-objects" in a repository with many packfiles used to
141+ spend a lot of time looking for/at objects in them; the accesses to
142+ the packfiles are now optimized by checking the most-recently-used
143+ packfile first.
144+ (merge c9af708b1a jk/pack-objects-optim-mru later to maint).
145+
136146
137147Also contains various documentation updates and code clean-ups.
138148
@@ -174,35 +184,28 @@ notes for details).
174184 we are sending an object C, we want a tag B that directly points at
175185 C but also a tag A that points at the tag B. We used to miss the
176186 intermediate tag B in some cases.
177- (merge b773dde jk/pack-tag-of-tag later to maint).
178187
179188 * Update Japanese translation for "git-gui".
180- (merge 02748bc sy/git-gui-i18n-ja later to maint).
181189
182190 * "git fetch http::/site/path" did not die correctly and segfaulted
183191 instead.
184- (merge d63ed6e jk/fix-remote-curl-url-wo-proto later to maint).
185192
186193 * "git commit-tree" stopped reading commit.gpgsign configuration
187194 variable that was meant for Porcelain "git commit" in Git 2.9; we
188195 forgot to update "git gui" to look at the configuration to match
189196 this change.
190- (merge f14a310 js/git-gui-commit-gpgsign later to maint).
191197
192198 * "git add --chmod=+x" added recently lacked documentation, which has
193199 been corrected.
194- (merge 7ef7903 et/add-chmod-x later to maint).
195200
196201 * "git log --cherry-pick" used to include merge commits as candidates
197202 to be matched up with other commits, resulting a lot of wasted time.
198203 The patch-id generation logic has been updated to ignore merges to
199204 avoid the wastage.
200- (merge 7c81040 jk/patch-ids-no-merges later to maint).
201205
202206 * The http transport (with curl-multi option, which is the default
203207 these days) failed to remove curl-easy handle from a curlm session,
204208 which led to unnecessary API failures.
205- (merge 2abc848 ew/http-do-not-forget-to-call-curl-multi-remove-handle later to maint).
206209
207210 * There were numerous corner cases in which the configuration files
208211 are read and used or not read at all depending on the directory a
@@ -221,13 +224,11 @@ notes for details).
221224 * Performance tests done via "t/perf" did not use the same set of
222225 build configuration if the user relied on autoconf generated
223226 configuration.
224- (merge cd5c281 ks/perf-build-with-autoconf later to maint).
225227
226228 * "git format-patch --base=..." feature that was recently added
227229 showed the base commit information after "-- " e-mail signature
228230 line, which turned out to be inconvenient. The base information
229231 has been moved above the signature line.
230- (merge 480871e jt/format-patch-base-info-above-sig later to maint).
231232
232233 * More i18n.
233234 (merge 43073f8 va/i18n later to maint).
@@ -239,21 +240,18 @@ notes for details).
239240 than nice. As the underlying commands used inside "git rebase"
240241 would fail with a more meaningful error message and advice text
241242 when the bogus ident matters, this extra check was removed.
242- (merge 1e461c4 jk/rebase-i-drop-ident-check later to maint).
243243
244244 * "git gc --aggressive" used to limit the delta-chain length to 250,
245245 which is way too deep for gaining additional space savings and is
246246 detrimental for runtime performance. The limit has been reduced to
247247 50.
248- (merge 07e7dbf jk/reduce-gc-aggressive-depth later to maint).
249248
250249 * Documentation for individual configuration variables to control use
251250 of color (like `color.grep`) said that their default value is
252251 'false', instead of saying their default is taken from `color.ui`.
253252 When we updated the default value for color.ui from 'false' to
254253 'auto' quite a while ago, all of them broke. This has been
255254 corrected.
256- (merge 14d16e2 mm/config-color-ui-default-to-auto later to maint).
257255
258256 * The pretty-format specifier "%C(auto)" used by the "log" family of
259257 commands to enable coloring of the output is taught to also issue a
@@ -262,15 +260,13 @@ notes for details).
262260
263261 * A shell script example in check-ref-format documentation has been
264262 fixed.
265- (merge 92dece7 ep/doc-check-ref-format-example later to maint).
266263
267264 * "git checkout <word>" does not follow the usual disambiguation
268265 rules when the <word> can be both a rev and a path, to allow
269266 checking out a branch 'foo' in a project that happens to have a
270267 file 'foo' in the working tree without having to disambiguate.
271268 This was poorly documented and the check was incorrect when the
272269 command was run from a subdirectory.
273- (merge b829b94 nd/checkout-disambiguation later to maint).
274270
275271 * Some codepaths in "git diff" used regexec(3) on a buffer that was
276272 mmap(2)ed, which may not have a terminating NUL, leading to a read
@@ -283,15 +279,12 @@ notes for details).
283279 internal directory structure we assumed HomeBrew uses, which was a
284280 no-no. The procedure has been updated to ask HomeBrew things we
285281 need to know to fix this.
286- (merge f86f49b ls/travis-homebrew-path-fix later to maint).
287282
288283 * When "git rebase -i" is given a broken instruction, it told the
289284 user to fix it with "--edit-todo", but didn't say what the step
290285 after that was (i.e. "--continue").
291- (merge 37875b4 rt/rebase-i-broken-insn-advise later to maint).
292286
293287 * Documentation around tools to import from CVS was fairly outdated.
294- (merge 106b672 jk/doc-cvs-update later to maint).
295288
296289 * "git clone --recurse-submodules" lost the progress eye-candy in
297290 recent update, which has been corrected.
@@ -311,7 +304,6 @@ notes for details).
311304 * In the codepath that comes up with the hostname to be used in an
312305 e-mail when the user didn't tell us, we looked at ai_canonname
313306 field in struct addrinfo without making sure it is not NULL first.
314- (merge c375a7efa3 jk/ident-ai-canonname-could-be-null later to maint).
315307
316308 * "git worktree", even though it used the default_abbrev setting that
317309 ought to be affected by core.abbrev configuration variable, ignored
@@ -361,12 +353,37 @@ notes for details).
361353 has seen a micro-optimization.
362354 (merge e94ce1394e sg/ref-filter-parse-optim later to maint).
363355
356+ * When we started cURL to talk to imap server when a new enough
357+ version of cURL library is available, we forgot to explicitly add
358+ imap(s):// before the destination. To some folks, that didn't work
359+ and the library tried to make HTTP(s) requests instead.
360+ (merge d2d07ab861 ak/curl-imap-send-explicit-scheme later to maint).
361+
362+ * The ./configure script generated from configure.ac was taught how
363+ to detect support of SSL by libcurl better.
364+ (merge 924b7eb1c9 dp/autoconf-curl-ssl later to maint).
365+
366+ * The command-line completion script (in contrib/) learned to
367+ complete "git cmd ^mas<HT>" to complete the negative end of
368+ reference to "git cmd ^master".
369+ (merge 49416ad22a cp/completion-negative-refs later to maint).
370+
371+ * The existing "git fetch --depth=<n>" option was hard to use
372+ correctly when making the history of an existing shallow clone
373+ deeper. A new option, "--deepen=<n>", has been added to make this
374+ easier to use. "git clone" also learned "--shallow-since=<date>"
375+ and "--shallow-exclude=<tag>" options to make it easier to specify
376+ "I am interested only in the recent N months worth of history" and
377+ "Give me only the history since that version".
378+ (merge cccf74e2da nd/shallow-deepen later to maint).
379+
380+ * It is a common mistake to say "git blame --reverse OLD path",
381+ expecting that the command line is dwimmed as if asking how lines
382+ in path in an old revision OLD have survived up to the current
383+ commit.
384+ (merge e1d09701a4 jc/blame-reverse later to maint).
385+
364386 * Other minor doc, test and build updates and code cleanups.
365- (merge e78d57e bw/pathspec-remove-unused-extern-decl later to maint).
366- (merge ce25e4c rs/checkout-some-states-are-const later to maint).
367- (merge a8342a4 rs/strbuf-remove-fix later to maint).
368- (merge b56aa5b rs/unpack-trees-reduce-file-scope-global later to maint).
369- (merge 5efc60c mr/vcs-svn-printf-ulong later to maint).
370387 (merge a22ae75 rs/cocci later to maint).
371388 (merge 45ccef87b3 rs/copy-array later to maint).
372389 (merge 8201688ecd dt/mailinfo later to maint).
0 commit comments