threads / discuss / 62845

What's cooking in git.git (Jan 2025, #06; Wed, 22)

Subject: What's cooking in git.git (Jan 2025, #06; Wed, 22)

## tl;dr

20 messages between Jan 22, 2025 and Feb 4, 2025.

replies: 19people: 7as markdown or json

Junio C Hamano· Jan 22, 2025, 22:48 UTC · lore

Here are the topics that have been cooking in my tree. Commits prefixed with '+' are in 'next' (being in 'next' is a sign that a topic is stable enough to be used and are candidate to be in a future release). Commits prefixed with '-' are only in 'seen', and aren't considered "accepted" at all and may be annotated with an URL to a message that raises issues but they are no means exhaustive. A topic without enough support may be discarded after a long period of no activity (of course they can be resubmit when new interests arise).

There are quite a few topics that are listed here but without much review activities. I earlier said that I'll review the notes below with list archive myself to see which ones are truly stale and discard them, but this is progressing a lot slower than my liking. Help is greatly appreciated.

Copies of the source code to Git live in many repositories, and the following is a list of the ones I push into or their mirrors. Some repositories have only a subset of branches.

With maint, master, next, seen, todo:
	git://git.kernel.org/pub/scm/git/git.git/
	git://repo.or.cz/alt-git.git/
	https://kernel.googlesource.com/pub/scm/git/git/
	https://github.com/git/git/
	https://gitlab.com/git-scm/git/
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']

* aj/difftool-config-doc-fix (2025-01-09) 1 commit
  (merged to 'next' on 2025-01-10 at b8902a53d1)
 + difftool docs: restore correct position of tool list
 Docfix.
 source: <pull.1849.git.1736379323427.gitgitgadget@gmail.com>
* dk/zsh-config-completion-fix (2025-01-06) 1 commit
  (merged to 'next' on 2025-01-10 at efba7d534c)
 + completion: repair config completion for Zsh
 Completion script updates for zsh
 source: <pull.1860.v3.git.git.1736200026899.gitgitgadget@gmail.com>
* jk/lsan-race-ignore-false-positive (2025-01-07) 3 commits
  (merged to 'next' on 2025-01-09 at 3d7cd910b5)
 + test-lib: add a few comments to LSan log checking
 + test-lib: simplify lsan results check
 + test-lib: invert return value of check_test_results_san_file_empty
 The code to check LSan results has been simplified and made more
 robust.
 source: <20250107070409.GA584456@coredump.intra.peff.net>
* jk/t7407-use-test-grep (2025-01-07) 1 commit
  (merged to 'next' on 2025-01-09 at 1d584ee42d)
 + t7407: use test_grep
 Test clean-up.
 source: <20250107071824.GA594237@coredump.intra.peff.net>
* jt/fsck-skiplist-parse-fix (2025-01-07) 1 commit
  (merged to 'next' on 2025-01-09 at d08b30fd78)
 + fsck: reject misconfigured fsck.skipList
 A misconfigured "fsck.skiplist" configuration variable was not
 diagnosed as an error, which has been corrected.
 source: <20250107162914.3756968-2-jltobler@gmail.com>
* mh/gitattr-doc-markup-fix (2025-01-07) 1 commit
  (merged to 'next' on 2025-01-10 at 9b8f84ebe2)
 + docs: fix typesetting of merge driver placeholders
 Doc markup fix.
 source: <20250107212421.7yyvuzw4uqxnqv7t@archP14s>
* ps/reftable-get-random-fix (2025-01-07) 2 commits
  (merged to 'next' on 2025-01-09 at bc024b7a45)
 + reftable/stack: accept insecure random bytes
 + wrapper: allow generating insecure random bytes
 The code to compute "unique" name used git_rand() which can fail or
 get stuck; the callsite does not require cryptographic security.
 Introduce the "insecure" mode and use it appropriately.
 source: <20250107-b4-pks-reftable-csprng-v1-0-6109a54a8756@pks.im>
* ps/the-repository (2024-12-18) 15 commits
  (merged to 'next' on 2025-01-09 at 1de40edade)
 + match-trees: stop using `the_repository`
 + graph: stop using `the_repository`
 + add-interactive: stop using `the_repository`
 + tmp-objdir: stop using `the_repository`
 + resolve-undo: stop using `the_repository`
 + credential: stop using `the_repository`
 + mailinfo: stop using `the_repository`
 + diagnose: stop using `the_repository`
 + server-info: stop using `the_repository`
 + send-pack: stop using `the_repository`
 + serve: stop using `the_repository`
 + trace: stop using `the_repository`
 + pager: stop using `the_repository`
 + progress: stop using `the_repository`
 + Merge branch 'ps/build-sign-compare' into ps/the-repository
 More code paths have a repository passed through the callchain,
 instead of assuming the primary the_repository object.
 source: <20241217-pks-use-the-repository-conversion-v1-0-0dba48bcc239@pks.im>
* sk/unit-test-hash (2025-01-09) 1 commit
  (merged to 'next' on 2025-01-13 at 865b121824)
 + t/unit-tests: convert hash to use clar test framework
 Test update.
 source: <20250109140952.5267-1-kuforiji98@gmail.com>

-------------------------------------------------- [New Topics]

* bc/doc-adoc-not-txt (2025-01-21) 5 commits
 - Remove obsolete ".txt" extensions for AsciiDoc files
 - doc: use .adoc extension for AsciiDoc files
 - gitattributes: mark AsciiDoc files as LF-only
 - editorconfig: add .adoc extension
 - doc: update gitignore for .adoc extension
 All the documentation .txt files have been renamed to .adoc to help
 content aware editors.
 Will merge to 'next' and keep it there for at least 3 weeks.
 source: <20250120015603.1980991-1-sandals@crustytoothpaste.net>
* jp/t8002-printf-fix (2025-01-21) 1 commit
  (merged to 'next' on 2025-01-22 at 20bc202378)
 + t8002: fix ambiguous printf conversion specifications
 Test fix.
 Will merge to 'master'.
 source: <20250120114106.2844157-1-jpalus@fastmail.com>
* am/trace2-with-valueless-true (2025-01-22) 1 commit
 - trace2: prevent segfault on config collection with valueless true
 source: <pull.1814.v2.git.1736494100622.gitgitgadget@gmail.com>
* kn/reflog-symref-fix (2025-01-22) 1 commit
 - refs: fix creation of corrupted reflogs for symrefs
 source: <20250122100319.2280647-1-karthik.188@gmail.com>
* ps/reflog-migration-with-logall-fix (2025-01-22) 1 commit
 - refs: fix migration of reflogs respecting "core.logAllRefUpdates"
 source: <20250122-b4-pks-reflog-migration-fix-stash-v1-1-27dbae4602f7@pks.im>

-------------------------------------------------- [Cooking]

* sj/meson-doc-technical-dependency-fix (2025-01-14) 1 commit
  (merged to 'next' on 2025-01-16 at 3ec55e0703)
 + meson: fix missing deps for technical articles
 The meson build procedure for Documentation/technical/ hiearchy was
 missing necessary dependencies, which has been corrected.
 Will merge to 'master'.
 source: <5114dc9a00377826a55f6bab007d2ad1a4de8bc5.1736866030.git.sam@gentoo.org>
* tc/meson-use-our-version-def-h (2025-01-14) 1 commit
  (merged to 'next' on 2025-01-16 at 76e9e81736)
 + meson: ensure correct version-def.h is used
 The meson build procedure looked for the 'version-def.h' file in a
 wrong directory, which has been corrected.
 Will merge to 'master'.
 source: <20250114-toon-fix-meson-version-v2-1-66ddb1a82c28@iotcl.com>
* js/libgit-rust (2025-01-16) 6 commits
 - fixup! common-main: split init and exit code into new files
 - Makefile: add option to build and test libgit-rs and libgit-rs-sys
 - libgit: add higher-level libgit crate
 - libgit-sys: also export some config_set functions
 - libgit-sys: introduce Rust wrapper for libgit.a
 - common-main: split init and exit code into new files
 Foreign language interface for Rust into our code base has been added.
 Expecting a reroll.
 cf. <xmqqtt9ypj4m.fsf@gitster.g>
 cf. <Z47jgK-oMjFRSslr@tapette.crustytoothpaste.net>
 cf. <Z47kr0_fYYdaMWyA@tapette.crustytoothpaste.net>
 source: <cover.1736971328.git.steadmon@google.com>
