What's cooking (2016/08 #08)

Junio C Hamano committed Aug 24, 2016 at 14:15 UTC 38104d3d3108c95a87f3b4bd59a9ce7a2e2e7900
1 file changed +223 -137
whats-cooking.txt
+223 -137
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Aug 2016, #07; Thu, 18)
4 -X-master-at: d63263a4dee8fc7da9b97bbdedf9c0d1f33024d4
5 -X-next-at: 8e4bfbdedf0822fce7bdef0dcc37482a8deb3aca
3 +Subject: What's cooking in git.git (Aug 2016, #08; Wed, 24)
4 +X-master-at: 2632c897f74b1cc9b5533f467da459b9ec725538
5 +X-next-at: 3a084aaf40d3898679a48d19dac63e45ecde4cc7
6
7 -What's cooking in git.git (Aug 2016, #07; Thu, 18)
7 +What's cooking in git.git (Aug 2016, #08; Wed, 24)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,8 +12,15 @@ Here are the topics that have been cooking. Commits prefixed with
12 '+' are in 'next'. The ones marked with '.' do not appear in any of
13 the integration branches, but I am still holding onto them.
14
15 -The preview for the upcoming 2.10 release has been tagged as
16 -v2.10.0-rc0.
15 +v2.10.0-rc1 was tagged last week, then I got sick and lost an entire
16 +day. I've merged a handful more topics to 'next' and marked 5 among
17 +them to be merged to 'master' by -rc2. A notable is the ja/i18n
18 +topic, which hopefully will reduce the translator's load somewhat.
19 +Also the change to arrange the file-descriptors to the tempfile be
20 +closed for subprocesses to avoid deadlocks on Windows is also in;
21 +even though it is not a new problem, the fix looked safe enough.
22 +Linus's "32-bit GPG key-ids are so last century" change is already
23 +in, as reported in the 2.10.0-rc1 announcement.
24
25 You can find the changes described here in the integration branches
26 of the repositories listed at
@@ -23,60 +30,62 @@ of the repositories listed at
30 --------------------------------------------------
31 [Graduated to "master"]
32
26 -* jk/tighten-alloc (2016-08-13) 2 commits
27 - (merged to 'next' on 2016-08-16 at 5399351)
28 - + receive-pack: use FLEX_ALLOC_MEM in queue_command()
29 - + correct FLEXPTR_* example in comment
30 -
31 - Small code and comment clean-up.
32 -
33 -
34 -* js/test-lint-pathname (2016-08-16) 1 commit
35 - (merged to 'next' on 2016-08-16 at d154f90)
36 - + t/Makefile: ensure that paths are valid on platforms we care
33 +* ab/hooks (2016-08-16) 1 commit
34 + (merged to 'next' on 2016-08-17 at b56e55d)
35 + + rev-parse: respect core.hooksPath in --git-path
36
38 - The "t/" hierarchy is prone to get an unusual pathname; "make test"
39 - has been taught to make sure they do not contain paths that cannot
40 - be checked out on Windows (and the mechanism can be reusable to
41 - catch pathnames that are not portable to other platforms as need
42 - arises).
37 + "git rev-parse --git-path hooks/<hook>" learned to take
38 + core.hooksPath configuration variable (introduced during 2.9 cycle)
39 + into account.
40
41
45 -* rs/mailinfo-lib (2016-08-13) 1 commit
46 - (merged to 'next' on 2016-08-16 at 14101e3)
47 - + mailinfo: recycle strbuf in check_header()
42 +* jk/difftool-command-not-found (2016-08-15) 1 commit
43 + (merged to 'next' on 2016-08-17 at 32baf03)
44 + + difftool: always honor fatal error exit codes
45
49 - Small code clean-up.
46 + "git difftool" by default ignores the error exit from the backend
47 + commands it spawns, because often they signal that they found
48 + differences by exiting with a non-zero status code just like "diff"
49 + does; the exit status codes 126 and above however are special in
50 + that they are used to signal that the command is not executable,
51 + does not exist, or killed by a signal. "git difftool" has been
52 + taught to notice these exit status codes.
53
54
52 -* sg/reflog-past-root (2016-08-15) 1 commit
53 - (merged to 'next' on 2016-08-16 at ee997a5)
54 - + t1410: remove superfluous 'git reflog' from the 'walk past root' test
55 +* lt/gpg-show-long-key-in-signature-verification (2016-08-16) 1 commit
56 + (merged to 'next' on 2016-08-17 at 1ee8a00)
57 + + Merge branch 'lt/gpg-show-long-key-in-signature-verification-maint' into lt/gpg-show-long-key-in-signature-verification
58 + (this branch uses lt/gpg-show-long-key-in-signature-verification-maint.)
59
56 - A small test clean-up for a topic introduced in v2.9.1 and later.
60 + "git log --show-signature" and other commands that display the
61 + verification status of PGP signature now shows the longer key-id,
62 + as 32-bit key-id is so last century.
63
64 + A last-minute merge of this topic was a bit scary but I made sure
65 + push-certificate codepath would not be negatively affected.
66
59 -* va/i18n (2016-08-12) 3 commits
60 - (merged to 'next' on 2016-08-16 at 6a06cd3)
61 - + t7411: become resilient to GETTEXT_POISON
62 - + t5520: become resilient to GETTEXT_POISON
63 - + t3404: become resilient to GETTEXT_POISON
67
65 - A handful of tests that were broken under gettext-poison build have
66 - been fixed.
68 +* lt/gpg-show-long-key-in-signature-verification-maint (2016-08-16) 1 commit
69 + + gpg-interface: prefer "long" key format output when verifying pgp signatures
70 + (this branch is used by lt/gpg-show-long-key-in-signature-verification.)
71
68 ---------------------------------------------------
69 -[New Topics]
72 + "git log --show-signature" and other commands that display the
73 + verification status of PGP signature now shows the longer key-id,
74 + as 32-bit key-id is so last century. This is based on older
75 + codebase, just in case somebody wants to have it.
76
71 -* ab/hooks (2016-08-16) 1 commit
72 - (merged to 'next' on 2016-08-17 at b56e55d)
73 - + rev-parse: respect core.hooksPath in --git-path
77
75 - "git rev-parse --git-path hooks/<hook>" learned to take
76 - core.hooksPath configuration variable (introduced during 2.9 cycle)
77 - into account.
78 +* rs/pull-signed-tag (2016-08-13) 4 commits
79 + (merged to 'next' on 2016-08-17 at cecca71)
80 + + commit: use FLEX_ARRAY in struct merge_remote_desc
81 + + merge-recursive: fix verbose output for multiple base trees
82 + + commit: factor out set_merge_remote_desc()
83 + + commit: use xstrdup() in get_merge_parent()
84
79 - Will merge to 'master'.
85 + When "git merge-recursive" works on history with many criss-cross
86 + merges in "verbose" mode, the names the command assigns to the
87 + virtual merge bases could have overwritten each other by unintended
88 + reuse of the same piece of memory.
89
90
91 * sb/checkout-explit-detach-no-advice (2016-08-15) 1 commit
@@ -89,62 +98,134 @@ of the repositories listed at
98 an explicit enough sign that the user knows what is going on. The
99 advice message has been squelched in this case.
100
101 +
102 +* tb/t0027-raciness-fix (2016-08-14) 1 commit
103 + (merged to 'next' on 2016-08-17 at 39a6635)
104 + + convert: Correct NNO tests and missing `LF will be replaced by CRLF`
105 +
106 + The t0027 test for CRLF conversion was timing dependent and flaky.
107 +
108 +--------------------------------------------------
109 +[New Topics]
110 +
111 +* cc/receive-pack-limit (2016-08-24) 3 commits
112 + - receive-pack: allow a maximum input size to be specified
113 + - unpack-objects: add --max-input-size=<size> option
114 + - index-pack: add --max-input-size=<size> option
115 +
116 + An incoming "git push" that attempts to push too many bytes can now
117 + be rejected by setting a new configuration variable at the receiving
118 + end.
119 +
120 + Will merge to 'next'.
121 +
122 +
123 +* hv/doc-commit-reference-style (2016-08-17) 1 commit
124 + (merged to 'next' on 2016-08-24 at b187d45)
125 + + SubmittingPatches: document how to reference previous commits
126 +
127 + A small doc update.
128 +
129 Will merge to 'master'.
130
131
95 -* lt/gpg-show-long-key-in-signature-verification (2016-08-16) 1 commit
96 - (merged to 'next' on 2016-08-17 at 1ee8a00)
97 - + Merge branch 'lt/gpg-show-long-key-in-signature-verification-maint' into lt/gpg-show-long-key-in-signature-verification
98 - (this branch uses lt/gpg-show-long-key-in-signature-verification-maint.)
132 +* js/no-html-bypass-on-windows (2016-08-19) 1 commit
133 + (merged to 'next' on 2016-08-24 at 05728f8)
134 + + Revert "display HTML in default browser using Windows' shell API"
135
100 - "git log --show-signature" and other commands that display the
101 - verification status of PGP signature now shows the longer key-id,
102 - as 32-bit key-id is so last century.
136 + On Windows, help.browser configuration variable used to be ignored,
137 + which has been corrected.
138
139 Will merge to 'master'.
140
141
107 -* lt/gpg-show-long-key-in-signature-verification-maint (2016-08-16) 1 commit
108 - + gpg-interface: prefer "long" key format output when verifying pgp signatures
109 - (this branch is used by lt/gpg-show-long-key-in-signature-verification.)
142 +* dg/document-git-c-in-git-config-doc (2016-08-23) 1 commit
143 + (merged to 'next' on 2016-08-24 at a923eb0)
144 + + doc: mention `git -c` in git-config(1)
145
111 - "git log --show-signature" and other commands that display the
112 - verification status of PGP signature now shows the longer key-id,
113 - as 32-bit key-id is so last century. This is based on older
114 - codebase, just in case somebody wants to have it.
146 + The "git -c var[=val] cmd" facility to append a configuration
147 + variable definition at the end of the search order was described in
148 + git(1) manual page, but not in git-config(1), which was more likely
149 + place for people to look for when they ask "can I make a one-shot
150 + override, and if so how?"
151
152 + Will merge to 'master'.
153
117 -* ak/curl-imap-send-explicit-scheme (2016-08-17) 1 commit
118 - - imap-send: Tell cURL to use imap:// or imaps://
154
120 - When we started cURL to talk to imap server when a new enough
121 - version of cURL library is available, we forgot to explicitly add
122 - imap(s):// before the destination. To some folks, that didn't work
123 - and the library tried to make HTTP(s) requests instead.
155 +* jk/format-patch-number-singleton-patch-with-cover (2016-08-23) 1 commit
156 + - format-patch: show 0/1 and 1/1 for singleton patch with cover letter
157
125 - Needs review and testing.
158 + "git format-patch --cover-letter HEAD^" to format a single patch
159 + with a separate cover letter now numbers the output as [PATCH 0/1]
160 + and [PATCH 1/1] by default.
161
162 + Will merge to 'next'.
163
128 -* bw/mingw-avoid-inheriting-fd-to-lockfile (2016-08-18) 2 commits
129 - - mingw: ensure temporary file handles are not inherited by child processes
130 - - t6026-merge-attr: child processes must not inherit index.lock handles
164
132 - The tempfile (hence its user lockfile) API lets the caller to open
133 - a file descriptor to a temporary file, write into it and then
134 - finalize it by first closing the filehandle and then either
135 - removing or renaming the temporary file. When the process spawns a
136 - subprocess after obtaining the file descriptor, and if the
137 - subprocess has not exited when the attempt to remove or rename is
138 - made, the last step fails on Windows, because the subprocess has
139 - the file descriptor still open. Open tempfile with O_CLOEXEC flag
140 - to avoid this (on Windows, this is mapped to O_NOINHERIT).
165 +* cp/completion-negative-refs (2016-08-24) 1 commit
166 + - completion: support excluding refs
167
142 - It was pointed out that not everybody has O_CLOEXEC flag during the
143 - review.
168 + The command-line completion script (in contrib/) learned to
169 + complete "git cmd ^mas<HT>" to complete the negative end of
170 + reference to "git cmd ^master".
171
145 - Waiting for the review discussion to settle.
146 - cf. <20160818173555.GA29253@starla>
172 + Waiting for a review.
173 +
174 +
175 +* ja/i18n (2016-08-24) 3 commits
176 + (merged to 'next' on 2016-08-24 at 3a084aa)
177 + + i18n: simplify numeric error reporting
178 + + i18n: fix git rebase interactive commit messages
179 + + i18n: fix typos for translation
180 +
181 + The recent i18n patch we added during this cycle did a bit too much
182 + refactoring of the messages to avoid word-legos; the repetition has
183 + been reduced to help translators.
184 +
185 + Will merge to 'master'.
186 +
187 +
188 +* jk/delta-base-cache (2016-08-23) 7 commits
189 + - t/perf: add basic perf tests for delta base cache
190 + - delta_base_cache: use hashmap.h
191 + - delta_base_cache: drop special treatment of blobs
192 + - delta_base_cache: use list.h for LRU
193 + - release_delta_base_cache: reuse existing detach function
194 + - clear_delta_base_cache_entry: use a more descriptive name
195 + - cache_or_unpack_entry: drop keep_cache parameter
196 +
197 + The delta-base-cache mechanism has been a key to the performance in
198 + a repository with a tightly packed packfile, but it did not scale
199 + well even with a larger value of core.deltaBaseCacheLimit.
200 +
201 + Will merge to 'next'.
202 +
203 +
204 +* js/cat-file-filters (2016-08-24) 4 commits
205 + - cat-file: support --textconv/--filters in batch mode
206 + - cat-file --textconv/--filters: allow specifying the path separately
207 + - cat-file: introduce the --filters option
208 + - cat-file: fix a grammo in the man page
209
210 + Even though "git hash-objects", which is a tool to take an
211 + on-filesystem data stream and put it into the Git object store,
212 + allowed to perform the "outside-world-to-Git" conversions (e.g.
213 + end-of-line conversions and application of the clean-filter), and
214 + it had the feature on by default from very early days, its reverse
215 + operation "git cat-file", which takes an object from the Git object
216 + store and externalize for the consumption by the outside world,
217 + lacked an equivalent mechanism to run the "Git-to-outside-world"
218 + conversion. The command learned the "--filters" option to do so.
219 +
220 +
221 +* sb/push-make-submodule-check-the-default (2016-08-24) 1 commit
222 + - push: change submodule default to check
223 +
224 + Turn the default of "push.recurseSubmodules" to "check".
225 +
226 + Alas, this reveals that the "check" mode is too inefficient to use
227 + in real projects.
228 + cf. <xmqqh9aaot49.fsf@gitster.mtv.corp.google.com>
229
230 --------------------------------------------------
231 [Stalled]
@@ -399,45 +480,44 @@ of the repositories listed at
480 --------------------------------------------------
481 [Cooking]
482
402 -* rt/help-unknown (2016-08-18) 2 commits
403 - - help: make option --help open man pages only for Git commands
404 - - help: introduce option --command-only
483 +* ak/curl-imap-send-explicit-scheme (2016-08-17) 1 commit
484 + - imap-send: Tell cURL to use imap:// or imaps://
485
406 - "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
407 - which was not intuitive, given that "git nosuchcommand" said "git:
408 - 'nosuchcommand' is not a git command".
486 + When we started cURL to talk to imap server when a new enough
487 + version of cURL library is available, we forgot to explicitly add
488 + imap(s):// before the destination. To some folks, that didn't work
489 + and the library tried to make HTTP(s) requests instead.
490
410 - Will merge to 'next'.
491 + Needs review and testing.
492
493
413 -* jk/difftool-command-not-found (2016-08-15) 1 commit
414 - (merged to 'next' on 2016-08-17 at 32baf03)
415 - + difftool: always honor fatal error exit codes
494 +* bw/mingw-avoid-inheriting-fd-to-lockfile (2016-08-23) 2 commits
495 + (merged to 'next' on 2016-08-24 at 8389b0e)
496 + + mingw: ensure temporary file handles are not inherited by child processes
497 + + t6026-merge-attr: child processes must not inherit index.lock handles
498
417 - "git difftool" by default ignores the error exit from the backend
418 - commands it spawns, because often they signal that they found
419 - differences by exiting with a non-zero status code just like "diff"
420 - does; the exit status codes 126 and above however are special in
421 - that they are used to signal that the command is not executable,
422 - does not exist, or killed by a signal. "git difftool" has been
423 - taught to notice these exit status codes.
499 + The tempfile (hence its user lockfile) API lets the caller to open
500 + a file descriptor to a temporary file, write into it and then
501 + finalize it by first closing the filehandle and then either
502 + removing or renaming the temporary file. When the process spawns a
503 + subprocess after obtaining the file descriptor, and if the
504 + subprocess has not exited when the attempt to remove or rename is
505 + made, the last step fails on Windows, because the subprocess has
506 + the file descriptor still open. Open tempfile with O_CLOEXEC flag
507 + to avoid this (on Windows, this is mapped to O_NOINHERIT).
508
509 Will merge to 'master'.
510
511
428 -* rs/pull-signed-tag (2016-08-13) 4 commits
429 - (merged to 'next' on 2016-08-17 at cecca71)
430 - + commit: use FLEX_ARRAY in struct merge_remote_desc
431 - + merge-recursive: fix verbose output for multiple base trees
432 - + commit: factor out set_merge_remote_desc()
433 - + commit: use xstrdup() in get_merge_parent()
512 +* rt/help-unknown (2016-08-18) 2 commits
513 + - help: make option --help open man pages only for Git commands
514 + - help: introduce option --command-only
515
435 - When "git merge-recursive" works on history with many criss-cross
436 - merges in "verbose" mode, the names the command assigns to the
437 - virtual merge bases could have overwritten each other by unintended
438 - reuse of the same piece of memory.
516 + "git nosuchcommand --help" said "No manual entry for gitnosuchcommand",
517 + which was not intuitive, given that "git nosuchcommand" said "git:
518 + 'nosuchcommand' is not a git command".
519
440 - Will merge to 'master'.
520 + Waiting for the review discussion to settle.
521
522
523 * po/range-doc (2016-08-13) 12 commits
@@ -460,25 +540,22 @@ of the repositories listed at
540 Waiting for the review discussion to settle.
541
542
463 -* tb/t0027-raciness-fix (2016-08-14) 1 commit
464 - (merged to 'next' on 2016-08-17 at 39a6635)
465 - + convert: Correct NNO tests and missing `LF will be replaced by CRLF`
466 -
467 - The t0027 test for CRLF conversion was timing dependent and flaky.
468 -
469 - Will merge to 'master'.
470 -
471 -
472 -* jk/diff-submodule-diff-inline (2016-08-16) 3 commits
473 - - diff: add SUBMODULE_DIFF format to display submodule diff
543 +* jk/diff-submodule-diff-inline (2016-08-23) 8 commits
544 + - diff: teach diff to display submodule difference with an inline diff
545 + - submodule: refactor show_submodule_summary with helper function
546 + - submodule: convert show_submodule_summary to use struct object_id *
547 + - allow do_submodule_path to work even if submodule isn't checked out
548 + - diff: prepare for additional submodule formats
549 - graph: add support for --line-prefix on all graph-aware output
550 - diff.c: remove output_prefix_length field
551 + - cache: add empty_tree_oid object and helper function
552
553 The "git diff --submodule={short,log}" mechanism has been enhanced
554 to allow "--submodule=diff" to show the patch between the submodule
555 commits bound to the superproject.
556
481 - Still being worked on.
557 + Waiting for the review discussion to settle.
558 + I think it is getting there.
559
560
561 * jk/reduce-gc-aggressive-depth (2016-08-11) 1 commit
@@ -535,15 +612,13 @@ of the repositories listed at
612 Any more comments?
613
614
538 -* mh/diff-indent-heuristic (2016-08-04) 8 commits
615 +* mh/diff-indent-heuristic (2016-08-23) 6 commits
616 - diff: improve positioning of add/delete blocks in diffs
540 - - is_blank_line: take a single xrecord_t as argument
541 - - xdl_change_compact(): keep track of the earliest end
542 - - xdl_change_compact(): fix compaction heuristic to adjust io
543 - - xdl_change_compact(): do one final shift or the other, not both
544 - - xdl_change_compact(): rename i to end
545 - - xdl_change_compact(): clarify code
546 - - xdl_change_compact(): rename some local variables for clarity
617 + - xdl_change_compact(): introduce the concept of a change group
618 + - recs_match(): take two xrecord_t pointers as arguments
619 + - is_blank_line(): take a single xrecord_t as argument
620 + - xdl_change_compact(): only use heuristic if group can't be matched
621 + - xdl_change_compact(): fix compaction heuristic to adjust ixo
622
623 Output from "git diff" can be made easier to read by selecting
624 which lines are common and which lines are added/deleted
@@ -552,10 +627,8 @@ of the repositories listed at
627 experiment to find a good heuristics.
628
629 Waiting for the review discussion to settle.
555 - cf. <cover.1470259583.git.mhagger@alum.mit.edu>
556 - cf. <20160804072705.a53mospcccksiz4e@sigill.intra.peff.net>
557 - cf. <20160804075631.jakbi5dbsbxsqcpr@sigill.intra.peff.net>
630 cf. <29c40cdd-363a-df09-f9e2-fe9070bb8a9c@ramsayjones.plus.com>
631 + cf. <a27aa17e-f602-fc49-92b3-2198e4772e47@ramsayjones.plus.com>
632
633
634 * cc/apply-am (2016-08-11) 40 commits
@@ -608,7 +681,6 @@ of the repositories listed at
681 We are almost there.
682
683
611 -
684 * jk/pack-objects-optim-mru (2016-08-11) 4 commits
685 (merged to 'next' on 2016-08-11 at c0a7dae)
686 + pack-objects: use mru list when iterating over packs
@@ -767,7 +839,21 @@ of the repositories listed at
839 would think.
840
841
770 -* pb/bisect (2016-08-12) 13 commits
842 +* pb/bisect (2016-08-23) 27 commits
843 + . bisect--helper: remove the dequote in bisect_start()
844 + . bisect--helper: retire `--bisect-auto-next` subcommand
845 + . bisect--helper: retire `--bisect-autostart` subcommand
846 + . bisect--helper: retire `--check-and-set-terms` subcommand
847 + . bisect--helper: retire `--bisect-write` subcommand
848 + . bisect--helper: `bisect_replay` shell function in C
849 + . bisect--helper: `bisect_log` shell function in C
850 + . bisect--helper: retire `--write-terms` subcommand
851 + . bisect--helper: retire `--check-expected-revs` subcommand
852 + . bisect--helper: `bisect_state` & `bisect_head` shell function in C
853 + . bisect--helper: `bisect_autostart` shell function in C
854 + . bisect--helper: retire `--next-all` subcommand
855 + . bisect--helper: retire `--bisect-clean-state` subcommand
856 + . bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
857 . bisect--helper: `bisect_start` shell function partially in C
858 . bisect--helper: `get_terms` & `bisect_terms` shell function in C
859 . bisect--helper: `bisect_next_check` & bisect_voc shell function in C
@@ -812,7 +898,7 @@ of the repositories listed at
898 with the more generic ref-filter API.
899
900 Rerolled.
815 - This also really needs review.
901 + Needs review.
902
903
904 * jc/merge-drop-old-syntax (2015-04-29) 1 commit