From: Junio C Hamano Date: Thu, 7 Mar 2019 08:31:26 +0000 (+0900) Subject: What's cooking (2019/03 #02) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ee6d8aa69d8194350f1500da2bd68a72edd02ccd;p=thirdparty%2Fgit.git What's cooking (2019/03 #02) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 5b8da5018b..56b428a130 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 (Mar 2019, #01; Wed, 6) -X-master-at: 36eb1cb9cfe327583128a4b0abdf9516c2ca815b -X-next-at: 471c308f928be87428876934301e2b25cb242d19 +Subject: What's cooking in git.git (Mar 2019, #02; Thu, 7) +X-master-at: 6e0cc6776106079ed4efa0cc9abace4107657abf +X-next-at: 541d9dca55dd03b320a37ba2a509dab20ca41c98 -What's cooking in git.git (Mar 2019, #01; Wed, 6) +What's cooking in git.git (Mar 2019, #02; Thu, 7) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,9 +12,12 @@ 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 maintenance track will be updated to preprare for 2.21.1 soonish, -to address breakages with certain versions of msgfmt in 2.21.0; the -tip of 'next' will also be updated at around the same time. +The maintenance track has been updated to preprare for 2.21.1. +Currently it only has the l10n updates (partly to unbreak builds +with certain versions of msgfmt in 2.21.0. The tip of 'next' has +not been rewound yet. This is a good time to fix a topic in 'next' +that has known "oops that was wrong" at the source, instead of +piling patches on top. You can find the changes described here in the integration branches of the repositories listed at @@ -22,161 +25,392 @@ of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html -------------------------------------------------- -[New Topics] +[Graduated to "master"] -* jk/bisect-final-output (2019-03-01) 3 commits - - bisect: make diff-tree output prettier - - bisect: fix internal diff-tree config loading - - bisect: use string arguments to feed internal diff-tree +* ab/receive-pack-use-after-free-fix (2019-02-20) 1 commit + (merged to 'next' on 2019-02-23 at 3f41dfe375) + + receive-pack: fix use-after-free bug - The final report from "git bisect" used to show the suspected - culprit using a raw "diff-tree", with which there is no output for - a merge commit. This has been updated to use a more modern and - human readable output that still is concise enough. + Memfix. - Will merge to 'next'. +* aw/pretty-trailers (2019-01-29) 7 commits + (merged to 'next' on 2019-02-06 at b7e5437702) + + pretty: add support for separator option in %(trailers) + + strbuf: separate callback for strbuf_expand:ing literals + + pretty: add support for "valueonly" option in %(trailers) + + pretty: allow showing specific trailers + + pretty: single return path in %(trailers) handling + + pretty: allow %(trailers) options with explicit value + + doc: group pretty-format.txt placeholders descriptions -* jk/fsck-doc (2019-03-05) 2 commits - - fsck: always compute USED flags for unreachable objects - - doc/fsck: clarify --connectivity-only behavior + The %(trailers) formatter in "git log --format=..." now allows to + optionally pick trailers selectively by keyword, show only values, + etc. - "git fsck --connectivity-only" omits computation necessary to sift - the objects that are not reachable from any of the refs into - unreachable and dangling. This is now documented, and also the - computation is done in order to show the dangling objects when - requested (which is done by default, but can be overridden with - the "--no-dangling" option). - Will merge to 'next'. +* dl/complete-submodule-absorbgitdirs (2019-02-06) 1 commit + (merged to 'next' on 2019-02-06 at c4e0cd535a) + + completion: complete git submodule absorbgitdirs + Command-line completion (in contrib/) learned to tab-complete the + "git submodule absorbgitdirs" subcommand. -* jk/no-sigpipe-during-network-transport (2019-03-05) 2 commits - - fetch: ignore SIGPIPE during network operation - - fetch: avoid calling write_or_die() - On platforms where "git fetch" is killed with SIGPIPE (e.g. OSX), - the upload-pack that runs on the other end that hangs up after - detecting an error could cause "git fetch" to die with a signal, - which led to a flakey test. "git fetch" now ignores SIGPIPE during - the network portion of its operation (this is not a problem as we - check the return status from our write(2)s). +* dl/doc-submodule-wo-subcommand (2019-02-15) 1 commit + (merged to 'next' on 2019-02-23 at 2f1c1428f1) + + submodule: document default behavior - Will merge to 'next'. + Doc update. -* jk/virtual-objects-do-exist (2019-03-05) 1 commit - - rev-list: allow cached objects in existence check +* du/branch-show-current (2018-10-26) 1 commit + (merged to 'next' on 2019-02-08 at e662ed4aee) + + branch: introduce --show-current display option - A recent update broke "is this object available to us?" check for - well-known objects like an empty tree (which should yield "yes", - even when there is no on-disk object for an empty tree), which has - been corrected. + "git branch" learned a new subcommand "--show-current". - Will merge to 'next'. +* en/combined-all-paths (2019-02-07) 1 commit + (merged to 'next' on 2019-02-08 at 7057f38d6e) + + log,diff-tree: add --combined-all-paths option + + Output from "diff --cc" did not show the original paths when the + merge involved renames. A new option adds the paths in the + original trees to the output. + + +* en/merge-options-doc (2019-02-21) 1 commit + (merged to 'next' on 2019-02-23 at 2eb5263dab) + + merge-options.txt: correct wording of --no-commit option + + Doc update. + + +* jc/test-yes-doc (2019-02-11) 1 commit + (merged to 'next' on 2019-02-13 at cffac01759) + + test: caution on our version of 'yes' + + Test doc update. + + +* jh/trace2 (2019-02-22) 15 commits + (merged to 'next' on 2019-02-22 at 4c84c621fe) + + trace2: add for_each macros to clang-format + + trace2: t/helper/test-trace2, t0210.sh, t0211.sh, t0212.sh + + trace2:data: add subverb for rebase + + trace2:data: add subverb to reset command + + trace2:data: add subverb to checkout command + + trace2:data: pack-objects: add trace2 regions + + trace2:data: add trace2 instrumentation to index read/write + + trace2:data: add trace2 hook classification + + trace2:data: add trace2 transport child classification + + trace2:data: add trace2 sub-process classification + + trace2:data: add editor/pager child classification + + trace2:data: add trace2 regions to wt-status + + trace2: collect Windows-specific process information + + trace2: create new combined trace facility + + trace2: Documentation/technical/api-trace2.txt + + A more structured way to obtain execution trace has been added. + + +* jk/diff-no-index-initialize (2019-02-24) 1 commit + (merged to 'next' on 2019-02-24 at f37a814eb0) + + diff: reuse diff setup for --no-index case + + "git diff --no-index" may still want to access Git goodies like + --ext-diff and --textconv, but so far these have been ignored, + which has been corrected. + + +* jk/prune-optim (2019-02-14) 4 commits + (merged to 'next' on 2019-02-23 at 7d03afc1c2) + + t5304: rename "sha1" variables to "oid" + + prune: check SEEN flag for reachability + + prune: use bitmaps for reachability traversal + + prune: lazily perform reachability traversal + + "git prune" has been taught to take advantage of reachability + bitmap when able. + + +* jk/unused-params (2019-02-14) 10 commits + (merged to 'next' on 2019-02-23 at 9b715907a1) + + ref-filter: drop unused "sz" parameters + + ref-filter: drop unused "obj" parameters + + ref-filter: drop unused buf/sz pairs + + files-backend: drop refs parameter from split_symref_update() + + pack-objects: drop unused parameter from oe_map_new_pack() + + merge-recursive: drop several unused parameters + + diff: drop complete_rewrite parameter from run_external_diff() + + diff: drop unused emit data parameter from sane_truncate_line() + + diff: drop unused color reset parameters + + diff: drop options parameter from diffcore_fix_diff_index() + + Code clean-up. + + +* js/doc-symref-in-proto-v1 (2019-02-21) 1 commit + (merged to 'next' on 2019-02-21 at c7ca3bb974) + + protocol-capabilities.txt: document symref + + Doc update. + + +* jt/http-auth-proto-v2-fix (2019-03-03) 5 commits + (merged to 'next' on 2019-03-03 at d0fdc53f3a) + + remote-curl: use post_rpc() for protocol v2 also + + remote-curl: refactor reading into rpc_state's buf + + remote-curl: reduce scope of rpc_state.result + + remote-curl: reduce scope of rpc_state.stdin_preamble + + remote-curl: reduce scope of rpc_state.argv + + Unify RPC code for smart http in protocol v0/v1 and v2, which fixes + a bug in the latter (lack of authentication retry) and generally + improves the code base. + + +* nd/completion-more-parameters (2019-02-20) 1 commit + (merged to 'next' on 2019-02-23 at 23133710f7) + + completion: add more parameter value completion + + The command line completion (in contrib/) has been taught to + complete more subcommand parameters. + + +* nd/diff-parseopt (2019-01-27) 14 commits + (merged to 'next' on 2019-02-05 at 7c4b79aa79) + + diff.c: convert --raw + + diff.c: convert -W|--[no-]function-context + + diff.c: convert -U|--unified + + diff.c: convert -u|-p|--patch + + diff.c: prepare to use parse_options() for parsing + + diff.h: avoid bit fields in struct diff_flags + + diff.h: keep forward struct declarations sorted + + parse-options: allow ll_callback with OPTION_CALLBACK + + parse-options: avoid magic return codes + + parse-options: stop abusing 'callback' for lowlevel callbacks + + parse-options: add OPT_BITOP() + + parse-options: disable option abbreviation with PARSE_OPT_KEEP_UNKNOWN + + parse-options: add one-shot mode + + parse-options.h: remove extern on function prototypes + (this branch is used by nd/diff-parseopt-2.) + + The diff machinery, one of the oldest parts of the system, which + long predates the parse-options API, uses fairly long and complex + handcrafted option parser. This is being rewritten to use the + parse-options API. + + +* nd/diff-parseopt-2 (2019-02-21) 21 commits + (merged to 'next' on 2019-02-23 at 6f11d0af54) + + diff-parseopt: convert --ignore-some-changes + + diff-parseopt: convert --[no-]minimal + + diff-parseopt: convert --relative + + diff-parseopt: convert --no-renames|--[no--rename-empty + + diff-parseopt: convert --find-copies-harder + + diff-parseopt: convert -C|--find-copies + + diff-parseopt: convert -D|--irreversible-delete + + diff-parseopt: convert -M|--find-renames + + diff-parseopt: convert -B|--break-rewrites + + diff-parseopt: convert --output-* + + diff-parseopt: convert --[no-]compact-summary + + diff-parseopt: convert --stat* + + diff-parseopt: convert -s|--no-patch + + diff-parseopt: convert --name-status + + diff-parseopt: convert --name-only + + diff-parseopt: convert --patch-with-stat + + diff-parseopt: convert --summary + + diff-parseopt: convert --check + + diff-parseopt: convert --dirstat and friends + + diff-parseopt: convert --numstat and --shortstat + + diff-parseopt: convert --patch-with-raw + (this branch uses nd/diff-parseopt.) + + Second batch to teach the diff machinery to use the parse-options + API. + + +* nd/no-more-check-racy (2019-02-22) 1 commit + (merged to 'next' on 2019-02-23 at eda76b8f46) + + Delete check-racy.c + + Unused code removal. + + +* nd/split-index-null-base-fix (2019-02-13) 1 commit + (merged to 'next' on 2019-02-13 at c404a19b7a) + + read-cache.c: fix writing "link" index ext with null base oid + + Split-index fix. + + +* rd/doc-hook-used-in-sample (2019-02-21) 1 commit + (merged to 'next' on 2019-02-23 at e521400a66) + + mention use of "hooks.allownonascii" in "man githooks" + + Doc update. + + +* rj/prune-packed-excess-args (2019-02-11) 1 commit + (merged to 'next' on 2019-02-13 at e026a2e7a7) + + prune-packed: check for too many arguments + + "git prune-packed" did not notice and complain against excess + arguments given from the command line, which now it does. + + +* sc/pack-redundant (2019-02-04) 6 commits + (merged to 'next' on 2019-02-08 at ba3f8f0bc0) + + pack-redundant: consistent sort method + + pack-redundant: rename pack_list.all_objects + + pack-redundant: new algorithm to find min packs + + pack-redundant: delete redundant code + + pack-redundant: delay creation of unique_objects + + t5323: test cases for git-pack-redundant + + Update the implementation of pack-redundant for performance in a + repository with many packfiles. + + +* tg/checkout-no-overlay (2019-02-04) 9 commits + (merged to 'next' on 2019-02-04 at 9968bcf4fb) + + revert "checkout: introduce checkout.overlayMode config" + (merged to 'next' on 2019-01-18 at 1e2a79ba5c) + + checkout: introduce checkout.overlayMode config + + checkout: introduce --{,no-}overlay option + + checkout: factor out mark_cache_entry_for_checkout function + + checkout: clarify comment + + read-cache: add invalidate parameter to remove_marked_cache_entries + + entry: support CE_WT_REMOVE flag in checkout_entry + + entry: factor out unlink_entry function + + move worktree tests to t24* + + "git checkout --no-overlay" can be used to trigger a new mode of + checking out paths out of the tree-ish, that allows paths that + match the pathspec that are in the current index and working tree + and are not in the tree-ish. -* js/anonymize-remote-curl-diag (2019-03-06) 2 commits - - remote-curl: mark all error messages for translation - - curl: anonymize URLs in error messages and warnings - remote-http transport did not anonymize URLs reported in its error - messages at places. +* wh/author-committer-ident-config (2019-02-04) 1 commit + (merged to 'next' on 2019-02-06 at 6ab8bfa199) + + config: allow giving separate author and committer idents - Will merge to 'next' the bottom one. - The i18n of die() messages conflicts with topics in flight, so will - be dealt with separately when the tree is more quiescent. + Four new configuration variables {author,committer}.{name,email} + have been introduced to override user.{name,email} in more specific + cases. +-------------------------------------------------- +[New Topics] -* js/find-lib-h-with-ls-files-when-possible (2019-03-05) 1 commit - - Makefile: use `git ls-files` to list header files, if possible +* rj/hdr-check-gcrypt-fix (2019-03-06) 1 commit + (merged to 'next' on 2019-03-07 at ef95cd3878) + + Makefile: fix 'hdr-check' when GCRYPT not installed - The Makefile uses 'find' utility to enumerate all the *.h header - files, which is expensive on platforms with slow filesystems; it - now optionally uses "ls-files" if working within a repository, - which is a trick similar to how all sources are enumerated to run - ETAGS on. + The set of header files used by "make hdr-check" unconditionally + included sha256/gcrypt.h, even when it is not used, causing the + make target to fail. We now skip it when GCRYPT_SHA256 is not in + use. - Will merge to 'next'. + Will merge to 'master'. -* js/rebase-orig-head-fix (2019-03-04) 4 commits - - built-in rebase: set ORIG_HEAD just once, before the rebase - - built-in rebase: demonstrate that ORIG_HEAD is not set correctly - - built-in rebase: use the correct reflog when switching branches - - built-in rebase: no need to check out `onto` twice +* br/commit-tree-parseopt (2019-03-07) 1 commit + (merged to 'next' on 2019-03-07 at d415328f75) + + commit-tree: utilize parse-options api - "gir rebase" that was reimplemented in C did not set ORIG_HEAD - correctly, which has been corrected. + The command line parser of "git commit-tree" has been rewritten to + use the parse-options API. - Will merge to 'next'. + Will merge to 'master'. -* js/rebase-recreate-merge (2019-03-01) 1 commit - - rebase docs: fix "gitlink" typo +* jk/config-type-color-ends-with-lf (2019-03-07) 1 commit + (merged to 'next' on 2019-03-07 at 11bedec388) + + config: document --type=color output is a complete line - Docfix. + "git config --type=color ..." is meant to replace "git config --get-color" + but there is a slight difference that wasn't documented, which is + now fixed. - Will merge to 'next'. + Will merge to 'master'. -* js/stress-test-ui-tweak (2019-03-04) 2 commits - - tests: introduce --stress-jobs= - - tests: let --stress-limit= imply --stress +* jk/guard-bswap-header (2019-03-07) 1 commit + (merged to 'next' on 2019-03-07 at 8ba06b29d4) + + compat/bswap: add include header guards - Dev support. + The include file compat/bswap.h has been updated so that it is safe + to (accidentally) include it more than once. - Will merge to 'next'. + Will merge to 'master'. -* js/untravis-windows (2019-03-01) 1 commit - - travis: remove the hack to build the Windows job on Azure Pipelines +* js/remote-curl-i18n (2019-03-06) 1 commit + - remote-curl: mark all error messages for translation + (this branch uses js/anonymize-remote-curl-diag.) - Dev support. + Error messages given from the http transport have been updated so + that they can be localized. Will merge to 'next'. -* ma/asciidoctor-fixes (2019-03-01) 3 commits - - asciidoctor-extensions: fix spurious space after linkgit - - Documentation/Makefile: add missing dependency on asciidoctor-extensions - - Documentation/Makefile: add missing xsl dependencies for manpages +* ma/asciidoctor-fixes-more (2019-03-07) 5 commits + - Documentation: turn middle-of-line tabs into spaces + - git-svn.txt: drop escaping '\' that ends up being rendered + - git.txt: remove empty line before list continuation + - config/fsck.txt: avoid starting line with dash + - config/diff.txt: drop spurious backtick - Build fix around use of asciidoctor instead of asciidoc + Documentation mark-up fixes. Will merge to 'next'. -* nd/worktree-name-sanitization (2019-03-01) 1 commit - - worktree add: sanitize worktree names - - Need to pick up a newer version. - - -* ra/t3600-test-path-funcs (2019-03-04) 3 commits - - t3600: use helpers to replace test -d/f/e/s - - t3600: restructure code according to contemporary guidelines - - test functions: add function `test_file_not_empty` - - A GSoC micro. - - Need to pick up a newer version. +* nd/diff-parseopt-3 (2019-03-07) 20 commits + - diff-parseopt: convert --submodule + - diff-parseopt: convert --ignore-submodules + - diff-parseopt: convert --textconv + - diff-parseopt: convert --ext-diff + - diff-parseopt: convert --quiet + - diff-parseopt: convert --exit-code + - diff-parseopt: convert --color-words + - diff-parseopt: convert --word-diff-regex + - diff-parseopt: convert --word-diff + - diff-parseopt: convert --[no-]color + - diff-parseopt: convert --[no-]follow + - diff-parseopt: convert -R + - diff-parseopt: convert -a|--text + - diff-parseopt: convert --full-index + - diff-parseopt: convert --binary + - diff-parseopt: convert --anchored + - diff-parseopt: convert --diff-algorithm + - diff-parseopt: convert --histogram + - diff-parseopt: convert --patience + - diff-parseopt: convert --[no-]indent-heuristic + + Third batch to teach the diff machinery to use the parse-options + API. -* rd/gc-prune-doc-fix (2019-03-03) 1 commit - - docs/git-gc: fix typo "--prune=all" to "--prune=now" +* rd/attr.c-comment-typofix (2019-03-07) 1 commit + (merged to 'next' on 2019-03-07 at bf8e985dd8) + + attr.c: ".gitattribute" -> ".gitattributes" (comments) - Doxfix. + In-code comment typofix. - Will merge to 'next'. + Will merge to 'master'. -* dl/reset-doc-no-wrt-abbrev (2019-03-06) 1 commit - - git-reset.txt: clarify documentation +* yb/utf-16le-bom-spellfix (2019-03-07) 1 commit + (merged to 'next' on 2019-03-07 at 541d9dca55) + + gitattributes.txt: fix typo + Doc update. -* ja/dir-rename-doc-markup-fix (2019-03-06) 1 commit - - Doc: fix misleading asciidoc formating + Will merge to 'master'. -------------------------------------------------- [Stalled] @@ -200,26 +434,8 @@ of the repositories listed at Comments? -* jt/test-protocol-version (2019-02-06) 8 commits - - t5552: compensate for v2 filtering ref adv. - - tests: fix protocol version for overspecifications - - t5700: only run with protocol version 1 - - t5512: compensate for v0 only sending HEAD symrefs - - t5503: fix overspecification of trace expectation - - tests: always test fetch of unreachable with v0 - - tests: define GIT_TEST_PROTOCOL_VERSION - - Merge branch 'js/protocol-advertise-multi' into jt/test-protocol-version - (this branch uses js/protocol-advertise-multi.) - - Help developers by making it easier to run most of the tests under - different versions of over-the-wire protocols. - - Blocked by js/protocol-advertise-multi - - * js/protocol-advertise-multi (2018-12-28) 1 commit - protocol: advertise multiple supported versions - (this branch is used by jt/test-protocol-version.) The transport layer has been updated so that the protocol version used can be negotiated between the parties, by the initiator @@ -249,6 +465,24 @@ of the repositories listed at I am personally not yet quite convinced if this is worth pursuing. +* pw/add-p-select (2018-07-26) 4 commits + - add -p: optimize line selection for short hunks + - add -p: allow line selection to be inverted + - add -p: select modified lines correctly + - add -p: select individual hunk lines + + "git add -p" interactive interface learned to let users choose + individual added/removed lines to be used in the operation, instead + of accepting or rejecting a whole hunk. + + Will discard. + No further feedbacks on the topic for quite some time. + + cf. + I found the feature to be hard to explain, and may result in more + end-user complaints, but let's see. + + * nb/branch-show-other-worktrees-head (2019-02-01) 3 commits - branch: add an extra verbose output displaying worktree path for refs checked out in a linked worktree - branch: mark and color a branch differently if it is checked out in a linked worktree @@ -260,190 +494,232 @@ of the repositories listed at with '*' in front. The top one probably deserves retitling. - The second one is of dubious value. + The second one is of dubious value, but if we are keeping it, + it should also be retitled. -------------------------------------------------- [Cooking] -* bp/post-index-change-hook (2019-02-15) 1 commit - (merged to 'next' on 2019-02-23 at 70cc07cebe) - + read-cache: add post-index-change hook +* jt/test-protocol-version (2019-03-07) 8 commits + - t5552: compensate for v2 filtering ref adv. + - tests: fix protocol version for overspecifications + - t5700: only run with protocol version 1 + - t5512: compensate for v0 only sending HEAD symrefs + - t5503: fix overspecification of trace expectation + - tests: always test fetch of unreachable with v0 + - t5601: check ssh command only with protocol v0 + - tests: define GIT_TEST_PROTOCOL_VERSION - A new hook "post-index-change" is called when the on-disk index - file changes, which can help e.g. a virtualized working tree - implementation. + Help developers by making it easier to run most of the tests under + different versions of over-the-wire protocols. - Will cook in 'next'. +* jk/bisect-final-output (2019-03-01) 3 commits + (merged to 'next' on 2019-03-07 at 1d429b237a) + + bisect: make diff-tree output prettier + + bisect: fix internal diff-tree config loading + + bisect: use string arguments to feed internal diff-tree -* dl/doc-submodule-wo-subcommand (2019-02-15) 1 commit - (merged to 'next' on 2019-02-23 at 2f1c1428f1) - + submodule: document default behavior + The final report from "git bisect" used to show the suspected + culprit using a raw "diff-tree", with which there is no output for + a merge commit. This has been updated to use a more modern and + human readable output that still is concise enough. - Doc update. + Will merge to 'master'. + + +* jk/fsck-doc (2019-03-05) 2 commits + (merged to 'next' on 2019-03-07 at 7826e889a6) + + fsck: always compute USED flags for unreachable objects + + doc/fsck: clarify --connectivity-only behavior + + "git fsck --connectivity-only" omits computation necessary to sift + the objects that are not reachable from any of the refs into + unreachable and dangling. This is now enabled when dangling + objects are requested (which is done by default, but can be + overridden with the "--no-dangling" option). Will merge to 'master'. -* jc/format-patch-error-check (2019-02-22) 3 commits - - format-patch: --no-clobber refrains from overwriting output files - - format-patch: notice failure to open cover letter for writing - - builtin/log: downcase the beginning of error messages +* jk/no-sigpipe-during-network-transport (2019-03-05) 2 commits + (merged to 'next' on 2019-03-07 at 59fe6aa5ac) + + fetch: ignore SIGPIPE during network operation + + fetch: avoid calling write_or_die() - "git format-patch" used overwrite an existing patch/cover-letter - file. A new "--no-clobber" option stops it. + On platforms where "git fetch" is killed with SIGPIPE (e.g. OSX), + the upload-pack that runs on the other end that hangs up after + detecting an error could cause "git fetch" to die with a signal, + which led to a flakey test. "git fetch" now ignores SIGPIPE during + the network portion of its operation (this is not a problem as we + check the return status from our write(2)s). - Will merge to 'next' after dropping the tip commit. - I think the bottom two were indenendently good changes; the top one - was met with "Meh" by reviewer(s), and I tend to agree. + Will merge to 'master'. -* jk/diff-no-index-initialize (2019-02-24) 1 commit - (merged to 'next' on 2019-02-24 at f37a814eb0) - + diff: reuse diff setup for --no-index case +* jk/virtual-objects-do-exist (2019-03-05) 1 commit + (merged to 'next' on 2019-03-07 at d6937e8e46) + + rev-list: allow cached objects in existence check - "git diff --no-index" may still want to access Git goodies like - --ext-diff and --textconv, but so far these have been ignored, - which has been corrected. + A recent update broke "is this object available to us?" check for + well-known objects like an empty tree (which should yield "yes", + even when there is no on-disk object for an empty tree), which has + been corrected. Will merge to 'master'. -* jk/prune-optim (2019-02-14) 4 commits - (merged to 'next' on 2019-02-23 at 7d03afc1c2) - + t5304: rename "sha1" variables to "oid" - + prune: check SEEN flag for reachability - + prune: use bitmaps for reachability traversal - + prune: lazily perform reachability traversal +* js/anonymize-remote-curl-diag (2019-03-05) 1 commit + - curl: anonymize URLs in error messages and warnings + (this branch is used by js/remote-curl-i18n.) - "git prune" has been taught to take advantage of reachability - bitmap when able. + remote-http transport did not anonymize URLs reported in its error + messages at places. + + Will merge to 'next' the bottom one. + The i18n of die() messages conflicts with topics in flight, so will + be dealt with separately when the tree is more quiescent. + + +* js/find-lib-h-with-ls-files-when-possible (2019-03-05) 1 commit + (merged to 'next' on 2019-03-07 at 0572e4704c) + + Makefile: use `git ls-files` to list header files, if possible + + The Makefile uses 'find' utility to enumerate all the *.h header + files, which is expensive on platforms with slow filesystems; it + now optionally uses "ls-files" if working within a repository, + which is a trick similar to how all sources are enumerated to run + ETAGS on. Will merge to 'master'. -* jk/unused-params (2019-02-14) 10 commits - (merged to 'next' on 2019-02-23 at 9b715907a1) - + ref-filter: drop unused "sz" parameters - + ref-filter: drop unused "obj" parameters - + ref-filter: drop unused buf/sz pairs - + files-backend: drop refs parameter from split_symref_update() - + pack-objects: drop unused parameter from oe_map_new_pack() - + merge-recursive: drop several unused parameters - + diff: drop complete_rewrite parameter from run_external_diff() - + diff: drop unused emit data parameter from sane_truncate_line() - + diff: drop unused color reset parameters - + diff: drop options parameter from diffcore_fix_diff_index() +* js/rebase-orig-head-fix (2019-03-04) 4 commits + (merged to 'next' on 2019-03-07 at f805f820b4) + + built-in rebase: set ORIG_HEAD just once, before the rebase + + built-in rebase: demonstrate that ORIG_HEAD is not set correctly + + built-in rebase: use the correct reflog when switching branches + + built-in rebase: no need to check out `onto` twice - Code clean-up. + "git rebase" that was reimplemented in C did not set ORIG_HEAD + correctly, which has been corrected. Will merge to 'master'. -* jt/http-auth-proto-v2-fix (2019-03-03) 5 commits - (merged to 'next' on 2019-03-03 at d0fdc53f3a) - + remote-curl: use post_rpc() for protocol v2 also - + remote-curl: refactor reading into rpc_state's buf - + remote-curl: reduce scope of rpc_state.result - + remote-curl: reduce scope of rpc_state.stdin_preamble - + remote-curl: reduce scope of rpc_state.argv +* js/rebase-recreate-merge (2019-03-01) 1 commit + (merged to 'next' on 2019-03-07 at da81e64430) + + rebase docs: fix "gitlink" typo - Unify RPC code for smart http in protocol v0/v1 and v2, which fixes - a bug in the latter (lack of authentication retry) and generally - improves the code base. + Docfix. Will merge to 'master'. -* en/merge-options-doc (2019-02-21) 1 commit - (merged to 'next' on 2019-02-23 at 2eb5263dab) - + merge-options.txt: correct wording of --no-commit option +* js/stress-test-ui-tweak (2019-03-04) 2 commits + (merged to 'next' on 2019-03-07 at 9b1cc1a73e) + + tests: introduce --stress-jobs= + + tests: let --stress-limit= imply --stress - Doc update. + Dev support. Will merge to 'master'. -* ab/receive-pack-use-after-free-fix (2019-02-20) 1 commit - (merged to 'next' on 2019-02-23 at 3f41dfe375) - + receive-pack: fix use-after-free bug +* js/untravis-windows (2019-03-01) 1 commit + (merged to 'next' on 2019-03-07 at 54ca7ffeea) + + travis: remove the hack to build the Windows job on Azure Pipelines - Memfix. + Dev support. Will merge to 'master'. -* nd/diff-parseopt-2 (2019-02-21) 21 commits - (merged to 'next' on 2019-02-23 at 6f11d0af54) - + diff-parseopt: convert --ignore-some-changes - + diff-parseopt: convert --[no-]minimal - + diff-parseopt: convert --relative - + diff-parseopt: convert --no-renames|--[no--rename-empty - + diff-parseopt: convert --find-copies-harder - + diff-parseopt: convert -C|--find-copies - + diff-parseopt: convert -D|--irreversible-delete - + diff-parseopt: convert -M|--find-renames - + diff-parseopt: convert -B|--break-rewrites - + diff-parseopt: convert --output-* - + diff-parseopt: convert --[no-]compact-summary - + diff-parseopt: convert --stat* - + diff-parseopt: convert -s|--no-patch - + diff-parseopt: convert --name-status - + diff-parseopt: convert --name-only - + diff-parseopt: convert --patch-with-stat - + diff-parseopt: convert --summary - + diff-parseopt: convert --check - + diff-parseopt: convert --dirstat and friends - + diff-parseopt: convert --numstat and --shortstat - + diff-parseopt: convert --patch-with-raw - (this branch uses nd/diff-parseopt.) +* ma/asciidoctor-fixes (2019-03-01) 3 commits + (merged to 'next' on 2019-03-07 at 005fea5996) + + asciidoctor-extensions: fix spurious space after linkgit + + Documentation/Makefile: add missing dependency on asciidoctor-extensions + + Documentation/Makefile: add missing xsl dependencies for manpages + + Build fix around use of asciidoctor instead of asciidoc + + Will cook in 'next'. + + +* nd/worktree-name-sanitization (2019-03-07) 2 commits + - worktree add: sanitize worktree names + - refs.c: refactor check_refname_component() + + In recent versions of Git, per-worktree refs are exposed in + refs/worktrees// hierarchy, which means that worktree names + must be a valid refname component. The code now sanitizes the names + given to worktrees, to make sure these refs are not malforked. + - Second batch to teach the diff machinery to use the parse-options - API. +* ra/t3600-test-path-funcs (2019-03-04) 3 commits + - t3600: use helpers to replace test -d/f/e/s + - t3600: restructure code according to contemporary guidelines + - test functions: add function `test_file_not_empty` - Will merge to 'master'. + A GSoC micro. + Need to pick up a newer version. -* nd/completion-more-parameters (2019-02-20) 1 commit - (merged to 'next' on 2019-02-23 at 23133710f7) - + completion: add more parameter value completion - The command line completion (in contrib/) has been taught to - complete more subcommand parameters. +* rd/gc-prune-doc-fix (2019-03-03) 1 commit + (merged to 'next' on 2019-03-07 at fdd4dda2e0) + + docs/git-gc: fix typo "--prune=all" to "--prune=now" + + Doxfix. Will merge to 'master'. -* nd/no-more-check-racy (2019-02-22) 1 commit - (merged to 'next' on 2019-02-23 at eda76b8f46) - + Delete check-racy.c +* dl/reset-doc-no-wrt-abbrev (2019-03-06) 1 commit + - git-reset.txt: clarify documentation - Unused code removal. - Will merge to 'master'. +* ja/dir-rename-doc-markup-fix (2019-03-06) 1 commit + - Doc: fix misleading asciidoc formating -* rd/doc-hook-used-in-sample (2019-02-21) 1 commit - (merged to 'next' on 2019-02-23 at e521400a66) - + mention use of "hooks.allownonascii" in "man githooks" +* bp/post-index-change-hook (2019-02-15) 1 commit + (merged to 'next' on 2019-02-23 at 70cc07cebe) + + read-cache: add post-index-change hook - Doc update. + A new hook "post-index-change" is called when the on-disk index + file changes, which can help e.g. a virtualized working tree + implementation. - Will merge to 'master'. + Will cook in 'next'. + + +* jc/format-patch-error-check (2019-02-22) 3 commits + - format-patch: --no-clobber refrains from overwriting output files + - format-patch: notice failure to open cover letter for writing + - builtin/log: downcase the beginning of error messages + + "git format-patch" used overwrite an existing patch/cover-letter + file. A new "--no-clobber" option stops it. + + Will merge to 'next' after dropping the tip commit. + I think the bottom two were indenendently good changes; the top one + was met with "Meh" by reviewer(s), and I tend to agree. * ab/makefile-help-devs-more (2019-02-24) 6 commits - - Makefile: allow for combining DEVELOPER=1 and CFLAGS="..." - - Makefile: move the setting of *FLAGS closer to "include" - - Makefile: Move *_LIBS assignment into its own section - - Makefile: add/remove comments at top and tweak whitespace - - Makefile: move "strip" assignment down from flags - - Makefile: remove an out-of-date comment - - CFLAGS now can be tweked when invoking Make while using + (merged to 'next' on 2019-03-07 at fa05e1a2ae) + + Makefile: allow for combining DEVELOPER=1 and CFLAGS="..." + + Makefile: move the setting of *FLAGS closer to "include" + + Makefile: Move *_LIBS assignment into its own section + + Makefile: add/remove comments at top and tweak whitespace + + Makefile: move "strip" assignment down from flags + + Makefile: remove an out-of-date comment + + CFLAGS now can be tweaked when invoking Make while using DEVELOPER=YesPlease; this did not work well before. - Will merge to 'next'. + Will cook in 'next'. * jt/fetch-cdn-offload (2019-03-01) 9 commits @@ -472,53 +748,6 @@ of the repositories listed at Need to attach sign-off; other than that it seems OK to be in 'next'. -* jc/test-yes-doc (2019-02-11) 1 commit - (merged to 'next' on 2019-02-13 at cffac01759) - + test: caution on our version of 'yes' - - Test doc update. - - Will merge to 'master'. - - -* nd/split-index-null-base-fix (2019-02-13) 1 commit - (merged to 'next' on 2019-02-13 at c404a19b7a) - + read-cache.c: fix writing "link" index ext with null base oid - - Split-index fix. - - Will merge to 'master'. - - -* rj/prune-packed-excess-args (2019-02-11) 1 commit - (merged to 'next' on 2019-02-13 at e026a2e7a7) - + prune-packed: check for too many arguments - - "git prune-packed" did not notice and complain against excess - arguments given from the command line, which now it does. - - Will merge to 'master'. - - -* js/doc-symref-in-proto-v1 (2019-02-21) 1 commit - (merged to 'next' on 2019-02-21 at c7ca3bb974) - + protocol-capabilities.txt: document symref - - Doc update. - - Will merge to 'master'. - - -* dl/complete-submodule-absorbgitdirs (2019-02-06) 1 commit - (merged to 'next' on 2019-02-06 at c4e0cd535a) - + completion: complete git submodule absorbgitdirs - - Command-line completion (in contrib/) learned to tab-complete the - "git submodule absorbgitdirs" subcommand. - - Will merge to 'master'. - - * dm/some-stdio-functions-are-macro-on-freebsd (2019-02-01) 1 commit - http: cast result to FILE * @@ -529,17 +758,6 @@ of the repositories listed at cf. <49B9198C-53E5-42BD-8834-B1EDEB3332CB@usask.ca> -* en/combined-all-paths (2019-02-07) 1 commit - (merged to 'next' on 2019-02-08 at 7057f38d6e) - + log,diff-tree: add --combined-all-paths option - - Output from "diff --cc" did not show the original paths when the - merge involved renames. A new option adds the paths in the - original trees to the output. - - Will merge to 'master'. - - * ds/commit-graph-format-v2 (2019-01-29) 8 commits - SQUASH : misnamed variables and style fix - commit-graph: test verifying a corrupt v2 header @@ -556,29 +774,6 @@ of the repositories listed at Needs update before merging to 'next'. -* jh/trace2 (2019-02-22) 15 commits - (merged to 'next' on 2019-02-22 at 4c84c621fe) - + trace2: add for_each macros to clang-format - + trace2: t/helper/test-trace2, t0210.sh, t0211.sh, t0212.sh - + trace2:data: add subverb for rebase - + trace2:data: add subverb to reset command - + trace2:data: add subverb to checkout command - + trace2:data: pack-objects: add trace2 regions - + trace2:data: add trace2 instrumentation to index read/write - + trace2:data: add trace2 hook classification - + trace2:data: add trace2 transport child classification - + trace2:data: add trace2 sub-process classification - + trace2:data: add editor/pager child classification - + trace2:data: add trace2 regions to wt-status - + trace2: collect Windows-specific process information - + trace2: create new combined trace facility - + trace2: Documentation/technical/api-trace2.txt - - A more structured way to obtain execution trace has been added. - - Will merge to 'master'. - - * sx/evolve (2019-02-15) 8 commits . evolve: add the git change list command . evolve: implement the git change command @@ -606,47 +801,6 @@ of the repositories listed at Needs update before merging to 'next'. -* nd/diff-parseopt (2019-01-27) 14 commits - (merged to 'next' on 2019-02-05 at 7c4b79aa79) - + diff.c: convert --raw - + diff.c: convert -W|--[no-]function-context - + diff.c: convert -U|--unified - + diff.c: convert -u|-p|--patch - + diff.c: prepare to use parse_options() for parsing - + diff.h: avoid bit fields in struct diff_flags - + diff.h: keep forward struct declarations sorted - + parse-options: allow ll_callback with OPTION_CALLBACK - + parse-options: avoid magic return codes - + parse-options: stop abusing 'callback' for lowlevel callbacks - + parse-options: add OPT_BITOP() - + parse-options: disable option abbreviation with PARSE_OPT_KEEP_UNKNOWN - + parse-options: add one-shot mode - + parse-options.h: remove extern on function prototypes - (this branch is used by nd/diff-parseopt-2.) - - The diff machinery, one of the oldest parts of the system, which - long predates the parse-options API, uses fairly long and complex - handcrafted option parser. This is being rewritten to use the - parse-options API. - - Will merge to 'master'. - - -* sc/pack-redundant (2019-02-04) 6 commits - (merged to 'next' on 2019-02-08 at ba3f8f0bc0) - + pack-redundant: consistent sort method - + pack-redundant: rename pack_list.all_objects - + pack-redundant: new algorithm to find min packs - + pack-redundant: delete redundant code - + pack-redundant: delay creation of unique_objects - + t5323: test cases for git-pack-redundant - - Update the implementation of pack-redundant for performance in a - repository with many packfiles. - - Will merge to 'master'. - - * nd/config-move-to (2019-01-14) 7 commits - config.h: fix hdr-check warnings - config: add --move-to @@ -660,49 +814,16 @@ of the repositories listed at * ma/clear-repository-format (2019-03-01) 2 commits - - setup: fix memory leaks with `struct repository_format` - - setup: free old value before setting `work_tree` + (merged to 'next' on 2019-03-07 at 4bf5502fe2) + + setup: fix memory leaks with `struct repository_format` + + setup: free old value before setting `work_tree` The setup code has been cleaned up to avoid leaks around the repository_format structure. - Will merge to 'next'. - - -* wh/author-committer-ident-config (2019-02-04) 1 commit - (merged to 'next' on 2019-02-06 at 6ab8bfa199) - + config: allow giving separate author and committer idents - - Four new configuration variables {author,committer}.{name,email} - have been introduced to override user.{name,email} in more specific - cases. - Will merge to 'master'. -* tg/checkout-no-overlay (2019-02-04) 9 commits - (merged to 'next' on 2019-02-04 at 9968bcf4fb) - + revert "checkout: introduce checkout.overlayMode config" - (merged to 'next' on 2019-01-18 at 1e2a79ba5c) - + checkout: introduce checkout.overlayMode config - + checkout: introduce --{,no-}overlay option - + checkout: factor out mark_cache_entry_for_checkout function - + checkout: clarify comment - + read-cache: add invalidate parameter to remove_marked_cache_entries - + entry: support CE_WT_REMOVE flag in checkout_entry - + entry: factor out unlink_entry function - + move worktree tests to t24* - - "git checkout --no-overlay" can be used to trigger a new mode of - checking out paths out of the tree-ish, that allows paths that - match the pathspec that are in the current index and working tree - and are not in the tree-ish. - - Will hold. - Waiting for "restore-files" & "switch-branches" pair. - cf. <20190205204208.GC6085@hank.intra.tgummerer.com> - - * dl/merge-cleanup-scissors-fix (2019-01-27) 4 commits (merged to 'next' on 2019-02-06 at f4fe5d759a) + merge: add scissors line on merge conflict @@ -716,24 +837,9 @@ of the repositories listed at out just like the list of updated paths and other information to help the user explain the merge better. - Will merge to 'master'. - - -* aw/pretty-trailers (2019-01-29) 7 commits - (merged to 'next' on 2019-02-06 at b7e5437702) - + pretty: add support for separator option in %(trailers) - + strbuf: separate callback for strbuf_expand:ing literals - + pretty: add support for "valueonly" option in %(trailers) - + pretty: allow showing specific trailers - + pretty: single return path in %(trailers) handling - + pretty: allow %(trailers) options with explicit value - + doc: group pretty-format.txt placeholders descriptions - - The %(trailers) formatter in "git log --format=..." now allows to - optionally pick trailers selectively by keyword, show only values, - etc. - - Will merge to 'master'. + Hold to replace or fixup. + cf. <20190306014143.GA2580@dev-l> + cf. * jn/unknown-index-extensions (2018-11-21) 2 commits @@ -746,22 +852,15 @@ of the repositories listed at Expecting a reroll. -* du/branch-show-current (2018-10-26) 1 commit - (merged to 'next' on 2019-02-08 at e662ed4aee) - + branch: introduce --show-current display option - - "git branch" learned a new subcommand "--show-current". - - Will merge to 'master'. - - -* ag/sequencer-reduce-rewriting-todo (2019-01-29) 16 commits - - rebase--interactive: move transform_todo_file() to rebase--interactive.c +* ag/sequencer-reduce-rewriting-todo (2019-03-07) 18 commits + - rebase--interactive: move transform_todo_file() - sequencer: use edit_todo_list() in complete_action() - rebase-interactive: rewrite edit_todo_list() to handle the initial edit - rebase-interactive: append_todo_help() changes - rebase-interactive: use todo_list_write_to_file() in edit_todo_list() - sequencer: refactor skip_unnecessary_picks() to work on a todo_list + - rebase--interactive: move rearrange_squash_in_todo_file() + - rebase--interactive: move sequencer_add_exec_commands() - sequencer: change complete_action() to use the refactored functions - sequencer: make sequencer_make_script() write its script to a strbuf - sequencer: refactor rearrange_squash() to work on a todo_list @@ -780,8 +879,6 @@ of the repositories listed at around in-core to avoid rewriting the same file over and over unnecessarily. - Need to pick up a newer version. - * js/add-i-coalesce-after-editing-hunk (2018-08-28) 1 commit - add -p: coalesce hunks before testing applicability @@ -793,54 +890,38 @@ of the repositories listed at cf. -* ps/stash-in-c (2019-03-01) 28 commits - - tests: add a special setup where stash.useBuiltin is off - - stash: optionally use the scripted version again - - stash: add back the original, scripted `git stash` - - stash: convert `stash--helper.c` into `stash.c` - - stash: replace all `write-tree` child processes with API calls - - stash: optimize `get_untracked_files()` and `check_changes()` - - stash: convert save to builtin - - stash: make push -q quiet - - stash: convert push to builtin - - stash: convert create to builtin - - stash: convert store to builtin - - stash: convert show to builtin - - stash: convert list to builtin - - stash: convert pop to builtin - - stash: convert branch to builtin - - stash: convert drop and clear to builtin - - stash: convert apply to builtin - - stash: mention options in `show` synopsis - - stash: add tests for `git stash show` config - - stash: rename test cases to be more descriptive - - t3903: add test for --intent-to-add file - - t3903: modernize style - - stash: improve option parsing test coverage - - ident: add the ability to provide a "fallback identity" - - strbuf.c: add `strbuf_insertf()` and `strbuf_vinsertf()` - - strbuf.c: add `strbuf_join_argv()` - - sha1-name.c: add `get_oidf()` which acts like `get_oid()` - - Merge branch 'sd/stash-wo-user-name' +* ps/stash-in-c (2019-03-07) 29 commits + (merged to 'next' on 2019-03-07 at a2753bc9d4) + + tests: add a special setup where stash.useBuiltin is off + + stash: optionally use the scripted version again + + stash: add back the original, scripted `git stash` + + stash: convert `stash--helper.c` into `stash.c` + + stash: replace all `write-tree` child processes with API calls + + stash: optimize `get_untracked_files()` and `check_changes()` + + stash: convert save to builtin + + stash: make push -q quiet + + stash: convert push to builtin + + stash: convert create to builtin + + stash: convert store to builtin + + stash: convert show to builtin + + stash: convert list to builtin + + stash: convert pop to builtin + + stash: convert branch to builtin + + stash: convert drop and clear to builtin + + stash: convert apply to builtin + + stash: mention options in `show` synopsis + + stash: add tests for `git stash show` config + + stash: rename test cases to be more descriptive + + t3903: add test for --intent-to-add file + + t3903: modernize style + + stash: improve option parsing test coverage + + ident: don't require calling prepare_fallback_ident first + + ident: add the ability to provide a "fallback identity" + + strbuf.c: add `strbuf_insertf()` and `strbuf_vinsertf()` + + strbuf.c: add `strbuf_join_argv()` + + sha1-name.c: add `get_oidf()` which acts like `get_oid()` + + Merge branch 'sd/stash-wo-user-name' "git stash" rewritten in C. - Will merge to 'next'. - - -* pw/add-p-select (2018-07-26) 4 commits - - add -p: optimize line selection for short hunks - - add -p: allow line selection to be inverted - - add -p: select modified lines correctly - - add -p: select individual hunk lines - - "git add -p" interactive interface learned to let users choose - individual added/removed lines to be used in the operation, instead - of accepting or rejecting a whole hunk. - - Will discard. - No further feedbacks on the topic for quite some time. - - cf. - I found the feature to be hard to explain, and may result in more - end-user complaints, but let's see. + Will cook in 'next'.