* kn/reflog-migration-fix (2025-01-15) 1 commit
  (merged to 'next' on 2025-01-16 at ae8f9ce9a0)
 + reftable: write correct max_update_index to header
 (this branch is used by kn/reflog-migration-fix-followup.)
 "git refs migrate" for migrating reflog data was broken.
 On Hold.
 cf. <Z4mUizLNUdq_1BgY@tapette.crustytoothpaste.net>
 cf. <CAOLa=ZT4nws0irdZKUuWc70Rv9RUNQuSXnGAt1SnE1O+umSReg@mail.gmail.com>
 source: <CAOLa=ZTL9n_DPhNr49XAd6bT838kc09oVx_AH7Pb4o8VK_xQ9w@mail.gmail.com>
* jc/show-usage-help (2025-01-17) 6 commits
  (merged to 'next' on 2025-01-21 at 5a17181a32)
 + builtin: send usage() help text to standard output
 + oddballs: send usage() help text to standard output
 + builtins: send usage_with_options() help text to standard output
 + usage: add show_usage_if_asked()
 + parse-options: add show_usage_with_options_if_asked()
 + t0012: optionally check that "-h" output goes to stdout
 The help text from "git $cmd -h" appear on the standard output for
 some $cmd and the standard error for others.  The built-in commands
 have been fixed to show them on the standard output consistently.
 Will merge to 'master'.
 cf. <20250117114123.GA2356746@coredump.intra.peff.net>
 source: <20250117213148.3974552-1-gitster@pobox.com>
* kn/pack-write-with-reduced-globals (2025-01-21) 5 commits
 - pack-write: pass hash_algo to internal functions
 - pack-write: pass hash_algo to `write_rev_file()`
 - pack-write: pass hash_algo to `write_idx_file()`
 - pack-write: pass repository to `index_pack_lockfile()`
 - pack-write: pass hash_algo to `fixup_pack_header_footer()`
 Code clean-up.
 Well merge to 'next'?
 source: <20250119-kn-the-repo-cleanup-v3-0-a495fce08d71@gmail.com>
* ps/reftable-sign-compare (2025-01-21) 10 commits
  (merged to 'next' on 2025-01-22 at a5ae1ce801)
 + reftable: address trivial -Wsign-compare warnings
 + reftable/blocksource: adjust `read_block()` to return `ssize_t`
 + reftable/blocksource: adjust type of the block length
 + reftable/block: adjust type of the restart length
 + reftable/block: adapt header and footer size to return a `size_t`
 + reftable/basics: adjust `hash_size()` to return `uint32_t`
 + reftable/basics: adjust `common_prefix_size()` to return `size_t`
 + reftable/record: handle overflows when decoding varints
 + reftable/record: drop unused `print` function pointer
 + meson: stop disabling -Wsign-compare
 THe reftable/ library code has been made -Wsign-compare clean.
 Will merge to 'master'.
 source: <20250120-b4-pks-reftable-sign-compare-v2-0-b4566d02e4a5@pks.im>
* sk/unit-tests (2025-01-17) 4 commits
  (merged to 'next' on 2025-01-21 at 799bbc6b82)
 + t/unit-tests: convert reftable tree test to use clar test framework
 + t/unit-tests: adapt priority queue test to use clar test framework
 + t/unit-tests: convert mem-pool test to use clar test framework
 + t/unit-tests: handle dashes in test suite filenames
 Move a few more unit tests to the clar test framework.
 Will merge to 'master'.
 source: <20250117122926.101749-1-kuforiji98@gmail.com>
* zh/gc-expire-to (2025-01-16) 1 commit
 - gc: add `--expire-to` option
 "git gc" learned the "--expire-to" option and passes it down to
 underlying "git repack".
 Needs review.
 source: <pull.1843.v3.git.1736994932003.gitgitgadget@gmail.com>
* jc/cli-doc-option-and-config (2025-01-17) 1 commit
  (merged to 'next' on 2025-01-17 at 71f41b00d8)
 + gitcli: document that command line trumps config and env
 Doc update.
 Will merge to 'master'.
 source: <xmqqzfjqmbza.fsf@gitster.g>
* jk/pack-header-parse-alignment-fix (2025-01-21) 5 commits
  (merged to 'next' on 2025-01-21 at 60017ef61a)
 + index-pack, unpack-objects: use skip_prefix to avoid magic number
 + index-pack, unpack-objects: use get_be32() for reading pack header
 + parse_pack_header_option(): avoid unaligned memory writes
 + packfile: factor out --pack_header argument parsing
 + bswap.h: squelch potential sparse -Wcast-truncate warnings
 It was possible for "git unpack-objects" and "git index-pack" to
 make an unaligned access, which has been corrected.
 Will merge to 'master'.
 source: <20250119131224.GA1541095@coredump.intra.peff.net>
* kn/reflog-migration-fix-followup (2025-01-22) 4 commits
 - reftable: prevent 'update_index' changes after adding records
 - refs: use 'uint64_t' for 'ref_update.index'
 - refs: mark `ref_transaction_update_reflog()` as static
 - Merge branch 'kn/reflog-migration-fix' into kn/reflog-migration-fix-followup
 (this branch uses kn/reflog-migration-fix.)
 Code clean-up.
 Will merge to 'next'.
 cf. <Z5DgxQuc2j_-5GHg@pks.im>
 source: <20250122-461-corrupted-reftable-followup-v3-0-ae5f88bf04fa@gmail.com>
* mh/connect-sign-compare (2025-01-17) 1 commit
  (merged to 'next' on 2025-01-21 at 6d872e6042)
 + connect: address -Wsign-compare warnings
 The code in connect.c has been updated to work around complaints
 from -Wsign-compare.
 Will merge to 'master'.
 source: <20250117074909.1430067-1-mh@glandium.org>
* ps/build-meson-subtree (2025-01-17) 3 commits
  (merged to 'next' on 2025-01-21 at fe4e60a331)
 + meson: wire up the git-subtree(1) command
 + meson: introduce build option for contrib
 + contrib/subtree: fix building docs
 THe meson-driven build is now aware of "git-subtree" housed in
 contrib/subtree hierarchy.
 Will merge to 'master'.
 source: <20250117-b4-pks-build-subtree-v1-0-03c2ed6cc42e@pks.im>
* ak/instaweb-python-port-binding-fix (2025-01-10) 1 commit
  (merged to 'next' on 2025-01-17 at bcb5e21e0b)
 + instaweb: fix ip binding for the python http.server
 The "instaweb" bound only to local IP address without "--local" and
 to all addresses with "--local", which was the other way around, when
 using Python's http.server class, which has been corrected.
 Will merge to 'master'.
 source: <20250110101346.30416-1-alecsk@gmail.com>
* bf/fetch-set-head-fix (2025-01-13) 1 commit
 - fetch set_head: fix non-mirror remotes in bare repositories
 Fetching into a bare repository incorrectly assumed it always used
 a mirror layout when deciding to update remote-tracking HEAD, which
 has been corrected.
 Needs review.
 source: <20250112165125.130400-1-bence@ferdinandy.com>
* mh/doc-credential-helpers-with-pat (2025-01-10) 2 commits
  (merged to 'next' on 2025-01-17 at a70beabaf5)
 + docs: discuss caching personal access tokens
 + docs: list popular credential helpers
 Document that it is insecure to use Personal Access Tokens, which
 some hosting providers take as username/password, embedded in URLs.
 Will merge to 'master'.
 source: <pull.1851.v2.git.1736549677.gitgitgadget@gmail.com>
* ps/build-meson-fixes (2025-01-22) 12 commits
 - ci: wire up Visual Studio build with Meson
 - ci: raise error when Meson generates warnings
 - meson: fix compilation with Visual Studio
 - meson: make the CSPRNG backend configurable
 - meson: wire up fuzzers
 - meson: wire up generation of distribution archive
 - meson: wire up development environments
 - meson: fix dependencies for generated headers
 - meson: populate project version via GIT-VERSION-GEN
 - GIT-VERSION-GEN: allow running without input and output files
 - GIT-VERSION-GEN: simplify computing the dirty marker
 - Merge branch 'ps/meson-weak-sha1-build' into ps/build-meson-fixes
 (this branch is used by ps/zlib-ng.)
 More build fixes and enhancements on meson based build procedure.
 Will merge to 'next'?
 source: <20250122-b4-pks-meson-additions-v3-0-5a51eb5d3dcd@pks.im>
* ps/zlib-ng (2025-01-22) 12 commits
 - ci: make "linux-musl" job use zlib-ng
 - ci: switch linux-musl to use Meson
 - compat/zlib: allow use of zlib-ng as backend
 - git-zlib: cast away potential constness of `next_in` pointer
 - compat/zlib: provide stubs for `deflateSetHeader()`
 - compat/zlib: provide `deflateBound()` shim centrally
 - git-compat-util: move include of "compat/zlib.h" into "git-zlib.h"
 - compat: introduce new "zlib.h" header
 - git-compat-util: drop `z_const` define
 - compat: drop `uncompress2()` compatibility shim
 - Merge branch 'ps/build-meson-fixes' into ps/zlib-ng
 - Merge branch 'ps/meson-weak-sha1-build' into ps/zlib-ng
 (this branch uses ps/build-meson-fixes.)
 The code paths to interact with zlib has been cleaned up in
 preparation for building with zlib-ng.
 Needs review.
 source: <20250116-b4-pks-compat-drop-uncompress2-v3-0-f2af1f5c4a06@pks.im>
