From 38104d3d3108c95a87f3b4bd59a9ce7a2e2e7900 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 24 Aug 2016 14:15:40 -0700 Subject: [PATCH] What's cooking (2016/08 #08) --- whats-cooking.txt | 376 ++++++++++++++++++++++++++++------------------ 1 file changed, 231 insertions(+), 145 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index 687e9b5d4e..f48a0b3e71 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Aug 2016, #07; Thu, 18) -X-master-at: d63263a4dee8fc7da9b97bbdedf9c0d1f33024d4 -X-next-at: 8e4bfbdedf0822fce7bdef0dcc37482a8deb3aca +Subject: What's cooking in git.git (Aug 2016, #08; Wed, 24) +X-master-at: 2632c897f74b1cc9b5533f467da459b9ec725538 +X-next-at: 3a084aaf40d3898679a48d19dac63e45ecde4cc7 -What's cooking in git.git (Aug 2016, #07; Thu, 18) +What's cooking in git.git (Aug 2016, #08; Wed, 24) -------------------------------------------------- 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 '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. -The preview for the upcoming 2.10 release has been tagged as -v2.10.0-rc0. +v2.10.0-rc1 was tagged last week, then I got sick and lost an entire +day. I've merged a handful more topics to 'next' and marked 5 among +them to be merged to 'master' by -rc2. A notable is the ja/i18n +topic, which hopefully will reduce the translator's load somewhat. +Also the change to arrange the file-descriptors to the tempfile be +closed for subprocesses to avoid deadlocks on Windows is also in; +even though it is not a new problem, the fix looked safe enough. +Linus's "32-bit GPG key-ids are so last century" change is already +in, as reported in the 2.10.0-rc1 announcement. You can find the changes described here in the integration branches of the repositories listed at @@ -23,51 +30,6 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* jk/tighten-alloc (2016-08-13) 2 commits - (merged to 'next' on 2016-08-16 at 5399351) - + receive-pack: use FLEX_ALLOC_MEM in queue_command() - + correct FLEXPTR_* example in comment - - Small code and comment clean-up. - - -* js/test-lint-pathname (2016-08-16) 1 commit - (merged to 'next' on 2016-08-16 at d154f90) - + t/Makefile: ensure that paths are valid on platforms we care - - The "t/" hierarchy is prone to get an unusual pathname; "make test" - has been taught to make sure they do not contain paths that cannot - be checked out on Windows (and the mechanism can be reusable to - catch pathnames that are not portable to other platforms as need - arises). - - -* rs/mailinfo-lib (2016-08-13) 1 commit - (merged to 'next' on 2016-08-16 at 14101e3) - + mailinfo: recycle strbuf in check_header() - - Small code clean-up. - - -* sg/reflog-past-root (2016-08-15) 1 commit - (merged to 'next' on 2016-08-16 at ee997a5) - + t1410: remove superfluous 'git reflog' from the 'walk past root' test - - A small test clean-up for a topic introduced in v2.9.1 and later. - - -* va/i18n (2016-08-12) 3 commits - (merged to 'next' on 2016-08-16 at 6a06cd3) - + t7411: become resilient to GETTEXT_POISON - + t5520: become resilient to GETTEXT_POISON - + t3404: become resilient to GETTEXT_POISON - - A handful of tests that were broken under gettext-poison build have - been fixed. - --------------------------------------------------- -[New Topics] - * ab/hooks (2016-08-16) 1 commit (merged to 'next' on 2016-08-17 at b56e55d) + rev-parse: respect core.hooksPath in --git-path @@ -76,20 +38,18 @@ of the repositories listed at core.hooksPath configuration variable (introduced during 2.9 cycle) into account. - Will merge to 'master'. +* jk/difftool-command-not-found (2016-08-15) 1 commit + (merged to 'next' on 2016-08-17 at 32baf03) + + difftool: always honor fatal error exit codes -* sb/checkout-explit-detach-no-advice (2016-08-15) 1 commit - (merged to 'next' on 2016-08-17 at fb64716) - + checkout: do not mention detach advice for explicit --detach option - - "git checkout --detach " used to give the same advice - message as that is issued when "git checkout " (or anything - that is not a branch name) is given, but asking with "--detach" is - an explicit enough sign that the user knows what is going on. The - advice message has been squelched in this case. - - Will merge to 'master'. + "git difftool" by default ignores the error exit from the backend + commands it spawns, because often they signal that they found + differences by exiting with a non-zero status code just like "diff" + does; the exit status codes 126 and above however are special in + that they are used to signal that the command is not executable, + does not exist, or killed by a signal. "git difftool" has been + taught to notice these exit status codes. * lt/gpg-show-long-key-in-signature-verification (2016-08-16) 1 commit @@ -101,7 +61,8 @@ of the repositories listed at verification status of PGP signature now shows the longer key-id, as 32-bit key-id is so last century. - Will merge to 'master'. + A last-minute merge of this topic was a bit scary but I made sure + push-certificate codepath would not be negatively affected. * lt/gpg-show-long-key-in-signature-verification-maint (2016-08-16) 1 commit @@ -114,37 +75,157 @@ of the repositories listed at codebase, just in case somebody wants to have it. -* ak/curl-imap-send-explicit-scheme (2016-08-17) 1 commit - - imap-send: Tell cURL to use imap:// or imaps:// +* rs/pull-signed-tag (2016-08-13) 4 commits + (merged to 'next' on 2016-08-17 at cecca71) + + commit: use FLEX_ARRAY in struct merge_remote_desc + + merge-recursive: fix verbose output for multiple base trees + + commit: factor out set_merge_remote_desc() + + commit: use xstrdup() in get_merge_parent() - When we started cURL to talk to imap server when a new enough - version of cURL library is available, we forgot to explicitly add - imap(s):// before the destination. To some folks, that didn't work - and the library tried to make HTTP(s) requests instead. - - Needs review and testing. + When "git merge-recursive" works on history with many criss-cross + merges in "verbose" mode, the names the command assigns to the + virtual merge bases could have overwritten each other by unintended + reuse of the same piece of memory. -* bw/mingw-avoid-inheriting-fd-to-lockfile (2016-08-18) 2 commits - - mingw: ensure temporary file handles are not inherited by child processes - - t6026-merge-attr: child processes must not inherit index.lock handles +* sb/checkout-explit-detach-no-advice (2016-08-15) 1 commit + (merged to 'next' on 2016-08-17 at fb64716) + + checkout: do not mention detach advice for explicit --detach option - The tempfile (hence its user lockfile) API lets the caller to open - a file descriptor to a temporary file, write into it and then - finalize it by first closing the filehandle and then either - removing or renaming the temporary file. When the process spawns a - subprocess after obtaining the file descriptor, and if the - subprocess has not exited when the attempt to remove or rename is - made, the last step fails on Windows, because the subprocess has - the file descriptor still open. Open tempfile with O_CLOEXEC flag - to avoid this (on Windows, this is mapped to O_NOINHERIT). + "git checkout --detach " used to give the same advice + message as that is issued when "git checkout " (or anything + that is not a branch name) is given, but asking with "--detach" is + an explicit enough sign that the user knows what is going on. The + advice message has been squelched in this case. - It was pointed out that not everybody has O_CLOEXEC flag during the - review. - Waiting for the review discussion to settle. - cf. <20160818173555.GA29253@starla> +* tb/t0027-raciness-fix (2016-08-14) 1 commit + (merged to 'next' on 2016-08-17 at 39a6635) + + convert: Correct NNO tests and missing `LF will be replaced by CRLF` + The t0027 test for CRLF conversion was timing dependent and flaky. + +-------------------------------------------------- +[New Topics] + +* cc/receive-pack-limit (2016-08-24) 3 commits + - receive-pack: allow a maximum input size to be specified + - unpack-objects: add --max-input-size= option + - index-pack: add --max-input-size= option + + An incoming "git push" that attempts to push too many bytes can now + be rejected by setting a new configuration variable at the receiving + end. + + Will merge to 'next'. + + +* hv/doc-commit-reference-style (2016-08-17) 1 commit + (merged to 'next' on 2016-08-24 at b187d45) + + SubmittingPatches: document how to reference previous commits + + A small doc update. + + Will merge to 'master'. + + +* js/no-html-bypass-on-windows (2016-08-19) 1 commit + (merged to 'next' on 2016-08-24 at 05728f8) + + Revert "display HTML in default browser using Windows' shell API" + + On Windows, help.browser configuration variable used to be ignored, + which has been corrected. + + Will merge to 'master'. + + +* dg/document-git-c-in-git-config-doc (2016-08-23) 1 commit + (merged to 'next' on 2016-08-24 at a923eb0) + + doc: mention `git -c` in git-config(1) + + The "git -c var[=val] cmd" facility to append a configuration + variable definition at the end of the search order was described in + git(1) manual page, but not in git-config(1), which was more likely + place for people to look for when they ask "can I make a one-shot + override, and if so how?" + + Will merge to 'master'. + + +* jk/format-patch-number-singleton-patch-with-cover (2016-08-23) 1 commit + - format-patch: show 0/1 and 1/1 for singleton patch with cover letter + + "git format-patch --cover-letter HEAD^" to format a single patch + with a separate cover letter now numbers the output as [PATCH 0/1] + and [PATCH 1/1] by default. + + Will merge to 'next'. + + +* cp/completion-negative-refs (2016-08-24) 1 commit + - completion: support excluding refs + + The command-line completion script (in contrib/) learned to + complete "git cmd ^mas" to complete the negative end of + reference to "git cmd ^master". + + Waiting for a review. + + +* ja/i18n (2016-08-24) 3 commits + (merged to 'next' on 2016-08-24 at 3a084aa) + + i18n: simplify numeric error reporting + + i18n: fix git rebase interactive commit messages + + i18n: fix typos for translation + + The recent i18n patch we added during this cycle did a bit too much + refactoring of the messages to avoid word-legos; the repetition has + been reduced to help translators. + + Will merge to 'master'. + + +* jk/delta-base-cache (2016-08-23) 7 commits + - t/perf: add basic perf tests for delta base cache + - delta_base_cache: use hashmap.h + - delta_base_cache: drop special treatment of blobs + - delta_base_cache: use list.h for LRU + - release_delta_base_cache: reuse existing detach function + - clear_delta_base_cache_entry: use a more descriptive name + - cache_or_unpack_entry: drop keep_cache parameter + + The delta-base-cache mechanism has been a key to the performance in + a repository with a tightly packed packfile, but it did not scale + well even with a larger value of core.deltaBaseCacheLimit. + + Will merge to 'next'. + + +* js/cat-file-filters (2016-08-24) 4 commits + - cat-file: support --textconv/--filters in batch mode + - cat-file --textconv/--filters: allow specifying the path separately + - cat-file: introduce the --filters option + - cat-file: fix a grammo in the man page + + Even though "git hash-objects", which is a tool to take an + on-filesystem data stream and put it into the Git object store, + allowed to perform the "outside-world-to-Git" conversions (e.g. + end-of-line conversions and application of the clean-filter), and + it had the feature on by default from very early days, its reverse + operation "git cat-file", which takes an object from the Git object + store and externalize for the consumption by the outside world, + lacked an equivalent mechanism to run the "Git-to-outside-world" + conversion. The command learned the "--filters" option to do so. + + +* sb/push-make-submodule-check-the-default (2016-08-24) 1 commit + - push: change submodule default to check + + Turn the default of "push.recurseSubmodules" to "check". + + Alas, this reveals that the "check" mode is too inefficient to use + in real projects. + cf. -------------------------------------------------- [Stalled] @@ -399,6 +480,35 @@ of the repositories listed at -------------------------------------------------- [Cooking] +* ak/curl-imap-send-explicit-scheme (2016-08-17) 1 commit + - imap-send: Tell cURL to use imap:// or imaps:// + + When we started cURL to talk to imap server when a new enough + version of cURL library is available, we forgot to explicitly add + imap(s):// before the destination. To some folks, that didn't work + and the library tried to make HTTP(s) requests instead. + + Needs review and testing. + + +* bw/mingw-avoid-inheriting-fd-to-lockfile (2016-08-23) 2 commits + (merged to 'next' on 2016-08-24 at 8389b0e) + + mingw: ensure temporary file handles are not inherited by child processes + + t6026-merge-attr: child processes must not inherit index.lock handles + + The tempfile (hence its user lockfile) API lets the caller to open + a file descriptor to a temporary file, write into it and then + finalize it by first closing the filehandle and then either + removing or renaming the temporary file. When the process spawns a + subprocess after obtaining the file descriptor, and if the + subprocess has not exited when the attempt to remove or rename is + made, the last step fails on Windows, because the subprocess has + the file descriptor still open. Open tempfile with O_CLOEXEC flag + to avoid this (on Windows, this is mapped to O_NOINHERIT). + + Will merge to 'master'. + + * rt/help-unknown (2016-08-18) 2 commits - help: make option --help open man pages only for Git commands - help: introduce option --command-only @@ -407,37 +517,7 @@ of the repositories listed at which was not intuitive, given that "git nosuchcommand" said "git: 'nosuchcommand' is not a git command". - Will merge to 'next'. - - -* jk/difftool-command-not-found (2016-08-15) 1 commit - (merged to 'next' on 2016-08-17 at 32baf03) - + difftool: always honor fatal error exit codes - - "git difftool" by default ignores the error exit from the backend - commands it spawns, because often they signal that they found - differences by exiting with a non-zero status code just like "diff" - does; the exit status codes 126 and above however are special in - that they are used to signal that the command is not executable, - does not exist, or killed by a signal. "git difftool" has been - taught to notice these exit status codes. - - Will merge to 'master'. - - -* rs/pull-signed-tag (2016-08-13) 4 commits - (merged to 'next' on 2016-08-17 at cecca71) - + commit: use FLEX_ARRAY in struct merge_remote_desc - + merge-recursive: fix verbose output for multiple base trees - + commit: factor out set_merge_remote_desc() - + commit: use xstrdup() in get_merge_parent() - - When "git merge-recursive" works on history with many criss-cross - merges in "verbose" mode, the names the command assigns to the - virtual merge bases could have overwritten each other by unintended - reuse of the same piece of memory. - - Will merge to 'master'. + Waiting for the review discussion to settle. * po/range-doc (2016-08-13) 12 commits @@ -460,25 +540,22 @@ of the repositories listed at Waiting for the review discussion to settle. -* tb/t0027-raciness-fix (2016-08-14) 1 commit - (merged to 'next' on 2016-08-17 at 39a6635) - + convert: Correct NNO tests and missing `LF will be replaced by CRLF` - - The t0027 test for CRLF conversion was timing dependent and flaky. - - Will merge to 'master'. - - -* jk/diff-submodule-diff-inline (2016-08-16) 3 commits - - diff: add SUBMODULE_DIFF format to display submodule diff +* jk/diff-submodule-diff-inline (2016-08-23) 8 commits + - diff: teach diff to display submodule difference with an inline diff + - submodule: refactor show_submodule_summary with helper function + - submodule: convert show_submodule_summary to use struct object_id * + - allow do_submodule_path to work even if submodule isn't checked out + - diff: prepare for additional submodule formats - graph: add support for --line-prefix on all graph-aware output - diff.c: remove output_prefix_length field + - cache: add empty_tree_oid object and helper function The "git diff --submodule={short,log}" mechanism has been enhanced to allow "--submodule=diff" to show the patch between the submodule commits bound to the superproject. - Still being worked on. + Waiting for the review discussion to settle. + I think it is getting there. * jk/reduce-gc-aggressive-depth (2016-08-11) 1 commit @@ -535,15 +612,13 @@ of the repositories listed at Any more comments? -* mh/diff-indent-heuristic (2016-08-04) 8 commits +* mh/diff-indent-heuristic (2016-08-23) 6 commits - diff: improve positioning of add/delete blocks in diffs - - is_blank_line: take a single xrecord_t as argument - - xdl_change_compact(): keep track of the earliest end - - xdl_change_compact(): fix compaction heuristic to adjust io - - xdl_change_compact(): do one final shift or the other, not both - - xdl_change_compact(): rename i to end - - xdl_change_compact(): clarify code - - xdl_change_compact(): rename some local variables for clarity + - xdl_change_compact(): introduce the concept of a change group + - recs_match(): take two xrecord_t pointers as arguments + - is_blank_line(): take a single xrecord_t as argument + - xdl_change_compact(): only use heuristic if group can't be matched + - xdl_change_compact(): fix compaction heuristic to adjust ixo Output from "git diff" can be made easier to read by selecting which lines are common and which lines are added/deleted @@ -552,10 +627,8 @@ of the repositories listed at experiment to find a good heuristics. Waiting for the review discussion to settle. - cf. - cf. <20160804072705.a53mospcccksiz4e@sigill.intra.peff.net> - cf. <20160804075631.jakbi5dbsbxsqcpr@sigill.intra.peff.net> cf. <29c40cdd-363a-df09-f9e2-fe9070bb8a9c@ramsayjones.plus.com> + cf. * cc/apply-am (2016-08-11) 40 commits @@ -608,7 +681,6 @@ of the repositories listed at We are almost there. - * jk/pack-objects-optim-mru (2016-08-11) 4 commits (merged to 'next' on 2016-08-11 at c0a7dae) + pack-objects: use mru list when iterating over packs @@ -767,7 +839,21 @@ of the repositories listed at would think. -* pb/bisect (2016-08-12) 13 commits +* pb/bisect (2016-08-23) 27 commits + . bisect--helper: remove the dequote in bisect_start() + . bisect--helper: retire `--bisect-auto-next` subcommand + . bisect--helper: retire `--bisect-autostart` subcommand + . bisect--helper: retire `--check-and-set-terms` subcommand + . bisect--helper: retire `--bisect-write` subcommand + . bisect--helper: `bisect_replay` shell function in C + . bisect--helper: `bisect_log` shell function in C + . bisect--helper: retire `--write-terms` subcommand + . bisect--helper: retire `--check-expected-revs` subcommand + . bisect--helper: `bisect_state` & `bisect_head` shell function in C + . bisect--helper: `bisect_autostart` shell function in C + . bisect--helper: retire `--next-all` subcommand + . bisect--helper: retire `--bisect-clean-state` subcommand + . bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C . bisect--helper: `bisect_start` shell function partially in C . bisect--helper: `get_terms` & `bisect_terms` shell function in C . bisect--helper: `bisect_next_check` & bisect_voc shell function in C @@ -812,7 +898,7 @@ of the repositories listed at with the more generic ref-filter API. Rerolled. - This also really needs review. + Needs review. * jc/merge-drop-old-syntax (2015-04-29) 1 commit