From: Junio C Hamano Date: Wed, 24 Aug 2016 21:15:40 +0000 (-0700) Subject: What's cooking (2016/08 #08) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=38104d3d3108c95a87f3b4bd59a9ce7a2e2e7900;p=thirdparty%2Fgit.git What's cooking (2016/08 #08) --- 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,60 +30,62 @@ 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 +* ab/hooks (2016-08-16) 1 commit + (merged to 'next' on 2016-08-17 at b56e55d) + + rev-parse: respect core.hooksPath in --git-path - 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). + "git rev-parse --git-path hooks/" learned to take + core.hooksPath configuration variable (introduced during 2.9 cycle) + into account. -* rs/mailinfo-lib (2016-08-13) 1 commit - (merged to 'next' on 2016-08-16 at 14101e3) - + mailinfo: recycle strbuf in check_header() +* 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 - Small code clean-up. + "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. -* 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 +* lt/gpg-show-long-key-in-signature-verification (2016-08-16) 1 commit + (merged to 'next' on 2016-08-17 at 1ee8a00) + + Merge branch 'lt/gpg-show-long-key-in-signature-verification-maint' into lt/gpg-show-long-key-in-signature-verification + (this branch uses lt/gpg-show-long-key-in-signature-verification-maint.) - A small test clean-up for a topic introduced in v2.9.1 and later. + "git log --show-signature" and other commands that display the + verification status of PGP signature now shows the longer key-id, + as 32-bit key-id is so last century. + A last-minute merge of this topic was a bit scary but I made sure + push-certificate codepath would not be negatively affected. -* 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. +* lt/gpg-show-long-key-in-signature-verification-maint (2016-08-16) 1 commit + + gpg-interface: prefer "long" key format output when verifying pgp signatures + (this branch is used by lt/gpg-show-long-key-in-signature-verification.) --------------------------------------------------- -[New Topics] + "git log --show-signature" and other commands that display the + verification status of PGP signature now shows the longer key-id, + as 32-bit key-id is so last century. This is based on older + codebase, just in case somebody wants to have it. -* ab/hooks (2016-08-16) 1 commit - (merged to 'next' on 2016-08-17 at b56e55d) - + rev-parse: respect core.hooksPath in --git-path - "git rev-parse --git-path hooks/" learned to take - core.hooksPath configuration variable (introduced during 2.9 cycle) - into account. +* 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() - Will merge to 'master'. + 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. * sb/checkout-explit-detach-no-advice (2016-08-15) 1 commit @@ -89,62 +98,134 @@ of the repositories listed at an explicit enough sign that the user knows what is going on. The advice message has been squelched in this case. + +* 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'. -* lt/gpg-show-long-key-in-signature-verification (2016-08-16) 1 commit - (merged to 'next' on 2016-08-17 at 1ee8a00) - + Merge branch 'lt/gpg-show-long-key-in-signature-verification-maint' into lt/gpg-show-long-key-in-signature-verification - (this branch uses lt/gpg-show-long-key-in-signature-verification-maint.) +* 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" - "git log --show-signature" and other commands that display the - verification status of PGP signature now shows the longer key-id, - as 32-bit key-id is so last century. + On Windows, help.browser configuration variable used to be ignored, + which has been corrected. Will merge to 'master'. -* lt/gpg-show-long-key-in-signature-verification-maint (2016-08-16) 1 commit - + gpg-interface: prefer "long" key format output when verifying pgp signatures - (this branch is used by lt/gpg-show-long-key-in-signature-verification.) +* 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) - "git log --show-signature" and other commands that display the - verification status of PGP signature now shows the longer key-id, - as 32-bit key-id is so last century. This is based on older - codebase, just in case somebody wants to have it. + 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'. -* 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. +* 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 - Needs review and testing. + "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'. -* 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 - 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). +* cp/completion-negative-refs (2016-08-24) 1 commit + - completion: support excluding refs - It was pointed out that not everybody has O_CLOEXEC flag during the - review. + 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 the review discussion to settle. - cf. <20160818173555.GA29253@starla> + 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,45 +480,44 @@ of the repositories listed at -------------------------------------------------- [Cooking] -* rt/help-unknown (2016-08-18) 2 commits - - help: make option --help open man pages only for Git commands - - help: introduce option --command-only +* ak/curl-imap-send-explicit-scheme (2016-08-17) 1 commit + - imap-send: Tell cURL to use imap:// or imaps:// - "git nosuchcommand --help" said "No manual entry for gitnosuchcommand", - which was not intuitive, given that "git nosuchcommand" said "git: - 'nosuchcommand' is not a git command". + 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. - Will merge to 'next'. + Needs review and testing. -* 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 +* 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 - "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. + 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'. -* 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() +* rt/help-unknown (2016-08-18) 2 commits + - help: make option --help open man pages only for Git commands + - help: introduce option --command-only - 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. + "git nosuchcommand --help" said "No manual entry for gitnosuchcommand", + which was not intuitive, given that "git nosuchcommand" said "git: + 'nosuchcommand' is not a git command". - 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