* rs/ref-fitler-used-atoms-value-fix (2025-01-21) 3 commits
 - ref-filter: remove ref_format_clear()
 - ref-filter: move is-base tip to used_atom
 - ref-filter: move ahead-behind bases into used_atom
 "git branch --sort=..." and "git for-each-ref --format=... --sort=..."
 did not work as expected with some atoms, which has been corrected.
 Will merge to 'next'.
 source: <6b824f05-6f16-4cd9-85b7-3b8b236158b4@web.de>
* tb/unsafe-hash-cleanup (2025-01-17) 8 commits
 - hash.h: drop unsafe_ function variants
 - csum-file: introduce hashfile_checkpoint_init()
 - t/helper/test-hash.c: use unsafe_hash_algo()
 - csum-file.c: use unsafe_hash_algo()
 - hash.h: introduce `unsafe_hash_algo()`
 - csum-file.c: extract algop from hashfile_checksum_valid()
 - csum-file: store the hash algorithm as a struct field
 - t/helper/test-tool: implement sha1-unsafe helper
 The API around choosing to use unsafe variant of SHA-1
 implementation has been updated in an attempt to make it harder to
 abuse.
 Expecting a hopefully small and final reroll.
 cf. <20250118124343.GA3828177@coredump.intra.peff.net>
 source: <cover.1737151386.git.me@ttaylorr.com>
* en/object-name-with-funny-refname-fix (2025-01-13) 2 commits
  (merged to 'next' on 2025-01-16 at 89cd7778c9)
 + object-name: be more strict in parsing describe-like output
 + object-name: fix resolution of object names containing curly braces
 Extended SHA-1 expression parser did not work well when a branch
 with an unusual name (e.g. "foo{bar") is involved.
 Will merge to 'master'.
 source: <pull.1844.v3.git.1736788417.gitgitgadget@gmail.com>
* sj/ref-consistency-checks-more (2025-01-06) 10 commits
 - builtin/fsck: add `git refs verify` child process
 - packed-backend: check whether the "packed-refs" is sorted
 - packed-backend: add check for object consistency
 - packed-backend: create "fsck_packed_ref_entry" to store parsing info
 - packed-backend: add "packed-refs" entry consistency check
 - packed-backend: check whether the refname contains NULL binaries
 - packed-backend: add "packed-refs" header consistency check
 - packed-backend: check whether the "packed-refs" is regular
 - builtin/refs.h: get worktrees without reading head info
 - files-backend: add object check for regular ref
 "git fsck" becomes more careful when checking the refs.
 source: <Z3qNUizvHJLgMx1y@ArchLinux>
* mh/credential-cache-authtype-request-fix (2025-01-09) 1 commit
  (merged to 'next' on 2025-01-22 at 51a22e98a1)
 + credential-cache: respect authtype capability
 The "cache" credential back-end did not handle authtype correctly,
 which has been corrected.
 Will merge to 'master'.
 source: <pull.1842.v5.git.1736462721156.gitgitgadget@gmail.com>
* jk/combine-diff-cleanup (2025-01-09) 14 commits
 - tree-diff: make list tail-passing more explicit
 - tree-diff: simplify emit_path() list management
 - tree-diff: use the name "tail" to refer to list tail
 - tree-diff: drop list-tail argument to diff_tree_paths()
 - combine-diff: drop public declaration of combine_diff_path_size()
 - tree-diff: inline path_appendnew()
 - tree-diff: pass whole path string to path_appendnew()
 - tree-diff: drop path_appendnew() alloc optimization
 - run_diff_files(): de-mystify the size of combine_diff_path struct
 - diff: add a comment about combine_diff_path.parent.path
 - combine-diff: use pointer for parent paths
 - tree-diff: clear parent array in path_appendnew()
 - combine-diff: add combine_diff_path_new()
 - run_diff_files(): delay allocation of combine_diff_path
 Code clean-up for code paths around combined diff.
 source: <20250109082723.GA2748497@coredump.intra.peff.net>
* sc/help-autocorrect-one (2025-01-13) 1 commit
 - help: interpret boolean string values for help.autocorrect
 "[help] autocorrect = 1" used to be a way to say "please wait for
 0.1 second after suggesting a typofix of the command name before
 running that command"; now it means "yes, if there is a plausible
 typofix for the command name, please run it immediately".
 Looking good except for "should 0 and false be 'tell it without doing it'?".
 source: <pull.1869.v4.git.git.1736760824201.gitgitgadget@gmail.com>
* ja/doc-notes-markup-updates (2025-01-10) 1 commit
 - doc: convert git-notes to new documentation format
 Doc mark-up updates.
 source: <pull.1846.v2.git.1736503703573.gitgitgadget@gmail.com>
* ja/doc-restore-markup-update (2025-01-10) 1 commit
 - doc: convert git-restore to new style format
 Doc mark-up updates.
 source: <pull.1847.v2.git.1736503760086.gitgitgadget@gmail.com>
* ua/os-version-capability (2025-01-17) 6 commits
 - version: introduce osversion.command config for os-version output
 - connect: advertise OS version
 - t5701: add setup test to remove side-effect dependency
 - version: extend get_uname_info() to hide system details
 - version: refactor get_uname_info()
 - version: refactor redact_non_printables()
 The value of "uname -s" is by default sent over the wire as a new
 capability, with an opt-out for privacy-concious folks.
 source: <20250117104639.65608-1-usmanakinyemi202@gmail.com>
* ja/doc-commit-markup-updates (2025-01-15) 5 commits
 - doc: migrate git-commit manpage secondary files to new format
 - doc: convert git commit config to new format
 - doc: make more direct explanations in git commit options
 - doc: the mode param of -u of git commit is optional
 - doc: apply new documentation guidelines to git commit
 Doc updates.
 Will merge to 'next'.
 source: <pull.1845.v2.git.1736972628.gitgitgadget@gmail.com>
* ps/ci-misc-updates (2025-01-10) 10 commits
 - ci: remove stale code for Azure Pipelines
 - ci: use latest Ubuntu release
 - ci: stop special-casing for Ubuntu 16.04
 - gitlab-ci: add linux32 job testing against i386
 - gitlab-ci: remove the "linux-old" job
 - github: simplify computation of the job's distro
 - github: convert all Linux jobs to be containerized
 - github: adapt containerized jobs to be rootless
 - t7422: fix flaky test caused by buffered stdout
 - t0060: fix EBUSY in MinGW when setting up runtime prefix
 CI updates (containerization, dropping stale ones, etc.).
 source: <20250110-b4-pks-ci-fixes-v4-0-6e4613446080@pks.im>
* sk/strlen-returns-size_t (2024-12-26) 1 commit
 - date.c: Fix type missmatch warings from msvc
 Code clean-up.
 The remainder needs to be reviewed.
 source: <20241223110407.3308-3-soekkle@freenet.de>
* sk/maintenance-remote-prune (2025-01-03) 1 commit
 - maintenance: add prune-remote-refs task
 A new periodic maintenance task to run "git remote prune" has been
 introduced.
 Expecting a reroll.
 source: <pull.1838.v3.git.1735928035056.gitgitgadget@gmail.com>
* jc/show-index-h-update (2024-12-20) 1 commit
 - show-index: the short help should say the command reads from its input
 Doc and short-help text for "show-index" has been clarified to
 stress that the command reads its data from the standard input.
 Comments?
 source: <xmqqfrmidyhk.fsf@gitster.g>
* jc/doc-attr-tree (2024-12-14) 1 commit
 - doc: give attr.tree a bit more visibility
 Make sure that "git --attr-source=X", GIT_ATTR_SOURCE, and
 attr.tree configuration variables appear at the same places in the
 documentation.
 On hold.
 cf. <20241216111112.GA2201417@coredump.intra.peff.net>
 source: <xmqq5xnladwi.fsf@gitster.g>
