From 2955b71caa16f859e56e78590dd43630b28374e4 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 11 Jul 2018 12:00:52 -0700 Subject: [PATCH] What's cooking (2018/07 #01) --- whats-cooking.txt | 1024 +++++++++++++++++++++++++++++++-------------- 1 file changed, 705 insertions(+), 319 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index 2fb2bcb860..cb93e40182 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 (Jun 2018, #07; Thu, 28) +Subject: What's cooking in git.git (Jul 2018, #01; Wed, 11) X-master-at: e3331758f12da22f4103eec7efe1b5304a9be5e9 -X-next-at: 9cd7c0d54aa2ac12712fd5611825c618efdaf1e0 +X-next-at: 985f88cf7ec28de3542ce98ac5b660da6e59caf0 -What's cooking in git.git (Jun 2018, #07; Thu, 28) +What's cooking in git.git (Jul 2018, #01; Wed, 11) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -23,267 +23,455 @@ of the repositories listed at http://git-blame.blogspot.com/p/git-public-repositories.html -------------------------------------------------- -[Graduated to "master"] +[New Topics] -* ab/refspec-init-fix (2018-06-11) 3 commits - (merged to 'next' on 2018-06-13 at 91d71d8435) - + refspec: initalize `refspec_item` in `valid_fetch_refspec()` - + refspec: add back a refspec_item_init() function - + refspec: s/refspec_item_init/&_or_die/g +* ag/rebase-i-in-c (2018-07-10) 13 commits + - rebase -i: rewrite the rest of init_revisions_and_shortrevisions in C + - rebase -i: implement the logic to initialize the variable $revision in C + - rebase--interactive: remove unused modes and functions + - rebase--interactive: rewrite complete_action() in C + - sequencer: change the way skip_unnecessary_picks() returns its result + - sequencer: refactor append_todo_help() to write its message to a buffer + - rebase -i: rewrite checkout_onto() in C + - rebase -i: rewrite setup_reflog_action() in C + - sequencer: add a new function to silence a command, except if it fails + - rebase-interactive: rewrite the edit-todo functionality in C + - editor: add a function to launch the sequence editor + - rebase--interactive: rewrite append_todo_help() in C + - sequencer: make two functions and an enum from sequencer.c public - Make refspec parsing codepath more robust. + Piecemeal rewrite of the remaining "rebase -i" machinery in C. + Expecting a reroll. -* as/safecrlf-quiet-fix (2018-06-11) 1 commit - (merged to 'next' on 2018-06-13 at b163674843) - + config.c: fix regression for core.safecrlf false + The early parts of the series seem solidifying; perhaps with a + reroll or two, they become 'next' material? - Fix for 2.17-era regression around `core.safecrlf`. +* en/apply-comment-fix (2018-06-28) 1 commit + - apply: fix grammar error in comment -* jc/clean-after-sanity-tests (2018-06-15) 1 commit - (merged to 'next' on 2018-06-22 at 2df77b8af9) - + tests: clean after SANITY tests + Will merge to 'next'. - test cleanup. +* en/t5407-rebase-m-fix (2018-06-28) 1 commit + - t5407: fix test to cover intended arguments -* jh/partial-clone (2018-06-12) 1 commit - (merged to 'next' on 2018-06-13 at 818f864b0c) - + list-objects: check if filter is NULL before using + Will merge to 'next'. - The recent addition of "partial clone" experimental feature kicked - in when it shouldn't, namely, when there is no partial-clone filter - defined even if extensions.partialclone is set. +* sb/mailmap (2018-06-29) 1 commit + (merged to 'next' on 2018-07-11 at d9dc53e374) + + .mailmap: merge different spellings of names -* jk/fetch-all-peeled-fix (2018-06-13) 2 commits - (merged to 'next' on 2018-06-13 at 1333bb9d90) - + fetch-pack: test explicitly that --all can fetch tag references pointing to non-commits - + fetch-pack: don't try to fetch peel values with --all + Will merge to 'master'. - "git fetch-pack --all" used to unnecessarily fail upon seeing an - annotated tag that points at an object other than a commit. +* sb/object-store-lookup (2018-06-29) 33 commits + - commit.c: allow lookup_commit_reference to handle arbitrary repositories + - commit.c: allow lookup_commit_reference_gently to handle arbitrary repositories + - tag.c: allow deref_tag to handle arbitrary repositories + - object.c: allow parse_object to handle arbitrary repositories + - object.c: allow parse_object_buffer to handle arbitrary repositories + - commit.c: allow get_cached_commit_buffer to handle arbitrary repositories + - commit.c: allow set_commit_buffer to handle arbitrary repositories + - commit.c: migrate the commit buffer to the parsed object store + - commit-slabs: remove realloc counter outside of slab struct + - commit.c: allow parse_commit_buffer to handle arbitrary repositories + - tag: allow parse_tag_buffer to handle arbitrary repositories + - tag: allow lookup_tag to handle arbitrary repositories + - commit: allow lookup_commit to handle arbitrary repositories + - tree: allow lookup_tree to handle arbitrary repositories + - blob: allow lookup_blob to handle arbitrary repositories + - object: allow lookup_object to handle arbitrary repositories + - object: allow object_as_type to handle arbitrary repositories + - tag: add repository argument to deref_tag + - tag: add repository argument to parse_tag_buffer + - tag: add repository argument to lookup_tag + - commit: add repository argument to get_cached_commit_buffer + - commit: add repository argument to set_commit_buffer + - commit: add repository argument to parse_commit_buffer + - commit: add repository argument to lookup_commit + - commit: add repository argument to lookup_commit_reference + - commit: add repository argument to lookup_commit_reference_gently + - tree: add repository argument to lookup_tree + - blob: add repository argument to lookup_blob + - object: add repository argument to object_as_type + - object: add repository argument to parse_object_buffer + - object: add repository argument to lookup_object + - object: add repository argument to parse_object + - Merge branch 'sb/object-store-grafts' into sb/object-store-lookup + (this branch uses sb/object-store-grafts.) + + lookup_commit_reference() and friends have been updated to find + in-core object for a specific in-core repository instance. -* ms/send-pack-honor-config (2018-06-12) 1 commit - (merged to 'next' on 2018-06-13 at e2cd933715) - + builtin/send-pack: populate the default configs + Will merge to 'next'. - "git send-pack --signed" (hence "git push --signed" over the http - transport) did not read user ident from the config mechanism to - determine whom to sign the push certificate as, which has been - corrected. +* ag/rebase-p (2018-07-06) 1 commit + - git-rebase--preserve-merges: fix formatting of todo help message + + The help message shown in the editor to edit todo list in "rebase -p" + has regressed recently, which has been corrected. + + Will merge to 'next'. -* nd/completion-negation (2018-06-11) 3 commits - (merged to 'next' on 2018-06-19 at a3be59b450) - + completion: collapse extra --no-.. options - + completion: suppress some -no- options - + parse-options: option to let --git-completion-helper show negative form - Continuing with the idea to programmatically enumerate various - pieces of data required for command line completion, the codebase - has been taught to enumerate options prefixed with "--no-" to - negate them. +* bb/pedantic (2018-07-09) 8 commits + - utf8.c: avoid char overflow + - string-list.c: avoid conversion from void * to function pointer + - sequencer.c: avoid empty statements at top level + - convert.c: replace "\e" escapes with "\033". + - fixup! refs/refs-internal.h: avoid forward declaration of an enum + - refs/refs-internal.h: avoid forward declaration of an enum + - fixup! connect.h: avoid forward declaration of an enum + - connect.h: avoid forward declaration of an enum + The codebase has been updated to compile cleanly with -pedantic + option. -* pw/add-p-recount (2018-06-11) 1 commit - (merged to 'next' on 2018-06-19 at 1880ecc3f1) - + add -p: fix counting empty context lines in edited patches + Will merge to 'next'. - When user edits the patch in "git add -p" and the user's editor is - set to strip trailing whitespaces indiscriminately, an empty line - that is unchanged in the patch would become completely empty - (instead of a line with a sole SP on it). The code introduced in - Git 2.17 timeframe failed to parse such a patch, but now it learned - to notice the situation and cope with it. +* bb/unicode-11-width (2018-07-09) 1 commit + - unicode: update the width tables to Unicode 11 -* sb/fix-fetching-moved-submodules (2018-06-14) 2 commits - (merged to 'next' on 2018-06-22 at 16039dc62a) - + t5526: test recursive submodules when fetching moved submodules - + submodule: fix NULL correctness in renamed broken submodules + The character display width table has been updated to match the + latest Unicode standard. - The code to try seeing if a fetch is necessary in a submodule - during a fetch with --recurse-submodules got confused when the path - to the submodule was changed in the range of commits in the - superproject, sometimes showing "(null)". This has been corrected. + Will merge to 'next'. -* sg/gpg-tests-fix (2018-06-11) 2 commits - (merged to 'next' on 2018-06-13 at f3a05f1c41) - + tests: make forging GPG signed commits and tags more robust - + t7510-signed-commit: use 'test_must_fail' +* bc/object-id (2018-07-09) 17 commits + - pretty: switch hard-coded constants to the_hash_algo + - sha1-file: convert constants to uses of the_hash_algo + - log-tree: switch GIT_SHA1_HEXSZ to the_hash_algo->hexsz + - diff: switch GIT_SHA1_HEXSZ to use the_hash_algo + - builtin/merge-recursive: make hash independent + - builtin/merge: switch to use the_hash_algo + - builtin/fmt-merge-msg: make hash independent + - builtin/update-index: simplify parsing of cacheinfo + - builtin/update-index: convert to using the_hash_algo + - refs/files-backend: use the_hash_algo for writing refs + - commit: increase commit message buffer size + - sha1-name: use the_hash_algo when parsing object names + - strbuf: allocate space with GIT_MAX_HEXSZ + - commit: express tree entry constants in terms of the_hash_algo + - hex: switch to using the_hash_algo + - tree-walk: replace hard-coded constants with the_hash_algo + - cache: update object ID functions for the_hash_algo + + Conversion from uchar[40] to struct object_id continues. - Some flaky tests have been fixed. + Expecting a reroll. + cf. <20180709232656.GA535220@genre.crustytoothpaste.net> -* tz/cred-netrc-cleanup (2018-06-18) 4 commits - (merged to 'next' on 2018-06-22 at a471dd714c) - + git-credential-netrc: make "all" default target of Makefile - + git-credential-netrc: fix exit status when tests fail - + git-credential-netrc: use in-tree Git.pm for tests - + git-credential-netrc: minor whitespace cleanup in test script +* bc/send-email-auto-cte (2018-07-09) 4 commits + - docs: correct RFC specifying email line length + - send-email: automatically determine transfer-encoding + - send-email: accept long lines with suitable transfer encoding + - send-email: add an auto option for transfer encoding - Build and test procedure for netrc credential helper (in contrib/) - has been updated. + The content-transfer-encoding of the message "git send-email" sends + out by default was 8bit, which can cause trouble when there is an + overlong line to bust RFC 5322/2822 limit. A new option 'auto' to + automatically switch to quoted-printable when there is such a line + in the payload has been introduced and is made the default. --------------------------------------------------- -[New Topics] + Will merge to 'next'. -* ao/config-from-gitmodules (2018-06-26) 6 commits - - submodule-config: reuse config_from_gitmodules in repo_read_gitmodules - - submodule-config: pass repository as argument to config_from_gitmodules - - submodule-config: make 'config_from_gitmodules' private - - submodule-config: add helper to get 'update-clone' config from .gitmodules - - submodule-config: add helper function to get 'fetch' config from .gitmodules - - config: move config_from_gitmodules to submodule-config.c - Tighten the API to make it harder to misuse in-tree .gitmodules - file, even though it shares the same syntax with configuration - files, to read random configuration items from it. +* en/dirty-merge-fixes (2018-07-11) 9 commits + - merge: fix misleading pre-merge check documentation + - merge-recursive: enforce rule that index matches head before merging + - t6044: add more testcases with staged changes before a merge is invoked + - merge-recursive: fix assumption that head tree being merged is HEAD + - merge-recursive: make sure when we say we abort that we actually abort + - t6044: add a testcase for index matching head, when head doesn't match HEAD + - t6044: verify that merges expected to abort actually abort + - index_has_changes(): avoid assuming operating on the_index + - read-cache.c: move index_has_changes() from merge.c + + The recursive merge strategy did not properly ensure there was no + change between HEAD and the index before performing its operation, + which has been corrected. Will merge to 'next'. -* as/sequencer-customizable-comment-char (2018-06-28) 1 commit - - sequencer: use configured comment character +* en/t6036-merge-recursive-tests (2018-07-11) 6 commits + - t6036: add a failed conflict detection case: regular files, different modes + - t6036: add a failed conflict detection case with conflicting types + - t6036: add a failed conflict detection case with submodule add/add + - t6036: add a failed conflict detection case with submodule modify/modify + - t6036: add a failed conflict detection case with symlink add/add + - t6036: add a failed conflict detection case with symlink modify/modify - Honor core.commentchar when preparing the list of commits to replay - in "rebase -i". - + Tests to cover various conflicting cases have been added for + merge-recursive. -* dj/runtime-prefix (2018-06-26) 1 commit - - Makefile: tweak sed invocation + Will merge to 'next'. - POSIX portability fix in Makefile to fix a glitch introduced a few - releases ago. + +* en/t6036-recursive-corner-cases (2018-07-06) 1 commit + - t6036: add lots of detail for directory/file conflicts in recursive case + + Tests to cover more D/F conflict cases have been added for + merge-recursive. Will merge to 'next'. -* ds/commit-graph (2018-06-28) 1 commit - - commit-graph: fix documentation inconsistencies +* en/t6042-insane-merge-rename-testcases (2018-07-03) 3 commits + - t6042: add testcase covering long chains of rename conflicts + - t6042: add testcase covering rename/rename(2to1)/delete/delete conflict + - t6042: add testcase covering rename/add/delete conflict type - Docfix. + Various glitches in the heuristics of merge-recursive strategy have + been documented in new tests. Will merge to 'next'. + I am not sure if there is a single "correct" answer everybody can + agree on for each of these "insane" cases, though. -* en/rebase-i-microfixes (2018-06-27) 3 commits - - git-rebase--merge: modernize "git-$cmd" to "git $cmd" - - Fix use of strategy options with interactive rebases - - t3418: add testcase showing problems with rebase -i and strategy options + +* en/t7405-recursive-submodule-conflicts (2018-07-11) 3 commits + - t7405: verify 'merge --abort' works after submodule/path conflicts + - t7405: add a directory/submodule conflict + - t7405: add a file/submodule conflict + + Tests to cover conflict cases that involve submodules have been + added for merge-recursive. Will merge to 'next'. -* js/enhanced-version-info (2018-06-28) 1 commit - - Makefile: fix the "built from commit" code +* es/test-fixes (2018-07-03) 25 commits + - t9119: fix broken &&-chains + - t9000-t9999: fix broken &&-chains + - t7000-t7999: fix broken &&-chains + - t6000-t6999: fix broken &&-chains + - t5000-t5999: fix broken &&-chains + - t4000-t4999: fix broken &&-chains + - t3030: fix broken &&-chains + - t3000-t3999: fix broken &&-chains + - t2000-t2999: fix broken &&-chains + - t1000-t1999: fix broken &&-chains + - t0000-t0999: fix broken &&-chains + - t9814: simplify convoluted check that command correctly errors out + - t9001: fix broken "invoke hook" test + - t7810: use test_expect_code() instead of hand-rolled comparison + - t7400: fix broken "submodule add/reconfigure --force" test + - t7201: drop pointless "exit 0" at end of subshell + - t6036: fix broken "merge fails but has appropriate contents" tests + - t5505: modernize and simplify hard-to-digest test + - t5406: use write_script() instead of birthing shell script manually + - t5405: use test_must_fail() instead of checking exit code manually + - t/lib-submodule-update: fix "absorbing" test + - t: drop unnecessary terminating semicolon in subshell + - t: use sane_unset() rather than 'unset' with broken &&-chain + - t: use test_write_lines() instead of series of 'echo' commands + - t: use test_might_fail() instead of manipulating exit code manually + + Test clean-up and corrections. - Build fix. + Will merge to 'next'. + + +* jk/empty-pick-fix (2018-07-11) 2 commits + - sequencer: don't say BUG on bogus input + - sequencer: handle empty-set cases consistently + + Handling of an empty range by "git cherry-pick" was inconsistent + depending on how the range ended up to be empty, which has been + corrected. Will merge to 'next'. -* js/rebase-recreate-merge (2018-06-27) 1 commit - - rebase: fix documentation formatting +* jk/fetch-all-peeled-fix (2018-07-06) 1 commit + - t5500: prettify non-commit tag tests - Docfix. + Test modernization. Will merge to 'next'. -* jt/connectivity-check-after-unshallow (2018-06-27) 1 commit - - fetch: when deepening, check connectivity fully +* jk/for-each-ref-icase (2018-07-03) 3 commits + - ref-filter: avoid backend filtering with --ignore-case + - for-each-ref: consistently pass WM_IGNORECASE flag + - t6300: add a test for --ignore-case - "git fetch" failed to correctly validate the set of objects it - received when making a shallow history deeper, which has been - corrected. + The "--ignore-case" option of "git for-each-ref" (and its friends) + did not work correctly, which has been fixed. + Will merge to 'next'. -* jt/fetch-nego-tip (2018-06-27) 1 commit - - fetch-pack: support negotiation tip whitelist - (this branch uses jt/fetch-pack-negotiator.) - "git fetch" learned a new option "--negotiation-tip" to limit the - set of commits it tells the other end as "have", to reduce wasted - bandwidth and cycles, which would be helpful when the receiving - repository has a lot of refs that have little to do with the - history at the remote it is fetching from. +* jk/fsck-gitmodules-gently (2018-07-03) 5 commits + - fsck: silence stderr when parsing .gitmodules + - fsck: silence stderr when parsing .gitmodules + - config: add options parameter to git_config_from_mem + - config: add CONFIG_ERROR_SILENT handler + - config: turn die_on_error into caller-facing enum + What's the status of this one? -* mb/filter-branch-optim (2018-06-26) 1 commit - - filter-branch: skip commits present on --state-branch - "git filter-branch" when used with the "--state-branch" option - still attempted to rewrite the commits whose filtered result is - known from the previous attempt (which is recorded on the state - branch); the command has been corrected not to waste cycles doing - so. +* js/range-diff (2018-07-09) 20 commits + - range-diff: make --dual-color the default mode + - range-diff: left-pad patch numbers + - completion: support `git range-diff` + - range-diff: add a man page + - range-diff --dual-color: work around bogus white-space warning + - range-diff: offer to dual-color the diffs + - diff: add an internal option to dual-color diffs of diffs + - color: add the meta color GIT_COLOR_REVERSE + - range-diff: use color for the commit pairs + - range-diff: add tests + - range-diff: do not show "function names" in hunk headers + - range-diff: adjust the output of the commit pairs + - range-diff: suppress the diff headers + - range-diff: indent the diffs just like tbdiff + - range-diff: right-trim commit messages + - range-diff: also show the diff between patches + - range-diff: improve the order of the shown commits + - range-diff: first rudimentary implementation + - Introduce `range-diff` to compare iterations of a topic branch + - linear-assignment: a function to solve least-cost assignment problems + + "git tbdiff" that lets us compare individual patches in two + iterations of a topic has been rewritten and made into a built-in + command. + + Supersedes js/branch-diff topic that added a similar command under + a different name. + + +* jt/commit-graph-per-object-store (2018-07-09) 6 commits + . commit-graph: add repo arg to graph readers + . commit-graph: store graph in struct object_store + . commit-graph: add free_commit_graph + . commit-graph: add missing forward declaration + . object-store: add missing include + . commit-graph: refactor preparing commit graph + (this branch uses ds/commit-graph-fsck.) + + The singleton commit-graph in-core instance is made per in-core + repository instance. + + Expecting a reroll, as it breaks 32-bit build. + cf. https://travis-ci.org/git/git/jobs/402422108 + + +* jt/partial-clone-fsck-connectivity (2018-07-09) 2 commits + - clone: check connectivity even if clone is partial + - upload-pack: send refs' objects despite "filter" + (this branch uses bw/ref-in-want and jt/connectivity-check-after-unshallow.) + + Partial clone support of "git clone" has been updated to correctly + validate the objects it receives from the other side. The server + side has been corrected to send objects that are directly + requested, even if they may match the filtering criteria (e.g. when + doing a "lazy blob" partial clone). Will merge to 'next'. -* ms/core-icase-doc (2018-06-28) 1 commit - - Documentation: declare "core.ignoreCase" as internal variable +* kg/gc-auto-windows-workaround (2018-07-09) 1 commit + - gc --auto: release pack files before auto packing - Clarify that setting core.ignoreCase to deviate from reality would - not turn a case-incapable filesystem into a case-capable one. + "git gc --auto" opens file descriptors for the packfiles before + spawning "git repack/prune", which would upset Windows that does + not want a process to work on a file that is open by another + process. The issue has been worked around. Will merge to 'next'. -* rj/submodule-fsck-skip (2018-06-27) 1 commit - - fsck: check skiplist for object in fsck_blob() +* kn/userdiff-php (2018-07-06) 2 commits + - userdiff: support new keywords in PHP hunk header + - t4018: add missing test cases for PHP - "fsck.skipList" did not prevent a blob object listed there from - being inspected for is contents (e.g. we recently started to - inspect the contents of ".gitmodules" for certain malicious - patterns), which has been corrected. + The userdiff pattern for .php has been updated. Will merge to 'next'. -* tb/grep-only-matching (2018-06-27) 3 commits - - SQUASH??? emerg compilation fix - - grep.c: teach 'git grep --only-matching' - - grep.c: extract show_line_header() - (this branch uses tb/grep-column.) +* lt/date-human (2018-07-09) 1 commit + - Add 'human' date format - "git grep" learned the "--only-matching" option. +* mh/fast-import-no-diff-delta-empty (2018-07-06) 1 commit + - fast-import: do not call diff_delta() with empty buffer -* tz/exclude-doc-smallfixes (2018-06-27) 2 commits - - dir.c: fix typos in core.excludesfile comment - - gitignore.txt: clarify default core.excludesfile path + "git fast-import" has been updated to avoid attempting to create + delta against a zero-byte-long string, which is pointless. - Doc updates. + Will merge to 'next'. + + +* ot/ref-filter-object-info (2018-07-09) 4 commits + . ref-filter: use oid_object_info() to get object + . ref-filter: merge get_obj and get_object + . ref-filter: add empty values to technical fields + . ref-filter: add info_source to valid_atom + + Expecting a reroll, as it breaks compilation with uninitialized var. + cf. https://travis-ci.org/git/git/jobs/402422102 + + +* pk/rebase-in-c (2018-07-09) 4 commits + - builtin/rebase: support running "git rebase " + - sequencer: refactor the code to detach HEAD to checkout.c + - rebase: refactor common shell functions into their own file + - rebase: start implementing it as a builtin + + Piecemeal rewrite of the "rebase" machinery in C. + + Expecting a reroll, but it seems that this is getting quite close. + cf. + + +* tb/config-default (2018-07-06) 1 commit + - builtin/config: work around an unsized array forward declaration + + Compilation fix. Will merge to 'next'. --------------------------------------------------- -[Stalled] -* ab/fetch-tags-noclobber (2018-05-16) 9 commits - - fixup! push tests: assert re-pushing annotated tags - - fetch: stop clobbering existing tags without --force - - fetch tests: add a test clobbering tag behavior - - fetch tests: correct a comment "remove it" -> "remove them" - - push doc: correct lies about how push refspecs work - - push tests: assert re-pushing annotated tags - - push tests: add more testing for forced tag pushing - - push tests: fix logic error in "push" test assertion - - push tests: remove redundant 'git push' invocation +* bp/log-ref-write-fd-with-strbuf (2018-07-10) 1 commit + - convert log_ref_write_fd() to use strbuf - Expecting a reboot of the discussion to take it to some conclusion - and then a reroll. - cf. - cf. - cf. - cf. + Code clean-up. + Will merge to 'next'. + + +* hs/push-cert-check-cleanup (2018-07-11) 2 commits + - gpg-interface: make parse_gpg_output static and remove from interface header + - builtin/receive-pack: use check_signature from gpg-interface + + Code clean-up. + + Will merge to 'next'. + + +* mk/merge-in-sparse-checkout (2018-07-11) 1 commit + - unpack-trees: do not fail reset because of unmerged skipped entry + + "git reset --merge" (hence "git merge ---abort") and "git reset --hard" + had trouble working correctly in a sparsely checked out working + tree after a conflict, which has been corrected. + + Will merge to 'next'. + +-------------------------------------------------- +[Stalled] * pw/add-p-select (2018-03-16) 3 commits - add -p: optimize line selection for short hunks @@ -390,42 +578,197 @@ of the repositories listed at -------------------------------------------------- [Cooking] +* ao/config-from-gitmodules (2018-06-26) 6 commits + (merged to 'next' on 2018-07-11 at 5d88dc6fb7) + + submodule-config: reuse config_from_gitmodules in repo_read_gitmodules + + submodule-config: pass repository as argument to config_from_gitmodules + + submodule-config: make 'config_from_gitmodules' private + + submodule-config: add helper to get 'update-clone' config from .gitmodules + + submodule-config: add helper function to get 'fetch' config from .gitmodules + + config: move config_from_gitmodules to submodule-config.c + + Tighten the API to make it harder to misuse in-tree .gitmodules + file, even though it shares the same syntax with configuration + files, to read random configuration items from it. + + Will merge to 'master'. + + +* as/sequencer-customizable-comment-char (2018-06-28) 1 commit + - sequencer: use configured comment character + + Honor core.commentchar when preparing the list of commits to replay + in "rebase -i". + + Needs inter-contributor coordination. + cf. + + +* dj/runtime-prefix (2018-06-26) 1 commit + (merged to 'next' on 2018-07-11 at 27d99fef94) + + Makefile: tweak sed invocation + + POSIX portability fix in Makefile to fix a glitch introduced a few + releases ago. + + Will merge to 'master'. + + +* ds/commit-graph (2018-06-28) 1 commit + (merged to 'next' on 2018-07-11 at d579f733ed) + + commit-graph: fix documentation inconsistencies + + Docfix. + + Will merge to 'master'. + + +* en/rebase-i-microfixes (2018-06-27) 3 commits + (merged to 'next' on 2018-07-11 at d913ca0f77) + + git-rebase--merge: modernize "git-$cmd" to "git $cmd" + + Fix use of strategy options with interactive rebases + + t3418: add testcase showing problems with rebase -i and strategy options + + Will merge to 'master'. + + +* js/enhanced-version-info (2018-06-29) 1 commit + (merged to 'next' on 2018-07-11 at 815b2ea2bc) + + Makefile: fix the "built from commit" code + + Build fix. + + Will merge to 'master'. + + +* js/rebase-recreate-merge (2018-06-27) 1 commit + (merged to 'next' on 2018-07-11 at eb8f33aaef) + + rebase: fix documentation formatting + + Docfix. + + Will merge to 'master'. + + +* jt/connectivity-check-after-unshallow (2018-07-03) 1 commit + - fetch-pack: write shallow, then check connectivity + (this branch is used by jt/partial-clone-fsck-connectivity; uses bw/ref-in-want.) + + "git fetch" failed to correctly validate the set of objects it + received when making a shallow history deeper, which has been + corrected. + + Will merge to 'next'. + + +* jt/fetch-nego-tip (2018-07-03) 1 commit + - fetch-pack: support negotiation tip whitelist + (this branch uses jt/fetch-pack-negotiator.) + + "git fetch" learned a new option "--negotiation-tip" to limit the + set of commits it tells the other end as "have", to reduce wasted + bandwidth and cycles, which would be helpful when the receiving + repository has a lot of refs that have little to do with the + history at the remote it is fetching from. + + Will merge to 'next'. + + +* mb/filter-branch-optim (2018-06-26) 1 commit + (merged to 'next' on 2018-07-11 at e43a0136c2) + + filter-branch: skip commits present on --state-branch + + "git filter-branch" when used with the "--state-branch" option + still attempted to rewrite the commits whose filtered result is + known from the previous attempt (which is recorded on the state + branch); the command has been corrected not to waste cycles doing + so. + + Will merge to 'master'. + + +* ms/core-icase-doc (2018-06-28) 1 commit + (merged to 'next' on 2018-07-11 at 8f0d71c32d) + + Documentation: declare "core.ignoreCase" as internal variable + + Clarify that setting core.ignoreCase to deviate from reality would + not turn a case-incapable filesystem into a case-capable one. + + Will merge to 'master'. + + +* rj/submodule-fsck-skip (2018-07-03) 1 commit + (merged to 'next' on 2018-07-11 at 985f88cf7e) + + fsck: check skiplist for object in fsck_blob() + + "fsck.skipList" did not prevent a blob object listed there from + being inspected for is contents (e.g. we recently started to + inspect the contents of ".gitmodules" for certain malicious + patterns), which has been corrected. + + Will merge to 'master'. + + +* tb/grep-only-matching (2018-07-09) 2 commits + - grep.c: teach 'git grep --only-matching' + - grep.c: extract show_line_header() + (this branch uses tb/grep-column.) + + "git grep" learned the "--only-matching" option. + + Will merge to 'next'. + + +* tz/exclude-doc-smallfixes (2018-06-27) 2 commits + (merged to 'next' on 2018-07-11 at 5134f1ca72) + + dir.c: fix typos in core.excludesfile comment + + gitignore.txt: clarify default core.excludesfile path + + Doc updates. + + Will merge to 'master'. + + * ld/p423 (2018-06-19) 6 commits - - git-p4: python3: fix octal constants - - git-p4: python3: use print() function - - git-p4: python3: basestring workaround - - git-p4: python3: remove backticks - - git-p4: python3: replace dict.has_key(k) with "k in dict" - - git-p4: python3: replace <> with != + (merged to 'next' on 2018-06-29 at af76acb664) + + git-p4: python3: fix octal constants + + git-p4: python3: use print() function + + git-p4: python3: basestring workaround + + git-p4: python3: remove backticks + + git-p4: python3: replace dict.has_key(k) with "k in dict" + + git-p4: python3: replace <> with != Code preparation to make "git p4" closer to be usable with Python 3. - Will merge to 'next'. + Will merge to 'master'. * pw/rebase-i-keep-reword-after-conflict (2018-06-19) 1 commit - - sequencer: do not squash 'reword' commits when we hit conflicts + (merged to 'next' on 2018-06-29 at 538337be74) + + sequencer: do not squash 'reword' commits when we hit conflicts Bugfix for "rebase -i" corner case regression. - Will merge to 'next'. + Will merge to 'master'. * xy/format-patch-prereq-patch-id-fix (2018-06-19) 1 commit - - format-patch: clear UNINTERESTING flag before prepare_bases + (merged to 'next' on 2018-06-29 at 0dffc46ce2) + + format-patch: clear UNINTERESTING flag before prepare_bases Recently added "--base" option to "git format-patch" command did not correctly generate prereq patch ids. - Will merge to 'next'. + Will merge to 'master'. * bw/config-refer-to-gitsubmodules-doc (2018-06-21) 1 commit - - docs: link to gitsubmodules + (merged to 'next' on 2018-06-29 at da6f49d292) + + docs: link to gitsubmodules Docfix. - Will merge to 'next'. + Will merge to 'master'. * bw/ref-in-want (2018-06-28) 8 commits @@ -437,11 +780,14 @@ of the repositories listed at - upload-pack: test negotiation with changing repository - upload-pack: implement ref-in-want - test-pkt-line: add unpack-sideband subcommand + (this branch is used by jt/connectivity-check-after-unshallow and jt/partial-clone-fsck-connectivity.) Protocol v2 has been updated to allow slightly out-of-sync set of servers to work together to serve a single client, which would be useful with load-balanced servers that talk smart HTTP transport. + Will merge to 'next'. + * en/rebase-consistency (2018-06-27) 9 commits - git-rebase: make --allow-empty-message the default @@ -458,28 +804,33 @@ of the repositories listed at the three backends gets used; this has been documented and an effort to make them more uniform has begun. + Will merge to 'next'. + * jt/remove-pack-bitmap-global (2018-06-21) 2 commits - - pack-bitmap: add free function - - pack-bitmap: remove bitmap_git global variable + (merged to 'next' on 2018-06-29 at 852857b04e) + + pack-bitmap: add free function + + pack-bitmap: remove bitmap_git global variable The effort to move globals to per-repository in-core structure continues. + Will merge to 'master'. + * sb/submodule-move-head-error-msg (2018-06-25) 1 commit - submodule.c: report the submodule that an error occurs in - Needs a reroll. - cf. <20180622081713.5360-1-szeder.dev@gmail.com> + Will merge to 'next'. * bw/protocol-v2 (2018-06-22) 1 commit - - protocol-v2 doc: put HTTP headers after request + (merged to 'next' on 2018-06-29 at 78090cc343) + + protocol-v2 doc: put HTTP headers after request Doc fix. - Will merge to 'next'. + Will merge to 'master'. * jk/branch-l-1-repurpose (2018-06-22) 1 commit @@ -492,97 +843,79 @@ of the repositories listed at * vs/typofixes (2018-06-22) 1 commit - - Documentation: spelling and grammar fixes + (merged to 'next' on 2018-06-29 at 665c8db2f7) + + Documentation: spelling and grammar fixes Doc fix. - Will merge to 'next'. + Will merge to 'master'. -* cc/remote-odb (2018-06-25) 9 commits - . Documentation/config: add odb..promisorRemote - . t0410: test fetching from many promisor remotes - . Use odb.origin.partialclonefilter instead of core.partialclonefilter - . Use remote_odb_get_direct() and has_remote_odb() - . remote-odb: add remote_odb_reinit() - . remote-odb: implement remote_odb_get_many_direct() - . remote-odb: implement remote_odb_get_direct() - . Add initial remote odb support - . fetch-object: make functions return an error code +* cc/remote-odb (2018-07-06) 10 commits + - SQUASH??? error: unused variable 'o' [-Werror=unused-variable] + - Documentation/config: add odb..promisorRemote + - t0410: test fetching from many promisor remotes + - Use odb.origin.partialclonefilter instead of core.partialclonefilter + - Use remote_odb_get_direct() and has_remote_odb() + - remote-odb: add remote_odb_reinit() + - remote-odb: implement remote_odb_get_many_direct() + - remote-odb: implement remote_odb_get_direct() + - Add initial remote odb support + - fetch-object: make functions return an error code Needs a reroll. -* ds/multi-pack-index (2018-06-25) 24 commits - - midx: clear midx on repack - - packfile: skip loading index if in multi-pack-index - - midx: prevent duplicate packfile loads - - midx: use midx in approximate_object_count - - midx: use existing midx when writing new one - - midx: use midx in abbreviation calculations - - midx: read objects from multi-pack-index - - midx: prepare midxed_git struct - - config: create core.multiPackIndex setting - - midx: write object offsets - - midx: write object id fanout chunk - - midx: write object ids in a chunk - - midx: sort and deduplicate objects from packfiles - - midx: read pack names into array - - multi-pack-index: write pack names in chunk - - multi-pack-index: read packfile list - - packfile: generalize pack directory list - - multi-pack-index: expand test data - - multi-pack-index: load into memory - - midx: write header information to lockfile - - multi-pack-index: add 'write' verb - - multi-pack-index: add builtin - - multi-pack-index: add format details - - multi-pack-index: add design document +* ds/multi-pack-index (2018-07-09) 24 commits + . midx: clear midx on repack + . packfile: skip loading index if in multi-pack-index + . midx: prevent duplicate packfile loads + . midx: use midx in approximate_object_count + . midx: use existing midx when writing new one + . midx: use midx in abbreviation calculations + . midx: read objects from multi-pack-index + . midx: prepare midxed_git struct + . config: create core.multiPackIndex setting + . midx: write object offsets + . midx: write object id fanout chunk + . midx: write object ids in a chunk + . midx: sort and deduplicate objects from packfiles + . midx: read pack names into array + . multi-pack-index: write pack names in chunk + . multi-pack-index: read packfile list + . packfile: generalize pack directory list + . multi-pack-index: expand test data + . multi-pack-index: load into memory + . midx: write header information to lockfile + . multi-pack-index: add 'write' verb + . multi-pack-index: add builtin + . multi-pack-index: add format details + . multi-pack-index: add design document When there are too many packfiles in a repository (which is not recommended), looking up an object in these would require consulting many pack .idx files; a new mechanism to have a single file that consolidates all of these .idx files is introduced. - -* nd/use-the-index-compat-less (2018-06-25) 13 commits - - wt-status.c: stop using index compat macros - - sha1-name.c: stop using index compat macros - - sequencer.c: stop using index compat macros - - revision.c: stop using index compat macros - - rerere.c: stop using index compat macros - - merge.c: stop using index compat macros - - merge-recursive.c: stop using index compat macros - - entry.c: stop using index compat macros - - diff.c: stop using index compat macros - - diff-lib.c: stop using index compat macros - - check-racy.c: stop using index compat macros - - blame.c: stop using index compat macros - - apply.c: stop using index compat macros - - Use of many convenience functions that operate on the_index - "primary in-core index instance" have been rewritten to explicitly - call the coutnerpart functions that take arbitrary index_state and - pass the_index. - - I'd say that alone is a useless code churn, but people seem to be - excited about the change, so it is queued here. + Expecting a reroll to fix documentation build. + cf. https://travis-ci.org/git/git/jobs/402422110 * tb/grep-column (2018-06-22) 7 commits - - contrib/git-jump/git-jump: jump to exact location - - grep.c: add configuration variables to show matched option - - builtin/grep.c: add '--column' option to 'git-grep(1)' - - grep.c: display column number of first match - - grep.[ch]: extend grep_opt to allow showing matched column - - grep.c: expose {,inverted} match column in match_line() - - Documentation/config.txt: camel-case lineNumber for consistency + (merged to 'next' on 2018-06-29 at 25dc70426e) + + contrib/git-jump/git-jump: jump to exact location + + grep.c: add configuration variables to show matched option + + builtin/grep.c: add '--column' option to 'git-grep(1)' + + grep.c: display column number of first match + + grep.[ch]: extend grep_opt to allow showing matched column + + grep.c: expose {,inverted} match column in match_line() + + Documentation/config.txt: camel-case lineNumber for consistency (this branch is used by tb/grep-only-matching.) "git grep" learned the "--column" option that gives not just the line number but the column number of the hit. - Will merge to 'next'. + Will merge to 'master'. * jt/fetch-pack-negotiator (2018-06-15) 7 commits @@ -598,27 +931,7 @@ of the repositories listed at Code restructuring and a small fix to transport protocol v2 during fetching. - Is this ready for 'next'? - - -* ag/rebase-i-append-todo-help (2018-06-14) 2 commits - - rebase--interactive: rewrite append_todo_help() in C - - Merge branch 'ag/rebase-p' into ag/rebase-i-append-todo-help - (this branch is used by ag/rebase-i-rewrite-todo.) - - Stepwise rewriting of the machinery of "rebase -i" into C continues. - - Needs a reroll. - cf. - - -* ag/rebase-i-rewrite-todo (2018-06-15) 3 commits - - rebase--interactive: rewrite the edit-todo functionality in C - - editor: add a function to launch the sequence editor - - Merge branch 'bc/t3430-fixup' into ag/rebase-i-rewrite-todo - (this branch uses ag/rebase-i-append-todo-help.) - - Stepwise rewriting of the machinery of "rebase -i" into C continues. + Will merge to 'next'. * sb/submodule-core-worktree (2018-06-19) 3 commits @@ -665,6 +978,8 @@ of the repositories listed at Parsing of -L[][,[]] parameters "git blame" and "git log" take has been tweaked. + Will merge to 'next'. + * en/merge-recursive-cleanup (2018-06-12) 6 commits (merged to 'next' on 2018-06-28 at 1a3646eb7d) @@ -692,6 +1007,13 @@ of the repositories listed at - checkout.h: wrap the arguments to unique_tracking_name() - checkout tests: index should be clean after dwim checkout + "git checkout" and "git worktree add" learned to honor + checkout.defaultRemote when auto-vivifying a local branch out of a + remote tracking branch in a repository with multiple remotes that + have tracking branches that share the same names. + + Will merge to 'next'. + * ds/commit-graph-fsck (2018-06-27) 22 commits - commit-graph: update design document @@ -716,11 +1038,12 @@ of the repositories listed at - commit-graph: fix GRAPH_MIN_SIZE - commit-graph: UNLEAK before die() - t5318-commit-graph.sh: use core.commitGraph + (this branch is used by jt/commit-graph-per-object-store.) "git fsck" learns to make sure the optional commit-graph file is in a sane state. - Is this ready for 'next'? + Will merge to 'next'. * ma/wrapped-info (2018-05-28) 2 commits @@ -734,20 +1057,25 @@ of the repositories listed at cf. <20180529213957.GF7964@sigill.intra.peff.net> -* jm/cache-entry-from-mem-pool (2018-06-28) 8 commits +* jm/cache-entry-from-mem-pool (2018-07-03) 8 commits - block alloc: add validations around cache_entry lifecyle - - block alloc: allocate cache entries from mem-pool + - block alloc: allocate cache entries from mem_pool - mem-pool: fill out functionality - mem-pool: add life cycle management functions - mem-pool: only search head block for available space - block alloc: add lifecycle APIs for cache_entry structs - - read-cache: make_cache_entry should take object_id struct - - read-cache: teach refresh_cache_entry() to take istate + - read-cache: teach make_cache_entry to take object_id + - read-cache: teach refresh_cache_entry to take istate For a large tree, the index needs to hold many cache entries allocated on heap. These cache entries are now allocated out of a dedicated memory pool to amortize malloc(3) overhead. + Will merge to 'next'. + + This makes each cache-entry larger by either 4 or 8 bytes, which is + a bit sad, though. + * sb/object-store-grafts (2018-05-18) 19 commits (merged to 'next' on 2018-06-28 at 02f70d6302) @@ -770,6 +1098,7 @@ of the repositories listed at + commit: add repository argument to commit_graft_pos + object: move grafts to object parser + object-store: move object access functions to object-store.h + (this branch is used by sb/object-store-lookup.) Originally merged to 'next' on 2018-06-22 @@ -779,57 +1108,27 @@ of the repositories listed at Will merge to 'master'. -* js/branch-diff (2018-05-16) 19 commits - - fixup! Add a function to solve least-cost assignment problems - - completion: support branch-diff - - branch-diff: add a man page - - branch-diff --dual-color: work around bogus white-space warning - - branch-diff: offer to dual-color the diffs - - diff: add an internal option to dual-color diffs of diffs - - color: provide inverted colors, too - - branch-diff: use color for the commit pairs - - branch-diff: add tests - - branch-diff: do not show "function names" in hunk headers - - branch-diff: adjust the output of the commit pairs - - branch-diff: suppress the diff headers - - branch-diff: indent the diffs just like tbdiff - - branch-diff: right-trim commit messages - - branch-diff: also show the diff between patches - - branch-diff: improve the order of the shown commits - - branch-diff: first rudimentary implementation - - Add a new builtin: branch-diff - - Add a function to solve least-cost assignment problems - - "git tbdiff" that lets us compare individual patches in two - iterations of a topic has been rewritten and made into a built-in - command. - - Expecting a reroll. - cf. - - -* sb/diff-color-move-more (2018-06-25) 11 commits - - diff: fix a sparse 'dubious one-bit signed bitfield' error - - SQUASH??? t/4015 GETTEXT_POISON emergency fix - - SQUASH????? Documentation breakage emergency fix +* sb/diff-color-move-more (2018-06-29) 9 commits - diff.c: add white space mode to move detection that allows indent changes - diff.c: factor advance_or_nullify out of mark_color_as_moved - diff.c: decouple white space treatment from move detection algorithm - diff.c: add a blocks mode for moved code detection - diff.c: adjust hash function signature to match hashmap expectation - diff.c: do not pass diff options as keydata to hashmap + - t4015: avoid git as a pipe input - xdiff/xdiffi.c: remove unneeded function declarations - xdiff/xdiff.h: remove unused flags "git diff --color-moved" feature has further been tweaked. - Needs to be cleaned-up with various fix-up bits applied inline. + Will merge to 'next'. * jk/branch-l-0-deprecation (2018-06-22) 3 commits - - branch: deprecate "-l" option - - t: switch "branch -l" to "branch --create-reflog" - - t3200: unset core.logallrefupdates when testing reflog creation + (merged to 'next' on 2018-06-29 at fac676dfb9) + + branch: deprecate "-l" option + + t: switch "branch -l" to "branch --create-reflog" + + t3200: unset core.logallrefupdates when testing reflog creation (this branch is used by jk/branch-l-1-repurpose.) The "-l" option in "git branch -l" is an unfortunate short-hand for @@ -838,4 +1137,91 @@ of the repositories listed at is used as a short-hand for "--create-reflog" and warns about the future repurposing of the it when it is used. - Will merge to 'next'. + Will merge to 'master'. + +-------------------------------------------------- +[Discarded] + +* ag/rebase-i-append-todo-help (2018-06-14) 2 commits + . rebase--interactive: rewrite append_todo_help() in C + . Merge branch 'ag/rebase-p' into ag/rebase-i-append-todo-help + (this branch is used by ag/rebase-i-rewrite-todo.) + + Stepwise rewriting of the machinery of "rebase -i" into C continues. + + Now part of ag/rebase-i-in-c + + +* ag/rebase-i-rewrite-todo (2018-06-15) 3 commits + . rebase--interactive: rewrite the edit-todo functionality in C + . editor: add a function to launch the sequence editor + . Merge branch 'bc/t3430-fixup' into ag/rebase-i-rewrite-todo + (this branch uses ag/rebase-i-append-todo-help.) + + Stepwise rewriting of the machinery of "rebase -i" into C continues. + + Now part of ag/rebase-i-in-c + + +* ab/fetch-tags-noclobber (2018-05-16) 9 commits + - fixup! push tests: assert re-pushing annotated tags + - fetch: stop clobbering existing tags without --force + - fetch tests: add a test clobbering tag behavior + - fetch tests: correct a comment "remove it" -> "remove them" + - push doc: correct lies about how push refspecs work + - push tests: assert re-pushing annotated tags + - push tests: add more testing for forced tag pushing + - push tests: fix logic error in "push" test assertion + - push tests: remove redundant 'git push' invocation + + Discarded per request. + cf. <87po09cnir.fsf@evledraar.gmail.com> + + +* nd/use-the-index-compat-less (2018-06-25) 13 commits + . wt-status.c: stop using index compat macros + . sha1-name.c: stop using index compat macros + . sequencer.c: stop using index compat macros + . revision.c: stop using index compat macros + . rerere.c: stop using index compat macros + . merge.c: stop using index compat macros + . merge-recursive.c: stop using index compat macros + . entry.c: stop using index compat macros + . diff.c: stop using index compat macros + . diff-lib.c: stop using index compat macros + . check-racy.c: stop using index compat macros + . blame.c: stop using index compat macros + . apply.c: stop using index compat macros + + Retracted to be replaced with a more vertical approach where the + lower-level helper functions are taught to be capable of working on + an istate instance that is not the_index first, and then upwards to + support the application layer that wants to work on an arbitrary + istate instance, as the goal is not a mechanical replacement of + foo_cache(...) to foo_index(&the_index, ...). + + +* js/branch-diff (2018-05-16) 19 commits + . fixup! Add a function to solve least-cost assignment problems + . completion: support branch-diff + . branch-diff: add a man page + . branch-diff --dual-color: work around bogus white-space warning + . branch-diff: offer to dual-color the diffs + . diff: add an internal option to dual-color diffs of diffs + . color: provide inverted colors, too + . branch-diff: use color for the commit pairs + . branch-diff: add tests + . branch-diff: do not show "function names" in hunk headers + . branch-diff: adjust the output of the commit pairs + . branch-diff: suppress the diff headers + . branch-diff: indent the diffs just like tbdiff + . branch-diff: right-trim commit messages + . branch-diff: also show the diff between patches + . branch-diff: improve the order of the shown commits + . branch-diff: first rudimentary implementation + . Add a new builtin: branch-diff + . Add a function to solve least-cost assignment problems + + "git tbdiff" that lets us compare individual patches in two + iterations of a topic has been rewritten and made into a built-in + command. -- 2.47.3