What's cooking (2021/05 #01)

Junio C Hamano committed May 6, 2021 at 14:00 UTC 1de9209a8798ef4ad406bcbfbaa5a7eff346755c
1 file changed +608 -473
whats-cooking.txt
+608 -473
index 5bef71df02..e9b2ba660c 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 (Apr 2021, #06; Thu, 29) -X-master-at: 311531c9de557d25ac087c1637818bd2aad6eb3a -X-next-at: 47e6f1690178d77508c72e3fec1411a0ca706661 +Subject: What's cooking in git.git (May 2021, #01; Thu, 6) +X-master-at: 7e391989789db82983665667013a46eabc6fc570 +X-next-at: 1ce651569ca7e0a65f24af9c9548363d83d99866 -What's cooking in git.git (Apr 2021, #06; Thu, 29) +What's cooking in git.git (May 2021, #01; Thu, 6) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are @@ -12,11 +12,6 @@ only in 'seen' (formerly 'pu'---proposed updates) while 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. -I am still catching up with the updates of various topics that -happened during my absense, and I'd expect new patches will still -take more time to be queued in 'seen' (as by definition I haven't -seen many of them ;-). - Copies of the source code to Git live in many repositories, and the following is a list of the ones I push into or their mirrors. Some repositories have only a subset of branches. @@ -48,293 +43,382 @@ Release tarballs are available at: -------------------------------------------------- [Graduated to 'master'] -* ab/detox-gettext-tests (2021-04-13) 1 commit - (merged to 'next' on 2021-04-15 at db0da2903a) - + tests: remove all uses of test_i18cmp +* ab/pathname-encoding-doc (2021-04-20) 1 commit + (merged to 'next' on 2021-04-20 at a90562c59f) + + doc: clarify the filename encoding in git diff + + Clarify that pathnames recorded in Git trees are most often (but + not necessarily) encoded in UTF-8. - Test clean-up. + +* ds/maintenance-prefetch-fix (2021-04-16) 4 commits + (merged to 'next' on 2021-04-16 at 0a1818e235) + + maintenance: respect remote.*.skipFetchAll + + maintenance: use 'git fetch --prefetch' + + fetch: add --prefetch option + + maintenance: simplify prefetch logic + + The prefetch task in "git maintenance" assumed that "git fetch" + from any remote would fetch all its local branches, which would + fetch too much if the user is interested in only a subset of + branches there. -* ab/usage-error-docs (2021-04-13) 3 commits - (merged to 'next' on 2021-04-15 at dbbbaa5eea) - + api docs: document that BUG() emits a trace2 error event - + api docs: document BUG() in api-error-handling.txt - + usage.c: don't copy/paste the same comment three times +* ds/sparse-index (2021-03-30) 21 commits + (merged to 'next' on 2021-04-07 at f1290a7929) + + p2000: add sparse-index repos + + sparse-index: loose integration with cache_tree_verify() + + cache-tree: integrate with sparse directory entries + + sparse-checkout: disable sparse-index + + sparse-checkout: toggle sparse index from builtin + + sparse-index: add index.sparse config option + + sparse-index: check index conversion happens + + unpack-trees: allow sparse directories + + submodule: sparse-index should not collapse links + + sparse-index: convert from full to sparse + + sparse-index: add 'sdir' index extension + + sparse-checkout: hold pattern list in index + + unpack-trees: ensure full index + + test-tool: don't force full index + + test-read-cache: print cache entries with --table + + t1092: compare sparse-checkout to sparse-index + + sparse-index: implement ensure_full_index() + + sparse-index: add guard to ensure full index + + t1092: clean up script quoting + + t/perf: add performance test for sparse operations + + sparse-index: design doc and format update + (this branch is used by ds/sparse-index-protections and ds/status-with-sparse-index.) - Documentation updates, with unrelated comment updates, too. + Both in-core and on-disk index has been updated to optionally omit + individual entries and replace them with the tree object that + corresponds to the directory that contains them when the "cone" + mode of sparse checkout is in use. -* ab/userdiff-tests (2021-04-08) 9 commits - (merged to 'next' on 2021-04-13 at 35fb0e853d) - + blame tests: simplify userdiff driver test - + blame tests: don't rely on t/t4018/ directory - + userdiff: remove support for "broken" tests - + userdiff tests: list builtin drivers via test-tool - + userdiff tests: explicitly test "default" pattern - + userdiff: add and use for_each_userdiff_driver() - + userdiff style: normalize pascal regex declaration - + userdiff style: declare patterns with consistent style - + userdiff style: re-order drivers in alphabetical order +* ds/sparse-index-protections (2021-04-14) 26 commits + (merged to 'next' on 2021-04-17 at f1c40f89ba) + + name-hash: use expand_to_path() + + sparse-index: expand_to_path() + + name-hash: don't add directories to name_hash + + revision: ensure full index + + resolve-undo: ensure full index + + read-cache: ensure full index + + pathspec: ensure full index + + merge-recursive: ensure full index + + entry: ensure full index + + dir: ensure full index + + update-index: ensure full index + + stash: ensure full index + + rm: ensure full index + + merge-index: ensure full index + + ls-files: ensure full index + + grep: ensure full index + + fsck: ensure full index + + difftool: ensure full index + + commit: ensure full index + + checkout: ensure full index + + checkout-index: ensure full index + + add: ensure full index + + cache: move ensure_full_index() to cache.h + + read-cache: expand on query into sparse-directory entry + + *: remove 'const' qualifier for struct index_state + + sparse-index: API protection strategy + (this branch is used by ds/status-with-sparse-index; uses ds/sparse-index.) - A bit of code clean-up and a lot of test clean-up around userdiff - area. + Builds on top of the sparse-index infrastructure to mark operations + that are not ready to mark with the sparse index, causing them to + fall back on fully-populated index that they always have worked with. -* ar/userdiff-scheme (2021-04-08) 1 commit - (merged to 'next' on 2021-04-13 at eb80d55a8c) - + userdiff: add support for Scheme +* hn/refs-trace-errno (2021-04-12) 1 commit + (merged to 'next' on 2021-04-20 at 0816e49d22) + + refs: print errno for read_raw_ref if GIT_TRACE_REFS is set - Userdiff patterns for "Scheme" has been added. + Show errno in the trace output in the error codepath that calls + read_raw_ref method. -* hn/reftable-tables-doc-update (2021-04-12) 1 commit - (merged to 'next' on 2021-04-13 at cdadb2c621) - + reftable: document an alternate cleanup method on Windows +* jk/promisor-optim (2021-04-13) 3 commits + (merged to 'next' on 2021-04-15 at 41f303ef9b) + + revision: avoid parsing with --exclude-promisor-objects + + lookup_unknown_object(): take a repository argument + + is_promisor_object(): free tree buffer after parsing + (this branch is used by rs/repack-without-loosening-promised-objects.) - Doc updte. + Handling of "promisor packs" that allows certain objects to be + missing and lazily retrievable has been optimized (a bit). -* jc/doc-do-not-capitalize-clarification (2021-04-14) 1 commit - (merged to 'next' on 2021-04-15 at 873f7a1f84) - + doc: clarify "do not capitalize the first word" rule +* mt/parallel-checkout-part-2 (2021-04-19) 5 commits + (merged to 'next' on 2021-04-20 at d4779b8864) + + parallel-checkout: add design documentation + + parallel-checkout: support progress displaying + + parallel-checkout: add configuration options + + parallel-checkout: make it truly parallel + + unpack-trees: add basic support for parallel checkout + (this branch is used by mt/parallel-checkout-part-3.) - Doc update for developers. + The checkout machinery has been taught to perform the actual + write-out of the files in parallel when able. -* jk/pack-objects-bitmap-progress-fix (2021-04-12) 1 commit - (merged to 'next' on 2021-04-13 at bbe18a7b3a) - + pack-objects: update "nr_seen" progress based on pack-reused count +* mt/pkt-write-errors (2021-04-15) 1 commit + (merged to 'next' on 2021-04-16 at 4a82d89ff3) + + pkt-line: do not report packet write errors twice - When "git pack-objects" makes a literal copy of a part of existing - packfile using the reachability bitmaps, its update to the progress - meter was broken. + When packet_write() fails, we gave an extra error message + unnecessarily, which has been corrected. -* js/access-nul-emulation-on-windows (2021-04-16) 1 commit - (merged to 'next' on 2021-04-16 at 3017437e51) - + msvc: avoid calling `access("NUL", flags)` +* ow/push-quiet-set-upstream (2021-04-15) 1 commit + (merged to 'next' on 2021-04-16 at 9466d4ef38) + + transport: respect verbosity when setting upstream - Portability fix. + "git push --quiet --set-upstream" was not quiet when setting the + upstream branch configuration, which has been corrected. -* jt/fetch-pack-request-fix (2021-04-08) 1 commit - (merged to 'next' on 2021-04-15 at 25c02ce3c3) - + fetch-pack: buffer object-format with other args - (this branch is used by jt/push-negotiation.) +* so/log-diff-merge (2021-04-16) 5 commits + (merged to 'next' on 2021-04-17 at 6c1eba8ee3) + + doc/diff-options: document new --diff-merges features + + diff-merges: introduce log.diffMerges config variable + + diff-merges: adapt -m to enable default diff format + + diff-merges: refactor set_diff_merges() + + diff-merges: introduce --diff-merges=on - The response to the "object-format" capability in the fetch client - codepath were malformed, which has been corrected. It is - understandable that this bug has been hidden, as practically nobody - uses the non-standard hash function yet. + "git log" learned "--diff-merges=<style>" option, with an + associated configuration variable log.diffMerges. -* sg/bugreport-fixes (2021-04-08) 1 commit - (merged to 'next' on 2021-04-16 at e93602f4df) - + Makefile: add missing dependencies of 'config-list.h' - (this branch is used by so/log-diff-merge.) +* vs/completion-with-set-u (2021-04-16) 1 commit + (merged to 'next' on 2021-04-20 at 179933f961) + + completion: avoid aliased command lookup error in nounset mode - The dependencies for config-list.h and command-list.h were broken - when the former was split out of the latter, which has been - corrected. + Effort to make the command line completion (in contrib/) safe with + "set -u" continues. -------------------------------------------------- [New Topics] -* ab/pathname-encoding-doc (2021-04-20) 1 commit - (merged to 'next' on 2021-04-20 at a90562c59f) - + doc: clarify the filename encoding in git diff +* ad/cygwin-no-backslashes-in-paths (2021-04-30) 1 commit + (merged to 'next' on 2021-04-30 at e2cf03a8aa) + + cygwin: disallow backslashes in file names - Clarify that pathnames recorded in Git trees are most often (but - not necessarily) encoded in UTF-8. + Cygwin pathname handling fix. Will merge to 'master'. -* dl/complete-stash-updates (2021-04-27) 4 commits - - git-completion.bash: consolidate cases in _git_stash() - - git-completion.bash: use $__git_cmd_idx in more places - - git-completion.bash: rename to $__git_cmd_idx - - git-completion.bash: separate some commands onto their own line - (this branch uses dl/complete-stash.) +* hn/refs-errno-cleanup (2021-04-30) 8 commits + - refs: explicitly propagate errno from refs_read_raw_ref + - refs: stop setting EINVAL and ELOOP in symref resolution + - refs: clear errno return in refs_resolve_ref_unsafe() + - refs: add failure_errno to refs_read_raw_ref() signature + - refs: make errno output explicit for refs_resolve_ref_unsafe + - refs: make errno output explicit for read_raw_ref_fn + - refs/files-backend: stop setting errno from lock_ref_oid_basic + - refs: remove EINVAL specification from the errno sideband in read_raw_ref_fn - Further update the command line completion (in contrib/) for "git - stash". + Futz with the way 'errno' is relied on in the refs API to carry the + failure modes up the callchain. - Will merge to 'next'? + Waiting for reviews. -* ab/pretty-date-format-tests (2021-04-27) 2 commits - - pretty tests: give --date/format tests a better description - - pretty tests: simplify %aI/%cI date format test - (this branch is used by zh/pretty-date-human.) +* jc/test-allows-local (2021-05-03) 1 commit + (merged to 'next' on 2021-05-04 at 768071c554) + + CodingGuidelines: explicitly allow "local" for test scripts - Tweak a few tests for "log --format=..." that show timestamps in - various formats. + Document that our test can use "local" keyword. - Will merge to 'next'. + Will merge to 'master'. -* ds/status-with-sparse-index (2021-04-28) 10 commits - - fsmonitor: test with sparse index - - status: use sparse-index throughout - - status: skip sparse-checkout percentage with sparse-index - - dir.c: accept a directory as part of cone-mode patterns - - unpack-trees: stop recursing into sparse directories - - unpack-trees: compare sparse directories correctly - - unpack-trees: preserve cache_bottom - - t1092: add tests for status/add and sparse files - - Merge branch 'mt/add-rm-in-sparse-checkout' into ds/status-with-sparse-index - - Merge branch 'ds/sparse-index-protections' into ds/status-with-sparse-index - (this branch uses ds/sparse-index, ds/sparse-index-protections and mt/add-rm-in-sparse-checkout.) +* jk/doc-format-patch-skips-merges (2021-05-03) 1 commit + (merged to 'next' on 2021-05-04 at cac68f7193) + + docs/format-patch: mention handling of merges - "git status" codepath learned to work with sparsely populated index - without hydrating it fully. + Document that "format-patch" skips merges. + Will merge to 'master'. -* hn/trace-reflog-expiry (2021-04-27) 1 commit - - refs/debug: trace into reflog expiry too - The reflog expiry machinery has been taught to emit trace events. +* jk/pack-objects-negative-options-fix (2021-05-03) 5 commits + (merged to 'next' on 2021-05-04 at 4a61f68cf0) + + pack-objects: clamp negative depth to 0 + + t5316: check behavior of pack-objects --depth=0 + + pack-objects: clamp negative window size to 0 + + t5300: check that we produced expected number of deltas + + t5300: modernize basic tests - Will merge to 'next'. + Options to "git pack-objects" that take numeric values like + --window and --depth should not accept negative values; the input + validation has been tightened. + Will merge to 'master'. -* jk/prune-with-bitmap-fix (2021-04-29) 2 commits - - prune: save reachable-from-recent objects with bitmaps - - pack-bitmap: clean up include_check after use - When the reachability bitmap is in effect, the "do not lose - recently created objects and those that are reachable from them" - safety to protect us from races were disabled by mistake, which has - been corrected. +* jk/symlinked-dotgitx-cleanup (2021-05-04) 9 commits + (merged to 'next' on 2021-05-04 at deca6ca662) + + docs: document symlink restrictions for dot-files + + fsck: warn about symlinked dotfiles we'll open with O_NOFOLLOW + + t0060: test ntfs/hfs-obscured dotfiles + + t7450: test .gitmodules symlink matching against obscured names + + t7450: test verify_path() handling of gitmodules + + t7415: rename to expand scope + + fsck_tree(): wrap some long lines + + fsck_tree(): fix shadowed variable + + t7415: remove out-dated comment about translation - Will merge to 'next'. + Various test and documentation updates about .gitsomething paths + that are symlinks. + Will merge to 'master'. -* js/merge-already-up-to-date-message-reword (2021-04-28) 1 commit - - git-merge: rewrite already up to date message - A few variants of informational message "Already up-to-date" has - been rephrased. +* nc/submodule-update-quiet (2021-05-03) 1 commit + (merged to 'next' on 2021-05-04 at 09bed89b60) + + submodule update: silence underlying fetch with "--quiet" - Expecting a reroll. + "git submodule update --quiet" did not propagate the quiet option + down to underlying "git fetch", which has been corrected. + Will merge to 'master'. -* jz/apply-3way-first-message-fix (2021-04-29) 1 commit - - apply: adjust messages to account for --3way changes - When we swapped the order of --3way fallback, we forgot to adjust - the message we give when the first method fails and the second - method is attempted (which used to be "direct application failed - hence we try 3way", now it is the other way around). +* en/ort-perf-batch-11 (2021-05-04) 13 commits + - merge-ort, diffcore-rename: employ cached renames when possible + - merge-ort: handle interactions of caching and rename/rename(1to1) cases + - merge-ort: add helper functions for using cached renames + - merge-ort: preserve cached renames for the appropriate side + - merge-ort: avoid accidental API mis-use + - merge-ort: add code to check for whether cached renames can be reused + - merge-ort: populate caches of rename detection results + - merge-ort: add data structures for in-memory caching of rename detection + - t6429: testcases for remembering renames + - fast-rebase: write conflict state to working tree, index, and HEAD + - fast-rebase: change assert() to BUG() + - Documentation/technical: describe remembering renames optimization + - t6423: rename file within directory that other side renamed + + Optimize out repeated rename detection in a sequence of mergy + operations. - Will merge to 'next'. + Waiting for reviews. -* ls/fast-export-signed (2021-04-28) 3 commits - - fast-export, fast-import: implement signed-commits - - fast-export: rename --signed-tags='warn' to 'warn-verbatim' - - git-fast-import.txt: add missing LF in the BNF +* si/zsh-complete-comment-fix (2021-05-04) 1 commit + (merged to 'next' on 2021-05-04 at a15c1ea590) + + work around zsh comment in __git_complete_worktree_paths + + Portability fix for command line completion script (in contrib/). + + Will merge to 'master'. - "git fast-export" offers a way to control how signed tags are - handled; the mechanism has been extended to allow specifying how - signed commits are handled as well. + +* dd/mailinfo-quoted-cr (2021-05-05) 5 commits + - am: learn to process quoted lines that ends with CRLF + - mailinfo: strip quoted CR on users' wish + - mailinfo: skip quoted CR on user's wish + - mailinfo: warn if CR found in base64/quoted-printable email + - mailinfo: avoid magic number in option parsing + + "git mailinfo" (hence "git am") learned the "--quoted-cr" option to + control how lines ending with CRLF wrapped in base64 or qp are + handled. Expecting a reroll. + cf. <YJK/ieA7fzB+h01t@danh.dev> -* ls/subtree (2021-04-28) 30 commits - - subtree: be stricter about validating flags - - subtree: push: allow specifying a local rev other than HEAD - - subtree: allow 'split' flags to be passed to 'push' - - subtree: allow --squash to be used with --rejoin - - subtree: give the docs a once-over - - subtree: have $indent actually affect indentation - - subtree: don't let debug and progress output clash - - subtree: add comments and sanity checks - - subtree: remove duplicate check - - subtree: parse revs in individual cmd_ functions - - subtree: use "^{commit}" instead of "^0" - - subtree: don't fuss with PATH - - subtree: use "$*" instead of "$@" as appropriate - - subtree: use more explicit variable names for cmdline args - - subtree: use git-sh-setup's `say` - - subtree: use `git merge-base --is-ancestor` - - subtree: drop support for git < 1.7 - - subtree: more consistent error propagation - - subtree: don't have loose code outside of a function - - subtree: t7900: add porcelain tests for 'pull' and 'push' - - subtree: t7900: add a test for the -h flag - - subtree: t7900: rename last_commit_message to last_commit_subject - - subtree: t7900: fix 'verify one file change per commit' - - subtree: t7900: delete some dead code - - subtree: t7900: use 'test' for string equality - - subtree: t7900: comment subtree_test_create_repo - - subtree: t7900: use consistent formatting - - subtree: t7900: use test-lib.sh's test_count - - subtree: t7900: update for having the default branch name be 'main' - - .gitignore: ignore 'git-subtree' as a build artifact +* ll/clone-reject-shallow (2021-05-05) 1 commit + (merged to 'next' on 2021-05-06 at 4a165ffc96) + + t5601: mark protocol v2-only test - "git subtree" updates. + Fix tests when forced to use v0 protocol. - Will merge to 'next'? - Unless somebody familiar with subtree speaks up soon and causes a - reroll. + Will merge to 'master'. -* mt/parallel-checkout-part-3 (2021-04-28) 7 commits - - ci: run test round with parallel-checkout enabled - - parallel-checkout: add tests related to .gitattributes - - parallel-checkout: add tests related to path collisions - - parallel-checkout: add tests for basic operations - - checkout-index: add parallel checkout support - - builtin/checkout.c: complete parallel checkout support - - make_transient_cache_entry(): optionally alloc from mem_pool - (this branch uses mt/parallel-checkout-part-2.) +* ab/perl-makefile-cleanup (2021-05-06) 4 commits + - perl: use mock i18n functions under NO_GETTEXT=Y + - Makefile: regenerate *.pm on NO_PERL_CPAN_FALLBACKS change + - Makefile: regenerate perl/build/* if GIT-PERL-DEFINES changes + - Makefile: don't re-define PERL_DEFINES - The final part of "parallel checkout". + Build procedure clean-up. - Waiting for a review. + Will merge to 'next'. -* po/diff-patch-doc (2021-04-28) 1 commit - - doc: point to diff attribute in patch format docs +* ab/sparse-index-cleanup (2021-05-06) 1 commit + - sparse-index.c: remove set_index_sparse_config() - Doc update. + Code clean-up. Will merge to 'next'. -* rj/bisect-skip-honor-terms (2021-04-28) 2 commits - - t6030: add test for git bisect skip started with --term-* arguments - - bisect--helper: use BISECT_TERMS in 'bisect skip' command +* ab/streaming-simplify (2021-05-06) 5 commits + - streaming.c: move {open,close,read} from vtable to "struct git_istream" + - streaming.c: stop passing around "object_info *" to open() + - streaming.c: remove {open,close,read}_method_decl() macros + - streaming.c: remove enum/function/vtbl indirection + - streaming.c: avoid forward declarations - "git bisect skip" when custom words are used for new/old did not - work, which has been corrected. + Code clean-up. + Will merge to 'next'. -* tv/p4-fallback-encoding (2021-04-28) 1 commit - - add git-p4.fallbackEncoding config variable, to prevent git-p4 from crashing on non UTF-8 changeset descriptions - "git p4" learns the fallbackEncoding configuration variable to - safely accept changeset descriptions that aren't written in UTF-8. +* ab/trace2-squelch-bcc-warning (2021-05-05) 1 commit + - trace2: refactor to avoid gcc warning under -O3 - Expecting a reroll. + Workaround compiler warnings. -* zh/pretty-date-human (2021-04-27) 1 commit - - pretty: provide human date format - (this branch uses ab/pretty-date-format-tests.) +* jk/p4-locate-branch-point-optim (2021-05-06) 2 commits + - git-p4: speed up search for branch parent + - git-p4: ensure complex branches are cloned correctly - "git log --format=..." placeholders learned %ah/%ch placeholders to - request the --date=human output. + "git p4" learned to find branch points more efficiently. + + Will merge to 'next'. + + +* ow/no-dryrun-in-add-i (2021-05-06) 1 commit + - add: die if both --dry-run and --interactive are given + + "git add -i --dry-run" does not dry-run, which was surprising. The + combination of options has taught to error out. + + Will merge to 'next'. + + +* pw/patience-diff-clean-up (2021-05-05) 2 commits + (merged to 'next' on 2021-05-06 at 1ce651569c) + + patience diff: remove unused variable + + patience diff: remove unnecessary string comparisons + + Code clean-up. - Will merge to 'next'? + Will merge to 'master'. + + +* pw/word-diff-zero-width-matches (2021-05-05) 1 commit + (merged to 'next' on 2021-05-06 at e5653da568) + + word diff: handle zero length matches + + The word-diff mode has been taught to work better with a word + regexp that can match an empty string. + + Will merge to 'master'. -------------------------------------------------- [Stalled] -* jh/rfc-builtin-fsmonitor (2021-04-08) 23 commits +* jh/rfc-builtin-fsmonitor (2021-05-04) 24 commits + - fsmonitor: only enable it in non-bare repositories - t7527: test status with untracked-cache and fsmonitor--daemon - p7519: add fsmonitor--daemon - t7527: create test for fsmonitor--daemon @@ -397,6 +481,8 @@ Release tarballs are available at: Various updates to tests around "git describe" + Waiting for the base topic to solidify. + * ab/pickaxe-pcre2 (2021-04-29) 22 commits - xdiff-interface: replace discard_hunk_line() with a flag @@ -426,6 +512,8 @@ Release tarballs are available at: Rewrite the backend for "diff -G/-S" to use pcre2 engine when available. + Waiting for the base topic to solidify. + * es/config-hooks (2021-03-10) 36 commits . run-command: stop thinking about hooks @@ -470,41 +558,227 @@ Release tarballs are available at: -------------------------------------------------- [Cooking] -* dl/complete-stash (2021-03-24) 3 commits - (merged to 'next' on 2021-03-24 at ce573a99cc) - + git-completion.bash: use __gitcomp_builtin() in _git_stash() - + git-completion.bash: extract from else in _git_stash() - + git-completion.bash: pass $__git_subcommand_idx from __git_main() - (this branch is used by dl/complete-stash-updates.) +* dl/complete-stash-updates (2021-04-27) 4 commits + (merged to 'next' on 2021-05-03 at 8901a9c431) + + git-completion.bash: consolidate cases in _git_stash() + + git-completion.bash: use $__git_cmd_idx in more places + + git-completion.bash: rename to $__git_cmd_idx + + git-completion.bash: separate some commands onto their own line + (this branch uses dl/complete-stash.) - The command line completion (in contrib/) for "git stash" has been - updated. + Further update the command line completion (in contrib/) for "git + stash". - Wait until dl/complete-stash-updates matures. + Will merge to 'master'. -* ba/object-info (2021-04-20) 1 commit - - object-info: support for retrieving object info +* ab/pretty-date-format-tests (2021-04-27) 2 commits + (merged to 'next' on 2021-04-30 at bd2d680c23) + + pretty tests: give --date/format tests a better description + + pretty tests: simplify %aI/%cI date format test + (this branch is used by zh/pretty-date-human.) - Over-the-wire protocol learns a new request type to ask for object - sizes given a list of object names. + Tweak a few tests for "log --format=..." that show timestamps in + various formats. + Will merge to 'master'. -* zh/format-ref-array-optim (2021-04-20) 2 commits - - ref-filter: reuse output buffer - - ref-filter: get rid of show_ref_array_item - "git (branch|tag) --format=..." has been micro-optimized. +* ds/status-with-sparse-index (2021-04-28) 10 commits + - fsmonitor: test with sparse index + - status: use sparse-index throughout + - status: skip sparse-checkout percentage with sparse-index + - dir.c: accept a directory as part of cone-mode patterns + - unpack-trees: stop recursing into sparse directories + - unpack-trees: compare sparse directories correctly + - unpack-trees: preserve cache_bottom + - t1092: add tests for status/add and sparse files + - Merge branch 'mt/add-rm-in-sparse-checkout' into ds/status-with-sparse-index + - Merge branch 'ds/sparse-index-protections' into ds/status-with-sparse-index + (this branch uses mt/add-rm-in-sparse-checkout.) - Will merge to 'next'? + "git status" codepath learned to work with sparsely populated index + without hydrating it fully. -* vs/completion-with-set-u (2021-04-16) 1 commit - (merged to 'next' on 2021-04-20 at 179933f961) - + completion: avoid aliased command lookup error in nounset mode +* hn/trace-reflog-expiry (2021-04-27) 1 commit + (merged to 'next' on 2021-04-30 at 6bc9a79b61) + + refs/debug: trace into reflog expiry too - Effort to make the command line completion (in contrib/) safe with - "set -u" continues. + The reflog expiry machinery has been taught to emit trace events. + + Will merge to 'master'. + + +* jk/prune-with-bitmap-fix (2021-04-29) 2 commits + (merged to 'next' on 2021-04-30 at bede558f31) + + prune: save reachable-from-recent objects with bitmaps + + pack-bitmap: clean up include_check after use + + When the reachability bitmap is in effect, the "do not lose + recently created objects and those that are reachable from them" + safety to protect us from races were disabled by mistake, which has + been corrected. + + Will merge to 'master'. + + +* js/merge-already-up-to-date-message-reword (2021-05-03) 2 commits + (merged to 'next' on 2021-05-04 at b2e696ecd7) + + merge: fix swapped "up to date" message components + + merge(s): apply consistent punctuation to "up to date" messages + + A few variants of informational message "Already up-to-date" has + been rephrased. + + Will merge to 'master'. + + +* jz/apply-3way-first-message-fix (2021-04-29) 1 commit + (merged to 'next' on 2021-04-30 at 829167e135) + + apply: adjust messages to account for --3way changes + + When we swapped the order of --3way fallback, we forgot to adjust + the message we give when the first method fails and the second + method is attempted (which used to be "direct application failed + hence we try 3way", now it is the other way around). + + Will merge to 'master'. + + +* ls/fast-export-signed (2021-05-03) 5 commits + - fast-export, fast-import: add support for signed-commits + - fast-export: do not modify memory from get_commit_buffer + - git-fast-export.txt: clarify why 'verbatim' may not be a good idea + - fast-export: rename --signed-tags='warn' to 'warn-verbatim' + - git-fast-import.txt: add missing LF in the BNF + + "git fast-export" offers a way to control how signed tags are + handled; the mechanism has been extended to allow specifying how + signed commits are handled as well. + + Expecting a reroll. + cf. <xmqqa6pca0pv.fsf@gitster.g>, <xmqq1rao9zev.fsf@gitster.g> + + +* ls/subtree (2021-04-28) 30 commits + (merged to 'next' on 2021-05-03 at 12c5fe8677) + + subtree: be stricter about validating flags + + subtree: push: allow specifying a local rev other than HEAD + + subtree: allow 'split' flags to be passed to 'push' + + subtree: allow --squash to be used with --rejoin + + subtree: give the docs a once-over + + subtree: have $indent actually affect indentation + + subtree: don't let debug and progress output clash + + subtree: add comments and sanity checks + + subtree: remove duplicate check + + subtree: parse revs in individual cmd_ functions + + subtree: use "^{commit}" instead of "^0" + + subtree: don't fuss with PATH + + subtree: use "$*" instead of "$@" as appropriate + + subtree: use more explicit variable names for cmdline args + + subtree: use git-sh-setup's `say` + + subtree: use `git merge-base --is-ancestor` + + subtree: drop support for git < 1.7 + + subtree: more consistent error propagation + + subtree: don't have loose code outside of a function + + subtree: t7900: add porcelain tests for 'pull' and 'push' + + subtree: t7900: add a test for the -h flag + + subtree: t7900: rename last_commit_message to last_commit_subject + + subtree: t7900: fix 'verify one file change per commit' + + subtree: t7900: delete some dead code + + subtree: t7900: use 'test' for string equality + + subtree: t7900: comment subtree_test_create_repo + + subtree: t7900: use consistent formatting + + subtree: t7900: use test-lib.sh's test_count + + subtree: t7900: update for having the default branch name be 'main' + + .gitignore: ignore 'git-subtree' as a build artifact + + "git subtree" updates. + + Will merge to 'master'. + + +* mt/parallel-checkout-part-3 (2021-05-05) 8 commits + - ci: run test round with parallel-checkout enabled + - parallel-checkout: add tests related to .gitattributes + - t0028: extract encoding helpers to lib-encoding.sh + - parallel-checkout: add tests related to path collisions + - parallel-checkout: add tests for basic operations + - checkout-index: add parallel checkout support + - builtin/checkout.c: complete parallel checkout support + - make_transient_cache_entry(): optionally alloc from mem_pool + + The final part of "parallel checkout". + + Will merge to 'next'. + + +* po/diff-patch-doc (2021-04-28) 1 commit + (merged to 'next' on 2021-04-30 at 58af0f4b5e) + + doc: point to diff attribute in patch format docs + + Doc update. + + Will merge to 'master'. + + +* rj/bisect-skip-honor-terms (2021-04-30) 1 commit + (merged to 'next' on 2021-05-04 at f7c11bba06) + + bisect--helper: use BISECT_TERMS in 'bisect skip' command + + "git bisect skip" when custom words are used for new/old did not + work, which has been corrected. + + Will merge to 'master'. + + +* tv/p4-fallback-encoding (2021-04-30) 1 commit + - git-p4: git-p4.fallbackEncoding to specify non UTF-8 charset + + "git p4" learns the fallbackEncoding configuration variable to + safely accept changeset descriptions that aren't written in UTF-8. + + +* zh/pretty-date-human (2021-04-27) 1 commit + (merged to 'next' on 2021-04-30 at 2320ad8fb0) + + pretty: provide human date format + (this branch uses ab/pretty-date-format-tests.) + + "git log --format=..." placeholders learned %ah/%ch placeholders to + request the --date=human output. + + Will merge to 'master'. + + +* dl/complete-stash (2021-03-24) 3 commits + (merged to 'next' on 2021-03-24 at ce573a99cc) + + git-completion.bash: use __gitcomp_builtin() in _git_stash() + + git-completion.bash: extract from else in _git_stash() + + git-completion.bash: pass $__git_subcommand_idx from __git_main() + (this branch is used by dl/complete-stash-updates.) + + The command line completion (in contrib/) for "git stash" has been + updated. + + Will merge to 'master'. + + +* ba/object-info (2021-04-20) 1 commit + - object-info: support for retrieving object info + + Over-the-wire protocol learns a new request type to ask for object + sizes given a list of object names. + + Will merge to 'next'. + + +* zh/format-ref-array-optim (2021-04-20) 2 commits + (merged to 'next' on 2021-04-30 at b6c835cc51) + + ref-filter: reuse output buffer + + ref-filter: get rid of show_ref_array_item + + "git (branch|tag) --format=..." has been micro-optimized. Will merge to 'master'. @@ -535,179 +809,128 @@ Release tarballs are available at: Preliminary clean-up of tests before the main reftable changes hits the codebase. + Waiting for reviews. + -* ps/config-env-option-with-separate-value (2021-04-19) 2 commits - - git: support separate arg for `--config-env`'s value - - git.txt: fix synopsis of `--config-env` missing the equals sign +* ps/config-env-option-with-separate-value (2021-04-30) 2 commits + (merged to 'next' on 2021-04-30 at 46fbcd08c1) + + git: support separate arg for `--config-env`'s value + + git.txt: fix synopsis of `--config-env` missing the equals sign "git --config-env var=val cmd" weren't accepted (only --config-env=var=val was). - Will merge to 'next'. - possibly with minimum fix-up? - cf. <YIKcZxEDsG7qsE4G@coredump.intra.peff.net> - - -* ab/fsck-unexpected-type (2021-04-13) 6 commits - - fsck: report invalid object type-path combinations - - fsck: report invalid types recorded in objects - - object-store.h: move read_loose_object() below 'struct object_info' - - fsck: don't hard die on invalid object types - - fsck tests: refactor one test to use a sub-repo - - cache.h: move object functions to object-store.h - - "git fsck" has been taught to report mismatch between expected and - actual types of an object better. - - Expecting a reroll. - - -* jk/promisor-optim (2021-04-13) 3 commits - (merged to 'next' on 2021-04-15 at 41f303ef9b) - + revision: avoid parsing with --exclude-promisor-objects - + lookup_unknown_object(): take a repository argument - + is_promisor_object(): free tree buffer after parsing - (this branch is used by rs/repack-without-loosening-promised-objects.) - - Handling of "promisor packs" that allows certain objects to be - missing and lazily retrievable has been optimized (a bit). - - Will merge to 'master'. - - -* so/log-diff-merge (2021-04-16) 5 commits - (merged to 'next' on 2021-04-17 at 6c1eba8ee3) - + doc/diff-options: document new --diff-merges features - + diff-merges: introduce log.diffMerges config variable - + diff-merges: adapt -m to enable default diff format - + diff-merges: refactor set_diff_merges() - + diff-merges: introduce --diff-merges=on - - "git log" learned "--diff-merges=<style>" option, with an - associated configuration variable log.diffMerges. - Will merge to 'master'. * rs/repack-without-loosening-promised-objects (2021-04-28) 1 commit - - repack: avoid loosening promisor objects in partial clones - (this branch uses jk/promisor-optim.) + (merged to 'next' on 2021-05-03 at 6681b49209) + + repack: avoid loosening promisor objects in partial clones "git repack -A -d" in a partial clone unnecessarily loosened objects in promisor pack. - -* mt/pkt-write-errors (2021-04-15) 1 commit - (merged to 'next' on 2021-04-16 at 4a82d89ff3) - + pkt-line: do not report packet write errors twice - - When packet_write() fails, we gave an extra error message - unnecessarily, which has been corrected. - - Will merge to 'master'. - - -* ow/push-quiet-set-upstream (2021-04-15) 1 commit - (merged to 'next' on 2021-04-16 at 9466d4ef38) - + transport: respect verbosity when setting upstream - - "git push --quiet --set-upstream" was not quiet when setting the - upstream branch configuration, which has been corrected. - Will merge to 'master'. -* jt/push-negotiation (2021-04-08) 6 commits - - send-pack: support push negotiation - - fetch: teach independent negotiation (no packfile) - - fetch-pack: refactor command and capability write - - fetch-pack: refactor add_haves() - - fetch-pack: refactor process_acks() - - Merge branch 'jt/fetch-pack-request-fix' into jt/push-negotiation +* jt/push-negotiation (2021-05-05) 6 commits + (merged to 'next' on 2021-05-06 at 644a1bc4ee) + + send-pack: support push negotiation + + fetch: teach independent negotiation (no packfile) + + fetch-pack: refactor command and capability write + + fetch-pack: refactor add_haves() + + fetch-pack: refactor process_acks() + + Merge branch 'jt/fetch-pack-request-fix' into jt/push-negotiation "git push" learns to discover common ancestor with the receiving end over protocol v2. + Will merge to 'master'. + * ab/doc-lint (2021-04-10) 7 commits - - docs: fix linting issues due to incorrect relative section order - - doc lint: lint relative section order - - doc lint: lint and fix missing "GIT" end sections - - doc lint: fix bugs in, simplify and improve lint script - - doc lint: Perl "strict" and "warnings" in lint-gitlink.perl - - Documentation/Makefile: make doc.dep dependencies a variable again - - Documentation/Makefile: make $(wildcard howto/*.txt) a var + (merged to 'next' on 2021-04-30 at 285b9c4d64) + + docs: fix linting issues due to incorrect relative section order + + doc lint: lint relative section order + + doc lint: lint and fix missing "GIT" end sections + + doc lint: fix bugs in, simplify and improve lint script + + doc lint: Perl "strict" and "warnings" in lint-gitlink.perl + + Documentation/Makefile: make doc.dep dependencies a variable again + + Documentation/Makefile: make $(wildcard howto/*.txt) a var Dev support. - Will merge to 'next'. + Will merge to 'master'. * ab/rebase-no-reschedule-failed-exec (2021-04-10) 2 commits - - rebase: don't override --no-reschedule-failed-exec with config - - rebase tests: camel-case rebase.rescheduleFailedExec consistently + (merged to 'next' on 2021-04-30 at 97d56cc674) + + rebase: don't override --no-reschedule-failed-exec with config + + rebase tests: camel-case rebase.rescheduleFailedExec consistently "git rebase --[no-]reschedule-failed-exec" did not work well with its configuration variable, which has been corrected. - Will merge to 'next'. + Will merge to 'master'. * ah/plugleaks (2021-04-28) 12 commits - - builtin/rm: avoid leaking pathspec and seen - - builtin/rebase: release git_format_patch_opt too - - builtin/for-each-ref: free filter and UNLEAK sorting. - - mailinfo: also free strbuf lists when clearing mailinfo - - builtin/checkout: clear pending objects after diffing - - builtin/check-ignore: clear_pathspec before returning - - builtin/bugreport: don't leak prefixed filename - - branch: FREE_AND_NULL instead of NULL'ing real_ref - - bloom: clear each bloom_key after use - - ls-files: free max_prefix when done - - wt-status: fix multiple small leaks - - revision: free remainder of old commit list in limit_list + (merged to 'next' on 2021-04-30 at ccb3984029) + + builtin/rm: avoid leaking pathspec and seen + + builtin/rebase: release git_format_patch_opt too + + builtin/for-each-ref: free filter and UNLEAK sorting. + + mailinfo: also free strbuf lists when clearing mailinfo + + builtin/checkout: clear pending objects after diffing + + builtin/check-ignore: clear_pathspec before returning + + builtin/bugreport: don't leak prefixed filename + + branch: FREE_AND_NULL instead of NULL'ing real_ref + + bloom: clear each bloom_key after use + + ls-files: free max_prefix when done + + wt-status: fix multiple small leaks + + revision: free remainder of old commit list in limit_list Plug various leans reported by LSAN. - Will merge to 'next'? + Will merge to 'master'. * bc/hash-transition-interop-part-1 (2021-04-27) 13 commits - - hex: print objects using the hash algorithm member - - hex: default to the_hash_algo on zero algorithm value - - builtin/pack-objects: avoid using struct object_id for pack hash - - commit-graph: don't store file hashes as struct object_id - - builtin/show-index: set the algorithm for object IDs - - hash: provide per-algorithm null OIDs - - hash: set, copy, and use algo field in struct object_id - - builtin/pack-redundant: avoid casting buffers to struct object_id - - Use the final_oid_fn to finalize hashing of object IDs - - hash: add a function to finalize object IDs - - http-push: set algorithm when reading object ID - - Always use oidread to read into struct object_id - - hash: add an algo member to struct object_id + (merged to 'next' on 2021-05-03 at 19dba33d17) + + hex: print objects using the hash algorithm member + + hex: default to the_hash_algo on zero algorithm value + + builtin/pack-objects: avoid using struct object_id for pack hash + + commit-graph: don't store file hashes as struct object_id + + builtin/show-index: set the algorithm for object IDs + + hash: provide per-algorithm null OIDs + + hash: set, copy, and use algo field in struct object_id + + builtin/pack-redundant: avoid casting buffers to struct object_id + + Use the final_oid_fn to finalize hashing of object IDs + + hash: add a function to finalize object IDs + + http-push: set algorithm when reading object ID + + Always use oidread to read into struct object_id + + hash: add an algo member to struct object_id SHA-256 transition. - Will merge to 'next'? + Will merge to 'master'. * ps/rev-list-object-type-filter (2021-04-19) 8 commits - - rev-list: allow filtering of provided items - - pack-bitmap: implement combined filter - - pack-bitmap: implement object type filter - - list-objects: implement object type filter - - list-objects: support filtering by tag and commit - - list-objects: move tag processing into its own function - - revision: mark commit parents as NOT_USER_GIVEN - - uploadpack.txt: document implication of `uploadpackfilter.allow` + (merged to 'next' on 2021-04-30 at fa0ceacde4) + + rev-list: allow filtering of provided items + + pack-bitmap: implement combined filter + + pack-bitmap: implement object type filter + + list-objects: implement object type filter + + list-objects: support filtering by tag and commit + + list-objects: move tag processing into its own function + + revision: mark commit parents as NOT_USER_GIVEN + + uploadpack.txt: document implication of `uploadpackfilter.allow` "git rev-list" learns the "--filter=object:type=<type>" option, which can be used to exclude objects of the given kind from the packfile generated by pack-objects. - Will merge to 'next'. - cf. <YIKPwRFbgzKJ1EBg@coredump.intra.peff.net> + Will merge to 'master'. * tb/multi-pack-bitmaps (2021-04-10) 23 commits @@ -744,12 +967,13 @@ Release tarballs are available at: * ab/svn-tests-set-e-fix (2021-04-12) 2 commits - - svn tests: refactor away a "set -e" in test body - - svn tests: remove legacy re-setup from init-clone test + (merged to 'next' on 2021-04-30 at 41f7907187) + + svn tests: refactor away a "set -e" in test body + + svn tests: remove legacy re-setup from init-clone test Test clean-up. - Will merge to 'next'. + Will merge to 'master'. * ab/test-lib-updates (2021-04-29) 11 commits @@ -768,8 +992,6 @@ Release tarballs are available at: Test clean-up. - Waiting for an Ack before merging them to 'next'. - * ao/p4-avoid-decoding (2021-04-12) 2 commits - git-p4: do not decode data from perforce by default @@ -783,16 +1005,6 @@ Release tarballs are available at: Waiting for reviews. -* hn/refs-trace-errno (2021-04-12) 1 commit - (merged to 'next' on 2021-04-20 at 0816e49d22) - + refs: print errno for read_raw_ref if GIT_TRACE_REFS is set - - Show errno in the trace output in the error codepath that calls - read_raw_ref method. - - Will merge to 'master' - - * ma/t0091-bugreport-fix (2021-04-12) 1 commit - t0091-bugreport.sh: actually verify some content of report @@ -803,7 +1015,8 @@ Release tarballs are available at: * ps/config-global-override (2021-04-27) 4 commits - - t1300: fix unset of GIT_CONFIG_NOSYSTEM leaking into subsequent tests + (merged to 'next' on 2021-04-30 at 5ce435d98f) + + t1300: fix unset of GIT_CONFIG_NOSYSTEM leaking into subsequent tests (merged to 'next' on 2021-04-20 at 82578c696d) + config: allow overriding of global and system configuration + config: unify code paths to get global config paths @@ -816,21 +1029,6 @@ Release tarballs are available at: setting NOSYSTEM), and introduce GIT_CONFIG_GLOBAL to override the per-user configuration in $HOME/.gitconfig. - Will merge to 'next'. - - -* ds/maintenance-prefetch-fix (2021-04-16) 4 commits - (merged to 'next' on 2021-04-16 at 0a1818e235) - + maintenance: respect remote.*.skipFetchAll - + maintenance: use 'git fetch --prefetch' - + fetch: add --prefetch option - + maintenance: simplify prefetch logic - - The prefetch task in "git maintenance" assumed that "git fetch" - from any remote would fetch all its local branches, which would - fetch too much if the user is interested in only a subset of - branches there. - Will merge to 'master'. @@ -844,29 +1042,32 @@ Release tarballs are available at: bisect run" has been rewritten in C. Expecting a reroll. - cf. <xmqq35vwh8qk.fsf@gitster.g>, <xmqqy2doftrj.fsf@gitster.g> + cf. <xmqq35vwh8qk.fsf@gitster.g>, <xmqqy2doftrj.fsf@gitster.g>, + <CAP8UFD3X24F3qgefHpi00PM-KUk+vcqxwy2Dbngbyj7ciavCVQ@mail.gmail.com> May want to boost the test coverage. * mt/add-rm-in-sparse-checkout (2021-04-08) 7 commits - - rm: honor sparse checkout patterns - - add: warn when asked to update SKIP_WORKTREE entries - - refresh_index(): add flag to ignore SKIP_WORKTREE entries - - pathspec: allow to ignore SKIP_WORKTREE entries on index matching - - add: make --chmod and --renormalize honor sparse checkouts - - t3705: add tests for `git add` in sparse checkouts - - add: include magic part of pathspec on --refresh error + (merged to 'next' on 2021-04-30 at ddead90eaf) + + rm: honor sparse checkout patterns + + add: warn when asked to update SKIP_WORKTREE entries + + refresh_index(): add flag to ignore SKIP_WORKTREE entries + + pathspec: allow to ignore SKIP_WORKTREE entries on index matching + + add: make --chmod and --renormalize honor sparse checkouts + + t3705: add tests for `git add` in sparse checkouts + + add: include magic part of pathspec on --refresh error (this branch is used by ds/status-with-sparse-index.) "git add" and "git rm" learned not to touch those paths that are outside of sparse checkout. - Will merge to 'next'. + Will merge to 'master'. -* zh/trailer-cmd (2021-04-17) 2 commits - - trailer: add new .cmd config option - - docs: correct description of .command +* zh/trailer-cmd (2021-05-04) 2 commits + (merged to 'next' on 2021-05-04 at fb677877f7) + + trailer: add new .cmd config option + + docs: correct descript of trailer.<token>.command The way the command line specified by the trailer.<token>.command configuration variable receives the end-user supplied value was @@ -874,91 +1075,6 @@ Release tarballs are available at: same goal in a safer and more intuitive way has been added, as the trailer.<token>.cmd configuration variable, to replace it. - Expecting a reroll, after waiting for "commit --trailer" to stabilize. - - -* ds/sparse-index (2021-03-30) 21 commits - (merged to 'next' on 2021-04-07 at f1290a7929) - + p2000: add sparse-index repos - + sparse-index: loose integration with cache_tree_verify() - + cache-tree: integrate with sparse directory entries - + sparse-checkout: disable sparse-index - + sparse-checkout: toggle sparse index from builtin - + sparse-index: add index.sparse config option - + sparse-index: check index conversion happens - + unpack-trees: allow sparse directories - + submodule: sparse-index should not collapse links - + sparse-index: convert from full to sparse - + sparse-index: add 'sdir' index extension - + sparse-checkout: hold pattern list in index - + unpack-trees: ensure full index - + test-tool: don't force full index - + test-read-cache: print cache entries with --table - + t1092: compare sparse-checkout to sparse-index - + sparse-index: implement ensure_full_index() - + sparse-index: add guard to ensure full index - + t1092: clean up script quoting - + t/perf: add performance test for sparse operations - + sparse-index: design doc and format update - (this branch is used by ds/sparse-index-protections and ds/status-with-sparse-index.) - - Both in-core and on-disk index has been updated to optionally omit - individual entries and replace them with the tree object that - corresponds to the directory that contains them when the "cone" - mode of sparse checkout is in use. - - On hold, waiting for the "protections" topic to stablize. - - -* mt/parallel-checkout-part-2 (2021-04-19) 5 commits - (merged to 'next' on 2021-04-20 at d4779b8864) - + parallel-checkout: add design documentation - + parallel-checkout: support progress displaying - + parallel-checkout: add configuration options - + parallel-checkout: make it truly parallel - + unpack-trees: add basic support for parallel checkout - (this branch is used by mt/parallel-checkout-part-3.) - - The checkout machinery has been taught to perform the actual - write-out of the files in parallel when able. - - Will merge to 'master'. - - -* ds/sparse-index-protections (2021-04-14) 26 commits - (merged to 'next' on 2021-04-17 at f1c40f89ba) - + name-hash: use expand_to_path() - + sparse-index: expand_to_path() - + name-hash: don't add directories to name_hash - + revision: ensure full index - + resolve-undo: ensure full index - + read-cache: ensure full index - + pathspec: ensure full index - + merge-recursive: ensure full index - + entry: ensure full index - + dir: ensure full index - + update-index: ensure full index - + stash: ensure full index - + rm: ensure full index - + merge-index: ensure full index - + ls-files: ensure full index - + grep: ensure full index - + fsck: ensure full index - + difftool: ensure full index - + commit: ensure full index - + checkout: ensure full index - + checkout-index: ensure full index - + add: ensure full index - + cache: move ensure_full_index() to cache.h - + read-cache: expand on query into sparse-directory entry - + *: remove 'const' qualifier for struct index_state - + sparse-index: API protection strategy - (this branch is used by ds/status-with-sparse-index; uses ds/sparse-index.) - - Builds on top of the sparse-index infrastructure to mark operations - that are not ready to mark with the sparse index, causing them to - fall back on fully-populated index that they always have worked with. - Will merge to 'master'. @@ -993,3 +1109,22 @@ Release tarballs are available at: - refs: ref_iterator_peel returns boolean, rather than peel_status The "reftable" backend for the refs API. + + Waiting for reviews. + +-------------------------------------------------- +[Discarded] + +* ab/fsck-unexpected-type (2021-04-13) 6 commits + . fsck: report invalid object type-path combinations + . fsck: report invalid types recorded in objects + . object-store.h: move read_loose_object() below 'struct object_info' + . fsck: don't hard die on invalid object types + . fsck tests: refactor one test to use a sub-repo + . cache.h: move object functions to object-store.h + + "git fsck" has been taught to report mismatch between expected and + actual types of an object better. + + Retracted for now. + cf. <cover-0.5-00000000000-20210505T122816Z-avarab@gmail.com>