* ps/3.0-remote-deprecation (2025-01-22) 7 commits
 - SQUASH???
 - remote: announce removal of "branches/" and "remotes/"
 - builtin/pack-redundant: remove subcommand with breaking changes
 - ci: repurpose "linux-gcc" job for deprecations
 - ci: merge linux-gcc-default into linux-gcc
 - Makefile: wire up build option for deprecated features
 - Merge branch 'ps/build' into ps/3.0-remote-deprecation
 Following the procedure we established to introduce breaking
 changes for Git 3.0, allow an early opt-in for removing support of
 $GIT_DIR/branches/ and $GIT_DIR/remotes/ directories to configure
 remotes.
 Will merge to 'next'?
 source: <20250122-pks-remote-branches-deprecation-v4-0-5cbf5b28afd5@pks.im>
* cc/lop-remote (2024-12-07) 5 commits
 . doc: add technical design doc for large object promisors
 . promisor-remote: check advertised name or URL
 . Add 'promisor-remote' capability to protocol v2
 . strbuf: refactor strbuf_trim_trailing_ch()
 . version: refactor strbuf_sanitize()
 Expecting a reroll.
 cf. <CAP8UFD3bdEo1_bg+aX52xSGxmg9KfNrpiX+2LwUM-yDqjvfZbQ@mail.gmail.com>
 source: <20241206124248.160494-1-christian.couder@gmail.com>
* ds/backfill (2024-12-20) 6 commits
 - backfill: assume --sparse when sparse-checkout is enabled
 - backfill: add --sparse option
 - backfill: add --min-batch-size=<n> option
 - backfill: basic functionality and tests
 - backfill: add builtin boilerplate
 - Merge branch 'ds/path-walk-1' into ds/backfill
 (this branch uses ds/path-walk-1.)
 Lazy-loading missing files in a blobless clone on demand is costly
 as it tends to be one-blob-at-a-time.  "git backfill" is introduced
 to help bulk-download necessary files beforehand.
 Expecting a reroll.
 cf. <Z4jeQSLmARruE5l3@pks.im>
 source: <pull.1820.v2.git.1734712193.gitgitgadget@gmail.com>
* tb/incremental-midx-part-2 (2024-11-20) 15 commits
 - midx: implement writing incremental MIDX bitmaps
 - pack-bitmap.c: use `ewah_or_iterator` for type bitmap iterators
 - pack-bitmap.c: keep track of each layer's type bitmaps
 - ewah: implement `struct ewah_or_iterator`
 - pack-bitmap.c: apply pseudo-merge commits with incremental MIDXs
 - pack-bitmap.c: compute disk-usage with incremental MIDXs
 - pack-bitmap.c: teach `rev-list --test-bitmap` about incremental MIDXs
 - pack-bitmap.c: support bitmap pack-reuse with incremental MIDXs
 - pack-bitmap.c: teach `show_objects_for_type()` about incremental MIDXs
 - pack-bitmap.c: teach `bitmap_for_commit()` about incremental MIDXs
 - pack-bitmap.c: open and store incremental bitmap layers
 - pack-revindex: prepare for incremental MIDX bitmaps
 - Documentation: describe incremental MIDX bitmaps
 - Merge branch 'tb/pseudo-merge-bitmap-fixes' into tb/incremental-midx-part-2
 - Merge branch 'tb/incremental-midx-part-1' into tb/incremental-midx-part-2
 Incrementally updating multi-pack index files.
 Needs review.
 source: <cover.1732054032.git.me@ttaylorr.com>
* ps/send-pack-unhide-error-in-atomic-push (2024-11-14) 2 commits
 - transport: don't ignore git-receive-pack(1) exit code on atomic push
 - t5504: modernize test by moving heredocs into test bodies
 "git push --atomic --porcelain" used to ignore failures from the
 other side, losing the error status from the child process, which
 has been corrected.
 Needs to see if competing parallel topic needs to replace this one.
 source: <20241113-pks-push-atomic-respect-exit-code-v1-0-7965f01e7f4e@pks.im>
* ds/name-hash-tweaks (2024-12-20) 8 commits
 - pack-objects: add third name hash version
 - pack-objects: prevent name hash version change
 - test-tool: add helper for name-hash values
 - p5313: add size comparison test
 - pack-objects: add GIT_TEST_NAME_HASH_VERSION
 - repack: add --name-hash-version option
 - pack-objects: add --name-hash-version option
 - pack-objects: create new name-hash function version
 "git pack-objects" and its wrapper "git repack" learned an option
 to use an alternative path-hash function to improve delta-base
 selection to produce a packfile with deeper history than window
 size.
 Will merge to 'next'.
 (microhalt) <Z5E5KdbwHE7fmiJx@nand.local>
 source: <pull.1823.v3.git.1734715194.gitgitgadget@gmail.com>
* ds/path-walk-1 (2024-12-20) 7 commits
  (merged to 'next' on 2025-01-22 at 3171845b73)
 + path-walk: reorder object visits
 + path-walk: mark trees and blobs as UNINTERESTING
 + path-walk: visit tags and cached objects
 + path-walk: allow consumer to specify object types
 + t6601: add helper for testing path-walk API
 + test-lib-functions: add test_cmp_sorted
 + path-walk: introduce an object walk by path
 (this branch is used by ds/backfill.)
 Introduce a new API to visit objects in batches based on a common
 path, or by type.
 Will merge to 'master'.
 cf. <Z4jeQSLmARruE5l3@pks.im>
 source: <pull.1818.v4.git.1734711675.gitgitgadget@gmail.com>
* ej/cat-file-remote-object-info (2025-01-14) 8 commits
 - cat-file: add remote-object-info to batch-command
 - transport: add client support for object-info
 - serve: advertise object-info feature
 - fetch-pack: move fetch initialization
 - fetch-pack: refactor packet writing
 - t1006: split test utility functions into new "lib-cat-file.sh"
 - cat-file: add declaration of variable i inside its for loop
 - git-compat-util: add strtoul_ul() with error handling
 "git cat-file --batch" and friends can optionally ask a remote
 server about objects it does not have.
 Comments?
 source: <20250114021502.41499-1-eric.peijian@gmail.com>
* jc/move-is-bare-repository-cfg-variable-to-repo (2024-11-07) 3 commits
 . repository: BUG when is_bare_cfg is not initialized
 . setup: initialize is_bare_cfg
 . git: remove is_bare_repository_cfg global variable
 Code rewrite to turn the is_bare_repository_cfg global variable
 into a member in the the_repo singleton repository object.
 Will discard.
 Has been in "Waiting for response to reviews" state for too long.
 cf. <xmqqy116xvr3.fsf@gitster.g>
 Seems to break t0021-conversion on Windows.
 cf. https://lore.kernel.org/git/xmqqzfl1hl52.fsf@gitster.g/
 source: <pull.1826.git.git.1730926082.gitgitgadget@gmail.com>
Jeff King· Jan 23, 2025, 00:36 UTC · re: Junio C Hamano · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

On Wed, Jan 22, 2025 at 02:48:43PM -0800, Junio C Hamano wrote:
Show 17 quoted lines
> * ds/path-walk-1 (2024-12-20) 7 commits
>   (merged to 'next' on 2025-01-22 at 3171845b73)
>  + path-walk: reorder object visits
>  + path-walk: mark trees and blobs as UNINTERESTING
>  + path-walk: visit tags and cached objects
>  + path-walk: allow consumer to specify object types
>  + t6601: add helper for testing path-walk API
>  + test-lib-functions: add test_cmp_sorted
>  + path-walk: introduce an object walk by path
>  (this branch is used by ds/backfill.)
> 
>  Introduce a new API to visit objects in batches based on a common
>  path, or by type.
> 
>  Will merge to 'master'.
>  cf. <Z4jeQSLmARruE5l3@pks.im>
>  source: <pull.1818.v4.git.1734711675.gitgitgadget@gmail.com>

Since this hit 'next', it made it into my Coverity runs, producing the small fixup below.

-- >8 --
Subject: [PATCH] path-walk: drop redundant parse_tree() call

This call to parse_tree() was flagged by Coverity for ignoring the return value. But if we look a little further up the function, we can see that there is already a call to parse_tree_gently(), and we'll return early if that fails. So by this point the tree will always be parsed, and the call is redundant.

Signed-off-by: Jeff King <peff@peff.net>
---
 path-walk.c | 1 -
 1 file changed, 1 deletion(-)
