From: Junio C Hamano Date: Mon, 25 Jan 2021 23:29:43 +0000 (-0800) Subject: What's cooking (2021/01 #05) X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a0e3e70e5ea6a22877bcd3283e2f7e2173b5b117;p=thirdparty%2Fgit.git What's cooking (2021/01 #05) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index f73fe26601..73899cfbd9 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 (Jan 2021, #04; Sat, 16) -X-master-at: 66e871b6647ffea61a77a0f82c7ef3415f1ee79c -X-next-at: 02bc693789bd06eae399a1ec06d0ca2f72f49ff3 +Subject: What's cooking in git.git (Jan 2021, #05; Mon, 25) +X-master-at: e6362826a0409539642a5738db61827e5978e2e4 +X-next-at: 705c353deb6a369b8980a2bb0d65b01976f53945 -What's cooking in git.git (Jan 2021, #04; Sat, 16) +What's cooking in git.git (Jan 2021, #05; Mon, 25) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are @@ -12,10 +12,22 @@ 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. -The third batch of topics are now in 'master'. Most of these cooked -for shorter than usual in 'next' (I usually try to keep any topic in -'next' for at least a week), but many of them are mostly benign doc -and test fixes. +The fourth batch of topics are now in 'master'. Dscho's "we +shouldn't break our tests, or reduce coverage by them, when 'git +init' starts using 'main' as the fallback default name for the +initial branch topic is in. Two of the topics have especially +noteworthy impact to end-users and developers, so I've added the +following to the draft release notes: + + Backward incompatible and other important changes + + * The "pack-redundant" command, which has been left stale with almost + unusable performance issues, now warns loudly when it gets used, as + we no longer want to recommend its use (instead just "repack -d" + instead). + + * The development community has adopted Contributor Covenant v2.0 to + update from v1.4 that we have been using. 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 @@ -29,162 +41,546 @@ With maint, master, next, seen, todo: https://github.com/git/git/ https://gitlab.com/git-vcs/git/ -With all the integration branches and topics broken out: +With all the integration branches and topics broken out: + + https://github.com/gitster/git/ + +Even though the preformatted documentation in HTML and man format +are not sources, they are published in these repositories for +convenience (replace "htmldocs" with "manpages" for the manual +pages): + + git://git.kernel.org/pub/scm/git/git-htmldocs.git/ + https://github.com/gitster/git-htmldocs.git/ + +Release tarballs are available at: + + https://www.kernel.org/pub/software/scm/git/ + +-------------------------------------------------- +[Graduated to 'master'] + +* ab/branch-sort (2021-01-07) 7 commits + (merged to 'next' on 2021-01-12 at 1231feea7c) + + branch: show "HEAD detached" first under reverse sort + + branch: sort detached HEAD based on a flag + + ref-filter: move ref_sorting flags to a bitfield + + ref-filter: move "cmp_fn" assignment into "else if" arm + + ref-filter: add braces to if/else if/else chain + + branch tests: add to --sort tests + + branch: change "--local" to "--list" in comment + + The implementation of "git branch --sort" wrt the detached HEAD + display has always been hacky, which has been cleaned up. + + +* ab/coc-update-to-2.0 (2021-01-13) 3 commits + (merged to 'next' on 2021-01-15 at 4859c12625) + + CoC: update to version 2.0 + local changes + + CoC: explicitly take any whitespace breakage + + CoC: Update word-wrapping to match upstream + + Update the Code-of-conduct to version 2.0 from the upstream (we've + been using version 1.4). + + +* ab/mailmap (2021-01-12) 22 commits + (merged to 'next' on 2021-01-13 at a3ce27912f) + + shortlog: remove unused(?) "repo-abbrev" feature + + mailmap doc + tests: document and test for case-insensitivity + + mailmap tests: add tests for empty "<>" syntax + + mailmap tests: add tests for whitespace syntax + + mailmap tests: add a test for comment syntax + + mailmap doc + tests: add better examples & test them + + tests: refactor a few tests to use "test_commit --append" + + test-lib functions: add an --append option to test_commit + + test-lib functions: add --author support to test_commit + + test-lib functions: document arguments to test_commit + + test-lib functions: expand "test_commit" comment template + + mailmap: test for silent exiting on missing file/blob + + mailmap tests: get rid of overly complex blame fuzzing + + mailmap tests: add a test for "not a blob" error + + mailmap tests: remove redundant entry in test + + mailmap tests: improve --stdin tests + + mailmap tests: modernize syntax & test idioms + + mailmap tests: use our preferred whitespace syntax + + mailmap doc: start by mentioning the comment syntax + + check-mailmap doc: note config options + + mailmap doc: quote config variables `like.this` + + mailmap doc: create a new "gitmailmap(5)" man page + (this branch is used by ab/mailmap-fixup.) + + Clean-up docs, codepaths and tests around mailmap. + + +* ab/mailmap-fixup (2021-01-14) 4 commits + (merged to 'next' on 2021-01-15 at ef14e2263d) + + t4203: make blame output massaging more robust + + mailmap doc: use correct environment variable 'GIT_WORK_TREE' + + t4203: stop losing return codes of git commands + + test-lib-functions.sh: fix usage for test_commit() + (this branch uses ab/mailmap.) + + Follow-up fixes and improvements to ab/mailmap topic. + + +* ab/mktag (2021-01-06) 23 commits + (merged to 'next' on 2021-01-08 at 6f9e11ad97) + + mktag: add a --[no-]strict option + + mktag: mark strings for translation + + mktag: convert to parse-options + + mktag: allow omitting the header/body \n separator + + mktag: allow turning off fsck.extraHeaderEntry + + fsck: make fsck_config() re-usable + + mktag: use fsck instead of custom verify_tag() + + mktag: use puts(str) instead of printf("%s\n", str) + + mktag: remove redundant braces in one-line body "if" + + mktag: use default strbuf_read() hint + + mktag tests: test verify_object() with replaced objects + + mktag tests: improve verify_object() test coverage + + mktag tests: test "hash-object" compatibility + + mktag tests: stress test whitespace handling + + mktag tests: run "fsck" after creating "mytag" + + mktag tests: don't create "mytag" twice + + mktag tests: don't redirect stderr to a file needlessly + + mktag tests: remove needless SHA-1 hardcoding + + mktag tests: use "test_commit" helper + + mktag tests: don't needlessly use a subshell + + mktag doc: update to explain why to use this + + mktag doc: grammar fix, when exists -> when it exists + + mktag doc: say not + + "git mktag" validates its input using its own rules before writing + a tag object---it has been updated to share the logic with "git + fsck". + + +* cc/write-promisor-file (2021-01-14) 3 commits + (merged to 'next' on 2021-01-14 at 9d773d4734) + + pack-write: die on error in write_promisor_file() + + fetch-pack: refactor writing promisor file + + fetch-pack: rename helper to create_promisor_file() + + A bit of code refactoring. + + +* dl/reflog-with-single-entry (2021-01-11) 2 commits + (merged to 'next' on 2021-01-13 at 09b33209c4) + + refs: allow @{n} to work with n-sized reflog + + refs: factor out set_read_ref_cutoffs() + + After expiring a reflog and making a single commit, the reflog for + the branch would record a single entry that knows both @{0} and + @{1}, but we failed to answer "what commit were we on?", i.e. @{1} + + +* en/diffcore-rename (2021-01-04) 9 commits + (merged to 'next' on 2021-01-12 at fa769ebc35) + + diffcore-rename: remove unnecessary duplicate entry checks + + diffcore-rename: accelerate rename_dst setup + + diffcore-rename: simplify and accelerate register_rename_src() + + t4058: explore duplicate tree entry handling in a bit more detail + + t4058: add more tests and documentation for duplicate tree entry handling + + diffcore-rename: reduce jumpiness in progress counters + + diffcore-rename: simplify limit check + + diffcore-rename: avoid usage of global in too_many_rename_candidates() + + diffcore-rename: rename num_create to num_destinations + (this branch is used by en/merge-ort-perf.) + + File-level rename detection updates. + + +* en/merge-ort-3 (2020-12-15) 11 commits + (merged to 'next' on 2021-01-08 at fe481b9627) + + merge-ort: add implementation of type-changed rename handling + + merge-ort: add implementation of normal rename handling + + merge-ort: add implementation of rename collisions + + merge-ort: add implementation of rename/delete conflicts + + merge-ort: add implementation of both sides renaming differently + + merge-ort: add implementation of both sides renaming identically + + merge-ort: add basic outline for process_renames() + + merge-ort: implement compare_pairs() and collect_renames() + + merge-ort: implement detect_regular_renames() + + merge-ort: add initial outline for basic rename detection + + merge-ort: add basic data structures for handling renames + (this branch is used by en/merge-ort-perf and en/ort-directory-rename.) + + Rename detection is added to the "ORT" merge strategy. + + +* jc/deprecate-pack-redundant (2020-12-15) 1 commit + (merged to 'next' on 2021-01-12 at 14034c7892) + + pack-redundant: gauge the usage before proposing its removal + + Warn loudly when the "pack-redundant" command, which has been left + stale with almost unusable performance issues, gets used, as we no + longer want to recommend its use (instead just "repack -d" instead). + + +* jk/forbid-lf-in-git-url (2021-01-07) 2 commits + (merged to 'next' on 2021-01-12 at 88a1d937ae) + + fsck: reject .gitmodules git:// urls with newlines + + git_connect_git(): forbid newlines in host and path + + Newline characters in the host and path part of git:// URL are + now forbidden. + + +* jk/log-cherry-pick-duplicate-patches (2021-01-12) 1 commit + (merged to 'next' on 2021-01-13 at abcfbf8603) + + patch-ids: handle duplicate hashmap entries + + When more than one commit with the same patch ID appears on one + side, "git log --cherry-pick A...B" did not exclude them all when a + commit with the same patch ID appears on the other side. Now it + does. + + +* js/default-branch-name-tests-final-stretch (2020-11-19) 29 commits + (merged to 'next' on 2021-01-13 at 0e93f0d529) + + tests: drop prereq `PREPARE_FOR_MAIN_BRANCH` where no longer needed + + t99*: adjust the references to the default branch name "main" + + tests(git-p4): transition to the default branch name `main` + + t9[5-7]*: adjust the references to the default branch name "main" + + t9[0-4]*: adjust the references to the default branch name "main" + + t8*: adjust the references to the default branch name "main" + + t7[5-9]*: adjust the references to the default branch name "main" + + t7[0-4]*: adjust the references to the default branch name "main" + + t6[4-9]*: adjust the references to the default branch name "main" + + t64*: preemptively adjust alignment to prepare for `master` -> `main` + + t6[0-3]*: adjust the references to the default branch name "main" + + t5[6-9]*: adjust the references to the default branch name "main" + + t55[4-9]*: adjust the references to the default branch name "main" + + t55[23]*: adjust the references to the default branch name "main" + + t551*: adjust the references to the default branch name "main" + + t550*: adjust the references to the default branch name "main" + + t5503: prepare aligned comment for replacing `master` with `main` + + t5[0-4]*: adjust the references to the default branch name "main" + + t5323: prepare centered comment for `master` -> `main` + + t4*: adjust the references to the default branch name "main" + + t3[5-9]*: adjust the references to the default branch name "main" + + t34*: adjust the references to the default branch name "main" + + t3416: preemptively adjust alignment in a comment + + t3[0-3]*: adjust the references to the default branch name "main" + + t2*: adjust the references to the default branch name "main" + + t[01]*: adjust the references to the default branch name "main" + + t0060: preemptively adjust alignment + + tests: mark tests relying on the current default for `init.defaultBranch` + + Merge 'jk/diff-release-filespec-fix' into js/default-branch-name-tests-final-stretch + + Prepare tests not to be affected by the name of the default branch + "git init" creates. + + +* jx/bundle (2021-01-11) 3 commits + (merged to 'next' on 2021-01-14 at 749a907dd2) + + bundle: arguments can be read from stdin + + bundle: lost objects when removing duplicate pendings + + test: add helper functions for git-bundle + + "git bundle" learns "--stdin" option to read its refs from the + standard input. Also, it now does not lose refs whey they point + at the same object. + + +* ma/more-opaque-lock-file (2021-01-06) 5 commits + (merged to 'next' on 2021-01-12 at f246e38b50) + + read-cache: try not to peek into `struct {lock_,temp}file` + + refs/files-backend: don't peek into `struct lock_file` + + midx: don't peek into `struct lock_file` + + commit-graph: don't peek into `struct lock_file` + + builtin/gc: don't peek into `struct lock_file` + + Code clean-up. + + +* ps/config-env-pairs (2021-01-15) 8 commits + (merged to 'next' on 2021-01-15 at 4ed0341270) + + config: allow specifying config entries via envvar pairs + + environment: make `getenv_safe()` a public function + + config: store "git -c" variables using more robust format + + config: parse more robust format in GIT_CONFIG_PARAMETERS + + config: extract function to parse config pairs + + quote: make sq_dequote_step() a public function + + config: add new way to pass config via `--config-env` + + git: add `--super-prefix` to usage string + + Introduce two new ways to feed configuration variable-value pairs + via environment variables, and tweak the way GIT_CONFIG_PARAMETERS + encodes variable/value pairs to make it more robust. + + +* ps/fetch-atomic (2021-01-12) 5 commits + (merged to 'next' on 2021-01-13 at a8896d0873) + + fetch: implement support for atomic reference updates + + fetch: allow passing a transaction to `s_update_ref()` + + fetch: refactor `s_update_ref` to use common exit path + + fetch: use strbuf to format FETCH_HEAD updates + + fetch: extract writing to FETCH_HEAD + + "git fetch" learns to treat ref updates atomically in all-or-none + fashion, just like "git push" does, with the new "--atomic" option. + - https://github.com/gitster/git/ +* sj/untracked-files-in-submodule-directory-is-not-dirty (2020-12-08) 1 commit + (merged to 'next' on 2021-01-12 at 2aca21c42e) + + diff: do not show submodule with untracked files as "-dirty" -Even though the preformatted documentation in HTML and man format -are not sources, they are published in these repositories for -convenience (replace "htmldocs" with "manpages" for the manual -pages): + "git diff" showed a submodule working tree with untracked cruft as + "Submodule commit -dirty", but a natural expectation is + that the "-dirty" indicator would align with "git describe --dirty", + which does not consider having untracked files in the working tree + as source of dirtiness. The inconsistency has been fixed. - git://git.kernel.org/pub/scm/git/git-htmldocs.git/ - https://github.com/gitster/git-htmldocs.git/ -Release tarballs are available at: +* tb/pack-revindex-api (2021-01-14) 21 commits + (merged to 'next' on 2021-01-15 at 1f2997979c) + + for_each_object_in_pack(): clarify pack vs index ordering + + pack-revindex.c: avoid direct revindex access in 'offset_to_pack_pos()' + + pack-revindex: hide the definition of 'revindex_entry' + + pack-revindex: remove unused 'find_revindex_position()' + + pack-revindex: remove unused 'find_pack_revindex()' + + builtin/gc.c: guess the size of the revindex + + for_each_object_in_pack(): convert to new revindex API + + unpack_entry(): convert to new revindex API + + packed_object_info(): convert to new revindex API + + retry_bad_packed_offset(): convert to new revindex API + + get_delta_base_oid(): convert to new revindex API + + rebuild_existing_bitmaps(): convert to new revindex API + + try_partial_reuse(): convert to new revindex API + + get_size_by_pos(): convert to new revindex API + + show_objects_for_type(): convert to new revindex API + + bitmap_position_packfile(): convert to new revindex API + + check_object(): convert to new revindex API + + write_reused_pack_verbatim(): convert to new revindex API + + write_reused_pack_one(): convert to new revindex API + + write_reuse_object(): convert to new revindex API + + pack-revindex: introduce a new API + (this branch is used by tb/pack-revindex-on-disk.) - https://www.kernel.org/pub/software/scm/git/ + Abstract accesses to in-core revindex that allows enumerating + objects stored in a packfile in the order they appear in the pack, + in preparation for introducing an on-disk precomputed revindex. -------------------------------------------------- [New Topics] -* ab/fsck-doc-fix (2021-01-16) 1 commit - - fsck doc: remove ancient out-of-date diagnostics +* cm/rebase-i (2021-01-24) 9 commits + . doc/git-rebase: add documentation for fixup [-C|-c] options + . rebase -i: teach --autosquash to work with amend! + . t3437: test script for fixup [-C|-c] options in interactive rebase + . rebase -i: add fixup [-C | -c] command + . sequencer: use const variable for commit message comments + . sequencer: pass todo_item to do_pick_commit() + . rebase -i: comment out squash!/fixup! subjects from squash message + . sequencer: factor out code to append squash message + . rebase -i: only write fixup-message when it's needed - Documentation for "git fsck" lost stale bits that has become - incorrect. + "rebase -i" is getting cleaned up and also enhanced. + + It seems to break t3415 when merged to 'seen'. + + +* ds/maintenance-prefetch-cleanup (2021-01-20) 2 commits + - t7900: clean up some broken refs + - maintenance: set log.excludeDecoration durin prefetch + + Test clean-up plus UI improvement by hiding extra refs that + the prefetch task uses from "log --decorate" output. Will merge to 'next'. -* ab/tests-various-fixup (2021-01-16) 11 commits - - tests: add a "set -o pipefail" for a patched bash - - tests: split up bash detection library - - archive tests: use a cheaper "zipinfo -h" invocation to get header - - upload-pack tests: avoid a non-zero "grep" exit status - - rm tests: actually test for SIGPIPE in SIGPIPE test - - git-svn tests: rewrite brittle tests to use "--[no-]merges". - - git svn mergeinfo tests: refactor "test -z" to use test_must_be_empty - - git svn mergeinfo tests: modernize redirection & quoting style - - cache-tree tests: refactor overly complex function - - cache-tree tests: use a sub-shell with less indirection - - cache-tree tests: remove unused $2 parameter +* ds/more-index-cleanups (2021-01-23) 9 commits + - t1092: test interesting sparse-checkout scenarios + - test-lib: test_region looks for trace2 regions + - sparse-checkout: load sparse-checkout patterns + - name-hash: use trace2 regions for init + - repository: add repo reference to index_state + - fsmonitor: de-duplicate BUG()s around dirty bits + - cache-tree: extract subtree_pos() + - cache-tree: simplify verify_cache() prototype + - cache-tree: clean up cache_tree_update() + (this branch uses ds/cache-tree-basics.) - Various test updates. + Cleaning various codepaths up. - Looking good. + Will merge to 'next'. --------------------------------------------------- -[Graduated to 'master'] -* ab/gettext-charset-comment-fix (2021-01-11) 2 commits - (merged to 'next' on 2021-01-12 at bc7f60e246) - + gettext.c: remove/reword a mostly-useless comment - + Makefile: remove a warning about old GETTEXT_POISON flag +* jt/packfile-as-uri-doc (2021-01-20) 1 commit + - Doc: clarify contents of packfile sent as URI - Comments update. + Doc fix for packfile URI feature. + Will merge to 'next'. -* ad/t4129-setfacl-target-fix (2021-01-09) 1 commit - (merged to 'next' on 2021-01-12 at e09694772a) - + t4129: fix setfacl-related permissions failure - Test fix. +* rs/worktree-list-verbose (2021-01-20) 7 commits + - worktree: teach `list` verbose mode + - worktree: teach `list` to annotate prunable worktree + - worktree: teach `list --porcelain` to annotate locked worktree + - t2402: ensure locked worktree is properly cleaned up + - worktree: teach worktree_lock_reason() to gently handle main worktree + - worktree: teach worktree to lazy-load "prunable" reason + - worktree: libify should_prune_worktree() + The "list" subcommand of "git worktree" learns to show more info in + its verbose mode. -* bc/doc-status-short (2021-01-11) 1 commit - (merged to 'next' on 2021-01-13 at 6093625f0c) - + docs: rephrase and clarify the git status --short format + Expecting a reroll. + cf. - Doc update. +* tb/geometric-repack (2021-01-20) 10 commits + - builtin/repack.c: add '--geometric' option + - builtin/repack.c: extract loose object handling + - builtin/pack-objects.c: teach '--keep-pack-stdin' + - packfile: add kept-pack cache for find_kept_pack_entry() + - pack-objects: rewrite honor-pack-keep logic + - p5303: measure time to repack with keep + - p5303: add missing &&-chains + - builtin/pack-objects.c: learn '--assume-kept-packs-closed' + - revision: learn '--no-kept-objects' + - packfile: introduce 'find_kept_pack_entry()' -* dl/p4-encode-after-kw-expansion (2020-12-23) 1 commit - (merged to 'next' on 2021-01-13 at 8fce17d998) - + git-p4: fix syncing file types with pattern + "git repack" so far has been only capable of repacking everything + under the sun into a single pack (or split by size). A cleverer + strategy to reduce the cost of repacking a repository has been + introduced. - Text encoding fix for "git p4". +* zh/ls-files-deduplicate (2021-01-23) 3 commits + - ls-files.c: add --deduplicate option + - ls_files.c: consolidate two for loops into one + - ls_files.c: bugfix for --deleted and --modified -* ds/for-each-repo-noopfix (2021-01-07) 1 commit - (merged to 'next' on 2021-01-12 at 92f83b5db1) - + for-each-repo: do nothing on empty config + "git ls-files" can and does show multiple entries when the index is + unmerged, which is a source for confusion unless -s/-u option is in + use. A new option --deduplicate has been introduced. - "git for-each-repo --config= " should not run for - any repository when the configuration variable is not defined - even once. + Will merge to 'next'. -* ds/maintenance-part-4 (2021-01-05) 4 commits - (merged to 'next' on 2021-01-08 at 1f98c859ea) - + maintenance: use Windows scheduled tasks - + maintenance: use launchctl on macOS - + maintenance: include 'cron' details in docs - + maintenance: extract platform-specific scheduling +* ah/rebase-no-fork-point-config (2021-01-21) 1 commit + - rebase: add a config option for --no-fork-point - Follow-up on the "maintenance part-3" which introduced scheduled - maintenance tasks to support platforms whose native scheduling - methods are not 'cron'. + "git rebase --[no-]fork-point" gained a configuration variable + rebase.forkPoint so that users do not have to keep specifying a + non-default setting. + Expecting a reroll to update its tests. + cf. -* jc/macos-install-dependencies-fix (2021-01-14) 1 commit - (merged to 'next' on 2021-01-14 at 5a11de010b) - + ci/install-depends: attempt to fix "brew cask" stuff - Fix for procedure to building CI test environment for mac. +* jk/peel-iterated-oid (2021-01-21) 1 commit + - refs: switch peel_ref() to peel_iterated_oid() + The peel_ref() API has been replaed with peel_iterated_oid(). -* jc/sign-off (2021-01-07) 1 commit - (merged to 'next' on 2021-01-12 at 0d9a2a9a41) - + SubmittingPatches: tighten wording on "sign-off" procedure + Will merge to 'next'. - Doc update. +* jk/run-command-use-shell-doc (2021-01-22) 1 commit + - run-command: document use_shell option -* jk/t5516-deflake (2021-01-09) 1 commit - (merged to 'next' on 2021-01-12 at ed5317a798) - + t5516: loosen "not our ref" error check + The .use_shell flag in struct child_process that is passed to + run_command() API has been clarified with a bit more documentation. - Test fix. + Will merge to 'next'. + + +* js/range-diff-wo-dotdot (2021-01-21) 3 commits + - range-diff(docs): explain how to specify commit ranges + - range-diff: handle commit ranges other than A..B + - range-diff: refactor check for commit range + + There are other ways than ".." for a single token to denote a + "commit range", namely "^!" and "^-", but "git + range-diff" did not understand them. + + Getting closer. + cf. + + +* js/skip-dashed-built-ins-from-config-mak (2021-01-21) 1 commit + - SKIP_DASHED_BUILT_INS: respect `config.mak` + + Build fix. + Will merge to 'next'. + + +* jx/t5411-unique-filenames (2021-01-22) 2 commits + - t5411: refactor check of refs using test_cmp_refs + - t5411: use different out file to prevent overwriting + + Avoid individual tests in t5411 from getting affected by each other + by forcing them to use separate output files during the test. + + +* ph/use-delete-refs (2021-01-21) 1 commit + - use delete_refs when deleting tags or branches + + When removing many branches and tags, the code used to do so one + ref at a time. There is another API it can use to delete multiple + refs, and it makes quite a lot of performance difference when the + refs are packed. + + Will merge to 'next'. + + +* tb/ls-refs-optim (2021-01-22) 3 commits + - ls-refs.c: traverse prefixes of disjoint "ref-prefix" sets + - ls-refs.c: initialize 'prefixes' before using it + - refs: expose 'for_each_fullref_in_prefixes' + + The ls-refs protocol operation has been optimized to narrow the + sub-hiearchy of refs/ it walks to produce response. -* mt/t4129-with-setgid-dir (2021-01-06) 1 commit - (merged to 'next' on 2021-01-12 at 7a54dd92d8) - + t4129: don't fail if setgid is set in the test directory + Will merge to 'next'. - Some tests expect that "ls -l" output has either '-' or 'x' for - group executable bit, but setgid bit can be inherited from parent - directory and make these fields 'S' or 's' instead, causing test - failures. +* ab/grep-pcre-invalid-utf8 (2021-01-24) 2 commits + - grep/pcre2: better support invalid UTF-8 haystacks + - grep/pcre2 tests: don't rely on invalid UTF-8 data test -* pb/mergetool-tool-help-fix (2021-01-06) 1 commit - (merged to 'next' on 2021-01-12 at ba0f76b413) - + mergetool--lib: fix '--tool-help' to correctly show available tools - Fix 2.29 regression where "git mergetool --tool-help" fails to list - all the available tools. +* ab/retire-pcre1 (2021-01-23) 2 commits + - Remove support for v1 of the PCRE library + - config.mak.uname: remove redundant NO_LIBPCRE1_JIT flag -* tb/local-clone-race-doc (2021-01-11) 1 commit - (merged to 'next' on 2021-01-14 at b86c0426de) - + Documentation/git-clone.txt: document race with --local +* jt/transfer-fsck-across-packs (2021-01-23) 4 commits + - fetch-pack: print and use dangling .gitmodules + - fetch-pack: with packfile URIs, use index-pack arg + - http-fetch: allow custom index-pack args + - http: allow custom index-pack args - Doc update. + The approach to "fsck" the incoming objects in "index-pack" is + attractive for performance reasons (we have them already in core, + inflated and ready to be inspected), but fundamentally cannot be + applied fully when we receive more than one pack stream, as a tree + object in one pack may refer to a blob object in another pack as + ".gitmodules", when we want to inspect blobs that are used as + ".gitmodules" file, for example. Teach "index-pack" to emit + objects that must be inspected later and check them in the calling + "fetch-pack" process. -* ug/doc-lose-dircache (2021-01-09) 1 commit - (merged to 'next' on 2021-01-12 at 28310380a5) - + doc: remove "directory cache" from man pages +* jv/pack-objects-narrower-ref-iteration (2021-01-22) 1 commit + - builtin/pack-objects.c: avoid iterating all refs - Doc update. + The "pack-objects" command needs to iterate over all the tags when + automatic tag following is enabled, but it actually iterated over + all refs and then discarded everything outside "refs/tags/" + hierarchy, which was quite wasteful. + Will merge to 'next'. -* vv/send-email-with-less-secure-apps-access (2021-01-07) 1 commit - (merged to 'next' on 2021-01-12 at 53243ca7e7) - + git-send-email.txt: mention less secure app access with Gmail - Doc update. +* jv/upload-pack-filter-spec-quotefix (2021-01-25) 1 commit + - upload-pack.c: fix filter spec quoting bug -------------------------------------------------- [Stalled] @@ -339,7 +735,34 @@ Release tarballs are available at: -------------------------------------------------- [Cooking] -* en/ort-directory-rename (2021-01-07) 18 commits +* ab/fsck-doc-fix (2021-01-20) 1 commit + (merged to 'next' on 2021-01-25 at e3db0fe96f) + + fsck doc: remove ancient out-of-date diagnostics + + Documentation for "git fsck" lost stale bits that has become + incorrect. + + Will merge to 'master'. + + +* ab/tests-various-fixup (2021-01-23) 10 commits + - rm tests: actually test for SIGPIPE in SIGPIPE test + - archive tests: use a cheaper "zipinfo -h" invocation to get header + - upload-pack tests: avoid a non-zero "grep" exit status + - git-svn tests: rewrite brittle tests to use "--[no-]merges". + - git svn mergeinfo tests: refactor "test -z" to use test_must_be_empty + - git svn mergeinfo tests: modernize redirection & quoting style + - cache-tree tests: explicitly test HEAD and index differences + - cache-tree tests: use a sub-shell with less indirection + - cache-tree tests: remove unused $2 parameter + - cache-tree tests: refactor for modern test style + + Various test updates. + + Will merge to 'next'. + + +* en/ort-directory-rename (2021-01-20) 18 commits - merge-ort: fix a directory rename detection bug - merge-ort: process_renames() now needs more defensiveness - merge-ort: implement apply_directory_rename_modifications() @@ -358,42 +781,14 @@ Release tarballs are available at: - merge-ort: initialize and free new directory rename data structures - merge-ort: add new data structures for directory rename detection - Merge branch 'en/merge-ort-3' into en/ort-directory-rename - (this branch is used by en/merge-ort-perf; uses en/merge-ort-3.) + (this branch is used by en/merge-ort-perf.) ORT merge strategy learns to infer "renamed directory" while merging. -* jk/forbid-lf-in-git-url (2021-01-07) 2 commits - (merged to 'next' on 2021-01-12 at 88a1d937ae) - + fsck: reject .gitmodules git:// urls with newlines - + git_connect_git(): forbid newlines in host and path - - Newline characters in the host and path part of git:// URL are - now forbidden. - - Will merge to 'master'. - - -* ps/fetch-atomic (2021-01-12) 5 commits - (merged to 'next' on 2021-01-13 at a8896d0873) - + fetch: implement support for atomic reference updates - + fetch: allow passing a transaction to `s_update_ref()` - + fetch: refactor `s_update_ref` to use common exit path - + fetch: use strbuf to format FETCH_HEAD updates - + fetch: extract writing to FETCH_HEAD - - "git fetch" learns to treat ref updates atomically in all-or-none - fashion, just like "git push" does, with the new "--atomic" option. - - Will merge to 'master'. - - -* ab/detox-gettext-tests (2021-01-11) 6 commits +* ab/detox-gettext-tests (2021-01-21) 3 commits - tests: remove uses of GIT_TEST_GETTEXT_POISON=false - - tests: (almost) remove C_LOCALE_OUTPUT prerequisites - - tests: (almost) remove use of "test_i18ngrep !" - - tests: remove misc use of test_i18n{cmp,grep} - tests: remove support for GIT_TEST_GETTEXT_POISON - ci: remove GETTEXT_POISON jobs @@ -401,140 +796,43 @@ Release tarballs are available at: not be controversial. -* bc/signed-objects-with-both-hashes (2021-01-11) 6 commits - - SQUASH??? ulong vs size_t +* bc/signed-objects-with-both-hashes (2021-01-18) 6 commits - gpg-interface: remove other signature headers before verifying - ref-filter: hoist signature parsing - commit: allow parsing arbitrary buffers with headers - gpg-interface: improve interface for parsing tags - - commit: ignore additional signatures when parsing signed commits - - Signed commits and tags now allow verification of objects, whose - two object names (one in SHA-1, the other in SHA-256) are both - signed. - - -* ds/update-index (2021-01-09) 14 commits - - update-index: remove static globals from callbacks - - update-index: reduce static globals, part 2 - - update-index: reduce static globals, part 1 - - update-index: remove ce_match_stat(), all macros - - update-index: replace several compatibility macros - - update-index: use add_index_entry() - - update-index: use remove_file_from_index() - - update-index: use index_name_pos() over cache_name_pos() - - update-index: use istate->cache_changed - - update-index: use istate->cache_nr over active_nr - - update-index: use istate->cache over active_cache - - update-index: drop the_index, the_repository - - rm: remove compatilibity macros - - mv: remove index compatibility macros - (this branch uses ag/merge-strategies-in-c.) - - The implementation of a few commands lost reliance of "the_index" - compatibility macros by explicitly passing the index_state through - the callchain. - - Unfortunately the base topic still needs to solidify. - - -* jx/bundle (2021-01-11) 3 commits - (merged to 'next' on 2021-01-14 at 749a907dd2) - + bundle: arguments can be read from stdin - + bundle: lost objects when removing duplicate pendings - + test: add helper functions for git-bundle - - "git bundle" learns "--stdin" option to read its refs from the - standard input. Also, it now does not lose refs whey they point - at the same object. - - Will merge to 'master'. - - -* ab/mailmap (2021-01-12) 22 commits - (merged to 'next' on 2021-01-13 at a3ce27912f) - + shortlog: remove unused(?) "repo-abbrev" feature - + mailmap doc + tests: document and test for case-insensitivity - + mailmap tests: add tests for empty "<>" syntax - + mailmap tests: add tests for whitespace syntax - + mailmap tests: add a test for comment syntax - + mailmap doc + tests: add better examples & test them - + tests: refactor a few tests to use "test_commit --append" - + test-lib functions: add an --append option to test_commit - + test-lib functions: add --author support to test_commit - + test-lib functions: document arguments to test_commit - + test-lib functions: expand "test_commit" comment template - + mailmap: test for silent exiting on missing file/blob - + mailmap tests: get rid of overly complex blame fuzzing - + mailmap tests: add a test for "not a blob" error - + mailmap tests: remove redundant entry in test - + mailmap tests: improve --stdin tests - + mailmap tests: modernize syntax & test idioms - + mailmap tests: use our preferred whitespace syntax - + mailmap doc: start by mentioning the comment syntax - + check-mailmap doc: note config options - + mailmap doc: quote config variables `like.this` - + mailmap doc: create a new "gitmailmap(5)" man page - (this branch is used by ab/mailmap-fixup.) - - Clean-up docs, codepaths and tests around mailmap. - - Will merge to 'master'. - - -* jk/log-cherry-pick-duplicate-patches (2021-01-12) 1 commit - (merged to 'next' on 2021-01-13 at abcfbf8603) - + patch-ids: handle duplicate hashmap entries - - When more than one commit with the same patch ID appears on one - side, "git log --cherry-pick A...B" did not exclude them all when a - commit with the same patch ID appears on the other side. Now it - does. - - Will merge to 'master'. - - -* tb/pack-revindex-api (2021-01-14) 21 commits - (merged to 'next' on 2021-01-15 at 1f2997979c) - + for_each_object_in_pack(): clarify pack vs index ordering - + pack-revindex.c: avoid direct revindex access in 'offset_to_pack_pos()' - + pack-revindex: hide the definition of 'revindex_entry' - + pack-revindex: remove unused 'find_revindex_position()' - + pack-revindex: remove unused 'find_pack_revindex()' - + builtin/gc.c: guess the size of the revindex - + for_each_object_in_pack(): convert to new revindex API - + unpack_entry(): convert to new revindex API - + packed_object_info(): convert to new revindex API - + retry_bad_packed_offset(): convert to new revindex API - + get_delta_base_oid(): convert to new revindex API - + rebuild_existing_bitmaps(): convert to new revindex API - + try_partial_reuse(): convert to new revindex API - + get_size_by_pos(): convert to new revindex API - + show_objects_for_type(): convert to new revindex API - + bitmap_position_packfile(): convert to new revindex API - + check_object(): convert to new revindex API - + write_reused_pack_verbatim(): convert to new revindex API - + write_reused_pack_one(): convert to new revindex API - + write_reuse_object(): convert to new revindex API - + pack-revindex: introduce a new API - (this branch is used by tb/pack-revindex-on-disk.) - - Abstract accesses to in-core revindex that allows enumerating - objects stored in a packfile in the order they appear in the pack, - in preparation for introducing an on-disk precomputed revindex. + - commit: ignore additional signatures when parsing signed commits + - ref-filter: switch some uses of unsigned long to size_t - Will merge to 'master'. + Signed commits and tags now allow verification of objects, whose + two object names (one in SHA-1, the other in SHA-256) are both + signed. + Looking good. -* cc/write-promisor-file (2021-01-14) 3 commits - (merged to 'next' on 2021-01-14 at 9d773d4734) - + pack-write: die on error in write_promisor_file() - + fetch-pack: refactor writing promisor file - + fetch-pack: rename helper to create_promisor_file() - A bit of code refactoring. +* ds/update-index (2021-01-09) 14 commits + - update-index: remove static globals from callbacks + - update-index: reduce static globals, part 2 + - update-index: reduce static globals, part 1 + - update-index: remove ce_match_stat(), all macros + - update-index: replace several compatibility macros + - update-index: use add_index_entry() + - update-index: use remove_file_from_index() + - update-index: use index_name_pos() over cache_name_pos() + - update-index: use istate->cache_changed + - update-index: use istate->cache_nr over active_nr + - update-index: use istate->cache over active_cache + - update-index: drop the_index, the_repository + - rm: remove compatilibity macros + - mv: remove index compatibility macros + (this branch uses ag/merge-strategies-in-c.) - Will merge to 'master'. + The implementation of a few commands lost reliance of "the_index" + compatibility macros by explicitly passing the index_state through + the callchain. + + Unfortunately the base topic still needs to solidify. * js/rebase-i-commit-cleanup-fix (2021-01-12) 1 commit @@ -548,19 +846,6 @@ Release tarballs are available at: cf. <20210112204939.1095-1-martin.agren@gmail.com> -* ab/mailmap-fixup (2021-01-14) 4 commits - (merged to 'next' on 2021-01-15 at ef14e2263d) - + t4203: make blame output massaging more robust - + mailmap doc: use correct environment variable 'GIT_WORK_TREE' - + t4203: stop losing return codes of git commands - + test-lib-functions.sh: fix usage for test_commit() - (this branch uses ab/mailmap.) - - Follow-up fixes and improvements to ab/mailmap topic. - - Will merge to 'master'. - - * tb/pack-revindex-on-disk (2021-01-14) 8 commits - pack-revindex: ensure that on-disk reverse indexes are given precedence - t: support GIT_TEST_WRITE_REV_INDEX @@ -570,106 +855,59 @@ Release tarballs are available at: - builtin/index-pack.c: write reverse indexes - pack-write.c: prepare to write 'pack-*.rev' files - packfile: prepare for the existence of '*.rev' files - (this branch uses tb/pack-revindex-api.) Introduce an on-disk file to record revindex for packdata, which traditionally was always created on the fly and only in-core. -* en/merge-ort-perf (2021-01-15) 4 commits +* en/merge-ort-perf (2021-01-23) 6 commits - merge-ort: begin performance work; instrument with trace2_region_* calls + - merge-ort: ignore the directory rename split conflict for now + - merge-ort: fix massive leak - Merge branch 'en/ort-directory-rename' into en/merge-ort-perf - Merge branch 'en/ort-conflict-handling' into en/merge-ort-perf - Merge branch 'en/diffcore-rename' into en/merge-ort-perf - (this branch uses en/diffcore-rename, en/merge-ort-3, en/ort-conflict-handling and en/ort-directory-rename.) - - -* ab/branch-sort (2021-01-07) 7 commits - (merged to 'next' on 2021-01-12 at 1231feea7c) - + branch: show "HEAD detached" first under reverse sort - + branch: sort detached HEAD based on a flag - + ref-filter: move ref_sorting flags to a bitfield - + ref-filter: move "cmp_fn" assignment into "else if" arm - + ref-filter: add braces to if/else if/else chain - + branch tests: add to --sort tests - + branch: change "--local" to "--list" in comment - - The implementation of "git branch --sort" wrt the detached HEAD - display has always been hacky, which has been cleaned up. - - Will merge to 'master'. - + (this branch uses en/ort-conflict-handling and en/ort-directory-rename.) -* ab/coc-update-to-2.0 (2021-01-13) 3 commits - (merged to 'next' on 2021-01-15 at 4859c12625) - + CoC: update to version 2.0 + local changes - + CoC: explicitly take any whitespace breakage - + CoC: Update word-wrapping to match upstream - - Update the Code-of-conduct to version 2.0 from the upstream (we've - been using version 1.4). - - Will merge to 'master'. - - -* dl/reflog-with-single-entry (2021-01-11) 2 commits - (merged to 'next' on 2021-01-13 at 09b33209c4) - + refs: allow @{n} to work with n-sized reflog - + refs: factor out set_read_ref_cutoffs() - - After expiring a reflog and making a single commit, the reflog for - the branch would record a single entry that knows both @{0} and - @{1}, but we failed to answer "what commit were we on?", i.e. @{1} - - Will merge to 'master'. + The "ort" merge strategy. * ds/cache-tree-basics (2021-01-15) 10 commits - - cache-tree: speed up consecutive path comparisons - - cache-tree: use ce_namelen() instead of strlen() - - index-format: discuss recursion of cache-tree better - - index-format: update preamble to cache tree extension - - index-format: use 'cache tree' over 'cached tree' - - cache-tree: trace regions for prime_cache_tree - - cache-tree: trace regions for I/O - - cache-tree: use trace2 in cache_tree_update() - - unpack-trees: add trace2 regions - - tree-walk: report recursion counts + (merged to 'next' on 2021-01-25 at 29ee74df7b) + + cache-tree: speed up consecutive path comparisons + + cache-tree: use ce_namelen() instead of strlen() + + index-format: discuss recursion of cache-tree better + + index-format: update preamble to cache tree extension + + index-format: use 'cache tree' over 'cached tree' + + cache-tree: trace regions for prime_cache_tree + + cache-tree: trace regions for I/O + + cache-tree: use trace2 in cache_tree_update() + + unpack-trees: add trace2 regions + + tree-walk: report recursion counts + (this branch is used by ds/more-index-cleanups.) Document, clean-up and optimize the code around the cache-tree extension in the index. - Will merge to 'next'. + Will merge to 'master'. * en/ort-conflict-handling (2021-01-04) 10 commits - - merge-ort: add handling for different types of files at same path - - merge-ort: copy find_first_merges() implementation from merge-recursive.c - - merge-ort: implement format_commit() - - merge-ort: copy and adapt merge_submodule() from merge-recursive.c - - merge-ort: copy and adapt merge_3way() from merge-recursive.c - - merge-ort: flesh out implementation of handle_content_merge() - - merge-ort: handle book-keeping around two- and three-way content merge - - merge-ort: implement unique_path() helper - - merge-ort: handle directory/file conflicts that remain - - merge-ort: handle D/F conflict where directory disappears due to merge + (merged to 'next' on 2021-01-25 at 369c1516c4) + + merge-ort: add handling for different types of files at same path + + merge-ort: copy find_first_merges() implementation from merge-recursive.c + + merge-ort: implement format_commit() + + merge-ort: copy and adapt merge_submodule() from merge-recursive.c + + merge-ort: copy and adapt merge_3way() from merge-recursive.c + + merge-ort: flesh out implementation of handle_content_merge() + + merge-ort: handle book-keeping around two- and three-way content merge + + merge-ort: implement unique_path() helper + + merge-ort: handle directory/file conflicts that remain + + merge-ort: handle D/F conflict where directory disappears due to merge (this branch is used by en/merge-ort-perf.) ORT merge strategy learns more support for merge conflicts. - Will merge to 'next'. - - -* ma/more-opaque-lock-file (2021-01-06) 5 commits - (merged to 'next' on 2021-01-12 at f246e38b50) - + read-cache: try not to peek into `struct {lock_,temp}file` - + refs/files-backend: don't peek into `struct lock_file` - + midx: don't peek into `struct lock_file` - + commit-graph: don't peek into `struct lock_file` - + builtin/gc: don't peek into `struct lock_file` - - Code clean-up. - Will merge to 'master'. @@ -682,7 +920,7 @@ Release tarballs are available at: cf. https://github.com/git/git/runs/1660588243?check_suite_focus=true#step:7:4186 -* ak/corrected-commit-date (2021-01-16) 11 commits +* ak/corrected-commit-date (2021-01-18) 11 commits - doc: add corrected commit date info - commit-reach: use corrected commit dates in paint_down_to_common() - commit-graph: use generation v2 only if entire chain does @@ -698,6 +936,8 @@ Release tarballs are available at: The commit-graph learned to use corrected commit dates instead of the generation number to help topological revision traversal. + Will merge to 'next'. + * fc/mergetool-automerge (2021-01-09) 8 commits . fixup! mergetool: break setup_tool out into separate initialization function @@ -717,7 +957,8 @@ Release tarballs are available at: cf. https://github.com/git/git/runs/1675932107?check_suite_focus=true#step:7:10373 -* mr/bisect-in-c-4 (2020-12-21) 7 commits +* mr/bisect-in-c-4 (2021-01-23) 8 commits + - SQUASH??? - bisect--helper: retire `--check-and-set-terms` subcommand - bisect--helper: reimplement `bisect_skip` shell function in C - bisect--helper: retire `--bisect-auto-next` subcommand @@ -732,9 +973,9 @@ Release tarballs are available at: * jt/clone-unborn-head (2020-12-22) 3 commits - - clone: respect remote unborn HEAD - - connect, transport: add no-op arg for future patch - - ls-refs: report unborn targets of symrefs + . clone: respect remote unborn HEAD + . connect, transport: add no-op arg for future patch + . ls-refs: report unborn targets of symrefs "git clone" tries to locally check out the branch pointed at by HEAD of the remote repository after it is done, but the protocol @@ -753,17 +994,6 @@ Release tarballs are available at: Seems to break tests on Windows -* jc/deprecate-pack-redundant (2020-12-15) 1 commit - (merged to 'next' on 2021-01-12 at 14034c7892) - + pack-redundant: gauge the usage before proposing its removal - - Warn loudly when the "pack-redundant" command, which has been left - stale with almost unusable performance issues, gets used, as we no - longer want to recommend its use (instead just "repack -d" instead). - - Will merge to 'master'. - - * mt/parallel-checkout-part-1 (2020-12-16) 9 commits - entry: add checkout_entry_ca() taking preloaded conv_attrs - entry: move conv_attrs lookup up to checkout_entry() @@ -780,81 +1010,44 @@ Release tarballs are available at: Looking good. -* en/merge-ort-3 (2020-12-15) 11 commits - (merged to 'next' on 2021-01-08 at fe481b9627) - + merge-ort: add implementation of type-changed rename handling - + merge-ort: add implementation of normal rename handling - + merge-ort: add implementation of rename collisions - + merge-ort: add implementation of rename/delete conflicts - + merge-ort: add implementation of both sides renaming differently - + merge-ort: add implementation of both sides renaming identically - + merge-ort: add basic outline for process_renames() - + merge-ort: implement compare_pairs() and collect_renames() - + merge-ort: implement detect_regular_renames() - + merge-ort: add initial outline for basic rename detection - + merge-ort: add basic data structures for handling renames - (this branch is used by en/merge-ort-perf and en/ort-directory-rename.) - - Rename detection is added to the "ORT" merge strategy. - - Will merge to 'master'. - - -* ps/config-env-pairs (2021-01-15) 8 commits - (merged to 'next' on 2021-01-15 at 4ed0341270) - + config: allow specifying config entries via envvar pairs - + environment: make `getenv_safe()` a public function - + config: store "git -c" variables using more robust format - + config: parse more robust format in GIT_CONFIG_PARAMETERS - + config: extract function to parse config pairs - + quote: make sq_dequote_step() a public function - + config: add new way to pass config via `--config-env` - + git: add `--super-prefix` to usage string - - Introduce two new ways to feed configuration variable-value pairs - via environment variables, and tweak the way GIT_CONFIG_PARAMETERS - encodes variable/value pairs to make it more robust. - - Will merge to 'master'. - - * so/log-diff-merge (2020-12-21) 32 commits - - t4013: add tests for --diff-merges=first-parent - - doc/git-show: include --diff-merges description - - doc/rev-list-options: document --first-parent changes merges format - - doc/diff-generate-patch: mention new --diff-merges option - - doc/git-log: describe new --diff-merges options - - diff-merges: add '--diff-merges=1' as synonym for 'first-parent' - - diff-merges: add old mnemonic counterparts to --diff-merges - - diff-merges: let new options enable diff without -p - - diff-merges: do not imply -p for new options - - diff-merges: implement new values for --diff-merges - - diff-merges: make -m/-c/--cc explicitly mutually exclusive - - diff-merges: refactor opt settings into separate functions - - diff-merges: get rid of now empty diff_merges_init_revs() - - diff-merges: group diff-merge flags next to each other inside 'rev_info' - - diff-merges: split 'ignore_merges' field - - diff-merges: fix -m to properly override -c/--cc - - t4013: add tests for -m failing to override -c/--cc - - t4013: support test_expect_failure through ':failure' magic - - diff-merges: revise revs->diff flag handling - - diff-merges: handle imply -p on -c/--cc logic for log.c - - diff-merges: introduce revs->first_parent_merges flag - - diff-merges: new function diff_merges_set_dense_combined_if_unset() - - diff-merges: new function diff_merges_suppress() - - diff-merges: re-arrange functions to match the order they are called in - - diff-merges: rename diff_merges_default_to_enable() to match semantics - - diff-merges: move checks for first_parent_only out of the module - - diff-merges: rename all functions to have common prefix - - revision: move diff merges functions to its own diff-merges.c - - revision: provide implementation for diff merges tweaks - - revision: factor out initialization of diff-merge related settings - - revision: factor out setup of diff-merge related settings - - revision: factor out parsing of diff-merge related options + (merged to 'next' on 2021-01-25 at 63977ef287) + + t4013: add tests for --diff-merges=first-parent + + doc/git-show: include --diff-merges description + + doc/rev-list-options: document --first-parent changes merges format + + doc/diff-generate-patch: mention new --diff-merges option + + doc/git-log: describe new --diff-merges options + + diff-merges: add '--diff-merges=1' as synonym for 'first-parent' + + diff-merges: add old mnemonic counterparts to --diff-merges + + diff-merges: let new options enable diff without -p + + diff-merges: do not imply -p for new options + + diff-merges: implement new values for --diff-merges + + diff-merges: make -m/-c/--cc explicitly mutually exclusive + + diff-merges: refactor opt settings into separate functions + + diff-merges: get rid of now empty diff_merges_init_revs() + + diff-merges: group diff-merge flags next to each other inside 'rev_info' + + diff-merges: split 'ignore_merges' field + + diff-merges: fix -m to properly override -c/--cc + + t4013: add tests for -m failing to override -c/--cc + + t4013: support test_expect_failure through ':failure' magic + + diff-merges: revise revs->diff flag handling + + diff-merges: handle imply -p on -c/--cc logic for log.c + + diff-merges: introduce revs->first_parent_merges flag + + diff-merges: new function diff_merges_set_dense_combined_if_unset() + + diff-merges: new function diff_merges_suppress() + + diff-merges: re-arrange functions to match the order they are called in + + diff-merges: rename diff_merges_default_to_enable() to match semantics + + diff-merges: move checks for first_parent_only out of the module + + diff-merges: rename all functions to have common prefix + + revision: move diff merges functions to its own diff-merges.c + + revision: provide implementation for diff merges tweaks + + revision: factor out initialization of diff-merge related settings + + revision: factor out setup of diff-merge related settings + + revision: factor out parsing of diff-merge related options "git log" learned a new "--diff-merges=" option. - Will merge to 'next'. + Will merge to 'master'. * es/config-hooks (2020-12-21) 34 commits @@ -918,108 +1111,6 @@ Release tarballs are available at: The "reftable" backend for the refs API. - -* ab/mktag (2021-01-06) 23 commits - (merged to 'next' on 2021-01-08 at 6f9e11ad97) - + mktag: add a --[no-]strict option - + mktag: mark strings for translation - + mktag: convert to parse-options - + mktag: allow omitting the header/body \n separator - + mktag: allow turning off fsck.extraHeaderEntry - + fsck: make fsck_config() re-usable - + mktag: use fsck instead of custom verify_tag() - + mktag: use puts(str) instead of printf("%s\n", str) - + mktag: remove redundant braces in one-line body "if" - + mktag: use default strbuf_read() hint - + mktag tests: test verify_object() with replaced objects - + mktag tests: improve verify_object() test coverage - + mktag tests: test "hash-object" compatibility - + mktag tests: stress test whitespace handling - + mktag tests: run "fsck" after creating "mytag" - + mktag tests: don't create "mytag" twice - + mktag tests: don't redirect stderr to a file needlessly - + mktag tests: remove needless SHA-1 hardcoding - + mktag tests: use "test_commit" helper - + mktag tests: don't needlessly use a subshell - + mktag doc: update to explain why to use this - + mktag doc: grammar fix, when exists -> when it exists - + mktag doc: say not - - "git mktag" validates its input using its own rules before writing - a tag object---it has been updated to share the logic with "git - fsck". - - Will merge to 'master'. - - -* en/diffcore-rename (2021-01-04) 9 commits - (merged to 'next' on 2021-01-12 at fa769ebc35) - + diffcore-rename: remove unnecessary duplicate entry checks - + diffcore-rename: accelerate rename_dst setup - + diffcore-rename: simplify and accelerate register_rename_src() - + t4058: explore duplicate tree entry handling in a bit more detail - + t4058: add more tests and documentation for duplicate tree entry handling - + diffcore-rename: reduce jumpiness in progress counters - + diffcore-rename: simplify limit check - + diffcore-rename: avoid usage of global in too_many_rename_candidates() - + diffcore-rename: rename num_create to num_destinations - (this branch is used by en/merge-ort-perf.) - - File-level rename detection updates. - - Will merge to 'master'. - - -* js/default-branch-name-tests-final-stretch (2020-11-19) 29 commits - (merged to 'next' on 2021-01-13 at 0e93f0d529) - + tests: drop prereq `PREPARE_FOR_MAIN_BRANCH` where no longer needed - + t99*: adjust the references to the default branch name "main" - + tests(git-p4): transition to the default branch name `main` - + t9[5-7]*: adjust the references to the default branch name "main" - + t9[0-4]*: adjust the references to the default branch name "main" - + t8*: adjust the references to the default branch name "main" - + t7[5-9]*: adjust the references to the default branch name "main" - + t7[0-4]*: adjust the references to the default branch name "main" - + t6[4-9]*: adjust the references to the default branch name "main" - + t64*: preemptively adjust alignment to prepare for `master` -> `main` - + t6[0-3]*: adjust the references to the default branch name "main" - + t5[6-9]*: adjust the references to the default branch name "main" - + t55[4-9]*: adjust the references to the default branch name "main" - + t55[23]*: adjust the references to the default branch name "main" - + t551*: adjust the references to the default branch name "main" - + t550*: adjust the references to the default branch name "main" - + t5503: prepare aligned comment for replacing `master` with `main` - + t5[0-4]*: adjust the references to the default branch name "main" - + t5323: prepare centered comment for `master` -> `main` - + t4*: adjust the references to the default branch name "main" - + t3[5-9]*: adjust the references to the default branch name "main" - + t34*: adjust the references to the default branch name "main" - + t3416: preemptively adjust alignment in a comment - + t3[0-3]*: adjust the references to the default branch name "main" - + t2*: adjust the references to the default branch name "main" - + t[01]*: adjust the references to the default branch name "main" - + t0060: preemptively adjust alignment - + tests: mark tests relying on the current default for `init.defaultBranch` - + Merge 'jk/diff-release-filespec-fix' into js/default-branch-name-tests-final-stretch - - Prepare tests not to be affected by the name of the default branch - "git init" creates. - - Will merge to 'master'. - - -* sj/untracked-files-in-submodule-directory-is-not-dirty (2020-12-08) 1 commit - (merged to 'next' on 2021-01-12 at 2aca21c42e) - + diff: do not show submodule with untracked files as "-dirty" - - "git diff" showed a submodule working tree with untracked cruft as - "Submodule commit -dirty", but a natural expectation is - that the "-dirty" indicator would align with "git describe --dirty", - which does not consider having untracked files in the working tree - as source of dirtiness. The inconsistency has been fixed. - - Will merge to 'master'. - -------------------------------------------------- [Discarded]