From 1bb72ec1d73991da5c0c0ce18a793d0d2e7cc09c Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 20 Mar 2015 14:46:40 -0700 Subject: [PATCH] What's cooking (2015/03 #07) --- whats-cooking.txt | 540 ++++++++++++++++++++++++++-------------------- 1 file changed, 310 insertions(+), 230 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index a8f42fe695..d2f8ede798 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,16 +1,19 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Mar 2015, #06; Tue, 17) -X-master-at: 9ab698f4000a736864c41f57fbae1e021ac27799 -X-next-at: 9c5cf4debae1a49f88979567369a5809977ff34b +Subject: What's cooking in git.git (Mar 2015, #07; Fri, 20) +X-master-at: e80e85a52adfda053cafc3b23058a86aff35404f +X-next-at: d87118a61e74087359ac4d43ef91e5be61958443 -What's cooking in git.git (Mar 2015, #06; Tue, 17) +What's cooking in git.git (Mar 2015, #07; Fri, 20) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'. +Now we are almost at the end of week #6, and hopefully we can do a +-rc0 late next week to start wrapping this cycle up. + You can find the changes described here in the integration branches of the repositories listed at @@ -19,106 +22,295 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* ak/git-done-help-cleanup (2015-03-06) 1 commit - (merged to 'next' on 2015-03-10 at 971382b) - + git: make was_alias and done_help non-static +* jc/decorate-leaky-separator-color (2015-03-04) 7 commits + (merged to 'next' on 2015-03-13 at 38e7cd1) + + log --decorate: do not leak "commit" color into the next item + + Documentation/config.txt: simplify boolean description in the syntax section + + Documentation/config.txt: describe 'color' value type in the "Values" section + + Documentation/config.txt: have a separate "Values" section + + Documentation/config.txt: describe the structure first and then meaning + + Documentation/config.txt: explain multi-valued variables once + + Documentation/config.txt: avoid unnecessary negation + (this branch is used by mg/log-decorate-HEAD.) + + "git log --decorate" did not reset colors correctly around the + branch names. + - Code simplification. +* km/bsd-shells (2015-03-10) 5 commits + (merged to 'next' on 2015-03-13 at f839e4c) + + t5528: do not fail with FreeBSD shell + + help.c: use SHELL_PATH instead of hard-coded "/bin/sh" + + git-compat-util.h: move SHELL_PATH default into header + + git-instaweb: use @SHELL_PATH@ instead of /bin/sh + + git-instaweb: allow running in a working tree subdirectory + + Portability fixes and workarounds for shell scripts have been added + to help BSD-derived systems. + + +* km/bsd-sysctl (2015-03-10) 2 commits + (merged to 'next' on 2015-03-13 at c4557c9) + + thread-utils.c: detect CPU count on older BSD-like systems + + configure: support HAVE_BSD_SYSCTL option + + We now detect number of CPUs on older BSD-derived systems. + + +* km/imap-send-libcurl-options (2015-03-10) 1 commit + (merged to 'next' on 2015-03-13 at 569d0c4) + + imap-send: use cURL automatically when NO_OPENSSL defined + + "git imap-send" learned to optionally talk with an IMAP server via + libcURL; because there is no other option when Git is built with + NO_OPENSSL option, use that codepath by default under such + configuration. -* es/rebase-i-count-todo (2015-03-06) 2 commits - (merged to 'next' on 2015-03-10 at fff95d5) - + rebase-interactive: re-word "item count" comment - + rebase-interactive: suppress whitespace preceding item count +* kn/git-cd-to-empty (2015-03-06) 1 commit + (merged to 'next' on 2015-03-12 at 54dea03) + + git: treat "git -C ''" as a no-op when is empty - "git rebase -i" recently started to include the number of - commits in the insn sheet to be processed, but on a platform - that prepends leading whitespaces to "wc -l" output, the numbers - are shown with extra whitespaces that aren't necessary. + "git -C '' subcmd" refused to work in the current directory, unlike + "cd ''" which silently behaves as a no-op. -* mg/doc-status-color-slot (2015-03-10) 1 commit - (merged to 'next' on 2015-03-12 at e53910a) - + config,completion: add color.status.unmerged +* mg/detached-head-report (2015-03-06) 2 commits + (merged to 'next' on 2015-03-12 at 89443b5) + + branch: name detached HEAD analogous to status + + wt-status: refactor detached HEAD analysis - Documentation fixes. + "git branch" on a detached HEAD always said "(detached from xyz)", + even when "git status" would report "detached at xyz". The HEAD is + actually at xyz and haven't been moved since it was detached in + such a case, but the user cannot read what the current value of + HEAD is when "detached from" is used. -* mg/sequencer-commit-messages-always-verbatim (2015-03-06) 1 commit - (merged to 'next' on 2015-03-10 at 6a09295) - + sequencer: preserve commit messages +* mg/log-decorate-HEAD (2015-03-10) 2 commits + (merged to 'next' on 2015-03-13 at 96ce660) + + log: decorate HEAD with branch name + + Merge branch 'jc/decorate-leaky-separator-color' into HEAD + (this branch uses jc/decorate-leaky-separator-color.) - "git cherry-pick" used to clean-up the log message even when it is - merely replaying an existing commit. It now replays the message - verbatim unless you are editing the message of resulting commits. + Output from "git log --decorate" mentions HEAD when it points at a + tip of an branch differently from a detached HEAD. + This is a potentially backward-incompatible change. -* mg/status-v-v (2015-03-06) 3 commits - (merged to 'next' on 2015-03-10 at 4fa5af0) - + commit/status: show the index-worktree diff with -v -v - + t7508: test git status -v - + t7508: .gitignore 'expect' and 'output' files - "git status" now allows the "-v" to be given twice to show the - differences that are left in the working tree not to be committed. +* mg/verify-commit (2015-03-10) 1 commit + (merged to 'next' on 2015-03-13 at 292197f) + + t7510: do not fail when gpg warns about insecure memory + Workarounds for certain build of GPG that triggered false breakage + in a test. -* rs/deflate-init-cleanup (2015-03-05) 1 commit - (merged to 'next' on 2015-03-10 at 053157f) - + zlib: initialize git_zstream in git_deflate_init{,_gzip,_raw} - Code simplification. +* nd/versioncmp-prereleases (2015-03-10) 2 commits + (merged to 'next' on 2015-03-10 at 1df647c) + + config.txt: update versioncmp.prereleaseSuffix + (merged to 'next' on 2015-03-03 at 6ab29cf) + + versionsort: support reorder prerelease suffixes + The versionsort.prerelease configuration variable can be used to + specify that v1.0-pre1 comes before v1.0. -* rs/zip-text (2015-03-05) 1 commit - (merged to 'next' on 2015-03-10 at 2f3fa92) - + archive-zip: mark text files in archives - "git archive" can now be told to set the 'text' attribute in the - resulting zip archive. +* rs/daemon-hostname-in-strbuf (2015-03-09) 2 commits + (merged to 'next' on 2015-03-12 at 7f61f07) + + daemon: deglobalize hostname information + + daemon: use strbuf for hostname info + Code in "git daemon" to parse out and hold hostnames used in + request interpolation has been simplified. -* sg/completion-remote (2015-03-06) 2 commits - (merged to 'next' on 2015-03-10 at e1cd42b) - + completion: simplify __git_remotes() - + completion: add a test for __git_remotes() helper function - Code simplification. +* rs/use-isxdigit (2015-03-10) 1 commit + (merged to 'next' on 2015-03-13 at 39e99dd) + + use isxdigit() for checking if a character is a hexadecimal digit + + Code cleanup. + + +* sb/leaks (2015-03-10) 3 commits + (merged to 'next' on 2015-03-13 at 50317d6) + + builtin/help.c: fix memory leak + + bundle.c: fix memory leak + + connect.c: do not leak "conn" after showing diagnosis + + Code cleanup. -------------------------------------------------- [New Topics] -* js/completion-ctags-pattern-substitution-fix (2015-03-14) 1 commit - (merged to 'next' on 2015-03-17 at 4a68861) - + contrib/completion: escape the forward slash in __git_match_ctag +* jk/cleanup-failed-clone (2015-03-19) 2 commits + - clone: drop period from end of die_errno message + - clone: initialize atexit cleanup handler earlier - The code that reads from the ctags file in the completion script - (in contrib/) did not spell ${param/pattern/string} substitution - correctly, which happened to work with bash but not with zsh. + An failure early in the "git clone" that started creating the + working tree and repository could have resulted in some directories + and files left without getting cleaned up. + + Will merge to 'next'. + + +* jk/fetch-pack (2015-03-19) 4 commits + - fetch-pack: remove dead assignment to ref->new_sha1 + - fetch_refs_via_pack: free extra copy of refs + - filter_ref: make a copy of extra "sought" entries + - filter_ref: avoid overwriting ref->old_sha1 with garbage + + "git fetch" that fetches a commit using the allow-tip-sha1-in-want + extension could have failed to fetch all the requested refs. + + Will merge to 'next'. + + +* jk/prune-with-corrupt-refs (2015-03-20) 5 commits + - refs.c: drop curate_packed_refs + - repack: turn on "ref paranoia" when doing a destructive repack + - prune: turn on ref_paranoia flag + - refs: introduce a "ref paranoia" flag + - t5312: test object deletion code paths in a corrupted repository + + "git prune" used to largely ignore broken refs when deciding which + objects are still being used, which could spread an existing small + damage and make it a larger one. + + Will merge to 'next'. + + +* jk/simplify-csum-file-sha1fd-check (2015-03-19) 1 commit + (merged to 'next' on 2015-03-20 at 6f6d1c2) + + sha1fd_check: die when we cannot open the file + + Code simplification. Will merge to 'master'. -* jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit - - "-" and "@{-1}" on various programs +* mh/numparse (2015-03-19) 14 commits + - diff_opt_parse(): use convert_i() when handling --abbrev= + - diff_opt_parse(): use convert_i() when handling "-l" + - opt_arg(): simplify pointer handling + - opt_arg(): report errors parsing option values + - opt_arg(): use convert_i() in implementation + - opt_arg(): val is always non-NULL + - builtin_diff(): detect errors when parsing --unified argument + - handle_revision_opt(): use convert_ui() when handling "--abbrev=" + - strtoul_ui(), strtol_i(): remove functions + - handle_revision_opt(): use convert_i() when handling "-" + - handle_revision_opt(): use skip_prefix() in many places + - write_subdirectory(): use convert_ui() for parsing mode + - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo" + - numparse: new module for parsing integral numbers - Lose special case code to make a lone dash "-" mean the previous - branch aka "@{-1}" from a handful subcommands, and instead support - the notation throughout the system by reimplementing it at the - revisions layer. + Many codepaths use unchecked use of strtol() and friends (or even + worse, atoi()). Introduce a set of wrappers that try to be more + careful. - Needs tests, documentation updates, etc. +* tf/gitweb-project-listing (2015-03-19) 5 commits + - gitweb: make category headings into links when they are directories + - gitweb: optionally set project category from its pathname + - gitweb: add a link under the search box to clear a project filter + - gitweb: if the PATH_INFO is incomplete, use it as a project_filter + - gitweb: fix typo in man page -* jc/submitting-patches-mention-send-email (2015-03-15) 1 commit - - SubmittingPatches: encourage users to use format-patch and send-email + Update gitweb to make it more pleasant to deal with a hierarchical + forest of repositories. + + Any comments from those who use or have their own code in Gitweb? - Recommend format-patch and send-email for those who want to submit - patches to this project. + +* ws/grep-quiet-no-pager (2015-03-19) 1 commit + (merged to 'next' on 2015-03-20 at b3f5fe6) + + grep: fix "--quiet" overwriting current output + + Even though "git grep --quiet" is run merely to ask for the exit + status, we spawned the pager regardless. Stop doing that. + + Will merge to 'master'. + + +* kd/rev-list-bisect-first-parent (2015-03-19) 1 commit + (merged to 'next' on 2015-03-20 at 5477bf5) + + rev-list: refuse --first-parent combined with --bisect + + "git rev-list --bisect --first-parent" does not work (yet) and can + even cause SEGV; forbid it. "git log --bisect --first-parent" + would not be useful until "git bisect --first-parent" materializes, + so it is also forbidden for now. + + Will merge to 'master'. + + +* jk/test-chain-lint (2015-03-20) 27 commits + - t9158, t9161: fix broken &&-chain in git-svn tests + - t9104: fix test for following larger parents + - t4104: drop hand-rolled error reporting + - t0005: fix broken &&-chains + - t7004: fix embedded single-quotes + - t0050: appease --chain-lint + - t9001: use test_when_finished + - t4117: use modern test_* helpers + - t6034: use modern test_* helpers + - t1301: use modern test_* helpers + - t0020: use modern test_* helpers + - t6030: use modern test_* helpers + - t9502: fix &&-chain breakage + - t7201: fix &&-chain breakage + - t3600: fix &&-chain breakage for setup commands + - t: avoid using ":" for comments + - t: wrap complicated expect_code users in a block + - t: use test_expect_code instead of hand-rolled comparison + - t: use test_might_fail for diff and grep + - t: fix &&-chaining issues around setup which might fail + - t: use test_must_fail instead of hand-rolled blocks + - t: use verbose instead of hand-rolled errors + - t: assume test_cmp produces verbose output + - t: fix trivial &&-chain breakage + - t: fix moderate &&-chain breakage + - t: fix severe &&-chain breakage + - t/test-lib: introduce --chain-lint option + + People often forget to chain the commands in their test together + with &&, leaving a failure from an earlier command in the test go + unnoticed. The new GIT_TEST_CHAIN_LINT mechanism allows you to + catch such a mistake more easily. + + What I queued here has fix to the issue J6t found in 15/25 squashed + in, and also has 26/25 and 27/25 follow-up fixes from Michael. If + everybody involved is happy with it, then we can just proceed with + this copy, otherwise I'll let Peff reroll. I am happy either way. + + +* tg/test-index-v4 (2015-03-20) 1 commit + - t1700: make test pass with index-v4 + + A test fix. + + Will merge to 'next'. -------------------------------------------------- [Stalled] +* mh/fdopen-with-retry (2015-03-06) 6 commits + - buffer_fdinit(): use fdopen_with_retry() + - update_info_file(): use fdopen_with_retry() + - copy_to_log(): use fdopen_with_retry() + - fdopen_lock_file(): use fdopen_with_retry() + - SQUASH??? $gmane/264889 + - xfdopen(): if first attempt fails, free memory and try again + + Various parts of the code where they call fdopen() can fail when + they run out of memory; attempt to proceed by retrying the + operation after freeing some resource. + + Waiting for further comments. + + * nd/untracked-cache (2015-03-12) 24 commits - git-status.txt: advertisement for untracked cache - untracked cache: guard and disable on system changes @@ -298,6 +490,39 @@ of the repositories listed at -------------------------------------------------- [Cooking] +* js/completion-ctags-pattern-substitution-fix (2015-03-14) 1 commit + (merged to 'next' on 2015-03-17 at 4a68861) + + contrib/completion: escape the forward slash in __git_match_ctag + + The code that reads from the ctags file in the completion script + (in contrib/) did not spell ${param/pattern/string} substitution + correctly, which happened to work with bash but not with zsh. + + Will merge to 'master'. + + +* jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit + - "-" and "@{-1}" on various programs + + Lose special case code to make a lone dash "-" mean the previous + branch aka "@{-1}" from a handful subcommands, and instead support + the notation throughout the system by reimplementing it at the + revisions layer. + + Needs tests, documentation updates, etc. Also does only a half-way + job dealing with range notation, which needs to be fixed before the + series goes anywhere. + + +* jc/submitting-patches-mention-send-email (2015-03-15) 1 commit + - SubmittingPatches: encourage users to use format-patch and send-email + + Recommend format-patch and send-email for those who want to submit + patches to this project. + + Will merge to 'next'. + + * jk/push-config (2015-03-14) 4 commits (merged to 'next' on 2015-03-16 at 6452570) + push: allow --follow-tags to be set by config push.followTags @@ -325,6 +550,12 @@ of the repositories listed at * as/userdiff-sh (2015-03-13) 1 commit - userdiff: funcname and word patterns for sh + Add a built-in "userdiff" patterns to word-split and identify + notable lines in shell scripts to help presentation of diff and + grep output. + + Comments??? + * bc/object-id (2015-03-13) 10 commits - apply: convert threeway_stage to object_id @@ -347,12 +578,13 @@ of the repositories listed at * ct/prompt-untracked-fix (2015-03-15) 1 commit - - git prompt: use toplevel to find untracked files + (merged to 'next' on 2015-03-20 at 0d57eaf) + + git prompt: use toplevel to find untracked files The prompt script (in contrib/) did not show the untracked sign when working in a subdirectory without any untracked files. - Will merge to 'next' + Will merge to 'master'. * jk/smart-http-hide-refs (2015-03-12) 2 commits @@ -374,6 +606,8 @@ of the repositories listed at + t: redirect stderr GIT_TRACE to descriptor 4 + t: translate SIGINT to an exit + Test fixes. + Will merge to 'master'. @@ -381,158 +615,20 @@ of the repositories listed at (merged to 'next' on 2015-03-16 at 0e3fedb) + *config.txt: stick to camelCase naming convention - Will merge to 'master'. - - -* kn/git-cd-to-empty (2015-03-06) 1 commit - (merged to 'next' on 2015-03-12 at 54dea03) - + git: treat "git -C ''" as a no-op when is empty - - "git -C '' subcmd" refused to work in the current directory, unlike - "cd ''" which silently behaves as a no-op. + Documentation updates. Will merge to 'master'. -* dj/log-graph-with-no-walk (2015-03-17) 2 commits - - SQUASH: no test $a -a $b please - - revision: forbid combining --graph and --no-walk +* dj/log-graph-with-no-walk (2015-03-19) 1 commit + (merged to 'next' on 2015-03-20 at cb636c0) + + revision: forbid combining --graph and --no-walk "git log --graph --no-walk A B..." is a otcnflicting request that asks nonsense; no-walk tells us show discrete points in the history, while graph asks to draw connections between these discrete points. Forbid the combination. - -* km/bsd-shells (2015-03-10) 5 commits - (merged to 'next' on 2015-03-13 at f839e4c) - + t5528: do not fail with FreeBSD shell - + help.c: use SHELL_PATH instead of hard-coded "/bin/sh" - + git-compat-util.h: move SHELL_PATH default into header - + git-instaweb: use @SHELL_PATH@ instead of /bin/sh - + git-instaweb: allow running in a working tree subdirectory - - Portability fixes and workarounds for shell scripts have been added - to help BSD-derived systems. - - Will merge to 'master'. - - -* km/bsd-sysctl (2015-03-10) 2 commits - (merged to 'next' on 2015-03-13 at c4557c9) - + thread-utils.c: detect CPU count on older BSD-like systems - + configure: support HAVE_BSD_SYSCTL option - - We now detect number of CPUs on older BSD-derived systems. - - Will merge to 'master'. - - -* km/imap-send-libcurl-options (2015-03-10) 1 commit - (merged to 'next' on 2015-03-13 at 569d0c4) - + imap-send: use cURL automatically when NO_OPENSSL defined - - "git imap-send" learned to optionally talk with an IMAP server via - libcURL; because there is no other option when Git is built with - NO_OPENSSL option, use that codepath by default under such - configuration. - - Will merge to 'master'. - - -* mg/verify-commit (2015-03-10) 1 commit - (merged to 'next' on 2015-03-13 at 292197f) - + t7510: do not fail when gpg warns about insecure memory - - Workarounds for certain build of GPG that triggered false breakage - in a test.. - - Will merge to 'master'. - - -* rs/use-isxdigit (2015-03-10) 1 commit - (merged to 'next' on 2015-03-13 at 39e99dd) - + use isxdigit() for checking if a character is a hexadecimal digit - - Code cleanup. - - Will merge to 'master'. - - -* sb/leaks (2015-03-10) 3 commits - (merged to 'next' on 2015-03-13 at 50317d6) - + builtin/help.c: fix memory leak - + bundle.c: fix memory leak - + connect.c: do not leak "conn" after showing diagnosis - - Code cleanup. - - Will merge to 'master'. - - -* mh/fdopen-with-retry (2015-03-06) 6 commits - - buffer_fdinit(): use fdopen_with_retry() - - update_info_file(): use fdopen_with_retry() - - copy_to_log(): use fdopen_with_retry() - - fdopen_lock_file(): use fdopen_with_retry() - - SQUASH??? $gmane/264889 - - xfdopen(): if first attempt fails, free memory and try again - - Various parts of the code where they call fdopen() can fail when - they run out of memory; attempt to proceed by retrying the - operation after freeing some resource. - - Waiting for further comments. - - -* mg/log-decorate-HEAD (2015-03-10) 2 commits - (merged to 'next' on 2015-03-13 at 96ce660) - + log: decorate HEAD with branch name - + Merge branch 'jc/decorate-leaky-separator-color' into HEAD - (this branch uses jc/decorate-leaky-separator-color.) - - Output from "git log --decorate" mentions HEAD when it points at a - tip of an branch differently from a detached HEAD. - - This is a potentially backward-incompatible change. - - Will merge to 'master'. - - -* rs/daemon-hostname-in-strbuf (2015-03-09) 2 commits - (merged to 'next' on 2015-03-12 at 7f61f07) - + daemon: deglobalize hostname information - + daemon: use strbuf for hostname info - - Code in "git daemon" to parse out and hold hostnames used in - request interpolation has been simplified. - - Will merge to 'master'. - - -* mg/detached-head-report (2015-03-06) 2 commits - (merged to 'next' on 2015-03-12 at 89443b5) - + branch: name detached HEAD analogous to status - + wt-status: refactor detached HEAD analysis - - "git branch" on a detached HEAD always said "(detached from xyz)", - even when "git status" would report "detached at xyz". The HEAD is - actually at xyz and haven't been moved since it was detached in - such a case, but the user cannot read what the current value of - HEAD is when "detached from" is used. - - Will merge to 'master'. - - -* nd/versioncmp-prereleases (2015-03-10) 2 commits - (merged to 'next' on 2015-03-10 at 1df647c) - + config.txt: update versioncmp.prereleaseSuffix - (merged to 'next' on 2015-03-03 at 6ab29cf) - + versionsort: support reorder prerelease suffixes - - The versionsort.prerelease configuration variable can be used to - specify that v1.0-pre1 comes before v1.0. - Will merge to 'master'. @@ -572,27 +668,9 @@ of the repositories listed at A new "git list-files" Porcelain command, "ls-files" with bells and whistles. - Concern was raised that this is piggybacking on ls-files codebase, - rather than wt-status codebase ($gmane/264258). - - Waiting for further comments or a reroll. - - -* jc/decorate-leaky-separator-color (2015-03-04) 7 commits - (merged to 'next' on 2015-03-13 at 38e7cd1) - + log --decorate: do not leak "commit" color into the next item - + Documentation/config.txt: simplify boolean description in the syntax section - + Documentation/config.txt: describe 'color' value type in the "Values" section - + Documentation/config.txt: have a separate "Values" section - + Documentation/config.txt: describe the structure first and then meaning - + Documentation/config.txt: explain multi-valued variables once - + Documentation/config.txt: avoid unnecessary negation - (this branch is used by mg/log-decorate-HEAD.) - - "git log --decorate" did not reset colors correctly around the - branch names. - - Will merge to 'master' + Reroll to base on wt-status work ($gmane/265142) has seen some + positive discussions. Waiting for a further polished reroll + ($gmane/265534). * js/fsck-opt (2015-01-21) 19 commits @@ -622,7 +700,9 @@ of the repositories listed at Expecting a reroll. -* nd/multiple-work-trees (2015-01-27) 38 commits +* nd/multiple-work-trees (2015-03-20) 39 commits + (merged to 'next' on 2015-03-20 at cc98ed0) + + t2026: fix broken &&-chain (merged to 'next' on 2015-02-18 at b51f696) + t2026 needs procondition SANITY + git-checkout.txt: a note about multiple checkout support for submodules -- 2.47.3