diff --git a/path-walk.c b/path-walk.c
index 136ec08fb0..9715a5550e 100644
--- a/path-walk.c
+++ b/path-walk.c
@@ -116,27 +116,26 @@ static int add_tree_entries(struct path_walk_context *ctx,
 
 	if (!tree) {
 		error(_("failed to walk children of tree %s: not found"),
 		      oid_to_hex(oid));
 		return -1;
 	} else if (parse_tree_gently(tree, 1)) {
 		error("bad tree object %s", oid_to_hex(oid));
 		return -1;
 	}
 
 	strbuf_addstr(&path, base_path);
 	base_len = path.len;
 
-	parse_tree(tree);
 	init_tree_desc(&desc, &tree->object.oid, tree->buffer, tree->size);
 	while (tree_entry(&desc, &entry)) {
 		struct type_and_oid_list *list;
 		struct object *o;
 		/* Not actually true, but we will ignore submodules later. */
 		enum object_type type = S_ISDIR(entry.mode) ? OBJ_TREE : OBJ_BLOB;
 
 		/* Skip submodules. */
 		if (S_ISGITLINK(entry.mode))
 			continue;
 
 		/* If the caller doesn't want blobs, then don't bother. */
 		if (!ctx->info->blobs && type == OBJ_BLOB)
-- 
2.48.1.519.gaa5dee9535
Junio C Hamano· Jan 23, 2025, 01:52 UTC · re: Jeff King · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

Jeff King <peff@peff.net> writes:
> Since this hit 'next', it made it into my Coverity runs, producing the
> small fixup below.

Thanks. A greedy me wonders if things like this can be caught by them a bit earlier before they hit 'next', though ;-)

Show 13 quoted lines
> -- >8 --
> Subject: [PATCH] path-walk: drop redundant parse_tree() call
>
> This call to parse_tree() was flagged by Coverity for ignoring the
> return value. But if we look a little further up the function, we can
> see that there is already a call to parse_tree_gently(), and we'll
> return early if that fails. So by this point the tree will always be
> parsed, and the call is redundant.
>
> Signed-off-by: Jeff King <peff@peff.net>
> ---
>  path-walk.c | 1 -
>  1 file changed, 1 deletion(-)
Nice way to use extended context to show why the change makes sense.
Will queue.  Thanks.
Show 32 quoted lines
> diff --git a/path-walk.c b/path-walk.c
> index 136ec08fb0..9715a5550e 100644
> --- a/path-walk.c
> +++ b/path-walk.c
> @@ -116,27 +116,26 @@ static int add_tree_entries(struct path_walk_context *ctx,
>  
>  	if (!tree) {
>  		error(_("failed to walk children of tree %s: not found"),
>  		      oid_to_hex(oid));
>  		return -1;
>  	} else if (parse_tree_gently(tree, 1)) {
>  		error("bad tree object %s", oid_to_hex(oid));
>  		return -1;
>  	}
>  
>  	strbuf_addstr(&path, base_path);
>  	base_len = path.len;
>  
> -	parse_tree(tree);
>  	init_tree_desc(&desc, &tree->object.oid, tree->buffer, tree->size);
>  	while (tree_entry(&desc, &entry)) {
>  		struct type_and_oid_list *list;
>  		struct object *o;
>  		/* Not actually true, but we will ignore submodules later. */
>  		enum object_type type = S_ISDIR(entry.mode) ? OBJ_TREE : OBJ_BLOB;
>  
>  		/* Skip submodules. */
>  		if (S_ISGITLINK(entry.mode))
>  			continue;
>  
>  		/* If the caller doesn't want blobs, then don't bother. */
>  		if (!ctx->info->blobs && type == OBJ_BLOB)
Jeff King· Jan 31, 2025, 23:34 UTC · re: Junio C Hamano · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

On Wed, Jan 22, 2025 at 05:52:30PM -0800, Junio C Hamano wrote:
Show 7 quoted lines
> Jeff King <peff@peff.net> writes:
> 
> > Since this hit 'next', it made it into my Coverity runs, producing the
> > small fixup below.
> 
> Thanks.  A greedy me wonders if things like this can be caught by
> them a bit earlier before they hit 'next', though ;-)

I've always been a little afraid to touch 'seen' since it does not necessarily even pass tests, and I don't want to waste too much time hunting problems in other people's topics. ;)

But I might give it a try. It will require some workflow changes, as I only run CI on what I integrate for my daily build, which is based on next. I do not ever look at or push what is in 'seen' at all to my repo.

Hmm. I wonder if I could just build my daily driver off of 'jch', which is a little less scary than 'seen' (and IIRC is your daily driver?).

> Nice way to use extended context to show why the change makes sense.
I've been tempted to support a:
  Diff-options: -U10

trailer, but that is probably overkill and full of annoying corner cases.

-Peff
Jeff King· Jan 31, 2025, 23:39 UTC · re: Jeff King · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

On Fri, Jan 31, 2025 at 06:34:53PM -0500, Jeff King wrote:
Show 13 quoted lines
> > Thanks.  A greedy me wonders if things like this can be caught by
> > them a bit earlier before they hit 'next', though ;-)
> 
> I've always been a little afraid to touch 'seen' since it does not
> necessarily even pass tests, and I don't want to waste too much time
> hunting problems in other people's topics. ;)
> 
> But I might give it a try. It will require some workflow changes, as I
> only run CI on what I integrate for my daily build, which is based on
> next. I do not ever look at or push what is in 'seen' at all to my repo.
> 
> Hmm. I wonder if I could just build my daily driver off of 'jch', which
> is a little less scary than 'seen' (and IIRC is your daily driver?).

Of course the ideal here would be for individual topic authors to run Coverity themselves. It's "easy" these days in that you just have to enable the CI job with a repo variable. But you have to sign up for an account with Coverity, and of course you'll have to sift through the false positives that appear in master from other people's topics.

I don't think they have any awareness of branches, or silencing noise that's in your upstream (although I am far from an expert, so maybe somebody interested can dig into their docs).

-Peff
Junio C Hamano· Jan 31, 2025, 23:49 UTC · re: Jeff King · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

Jeff King <peff@peff.net> writes:
Show 6 quoted lines
>> Thanks.  A greedy me wonders if things like this can be caught by
>> them a bit earlier before they hit 'next', though ;-)
>
> I've always been a little afraid to touch 'seen' since it does not
> necessarily even pass tests, and I don't want to waste too much time
> hunting problems in other people's topics. ;)

I do not generally recommend using the tip of the 'seen' branch to those who want automated testing, as it more often than not contains topics that are known-broken (which I do on purpose, so that I can point at GitHub CI failure to authors), but it the automated testing includes automatically bisecting once 'seen' is found broken, that would work fine and it would be extra useful. The next greater step would be to feed the bisection result to Copilot or whatever programming peer of your choice, and see if it can fix the breakage.

To help the idea of catching before things hit next, it probably would make the most sense to test the tip of the 'jch' branch, which is somewhere between the 'master' and the 'seen' branches and contains a bit more topics than the 'next' branch does. The branch is usually what I use for my work every day, so even though it may have acquired new leaks and UBs that would not cause troubles in practice, it should functionally be a lot more stable and usable than the tip of 'seen'.

Thanks.
Jeff King· Feb 1, 2025, 02:29 UTC · re: Junio C Hamano · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

On Fri, Jan 31, 2025 at 03:49:22PM -0800, Junio C Hamano wrote:
Show 8 quoted lines
> To help the idea of catching before things hit next, it probably
> would make the most sense to test the tip of the 'jch' branch, which
> is somewhere between the 'master' and the 'seen' branches and
> contains a bit more topics than the 'next' branch does. The branch
> is usually what I use for my work every day, so even though it may
> have acquired new leaks and UBs that would not cause troubles in
> practice, it should functionally be a lot more stable and usable
> than the tip of 'seen'.

I've switched to basing my branch on 'jch', which did turn up a few new hits (lots of uninteresting ones, but a few that may be important; I've responded in the relevant threads).

What I'm most worried about is that it does have leaks or UB. My daily workflow is usually to build my personal branch (previously 'next' now 'jch', plus my own topics) and stop everything to investigate and fix if CI fails. If I start getting CI failures for other peoples' topics, then I'll have even less time to do my own backlogged ones. ;)

Right now you are shouldering a lot of that during your integration runs. And if it were even putting some of your load on me, that might be a good tradeoff. But I have a feeling it is just putting the same on both of us as we see the same CI failures and poke at them independently. I dunno. I'll try it for a while and see how it goes.

-Peff
Junio C Hamano· Feb 2, 2025, 23:39 UTC · re: Jeff King · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

Jeff King <peff@peff.net> writes:
> But I have a feeling it is just putting the same on
> both of us as we see the same CI failures and poke at them
> independently.
Certainly true.
> I dunno. I'll try it for a while and see how it goes.
Thanks.
Junio C Hamano· Feb 3, 2025, 13:51 UTC · re: Junio C Hamano · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

Junio C Hamano <gitster@pobox.com> writes:
Show 9 quoted lines
> Jeff King <peff@peff.net> writes:
>
>> But I have a feeling it is just putting the same on
>> both of us as we see the same CI failures and poke at them
>> independently.
>
> Certainly true.
>
>> I dunno. I'll try it for a while and see how it goes.

