diff --git a/whats-cooking.txt b/whats-cooking.txt index 4e9b35ea16..cf7b0654e8 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 (Jul 2017, #01; Wed, 5) -X-master-at: 50ff9ea4a0770c8b1bfe3f98f09728427c0c6cc7 -X-next-at: b4debfe1a1bbbf047b7c2b69802448ce45df5f2f +Subject: What's cooking in git.git (Jul 2017, #02; Fri, 7) +X-master-at: 8b2efe2a0fd93b8721879f796d848a9ce785647f +X-next-at: a9c46e097be495732ddb19ee1f57e62e5b35db6c -What's cooking in git.git (Jul 2017, #01; Wed, 5) +What's cooking in git.git (Jul 2017, #02; Fri, 7) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -20,73 +20,175 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* bw/repo-object (2017-06-23) 21 commits - (merged to 'next' on 2017-06-26 at ed9c0b77c3) - + ls-files: use repository object - + repository: enable initialization of submodules - + submodule: convert is_submodule_initialized to work on a repository - + submodule: add repo_read_gitmodules - + submodule-config: store the_submodule_cache in the_repository - + repository: add index_state to struct repo - + config: read config from a repository object - + path: add repo_worktree_path and strbuf_repo_worktree_path - + path: add repo_git_path and strbuf_repo_git_path - + path: worktree_git_path() should not use file relocation - + path: convert do_git_path to take a 'struct repository' - + path: convert strbuf_git_common_path to take a 'struct repository' - + path: always pass in commondir to update_common_dir - + path: create path.h - + environment: store worktree in the_repository - + environment: place key repository state in the_repository - + repository: introduce the repository object - + environment: remove namespace_len variable - + setup: add comment indicating a hack - + setup: don't perform lazy initialization of repository state - + Merge branches 'bw/ls-files-sans-the-index' and 'bw/config-h' into bw/repo-object +* ab/sha1dc-maint (2017-07-03) 1 commit + (merged to 'next' on 2017-07-05 at ac69c90b7e) + + sha1dc: update from upstream + (this branch is used by ab/sha1dc.) - Introduce a "repository" object to eventually make it easier to - work in multiple repositories (the primary focus is to work with - the superproject and its submodules) in a single process. + Update the sha1dc again to fix portability glitches. -* cc/shared-index-permfix (2017-06-25) 3 commits - (merged to 'next' on 2017-06-26 at bb41584bf0) - + t1700: make sure split-index respects core.sharedrepository - + t1301: move modebits() to test-lib-functions.sh - + read-cache: use shared perms when writing shared index +* ab/strbuf-addftime-tzname-boolify (2017-07-01) 2 commits + (merged to 'next' on 2017-07-05 at 81e6795eb3) + + strbuf: change an always NULL/"" strbuf_addftime() param to bool + + strbuf.h comment: discuss strbuf_addftime() arguments in order - The split index code did not honor core.sharedrepository setting - correctly. + strbuf_addftime() is further getting tweaked. -* jt/unify-object-info (2017-06-26) 8 commits - (merged to 'next' on 2017-06-26 at 540ea81983) - + sha1_file: refactor has_sha1_file_with_flags - + sha1_file: do not access pack if unneeded - + sha1_file: teach sha1_object_info_extended more flags - + sha1_file: refactor read_object - + sha1_file: move delta base cache code up - + sha1_file: rename LOOKUP_REPLACE_OBJECT - + sha1_file: rename LOOKUP_UNKNOWN_OBJECT - + sha1_file: teach packed_object_info about typename +* aw/contrib-subtree-doc-asciidoctor (2017-06-27) 1 commit + (merged to 'next' on 2017-06-30 at af23bd111b) + + subtree: honour USE_ASCIIDOCTOR when set - Code clean-ups. + The Makefile rule in contrib/subtree for building documentation + learned to honour USE_ASCIIDOCTOR just like the main documentation + set does. -* rs/sha1-name-readdir-optim (2017-06-24) 4 commits - (merged to 'next' on 2017-06-26 at a70587f2b9) - + sha1_file: guard against invalid loose subdirectory numbers - + sha1_file: let for_each_file_in_obj_subdir() handle subdir names - + p4205: add perf test script for pretty log formats - + sha1_name: cache readdir(3) results in find_short_object_filename() +* jc/utf8-fprintf (2017-06-28) 1 commit + (merged to 'next' on 2017-06-30 at a8cc490818) + + submodule--helper: do not call utf8_fprintf() unnecessarily - Optimize "what are the object names already taken in an alternate - object database?" query that is used to derive the length of prefix - an object name is uniquely abbreviated to. + Code cleanup. + + +* js/fsck-name-object (2017-06-28) 1 commit + (merged to 'next' on 2017-06-30 at 9a08514cf2) + + t1450: use egrep for regexp "alternation" + + Test fix. + + +* js/t5534-rev-parse-gives-multi-line-output-fix (2017-07-05) 1 commit + (merged to 'next' on 2017-07-05 at 5f964c44ba) + + t5534: fix misleading grep invocation + + A few tests that tried to verify the contents of push certificates + did not use 'git rev-parse' to formulate the line to look for in + the certificate correctly. + + +* rs/apply-avoid-over-reading (2017-07-01) 1 commit + (merged to 'next' on 2017-07-05 at 35730f3a47) + + apply: use starts_with() in gitdiff_verify_name() + + Code clean-up to fix possible buffer over-reading. + + +* sb/merge-recursive-code-cleanup (2017-06-30) 1 commit + (merged to 'next' on 2017-07-05 at 4228240520) + + merge-recursive: use DIFF_XDL_SET macro + + Code clean-up. + + +* xz/send-email-batch-size (2017-07-05) 1 commit + (merged to 'next' on 2017-07-05 at 92f3c31fbd) + + send-email: --batch-size to work around some SMTP server limit + + "git send-email" learned to overcome some SMTP server limitation + that does not allow many pieces of e-mails to be sent over a single + session. -------------------------------------------------- [New Topics] +* jc/allow-lazy-cas (2017-07-06) 1 commit + - push: disable lazy --force-with-lease by default + + Because "git push --force-with-lease[=]" that relies on the + stability of remote-tracking branches is unsafe when something + fetches into the repository behind user's back, it is now disabled + by default. A new configuration variable can be used to enable it + by users who know what they are doing. This would pave the way to + possibly turn `--force` into `--force-with-lease`. + + Will wait for feedback, then merge to and cook in 'next'. + + +* ks/typofix-commit-c-comment (2017-07-06) 1 commit + (merged to 'next' on 2017-07-07 at 64e98fc832) + + builtin/commit.c: fix a typo in the comment + + Typofix. + + Will merge to 'master'. + + +* bb/unicode-10.0 (2017-07-07) 1 commit + (merged to 'next' on 2017-07-07 at a9c46e097b) + + unicode: update the width tables to Unicode 10 + + Update the character width tables. + + Will merge to 'master'. + +-------------------------------------------------- +[Stalled] + +* mg/status-in-progress-info (2017-05-10) 2 commits + - status --short --inprogress: spell it as --in-progress + - status: show in-progress info for short status + + "git status" learns an option to report various operations + (e.g. "merging") that the user is in the middle of. + + cf. + + +* nd/worktree-move (2017-04-20) 6 commits + - worktree remove: new command + - worktree move: refuse to move worktrees with submodules + - worktree move: accept destination as directory + - worktree move: new command + - worktree.c: add update_worktree_location() + - worktree.c: add validate_worktree() + + "git worktree" learned move and remove subcommands. + + Expecting a reroll. + cf. <20170420101024.7593-1-pclouds@gmail.com> + cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net> + cf. + + +* sg/clone-refspec-from-command-line-config (2017-06-16) 2 commits + - Documentation/clone: document ignored configuration variables + - clone: respect additional configured fetch refspecs during initial fetch + (this branch is used by sg/remote-no-string-refspecs.) + + "git clone -c var=val" is a way to set configuration variables in + the resulting repository, but it is more useful to also make these + variables take effect while the initial clone is happening, + e.g. these configuration variables could be fetch refspecs. + + Waiting for a response. + cf. <20170617112228.vugswym4o4owf6wj@sigill.intra.peff.net> + cf. + + +* js/rebase-i-final (2017-06-15) 10 commits + - rebase -i: rearrange fixup/squash lines using the rebase--helper + - t3415: test fixup with wrapped oneline + - rebase -i: skip unnecessary picks using the rebase--helper + - rebase -i: check for missing commits in the rebase--helper + - t3404: relax rebase.missingCommitsCheck tests + - rebase -i: also expand/collapse the SHA-1s via the rebase--helper + - rebase -i: do not invent onelines when expanding/collapsing SHA-1s + - rebase -i: remove useless indentation + - rebase -i: generate the script via rebase--helper + - t3415: verify that an empty instructionFormat is handled as before + + The final batch to "git rebase -i" updates to move more code from + the shell script to C. + + Expecting a reroll. + This is at its v5. + cf. + +-------------------------------------------------- +[Cooking] + * bc/object-id (2017-07-04) 12 commits - sha1_name: convert GET_SHA1* flags to GET_OID* - sha1_name: convert get_sha1* to get_oid* @@ -104,12 +206,13 @@ of the repositories listed at Conversion from uchar[20] to struct object_id continues. -* jk/reflog-walk (2017-07-05) 7 commits +* jk/reflog-walk (2017-07-07) 8 commits + - reflog-walk: apply --since/--until to reflog dates - reflog-walk: stop using fake parents - rev-list: check reflog_info before showing usage - get_revision_1(): replace do-while with an early return - log: do not free parents when walking reflog - - [SQUASH LOG MESSAGE ONLY] t1414: document some reflog-walk oddities + - revision: disallow reflog walking with revs->limited - t1414: document some reflog-walk oddities - Merge branch 'jk/reflog-walk-maint' into jk/reflog-walk (this branch uses jk/reflog-walk-maint.) @@ -117,9 +220,16 @@ of the repositories listed at Numerous bugs in walking of reflogs via "log -g" and friends have been fixed. + Will wait for feedback, then merge to and cook in 'next'. -* jk/reflog-walk-maint (2017-07-05) 1 commit - - reflog-walk: skip over double-null oid due to HEAD rename + +* jk/reflog-walk-maint (2017-07-07) 4 commits + (merged to 'next' on 2017-07-07 at 611554ba2f) + + reflog-walk: include all fields when freeing complete_reflogs + + reflog-walk: don't free reflogs added to cache + + reflog-walk: duplicate strings in complete_reflogs list + (merged to 'next' on 2017-07-06 at 7408dd80a1) + + reflog-walk: skip over double-null oid due to HEAD rename (this branch is used by jk/reflog-walk.) After "git branch --move" of the currently checked out branch, the @@ -127,24 +237,6 @@ of the repositories listed at incorrectly stopped at the reflog entry that records the renaming of the branch. - -* js/t5534-rev-parse-gives-multi-line-output-fix (2017-07-05) 1 commit - (merged to 'next' on 2017-07-05 at 5f964c44ba) - + t5534: fix misleading grep invocation - - A few tests that tried to verify the contents of push certificates - did not use 'git rev-parse' to formulate the line to look for in - the certificate correctly. - - Will merge to 'master'. - - -* rs/apply-avoid-over-reading (2017-07-01) 1 commit - (merged to 'next' on 2017-07-05 at 35730f3a47) - + apply: use starts_with() in gitdiff_verify_name() - - Code clean-up to fix possible buffer over-reading. - Will merge to 'master'. @@ -187,92 +279,6 @@ of the repositories listed at Will wait for feedback, then merge to and cook in 'next'. -* ab/sha1dc-maint (2017-07-03) 1 commit - (merged to 'next' on 2017-07-05 at ac69c90b7e) - + sha1dc: update from upstream - (this branch is used by ab/sha1dc.) - - Update the sha1dc again to fix portability glitches. - - Will merge to 'master'. - --------------------------------------------------- -[Stalled] - -* mg/status-in-progress-info (2017-05-10) 2 commits - - status --short --inprogress: spell it as --in-progress - - status: show in-progress info for short status - - "git status" learns an option to report various operations - (e.g. "merging") that the user is in the middle of. - - cf. - - -* nd/worktree-move (2017-04-20) 6 commits - - worktree remove: new command - - worktree move: refuse to move worktrees with submodules - - worktree move: accept destination as directory - - worktree move: new command - - worktree.c: add update_worktree_location() - - worktree.c: add validate_worktree() - - "git worktree" learned move and remove subcommands. - - Expecting a reroll. - cf. <20170420101024.7593-1-pclouds@gmail.com> - cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net> - cf. - - -* xz/send-email-batch-size (2017-07-05) 1 commit - (merged to 'next' on 2017-07-05 at 92f3c31fbd) - + send-email: --batch-size to work around some SMTP server limit - - "git send-email" learned to overcome some SMTP server limitation - that does not allow many pieces of e-mails to be sent over a single - session. - - Will merge to 'master'. - - -* sg/clone-refspec-from-command-line-config (2017-06-16) 2 commits - - Documentation/clone: document ignored configuration variables - - clone: respect additional configured fetch refspecs during initial fetch - (this branch is used by sg/remote-no-string-refspecs.) - - "git clone -c var=val" is a way to set configuration variables in - the resulting repository, but it is more useful to also make these - variables take effect while the initial clone is happening, - e.g. these configuration variables could be fetch refspecs. - - Waiting for a response. - cf. <20170617112228.vugswym4o4owf6wj@sigill.intra.peff.net> - cf. - - -* js/rebase-i-final (2017-06-15) 10 commits - - rebase -i: rearrange fixup/squash lines using the rebase--helper - - t3415: test fixup with wrapped oneline - - rebase -i: skip unnecessary picks using the rebase--helper - - rebase -i: check for missing commits in the rebase--helper - - t3404: relax rebase.missingCommitsCheck tests - - rebase -i: also expand/collapse the SHA-1s via the rebase--helper - - rebase -i: do not invent onelines when expanding/collapsing SHA-1s - - rebase -i: remove useless indentation - - rebase -i: generate the script via rebase--helper - - t3415: verify that an empty instructionFormat is handled as before - - The final batch to "git rebase -i" updates to move more code from - the shell script to C. - - Expecting a reroll. - This is at its v5. - cf. - --------------------------------------------------- -[Cooking] - * ab/grep-lose-opt-regflags (2017-06-30) 6 commits (merged to 'next' on 2017-07-05 at 375c0b92ea) + grep: remove redundant REG_NEWLINE when compiling fixed regex @@ -299,87 +305,45 @@ of the repositories listed at * sb/hashmap-customize-comparison (2017-06-30) 3 commits - - hashmap: migrate documentation from Documentation/technical into header - - patch-ids.c: use hashmap correctly - - hashmap.h: compare function has access to a data field + (merged to 'next' on 2017-07-06 at cc420805f3) + + hashmap: migrate documentation from Documentation/technical into header + + patch-ids.c: use hashmap correctly + + hashmap.h: compare function has access to a data field (this branch is used by sb/diff-color-move and sb/hashmap-cleanup.) Update the hashmap API so that data to customize the behaviour of the comparison function can be specified at the time a hashmap is initialized. - Will merge to 'next'. - - -* sb/merge-recursive-code-cleanup (2017-06-30) 1 commit - (merged to 'next' on 2017-07-05 at 4228240520) - + merge-recursive: use DIFF_XDL_SET macro - - Code clean-up. - - Will merge to 'master'. - - -* ab/strbuf-addftime-tzname-boolify (2017-07-01) 2 commits - (merged to 'next' on 2017-07-05 at 81e6795eb3) - + strbuf: change an always NULL/"" strbuf_addftime() param to bool - + strbuf.h comment: discuss strbuf_addftime() arguments in order - - strbuf_addftime() is further getting tweaked. - Will merge to 'master'. * mt/p4-parse-G-output (2017-07-05) 1 commit - - git-p4: parse marshal output "p4 -G" in p4 changes + . git-p4: parse marshal output "p4 -G" in p4 changes Use "p4 -G" to make "p4 changes" output more Python-friendly to parse. Needs review/ack from git-p4 folks. - - -* aw/contrib-subtree-doc-asciidoctor (2017-06-27) 1 commit - (merged to 'next' on 2017-06-30 at af23bd111b) - + subtree: honour USE_ASCIIDOCTOR when set - - The Makefile rule in contrib/subtree for building documentation - learned to honour USE_ASCIIDOCTOR just like the main documentation - set does. - - Will merge to 'master'. - - -* js/fsck-name-object (2017-06-28) 1 commit - (merged to 'next' on 2017-06-30 at 9a08514cf2) - + t1450: use egrep for regexp "alternation" - - Test fix. - - Will merge to 'master'. - - -* jc/utf8-fprintf (2017-06-28) 1 commit - (merged to 'next' on 2017-06-30 at a8cc490818) - + submodule--helper: do not call utf8_fprintf() unnecessarily - - Code cleanup. - - Will merge to 'master'. + It still seems to break when merged to 'pu'. * rs/free-and-null (2017-06-29) 1 commit - - coccinelle: polish FREE_AND_NULL rules + (merged to 'next' on 2017-07-06 at 9c9e1d59a2) + + coccinelle: polish FREE_AND_NULL rules Code cleanup. + Will merge to 'master'. + * ab/wildmatch (2017-06-23) 1 commit - - wildmatch: remove unused wildopts parameter + (merged to 'next' on 2017-07-07 at 34482a9a4f) + + wildmatch: remove unused wildopts parameter - Prepare the wildmatch API for future enhancements to allow a - pattern that is repeatedly matched against many strings to be - precompiled. + Minor code cleanup. + + Will merge to 'master'. * ex/deprecate-empty-pathspec-as-match-all (2017-06-23) 2 commits @@ -407,6 +371,8 @@ of the repositories listed at "git pull --rebase --recurse-submodules" learns to rebase the branch in the submodules to an updated base. + Will merge to 'next'. + * pw/unquote-path-in-git-pm (2017-06-30) 4 commits (merged to 'next' on 2017-07-05 at 538ab4d599) @@ -463,7 +429,7 @@ of the repositories listed at Doc update. - What's the status of this thing? + Will merge to 'next'. * sd/branch-copy (2017-06-18) 3 commits @@ -474,9 +440,12 @@ of the repositories listed at "git branch" learned "-c/-C" to create and switch to a new branch by copying an existing one. - Has a bit of interaction with mh/packed-ref-store and bw/config-h, - so perhaps needs to wait for the former to stabilize a bit more - and possibly rebasing on them. + Undecided. + + I personally do not think "branch --copy master backup" while on + "master" that switches to "backup" is a good UI, and I *will* say + "I told you so" when users complain after we merge this down to + 'next' and eventually to 'master'. * ls/filter-process-delayed (2017-06-30) 7 commits @@ -496,15 +465,15 @@ of the repositories listed at * ab/sha1dc (2017-07-03) 2 commits - - sha1collisiondetection: automatically enable when submodule is populated - - sha1dc: optionally use sha1collisiondetection as a submodule - (this branch uses ab/sha1dc-maint.) + (merged to 'next' on 2017-07-06 at 5a783032b7) + + sha1collisiondetection: automatically enable when submodule is populated + + sha1dc: optionally use sha1collisiondetection as a submodule The "collission-detecting" implementation of SHA-1 hash we borrowed from is replaced by directly binding the upstream project as our submodule. Glitches on minority platforms are still being worked out. - Will merge to 'next'. + Will merge to 'master'. * bp/fsmonitor (2017-06-12) 6 commits @@ -517,43 +486,45 @@ of the repositories listed at We learned to talk to watchman to speed up "git status". - No more comments or updates? + Expecting a reroll. + cf. * sb/diff-color-move (2017-06-30) 26 commits - - diff: document the new --color-moved setting - - diff.c: add dimming to moved line detection - - diff.c: color moved lines differently, plain mode - - diff.c: color moved lines differently - - diff.c: buffer all output if asked to - - diff.c: emit_diff_symbol learns about DIFF_SYMBOL_SUMMARY - - diff.c: emit_diff_symbol learns about DIFF_SYMBOL_STAT_SEP - - diff.c: convert word diffing to use emit_diff_symbol - - diff.c: convert show_stats to use emit_diff_symbol - - diff.c: convert emit_binary_diff_body to use emit_diff_symbol - - submodule.c: migrate diff output to use emit_diff_symbol - - diff.c: emit_diff_symbol learns DIFF_SYMBOL_REWRITE_DIFF - - diff.c: emit_diff_symbol learns about DIFF_SYMBOL_BINARY_FILES - - diff.c: emit_diff_symbol learns DIFF_SYMBOL_HEADER - - diff.c: emit_diff_symbol learns DIFF_SYMBOL_FILEPAIR_{PLUS, MINUS} - - diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_INCOMPLETE - - diff.c: emit_diff_symbol learns DIFF_SYMBOL_WORDS[_PORCELAIN] - - diff.c: migrate emit_line_checked to use emit_diff_symbol - - diff.c: emit_diff_symbol learns DIFF_SYMBOL_NO_LF_EOF - - diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_FRAGINFO - - diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_MARKER - - diff.c: introduce emit_diff_symbol - - diff.c: factor out diff_flush_patch_all_file_pairs - - diff.c: move line ending check into emit_hunk_header - - diff.c: readability fix - - Merge branch 'sb/hashmap-customize-comparison' into sb/diff-color-move + (merged to 'next' on 2017-07-06 at 758ed40e4f) + + diff: document the new --color-moved setting + + diff.c: add dimming to moved line detection + + diff.c: color moved lines differently, plain mode + + diff.c: color moved lines differently + + diff.c: buffer all output if asked to + + diff.c: emit_diff_symbol learns about DIFF_SYMBOL_SUMMARY + + diff.c: emit_diff_symbol learns about DIFF_SYMBOL_STAT_SEP + + diff.c: convert word diffing to use emit_diff_symbol + + diff.c: convert show_stats to use emit_diff_symbol + + diff.c: convert emit_binary_diff_body to use emit_diff_symbol + + submodule.c: migrate diff output to use emit_diff_symbol + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_REWRITE_DIFF + + diff.c: emit_diff_symbol learns about DIFF_SYMBOL_BINARY_FILES + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_HEADER + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_FILEPAIR_{PLUS, MINUS} + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_INCOMPLETE + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_WORDS[_PORCELAIN] + + diff.c: migrate emit_line_checked to use emit_diff_symbol + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_NO_LF_EOF + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_FRAGINFO + + diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_MARKER + + diff.c: introduce emit_diff_symbol + + diff.c: factor out diff_flush_patch_all_file_pairs + + diff.c: move line ending check into emit_hunk_header + + diff.c: readability fix + + Merge branch 'sb/hashmap-customize-comparison' into sb/diff-color-move (this branch uses sb/hashmap-customize-comparison; is tangled with sb/hashmap-cleanup.) "git diff" has been taught to optionally paint new lines that are the same as deleted lines elsewhere differently from genuinely new lines. - Will merge to 'next'. + Will merge to 'master'. -------------------------------------------------- [Discarded] @@ -583,12 +554,3 @@ of the repositories listed at of other worktrees as the root for reachability traversal, making objects that are in use only in other worktrees to be subject to garbage collection. - - -* ab/free-and-null (2017-06-28) 2 commits - (merged to 'next' on 2017-06-28 at 1cf373c61a) - + Revert "coccinelle: add a rule to make "expression" code use FREE_AND_NULL()" - (merged to 'next' on 2017-06-28 at 1785f88122) - + coccinelle: add a rule to make "expression" code use FREE_AND_NULL() - - The coccinelle rule for free-and-null refactoring got simplified.