From: Junio C Hamano Date: Thu, 28 Jun 2018 21:27:17 +0000 (-0700) Subject: What's cooking (2018/06 #07) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=be70464a91c93a321dc16707dec820870df970d2;p=thirdparty%2Fgit.git What's cooking (2018/06 #07) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index c8c4de3bed..2fb2bcb860 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, #06; Mon, 25) -X-master-at: ed843436dd4924c10669820cc73daf50f0b4dabd -X-next-at: fe4b3013947290a493c4417c35793593612e592c +Subject: What's cooking in git.git (Jun 2018, #07; Thu, 28) +X-master-at: e3331758f12da22f4103eec7efe1b5304a9be5e9 +X-next-at: 9cd7c0d54aa2ac12712fd5611825c618efdaf1e0 -What's cooking in git.git (Jun 2018, #06; Mon, 25) +What's cooking in git.git (Jun 2018, #07; Thu, 28) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with @@ -12,18 +12,10 @@ Here are the topics that have been cooking. Commits prefixed with '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. -Git 2.18 turned out to be an unusually large release in the recent -history, with 900+ individual changes, compared to ~500 for a few -releases before that. Thanks, everybody who participated. - -The tip of 'next' hasn't been rewound yet, but I've already reverted -merges of a few topics from there to give them a fresh restart. - -I haven't annotated many topics still in 'pu' with short-term plans -and my assessment on their done-ness. Comments and review summaries -to help deciding are appreciated. I'd like to start accepting new -topics only after getting the classification more-or-less right for -the topics already in flight. +The tip of 'next' has been rewound and it currently has only 4 +topics. Quite a many topics are cooking in 'pu' and need to be +sifted into good bins (for 'next') and the remainder. Help is +appreciated in that area ;-) You can find the changes described here in the integration branches of the repositories listed at @@ -33,363 +25,243 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* ag/rebase-p (2018-06-01) 4 commits - (merged to 'next' on 2018-06-13 at dd6f8a51d7) - + rebase: remove -p code from git-rebase--interactive.sh - + rebase: use the new git-rebase--preserve-merges.sh - + rebase: strip unused code in git-rebase--preserve-merges.sh - + rebase: introduce a dedicated backend for --preserve-merges - (this branch is used by ag/rebase-i-append-todo-help and ag/rebase-i-rewrite-todo.) +* 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 - Separate "rebase -p" codepath out of "rebase -i" implementation to - slim down the latter and make it easier to manage. + Make refspec parsing codepath more robust. -* cc/tests-without-assuming-ref-files-backend (2018-06-04) 1 commit - (merged to 'next' on 2018-06-13 at 7e2f74431c) - + t9104: kosherly remove remote refs - - Instead of mucking with filesystem directly, use plumbing commands - update-ref etc. to manipulate the refs in the tests. - - -* ds/commit-graph-lockfile-fix (2018-05-22) 1 commit - (merged to 'next' on 2018-05-24 at 3d12a02b0c) - + commit-graph: fix UX issue when .lock file exists - (this branch is used by ds/commit-graph-fsck; uses ds/generation-numbers.) - - Update to ds/generation-numbers topic. - - -* ds/generation-numbers (2018-05-22) 11 commits - (merged to 'next' on 2018-05-24 at 56fc38a1b6) - + commit-graph.txt: update design document - + merge: check config before loading commits - + commit: use generation number in remove_redundant() - + commit: add short-circuit to paint_down_to_common() - + commit: use generation numbers for in_merge_bases() - + ref-filter: use generation number for --contains - + commit-graph: always load commit-graph information - + commit: use generations in paint_down_to_common() - + commit-graph: compute generation numbers - + commit: add generation number to struct commit - + ref-filter: fix outdated comment on in_commit_list - (this branch is used by ds/commit-graph-fsck and ds/commit-graph-lockfile-fix.) - - A recently added "commit-graph" datafile has learned to store - pre-computed generation numbers to speed up the decisions to stop - history traversal. - - -* en/merge-recursive-tests (2018-05-28) 5 commits - (merged to 'next' on 2018-06-01 at 8490b560b4) - + t6036: prefer test_when_finished to manual cleanup in following test - + t6036, t6042: prefer test_cmp to sequences of test - + t6036, t6042: prefer test_path_is_file, test_path_is_missing - + t6036, t6042: use test_line_count instead of wc -l - + t6036, t6042: use test_create_repo to keep tests independent - - Clean up tests in t6xxx series about 'merge' command. - - -* en/rename-directory-detection-reboot (2018-06-18) 1 commit - (merged to 'next' on 2018-06-18 at 95c454d3f4) - + merge-recursive: use xstrdup() instead of fixed buffer - - Newly added codepath in merge-recursive had potential buffer - overrun, which has been fixed. +* 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 + Fix for 2.17-era regression around `core.safecrlf`. -* jk/show-index (2018-05-29) 2 commits - (merged to 'next' on 2018-06-01 at 4b3382d994) - + show-index: update documentation for index v2 - + make show-index a builtin - - Modernize a less often used command. - - -* ls/complete-remote-update-names (2018-06-01) 1 commit - (merged to 'next' on 2018-06-13 at 86b4d23278) - + completion: complete remote names too - - "git remote update" can take both a single remote nickname and a - nickname for remote groups, and the completion script (in contrib/) - has been taught about it. - - -* nd/commit-util-to-slab (2018-05-21) 15 commits - (merged to 'next' on 2018-05-24 at bb5643d75c) - + commit.h: delete 'util' field in struct commit - + merge: use commit-slab in merge remote desc instead of commit->util - + log: use commit-slab in prepare_bases() instead of commit->util - + show-branch: note about its object flags usage - + show-branch: use commit-slab for commit-name instead of commit->util - + name-rev: use commit-slab for rev-name instead of commit->util - + bisect.c: use commit-slab for commit weight instead of commit->util - + revision.c: use commit-slab for show_source - + sequencer.c: use commit-slab to associate todo items to commits - + sequencer.c: use commit-slab to mark seen commits - + shallow.c: use commit-slab for commit depth instead of commit->util - + describe: use commit-slab for commit names instead of commit->util - + blame: use commit-slab for blame suspects instead of commit->util - + commit-slab: support shared commit-slab - + commit-slab.h: code split - - The in-core "commit" object had an all-purpose "void *util" field, - which was tricky to use especially in library-ish part of the - code. All of the existing uses of the field has been migrated to a - more dedicated "commit-slab" mechanism and the field is eliminated. - - -* nd/complete-config-vars (2018-05-29) 13 commits - (merged to 'next' on 2018-06-13 at c2dd5546d0) - + completion: complete general config vars in two steps - + log-tree: allow to customize 'grafted' color - + completion: support case-insensitive config vars - + completion: keep other config var completion in camelCase - + completion: drop the hard coded list of config vars - + am: move advice.amWorkDir parsing back to advice.c - + advice: keep config name in camelCase in advice_config[] - + fsck: produce camelCase config key names - + help: add --config to list all available config - + fsck: factor out msg_id_info[] lazy initialization code - + grep: keep all colors in an array - + Add and use generic name->id mapping code for color slot parsing - + Merge branch 'nd/command-list' into nd/complete-config-vars - - Continuing with the idea to programatically enumerate various - pieces of data required for command line completion, teach the - codebase to report the list of configuration variables - subcommands care about to help complete them. - - -* nd/diff-apply-ita (2018-05-29) 4 commits - (merged to 'next' on 2018-05-30 at f98728de81) - + apply: add --intent-to-add - + t2203: add a test about "diff HEAD" case - + diff: turn --ita-invisible-in-index on by default - + diff: ignore --ita-[in]visible-in-index when diffing worktree-to-tree - - "git diff" compares the index and the working tree. For paths - added with intent-to-add bit, the command shows the full contents - of them as added, but the paths themselves were not marked as new - files. They are now shown as new by default. - - "git apply" learned the "--intent-to-add" option so that an - otherwise working-tree-only application of a patch will add new - paths to the index marked with the "intent-to-add" bit. - - -* nd/reject-empty-shallow-request (2018-06-04) 1 commit - (merged to 'next' on 2018-06-13 at d6b6a1c3a7) - + upload-pack: reject shallow requests that would return nothing - - "git fetch --shallow-since=" that specifies the cut-off - point that is newer than the existing history used to end up - grabbing the entire history. Such a request now errors out. - - -* pc/submodule-helper-foreach (2018-05-11) 4 commits - (merged to 'next' on 2018-05-22 at f22659ad46) - + submodule: port submodule subcommand 'foreach' from shell to C - + submodule foreach: document variable '$displaypath' - + submodule foreach: document '$sm_path' instead of '$path' - + submodule foreach: correct '$path' in nested submodules from a subdirectory - - The bulk of "git submodule foreach" has been rewritten in C. - - -* sb/object-store-alloc (2018-05-16) 13 commits - (merged to 'next' on 2018-06-13 at 2868c2db9d) - + alloc: allow arbitrary repositories for alloc functions - + object: allow create_object to handle arbitrary repositories - + object: allow grow_object_hash to handle arbitrary repositories - + alloc: add repository argument to alloc_commit_index - + alloc: add repository argument to alloc_report - + alloc: add repository argument to alloc_object_node - + alloc: add repository argument to alloc_tag_node - + alloc: add repository argument to alloc_commit_node - + alloc: add repository argument to alloc_tree_node - + alloc: add repository argument to alloc_blob_node - + object: add repository argument to grow_object_hash - + object: add repository argument to create_object - + repository: introduce parsed objects field - (this branch is used by sb/object-store-grafts.) - - The conversion to pass "the_repository" and then "a_repository" - throughout the object access API continues. +* jc/clean-after-sanity-tests (2018-06-15) 1 commit + (merged to 'next' on 2018-06-22 at 2df77b8af9) + + tests: clean after SANITY tests -* sb/plug-misc-leaks (2018-06-04) 5 commits - (merged to 'next' on 2018-06-13 at bf68cabe28) - + SQUASH: tentatively cast const-ness away when calling free() - + sequencer.c: plug mem leak in git_sequencer_config - (merged to 'next' on 2018-06-04 at fbefac1c7a) - + sequencer.c: plug leaks in do_pick_commit - + submodule--helper: plug mem leak in print_default_remote - + refs/packed-backend.c: close fd of empty file + test cleanup. - Misc leak plugging. +* 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 -* sg/update-ref-stdin-cleanup (2018-06-04) 1 commit - (merged to 'next' on 2018-06-13 at 2b9924760d) - + update-ref --stdin: use skip_prefix() + 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. - Code cleanup. + +* 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 + + "git fetch-pack --all" used to unnecessarily fail upon seeing an + annotated tag that points at an object other than a commit. + + +* 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 + + "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. + + +* 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. + + +* 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 + + 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. + + +* 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 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. + + +* 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' + + Some flaky tests have been fixed. + + +* 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 + + Build and test procedure for netrc credential helper (in contrib/) + has been updated. -------------------------------------------------- [New Topics] -* 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 != +* 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 - Code preparation to make "git p4" closer to be usable with Python 3. + 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 'next'. -* pw/rebase-i-keep-reword-after-conflict (2018-06-19) 1 commit - - sequencer: do not squash 'reword' commits when we hit conflicts +* as/sequencer-customizable-comment-char (2018-06-28) 1 commit + - sequencer: use configured comment character - Bugfix for "rebase -i" corner case regression. + Honor core.commentchar when preparing the list of commits to replay + in "rebase -i". + + +* dj/runtime-prefix (2018-06-26) 1 commit + - Makefile: tweak sed invocation + + POSIX portability fix in Makefile to fix a glitch introduced a few + releases ago. Will merge to 'next'. -* xy/format-patch-prereq-patch-id-fix (2018-06-19) 1 commit - - format-patch: clear UNINTERESTING flag before prepare_bases +* ds/commit-graph (2018-06-28) 1 commit + - commit-graph: fix documentation inconsistencies - Recently added "--base" option to "git format-patch" command did - not correctly generate prereq patch ids. + Docfix. Will merge to 'next'. -* bw/config-refer-to-gitsubmodules-doc (2018-06-21) 1 commit - - docs: link to gitsubmodules +* 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 + + Will merge to 'next'. - Docfix. + +* js/enhanced-version-info (2018-06-28) 1 commit + - Makefile: fix the "built from commit" code + + Build fix. Will merge to 'next'. -* bw/ref-in-want (2018-06-21) 8 commits - - fetch-pack: implement ref-in-want - - fetch-pack: put shallow info in output parameter - - fetch: refactor to make function args narrower - - fetch: refactor fetch_refs into two functions - - fetch: refactor the population of peer ref OIDs - - upload-pack: test negotiation with changing repository - - upload-pack: implement ref-in-want - - test-pkt-line: add unpack-sideband subcommand +* js/rebase-recreate-merge (2018-06-27) 1 commit + - rebase: fix documentation formatting + Docfix. -* en/rebase-consistency (2018-06-21) 7 commits - - git-rebase: make --allow-empty-message the default - - git-rebase.txt: address confusion between --no-ff vs --force-rebase - - git-rebase.txt: document behavioral inconsistencies between modes - - git-rebase: error out when incompatible options passed - - t3422: new testcases for checking when incompatible options passed - - git-rebase.sh: update help messages a bit - - git-rebase.txt: document incompatible options + 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 +* jt/connectivity-check-after-unshallow (2018-06-27) 1 commit + - fetch: when deepening, check connectivity fully + "git fetch" failed to correctly validate the set of objects it + received when making a shallow history deeper, which has been + corrected. -* 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> +* 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. -* bw/protocol-v2 (2018-06-22) 1 commit - - protocol-v2 doc: put HTTP headers after request - Doc fix. +* 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. Will merge to 'next'. -* jk/branch-l-1-repurpose (2018-06-22) 1 commit - - branch: make "-l" a synonym for "--list" - (this branch uses jk/branch-l-0-deprecation.) +* ms/core-icase-doc (2018-06-28) 1 commit + - Documentation: declare "core.ignoreCase" as internal variable - Updated plan to repurpose the "-l" option to "git branch". + Clarify that setting core.ignoreCase to deviate from reality would + not turn a case-incapable filesystem into a case-capable one. - Will hold in 'pu' until jk/branch-l-0-deprecation progresses sufficiently. + Will merge to 'next'. -* vs/typofixes (2018-06-22) 1 commit - - Documentation: spelling and grammar fixes +* rj/submodule-fsck-skip (2018-06-27) 1 commit + - fsck: check skiplist for object in fsck_blob() - Doc fix. + "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 'next'. -* 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 +* 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.) + "git grep" learned the "--only-matching" option. -* 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 +* tz/exclude-doc-smallfixes (2018-06-27) 2 commits + - dir.c: fix typos in core.excludesfile comment + - gitignore.txt: clarify default core.excludesfile path -* 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 + Doc updates. + + Will merge to 'next'. -------------------------------------------------- [Stalled] @@ -518,6 +390,185 @@ of the repositories listed at -------------------------------------------------- [Cooking] +* 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 != + + Code preparation to make "git p4" closer to be usable with Python 3. + + Will merge to 'next'. + + +* pw/rebase-i-keep-reword-after-conflict (2018-06-19) 1 commit + - sequencer: do not squash 'reword' commits when we hit conflicts + + Bugfix for "rebase -i" corner case regression. + + Will merge to 'next'. + + +* xy/format-patch-prereq-patch-id-fix (2018-06-19) 1 commit + - 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'. + + +* bw/config-refer-to-gitsubmodules-doc (2018-06-21) 1 commit + - docs: link to gitsubmodules + + Docfix. + + Will merge to 'next'. + + +* bw/ref-in-want (2018-06-28) 8 commits + - fetch-pack: implement ref-in-want + - fetch-pack: put shallow info in output parameter + - fetch: refactor to make function args narrower + - fetch: refactor fetch_refs into two functions + - fetch: refactor the population of peer ref OIDs + - upload-pack: test negotiation with changing repository + - upload-pack: implement ref-in-want + - test-pkt-line: add unpack-sideband subcommand + + 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. + + +* en/rebase-consistency (2018-06-27) 9 commits + - git-rebase: make --allow-empty-message the default + - t3401: add directory rename testcases for rebase and am + - git-rebase.txt: document behavioral differences between modes + - directory-rename-detection.txt: technical docs on abilities and limitations + - git-rebase.txt: address confusion between --no-ff vs --force-rebase + - git-rebase: error out when incompatible options passed + - t3422: new testcases for checking when incompatible options passed + - git-rebase.sh: update help messages a bit + - git-rebase.txt: document incompatible options + + "git rebase" behaved slightly differently depending on which one of + the three backends gets used; this has been documented and an + effort to make them more uniform has begun. + + +* jt/remove-pack-bitmap-global (2018-06-21) 2 commits + - pack-bitmap: add free function + - pack-bitmap: remove bitmap_git global variable + + The effort to move globals to per-repository in-core structure + continues. + + +* 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> + + +* bw/protocol-v2 (2018-06-22) 1 commit + - protocol-v2 doc: put HTTP headers after request + + Doc fix. + + Will merge to 'next'. + + +* jk/branch-l-1-repurpose (2018-06-22) 1 commit + - branch: make "-l" a synonym for "--list" + (this branch uses jk/branch-l-0-deprecation.) + + Updated plan to repurpose the "-l" option to "git branch". + + Will hold in 'pu' until jk/branch-l-0-deprecation progresses sufficiently. + + +* vs/typofixes (2018-06-22) 1 commit + - Documentation: spelling and grammar fixes + + Doc fix. + + Will merge to 'next'. + + +* 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 + + 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 + + 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. + + * 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 @@ -526,22 +577,12 @@ of the repositories listed at - 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. - -* 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 - - Build and test procedure for netrc credential helper (in contrib/) - has been updated. - - Will merge to 'master'. + Will merge to 'next'. * jt/fetch-pack-negotiator (2018-06-15) 7 commits @@ -552,10 +593,13 @@ of the repositories listed at - fetch-pack: directly end negotiation if ACK ready - fetch-pack: clear marks before re-marking - fetch-pack: split up everything_local() + (this branch is used by jt/fetch-nego-tip.) 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 @@ -564,6 +608,9 @@ of the repositories listed at 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 @@ -574,25 +621,14 @@ of the repositories listed at Stepwise rewriting of the machinery of "rebase -i" into C continues. -* 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 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 'master'. - - * sb/submodule-core-worktree (2018-06-19) 3 commits - (merged to 'next' on 2018-06-22 at 2f7f263b30) + (merged to 'next' on 2018-06-28 at 96e1a8dbd1) + submodule deinit: unset core.worktree + submodule: ensure core.worktree is set after update + submodule: unset core.worktree if no working tree is present + Originally merged to 'next' on 2018-06-22 + "git submodule" did not correctly adjust core.worktree setting that indicates whether/where a submodule repository has its associated working tree across various state transitions, which has been @@ -602,7 +638,7 @@ of the repositories listed at * ds/ewah-cleanup (2018-06-21) 10 commits - (merged to 'next' on 2018-06-22 at ad0ab374a1) + (merged to 'next' on 2018-06-28 at 9cd7c0d54a) + ewah: delete unused 'rlwit_discharge_empty()' + ewah: drop ewah_serialize_native function + ewah: drop ewah_deserialize function @@ -614,21 +650,14 @@ of the repositories listed at + ewah/bitmap.c: delete unused 'bitmap_each_bit()' + ewah/bitmap.c: delete unused 'bitmap_clear()' + Originally merged to 'next' on 2018-06-22 + Remove unused function definitions and declarations from ewah bitmap subsystem. Will merge to 'master'. -* jc/clean-after-sanity-tests (2018-06-15) 1 commit - (merged to 'next' on 2018-06-22 at 2df77b8af9) - + tests: clean after SANITY tests - - test cleanup. - - Will merge to 'master'. - - * is/parsing-line-range (2018-06-15) 2 commits - log: prevent error if line range ends past end of file - blame: prevent error if range ends past end of file @@ -637,49 +666,8 @@ of the repositories listed at take has been tweaked. -* 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 - - Make refspec parsing codepath more robust. - - Will merge to 'master'. - - -* 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 - - Fix for 2.17-era regression. - - Will merge to 'master'. - - -* 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' - - Some flaky tests have been fixed. - - Will merge to 'master'. - - -* 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 - - "git fetch-pack --all" used to unnecessarily fail upon seeing an - annotated tag that points at an object other than a commit. - - Will merge to 'master'. - - * en/merge-recursive-cleanup (2018-06-12) 6 commits - (merged to 'next' on 2018-06-19 at d175cea416) + (merged to 'next' on 2018-06-28 at 1a3646eb7d) + merge-recursive: add pointer about unduly complex looking code + merge-recursive: rename conflict_rename_*() family of functions + merge-recursive: clarify the rename_dir/RENAME_DIR meaning @@ -687,30 +675,9 @@ of the repositories listed at + merge-recursive: fix numerous argument alignment issues + merge-recursive: fix miscellaneous grammar error in comment - Code cleanup. - - Will merge to 'master'. - - -* 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 - - 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. - - Will merge to 'master'. - + Originally merged to 'next' on 2018-06-19 -* 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 - - "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. + Code cleanup. Will merge to 'master'. @@ -726,24 +693,11 @@ of the repositories listed at - checkout tests: index should be clean after dwim checkout -* 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 - - 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. - - Will merge to 'master'. - - -* ds/commit-graph-fsck (2018-05-29) 20 commits +* ds/commit-graph-fsck (2018-06-27) 22 commits - commit-graph: update design document - gc: automatically write commit-graph files - commit-graph: add '--reachable' option + - commit-graph: use string-list API for input - fsck: verify commit-graph - commit-graph: verify contents match checksum - commit-graph: test for corrupted octopus edge @@ -761,9 +715,12 @@ of the repositories listed at - commit-graph: parse commit from chosen graph - commit-graph: fix GRAPH_MIN_SIZE - commit-graph: UNLEAK before die() + - t5318-commit-graph.sh: use core.commitGraph - Expecting a reroll. - cf. + "git fsck" learns to make sure the optional commit-graph file is in + a sane state. + + Is this ready for 'next'? * ma/wrapped-info (2018-05-28) 2 commits @@ -773,44 +730,27 @@ of the repositories listed at An attempt to help making multi-line messages fed to warning(), error(), and friends more easily translatable. - Waiting for the discussion to settle. + Will discard and wait for a cleaned-up rewrite. cf. <20180529213957.GF7964@sigill.intra.peff.net> -* 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 programatically enumerate various - pieces of data required for command line completion, the codebase - has been taught to enumerate options prefixed with "--no-" to - negate them. - - Will merge to 'master'. - - -* jm/cache-entry-from-mem-pool (2018-06-21) 8 commits +* jm/cache-entry-from-mem-pool (2018-06-28) 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 lifecycle management functions - - mem-pool: tweak math on mp_block allocation size + - 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 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. - Kicked back to 'pu' with a rerolled one. - cf. <20180620201557.77155-1-jamill@microsoft.com> - * sb/object-store-grafts (2018-05-18) 19 commits - (merged to 'next' on 2018-06-22 at 386a6cc66a) + (merged to 'next' on 2018-06-28 at 02f70d6302) + commit: allow lookup_commit_graft to handle arbitrary repositories + commit: allow prepare_commit_graft to handle arbitrary repositories + shallow: migrate shallow information into the object parser @@ -831,6 +771,8 @@ of the repositories listed at + object: move grafts to object parser + object-store: move object access functions to object-store.h + Originally merged to 'next' on 2018-06-22 + The conversion to pass "the_repository" and then "a_repository" throughout the object access API continues.