After seeing a few of your messages that begin with "Coverity complains ...", I appreciate them a lot. Earlier I was naively hoping that triage-and-hand-off-to-original-author would be much less work but no, we very much need to somehow find a way to push the triaging part to individual topic authors or this thing will not scale.

Perhaps I can control the rate of topics that trickle into 'jch' from 'seen' to keep them a bit more manageable somehow?

If an iffy topic that begins its life in 'seen' gets rerolled number of times while there, but after the final reroll before getting merged to 'jch' (because it was marked as "Will merge to 'next'?" or better in the What's cooking draft), it never gets rerolled until it hits 'next', then your workload would not change compared to the days back when you built yours on 'next'.

Of course, the question then becomes "who will vet these topics so that they do not need a big reroll before it hits 'jch'?", and we are back to square one?

So, I dunno.
Thanks.
Jeff King· Feb 4, 2025, 02:35 UTC · re: Junio C Hamano · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

On Mon, Feb 03, 2025 at 05:51:33AM -0800, Junio C Hamano wrote:
Show 6 quoted lines
> After seeing a few of your messages that begin with "Coverity
> complains ...", I appreciate them a lot.  Earlier I was naively
> hoping that triage-and-hand-off-to-original-author would be much
> less work but no, we very much need to somehow find a way to push
> the triaging part to individual topic authors or this thing will not
> scale.

Yeah, there's definitely some human intelligence needed to pick apart Coverity (and I probably only end up reporting a portion of what it mentions; some are just nonsense, and some are old and probably unimportant issues).

OTOH I basically end up triaging them when they hit 'next' anyway. So unless there are a lot of topics that hit 'jch' but never make it to 'next', it's really just moving the workload around in time.

The thing that would increase workload is if I end up spending time on patches whose issues would have been caught during regular review (or maybe even already were, racing with them making it into 'jch').

Show 9 quoted lines
> Perhaps I can control the rate of topics that trickle into 'jch'
> from 'seen' to keep them a bit more manageable somehow?
>
> If an iffy topic that begins its life in 'seen' gets rerolled number
> of times while there, but after the final reroll before getting
> merged to 'jch' (because it was marked as "Will merge to 'next'?" or
> better in the What's cooking draft), it never gets rerolled until it
> hits 'next', then your workload would not change compared to the
> days back when you built yours on 'next'.

So, yeah, this. The rate of topics entering is not so big a deal as the quality of topics when they make the transition to jch. As you note...

> Of course, the question then becomes "who will vet these topics so
> that they do not need a big reroll before it hits 'jch'?", and we
> are back to square one?

..this work still has to happen somewhere. But I think people reviewing and discussing patches is one way that the load is spread out. If review settles down on a topic then maybe that's a sign it's ready to be looked at.

Of course the effort to look at Coverity could be spread out, too. It's just hard to do because their interface is closed-ish (everybody needs to make their own account, we can't share links, etc). And also because there's a coordination problem. I mostly look at the "new defects since the last build" list since there's so much old noise. But I don't know how I'd mark an uninteresting issue as "I looked at this, and nobody else needs to".

I guess if we had a bot that sent a summary of Coverity results to the list, that thread could be a central point for discussion. But their notification emails have no details; most of the richness is in their web interface. I think it would be hard to condense that into an email that would be useful to people. But maybe I could mine it with a script or something.

I dunno. I think there are possibilities there, and if the results were incredibly useful I'd be more excited about spending time on it. ;) For now let's try it with me following jch and see how that goes.

-Peff
D. Ben Knoble· Feb 2, 2025, 18:09 UTC · re: Jeff King · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

On Fri, Jan 31, 2025 at 6:35 PM Jeff King <peff@peff.net> wrote:
Show 17 quoted lines
>
> On Wed, Jan 22, 2025 at 05:52:30PM -0800, Junio C Hamano wrote:
>
> > Jeff King <peff@peff.net> writes:
> >
>
> > Nice way to use extended context to show why the change makes sense.
>
> I've been tempted to support a:
>
>   Diff-options: -U10
>
> trailer, but that is probably overkill and full of annoying corner
> cases.
>
> -Peff
>

Fairly off-topic, but I've been writing "Best-viewed-with:" trailers now, and also had a similar thought (what would it take to make it "safe" from ACEs + obvious when something is influencing diff options?).

-- 
D. Ben Knoble
Junio C Hamano· Feb 2, 2025, 23:33 UTC · re: Jeff King · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

Jeff King <peff@peff.net> writes:
Show 8 quoted lines
>> Nice way to use extended context to show why the change makes sense.
>
> I've been tempted to support a:
>
>   Diff-options: -U10
>
> trailer, but that is probably overkill and full of annoying corner
> cases.

Do you mean to embed it in the commit log trailer and upon seeing it, the log family of commands add it to their setup_revisions() invocation, thusly affecting things like "format-patch" and "show"?

As a reminder for a patch submitter (i.e., communicated by you who wrote the commit to future you who will run format-patch for submission), something locally maintained might be sufficient, e.g. refs/notes/diffopts that is not shared by default, but still, this hint probably wants to be per-path (ideally per-hunk).

But I think it will make it annoying if you forced those who fetched from you to use "-U10" when they do "git show", as the choice would be strongly affected by personal preference. And I certainly do not want to see anything less benign than "-U10" silently forced upon me.

Thanks.
Jeff King· Feb 3, 2025, 15:33 UTC · re: Junio C Hamano · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

On Sun, Feb 02, 2025 at 03:33:06PM -0800, Junio C Hamano wrote:
Show 14 quoted lines
> Jeff King <peff@peff.net> writes:
> 
> >> Nice way to use extended context to show why the change makes sense.
> >
> > I've been tempted to support a:
> >
> >   Diff-options: -U10
> >
> > trailer, but that is probably overkill and full of annoying corner
> > cases.
> 
> Do you mean to embed it in the commit log trailer and upon seeing
> it, the log family of commands add it to their setup_revisions()
> invocation, thusly affecting things like "format-patch" and "show"?

Yeah, exactly. Similar to the Best-viewed-with that Ben mentioned (and that name, while clunky, probably shows the intent more).

But...
Show 10 quoted lines
> As a reminder for a patch submitter (i.e., communicated by you who
> wrote the commit to future you who will run format-patch for
> submission), something locally maintained might be sufficient,
> e.g. refs/notes/diffopts that is not shared by default, but still,
> this hint probably wants to be per-path (ideally per-hunk).
> 
> But I think it will make it annoying if you forced those who fetched
> from you to use "-U10" when they do "git show", as the choice would
> be strongly affected by personal preference.  And I certainly do not
> want to see anything less benign than "-U10" silently forced upon me.

Yes, this is my worry, as well. It is nice to suggest to people viewing the diff later that this particular case might benefit from some options. But I don't like the idea of forcing the view on them.

I almost wrote it as:
  Diff-context: 10

which would be more limited. But even that might be annoying in some cases. And it's probably not flexible enough (other things that are likely to be suggested are --color-moved, -w, and --function-context).

Maybe it would be a better feature in an interactive tool like tig, where you could use a key to flip between your normal diff, and the diff as suggested by the commit author. And then the trailer just becomes a micro-format that some tools may respect for the feature. They'd still need to be careful about allowing through arbitrary options to avoid security problems.

-Peff
Eric Sunshine· Jan 23, 2025, 00:38 UTC · re: Junio C Hamano · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

On Wed, Jan 22, 2025 at 5:49 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 14 quoted lines
> * ps/reftable-sign-compare (2025-01-21) 10 commits
>   (merged to 'next' on 2025-01-22 at a5ae1ce801)
>  + reftable: address trivial -Wsign-compare warnings
>  + reftable/blocksource: adjust `read_block()` to return `ssize_t`
>  + reftable/blocksource: adjust type of the block length
>  + reftable/block: adjust type of the restart length
>  + reftable/block: adapt header and footer size to return a `size_t`
>  + reftable/basics: adjust `hash_size()` to return `uint32_t`
>  + reftable/basics: adjust `common_prefix_size()` to return `size_t`
>  + reftable/record: handle overflows when decoding varints
>  + reftable/record: drop unused `print` function pointer
>  + meson: stop disabling -Wsign-compare
>
>  THe reftable/ library code has been made -Wsign-compare clean.
s/THe/The/
>  Will merge to 'master'.
>  source: <20250120-b4-pks-reftable-sign-compare-v2-0-b4566d02e4a5@pks.im>
Junio C Hamano· Jan 23, 2025, 01:53 UTC · re: Eric Sunshine · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

Eric Sunshine <sunshine@sunshineco.com> writes:
Show 17 quoted lines
> On Wed, Jan 22, 2025 at 5:49 PM Junio C Hamano <gitster@pobox.com> wrote:
>> * ps/reftable-sign-compare (2025-01-21) 10 commits
>>   (merged to 'next' on 2025-01-22 at a5ae1ce801)
>>  + reftable: address trivial -Wsign-compare warnings
>>  + reftable/blocksource: adjust `read_block()` to return `ssize_t`
>>  + reftable/blocksource: adjust type of the block length
>>  + reftable/block: adjust type of the restart length
>>  + reftable/block: adapt header and footer size to return a `size_t`
>>  + reftable/basics: adjust `hash_size()` to return `uint32_t`
>>  + reftable/basics: adjust `common_prefix_size()` to return `size_t`
>>  + reftable/record: handle overflows when decoding varints
>>  + reftable/record: drop unused `print` function pointer
>>  + meson: stop disabling -Wsign-compare
>>
>>  THe reftable/ library code has been made -Wsign-compare clean.
>
> s/THe/The/
Thanks.
>
>>  Will merge to 'master'.
>>  source: <20250120-b4-pks-reftable-sign-compare-v2-0-b4566d02e4a5@pks.im>
Taylor Blau· Jan 23, 2025, 17:36 UTC · re: Junio C Hamano · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

On Wed, Jan 22, 2025 at 02:48:43PM -0800, Junio C Hamano wrote:
Show 17 quoted lines
> * tb/unsafe-hash-cleanup (2025-01-17) 8 commits
>  - hash.h: drop unsafe_ function variants
>  - csum-file: introduce hashfile_checkpoint_init()
>  - t/helper/test-hash.c: use unsafe_hash_algo()
>  - csum-file.c: use unsafe_hash_algo()
>  - hash.h: introduce `unsafe_hash_algo()`
>  - csum-file.c: extract algop from hashfile_checksum_valid()
>  - csum-file: store the hash algorithm as a struct field
>  - t/helper/test-tool: implement sha1-unsafe helper
>
>  The API around choosing to use unsafe variant of SHA-1
>  implementation has been updated in an attempt to make it harder to
>  abuse.
>
>  Expecting a hopefully small and final reroll.
>  cf. <20250118124343.GA3828177@coredump.intra.peff.net>
>  source: <cover.1737151386.git.me@ttaylorr.com>

Thanks for the nudge. I sent out a very small reroll of this series as <cover.1737653640.git.me@ttaylorr.com>.

Show 21 quoted lines
> * tb/incremental-midx-part-2 (2024-11-20) 15 commits
>  - midx: implement writing incremental MIDX bitmaps
>  - pack-bitmap.c: use `ewah_or_iterator` for type bitmap iterators
>  - pack-bitmap.c: keep track of each layer's type bitmaps
>  - ewah: implement `struct ewah_or_iterator`
>  - pack-bitmap.c: apply pseudo-merge commits with incremental MIDXs
>  - pack-bitmap.c: compute disk-usage with incremental MIDXs
>  - pack-bitmap.c: teach `rev-list --test-bitmap` about incremental MIDXs
>  - pack-bitmap.c: support bitmap pack-reuse with incremental MIDXs
>  - pack-bitmap.c: teach `show_objects_for_type()` about incremental MIDXs
>  - pack-bitmap.c: teach `bitmap_for_commit()` about incremental MIDXs
>  - pack-bitmap.c: open and store incremental bitmap layers
>  - pack-revindex: prepare for incremental MIDX bitmaps
>  - Documentation: describe incremental MIDX bitmaps
>  - Merge branch 'tb/pseudo-merge-bitmap-fixes' into tb/incremental-midx-part-2
>  - Merge branch 'tb/incremental-midx-part-1' into tb/incremental-midx-part-2
>
>  Incrementally updating multi-pack index files.
>
>  Needs review.
>  source: <cover.1732054032.git.me@ttaylorr.com>

Yeah, I would really like to see this one progress. I'll gently nudge Peff (CC'd) as a potential reviewer here.

