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
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
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 <hash> not <sha1>
+
+ "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 <objectname>-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. <gohp6kv9bq4a32.fsf@gmail.com>
- 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=<var> <cmd>" should not run <cmd> for
- any repository when the configuration variable <var> 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. <CAMMLpeTDNLUz9UVnL3aVK=J7X50Sq8L-OVGaoEsT5AY6EQON-g@mail.gmail.com>
-* 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 "<rev>^!" and "<rev>^-<n>", but "git
+ range-diff" did not understand them.
+
+ Getting closer.
+ cf. <xmqqzh107m5d.fsf@gitster.c.googlers.com>
+
+
+* 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]
--------------------------------------------------
[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()
- 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
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
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
- 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'.
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
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
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
* 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
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()
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=<how>" option.
- Will merge to 'next'.
+ Will merge to 'master'.
* es/config-hooks (2020-12-21) 34 commits
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 <hash> not <sha1>
-
- "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 <objectname>-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]