Show 18 quoted lines
> * ds/name-hash-tweaks (2024-12-20) 8 commits
>  - pack-objects: add third name hash version
>  - pack-objects: prevent name hash version change
>  - test-tool: add helper for name-hash values
>  - p5313: add size comparison test
>  - pack-objects: add GIT_TEST_NAME_HASH_VERSION
>  - repack: add --name-hash-version option
>  - pack-objects: add --name-hash-version option
>  - pack-objects: create new name-hash function version
>
>  "git pack-objects" and its wrapper "git repack" learned an option
>  to use an alternative path-hash function to improve delta-base
>  selection to produce a packfile with deeper history than window
>  size.
>
>  Will merge to 'next'.
>  (microhalt) <Z5E5KdbwHE7fmiJx@nand.local>
>  source: <pull.1823.v3.git.1734715194.gitgitgadget@gmail.com>

Hmm. I think that the first seven patches are fine as-is (I had some minor comments on them, but as I noted they are mostly cosmetic and don't require a reroll IMHO). But I think it would be worth having a more thorough discussion about the last patch, or at least to hear from Stolee before proceeding.

Thanks, Taylor

Patrick Steinhardt· Jan 24, 2025, 06:07 UTC · re: Junio C Hamano · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

On Wed, Jan 22, 2025 at 02:48:43PM -0800, Junio C Hamano wrote:
Show 11 quoted lines
> * kn/pack-write-with-reduced-globals (2025-01-21) 5 commits
>  - pack-write: pass hash_algo to internal functions
>  - pack-write: pass hash_algo to `write_rev_file()`
>  - pack-write: pass hash_algo to `write_idx_file()`
>  - pack-write: pass repository to `index_pack_lockfile()`
>  - pack-write: pass hash_algo to `fixup_pack_header_footer()`
> 
>  Code clean-up.
> 
>  Well merge to 'next'?
>  source: <20250119-kn-the-repo-cleanup-v3-0-a495fce08d71@gmail.com>
This one is ready from my perspective.
Show 9 quoted lines
> * bf/fetch-set-head-fix (2025-01-13) 1 commit
>  - fetch set_head: fix non-mirror remotes in bare repositories
> 
>  Fetching into a bare repository incorrectly assumed it always used
>  a mirror layout when deciding to update remote-tracking HEAD, which
>  has been corrected.
> 
>  Needs review.
>  source: <20250112165125.130400-1-bence@ferdinandy.com>
I've left a review.
Show 19 quoted lines
> * ps/build-meson-fixes (2025-01-22) 12 commits
>  - ci: wire up Visual Studio build with Meson
>  - ci: raise error when Meson generates warnings
>  - meson: fix compilation with Visual Studio
>  - meson: make the CSPRNG backend configurable
>  - meson: wire up fuzzers
>  - meson: wire up generation of distribution archive
>  - meson: wire up development environments
>  - meson: fix dependencies for generated headers
>  - meson: populate project version via GIT-VERSION-GEN
>  - GIT-VERSION-GEN: allow running without input and output files
>  - GIT-VERSION-GEN: simplify computing the dirty marker
>  - Merge branch 'ps/meson-weak-sha1-build' into ps/build-meson-fixes
>  (this branch is used by ps/zlib-ng.)
> 
>  More build fixes and enhancements on meson based build procedure.
> 
>  Will merge to 'next'?
>  source: <20250122-b4-pks-meson-additions-v3-0-5a51eb5d3dcd@pks.im>
Ready from my perspective.
Show 14 quoted lines
> * ps/ci-misc-updates (2025-01-10) 10 commits
>  - ci: remove stale code for Azure Pipelines
>  - ci: use latest Ubuntu release
>  - ci: stop special-casing for Ubuntu 16.04
>  - gitlab-ci: add linux32 job testing against i386
>  - gitlab-ci: remove the "linux-old" job
>  - github: simplify computation of the job's distro
>  - github: convert all Linux jobs to be containerized
>  - github: adapt containerized jobs to be rootless
>  - t7422: fix flaky test caused by buffered stdout
>  - t0060: fix EBUSY in MinGW when setting up runtime prefix
> 
>  CI updates (containerization, dropping stale ones, etc.).
>  source: <20250110-b4-pks-ci-fixes-v4-0-6e4613446080@pks.im>

This series was approved by Peff, but other than that it didn't get much feedback indeed. I'll rope in some additional reviewers.

Show 7 quoted lines
> * sk/strlen-returns-size_t (2024-12-26) 1 commit
>  - date.c: Fix type missmatch warings from msvc
> 
>  Code clean-up.
> 
>  The remainder needs to be reviewed.
>  source: <20241223110407.3308-3-soekkle@freenet.de>

This one seems stale to me, as there's been a v2 with [1]. It was sent in a separate thread though, so that probably explains why. In any case, the series got reviews already and needs a reroll.

[1]: <20250106190855.3098-1-soekkle@freenet.de>
Show 8 quoted lines
> * jc/show-index-h-update (2024-12-20) 1 commit
>  - show-index: the short help should say the command reads from its input
> 
>  Doc and short-help text for "show-index" has been clarified to
>  stress that the command reads its data from the standard input.
> 
>  Comments?
>  source: <xmqqfrmidyhk.fsf@gitster.g>
This series looks good to me.
Show 16 quoted lines
> * ps/3.0-remote-deprecation (2025-01-22) 7 commits
>  - SQUASH???
>  - remote: announce removal of "branches/" and "remotes/"
>  - builtin/pack-redundant: remove subcommand with breaking changes
>  - ci: repurpose "linux-gcc" job for deprecations
>  - ci: merge linux-gcc-default into linux-gcc
>  - Makefile: wire up build option for deprecated features
>  - Merge branch 'ps/build' into ps/3.0-remote-deprecation
> 
>  Following the procedure we established to introduce breaking
>  changes for Git 3.0, allow an early opt-in for removing support of
>  $GIT_DIR/branches/ and $GIT_DIR/remotes/ directories to configure
>  remotes.
> 
>  Will merge to 'next'?
>  source: <20250122-pks-remote-branches-deprecation-v4-0-5cbf5b28afd5@pks.im>

The squash-commit on top of the series looks good to me, so I think this should be ready.

Show 10 quoted lines
> * ps/send-pack-unhide-error-in-atomic-push (2024-11-14) 2 commits
>  - transport: don't ignore git-receive-pack(1) exit code on atomic push
>  - t5504: modernize test by moving heredocs into test bodies
> 
>  "git push --atomic --porcelain" used to ignore failures from the
>  other side, losing the error status from the child process, which
>  has been corrected.
> 
>  Needs to see if competing parallel topic needs to replace this one.
>  source: <20241113-pks-push-atomic-respect-exit-code-v1-0-7965f01e7f4e@pks.im>

I think v3 sent by Jiang Xin looks like a reasonable alternative to my fix, but it needs some fixups. I'll maybe wait one more week for them to reroll the series, and if that doesn't happen I might adopt their patches and do the fixups by myself.

Patrick
Toon Claes· Jan 24, 2025, 12:55 UTC · re: Patrick Steinhardt · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

Patrick Steinhardt <ps@pks.im> writes:
Show 22 quoted lines
> On Wed, Jan 22, 2025 at 02:48:43PM -0800, Junio C Hamano wrote:
>> * ps/build-meson-fixes (2025-01-22) 12 commits
>>  - ci: wire up Visual Studio build with Meson
>>  - ci: raise error when Meson generates warnings
>>  - meson: fix compilation with Visual Studio
>>  - meson: make the CSPRNG backend configurable
>>  - meson: wire up fuzzers
>>  - meson: wire up generation of distribution archive
>>  - meson: wire up development environments
>>  - meson: fix dependencies for generated headers
>>  - meson: populate project version via GIT-VERSION-GEN
>>  - GIT-VERSION-GEN: allow running without input and output files
>>  - GIT-VERSION-GEN: simplify computing the dirty marker
>>  - Merge branch 'ps/meson-weak-sha1-build' into ps/build-meson-fixes
>>  (this branch is used by ps/zlib-ng.)
>> 
>>  More build fixes and enhancements on meson based build procedure.
>> 
>>  Will merge to 'next'?
>>  source: <20250122-b4-pks-meson-additions-v3-0-5a51eb5d3dcd@pks.im>
>
> Ready from my perspective.

I can't really vouch for the last commit about Visual Studio, but the other commits are ready for me as well.

-- 
Toon
Junio C Hamano· Jan 24, 2025, 17:05 UTC · re: Toon Claes · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

Toon Claes <toon@iotcl.com> writes:
Show 13 quoted lines
> Patrick Steinhardt <ps@pks.im> writes:
>
>> On Wed, Jan 22, 2025 at 02:48:43PM -0800, Junio C Hamano wrote:
>>> * ps/build-meson-fixes (2025-01-22) 12 commits
>>>  - ci: wire up Visual Studio build with Meson
>>>  ...
>>>  Will merge to 'next'?
>>>  source: <20250122-b4-pks-meson-additions-v3-0-5a51eb5d3dcd@pks.im>
>>
>> Ready from my perspective.
>
> I can't really vouch for the last commit about Visual Studio, but the
> other commits are ready for me as well.
Thanks.
Junio C Hamano· Jan 24, 2025, 16:02 UTC · re: Patrick Steinhardt · lore

Re: What's cooking in git.git (Jan 2025, #06; Wed, 22)

Patrick Steinhardt <ps@pks.im> writes:
Show 17 quoted lines
>> * ps/ci-misc-updates (2025-01-10) 10 commits
>>  - ci: remove stale code for Azure Pipelines
>>  - ci: use latest Ubuntu release
>>  - ci: stop special-casing for Ubuntu 16.04
>>  - gitlab-ci: add linux32 job testing against i386
>>  - gitlab-ci: remove the "linux-old" job
>>  - github: simplify computation of the job's distro
>>  - github: convert all Linux jobs to be containerized
>>  - github: adapt containerized jobs to be rootless
>>  - t7422: fix flaky test caused by buffered stdout
>>  - t0060: fix EBUSY in MinGW when setting up runtime prefix
>> 
>>  CI updates (containerization, dropping stale ones, etc.).
>>  source: <20250110-b4-pks-ci-fixes-v4-0-6e4613446080@pks.im>
>
> This series was approved by Peff, but other than that it didn't get much
> feedback indeed. I'll rope in some additional reviewers.

This one I took another look while reordering topics for the next integration and noticing that it had a bit of interaction with another topic. It looked good, so let me mark it for 'next'. Unless these others find anything objectionable, that is.

Show 9 quoted lines
>> * sk/strlen-returns-size_t (2024-12-26) 1 commit
>>  - date.c: Fix type missmatch warings from msvc
>> 
>>  Code clean-up.
>> 
>>  The remainder needs to be reviewed.
>>  source: <20241223110407.3308-3-soekkle@freenet.de>
>
> This one seems stale to me, as there's been a v2 with [1].

IIRC the patches were pretty much independent, and this one was clearly ready from the initial batch. I'll let it merged to 'next' independently instead of waiting for the remainder, which was not.

Show 10 quoted lines
>> * jc/show-index-h-update (2024-12-20) 1 commit
>>  - show-index: the short help should say the command reads from its input
>> 
>>  Doc and short-help text for "show-index" has been clarified to
>>  stress that the command reads its data from the standard input.
>> 
>>  Comments?
>>  source: <xmqqfrmidyhk.fsf@gitster.g>
>
> This series looks good to me.
Will mark for 'next', then.
Show 19 quoted lines
>> * ps/3.0-remote-deprecation (2025-01-22) 7 commits
>>  - SQUASH???
>>  - remote: announce removal of "branches/" and "remotes/"
>>  - builtin/pack-redundant: remove subcommand with breaking changes
>>  - ci: repurpose "linux-gcc" job for deprecations
>>  - ci: merge linux-gcc-default into linux-gcc
>>  - Makefile: wire up build option for deprecated features
>>  - Merge branch 'ps/build' into ps/3.0-remote-deprecation
>> 
>>  Following the procedure we established to introduce breaking
>>  changes for Git 3.0, allow an early opt-in for removing support of
>>  $GIT_DIR/branches/ and $GIT_DIR/remotes/ directories to configure
>>  remotes.
>> 
>>  Will merge to 'next'?
>>  source: <20250122-pks-remote-branches-deprecation-v4-0-5cbf5b28afd5@pks.im>
>
> The squash-commit on top of the series looks good to me, so I think this
> should be ready.
OK, will squash and merge.
Show 15 quoted lines
>> * ps/send-pack-unhide-error-in-atomic-push (2024-11-14) 2 commits
>>  - transport: don't ignore git-receive-pack(1) exit code on atomic push
>>  - t5504: modernize test by moving heredocs into test bodies
>> 
>>  "git push --atomic --porcelain" used to ignore failures from the
>>  other side, losing the error status from the child process, which
>>  has been corrected.
>> 
>>  Needs to see if competing parallel topic needs to replace this one.
>>  source: <20241113-pks-push-atomic-respect-exit-code-v1-0-7965f01e7f4e@pks.im>
>
> I think v3 sent by Jiang Xin looks like a reasonable alternative to my
> fix, but it needs some fixups. I'll maybe wait one more week for them to
> reroll the series, and if that doesn't happen I might adopt their
> patches and do the fixups by myself.

OK, so just keep this one so that I can point to your above remark in the message I am responding to ;-)

Thanks.

← back to recent threads