What's cooking in git.git (Jan 2025, #06; Wed, 22)
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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
--------------------------------------------------
[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: <[email protected]>
* 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: <[email protected]>
* am/trace2-with-valueless-true (2025-01-22) 1 commit
- trace2: prevent segfault on config collection with valueless true
source: <[email protected]>
* kn/reflog-symref-fix (2025-01-22) 1 commit
- refs: fix creation of corrupted reflogs for symrefs
source: <[email protected]>
* 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: <[email protected]>
* 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. <[email protected]>
cf. <[email protected]> cf. <[email protected]>
source: <[email protected]>
* 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. <[email protected]>
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. <[email protected]>
source: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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. <[email protected]>
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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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. <[email protected]>
source: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* ja/doc-notes-markup-updates (2025-01-10) 1 commit
- doc: convert git-notes to new documentation format
Doc mark-up updates.
source: <[email protected]>
* ja/doc-restore-markup-update (2025-01-10) 1 commit
- doc: convert git-restore to new style format
Doc mark-up updates.
source: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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: <[email protected]>
* 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. <[email protected]>
source: <[email protected]>
* 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: <[email protected]>
* 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. <[email protected]>
source: <[email protected]>
* 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: <[email protected]>
* 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) <[email protected]>
source: <[email protected]>
* 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. <[email protected]>
source: <[email protected]>
* 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: <[email protected]>
* 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. <[email protected]>
Seems to break t0021-conversion on Windows.
cf. https://lore.kernel.org/git/[email protected]/
source: <[email protected]>
Quoted 11 lines · Junio C Hamano
* 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: addtest_cmp_sorted
+ path-walk: introduce an object walk by path (this branch is used by ds/backfill.)
Quoted 6 lines
Introduce a new API to visit objects in batches based on a common path, or by type.
Will merge to 'master'.
cf. <[email protected]>
source: <[email protected]>
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.
--- path-walk.c | 1 - 1 file changed, 1 deletion(-)
path-walk.c +0 -1
@@ -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 )
Signature · 1 line
2.48.1.519.gaa5dee9535
Quoted 13 lines · Junio C Hamano
* 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: adjustread_block()to returnssize_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 asize_t
+ reftable/basics: adjusthash_size()to returnuint32_t
+ reftable/basics: adjustcommon_prefix_size()to returnsize_t
+ reftable/record: handle overflows when decoding varints
+ reftable/record: drop unused
+ meson: stop disabling -Wsign-compare
Quoted 1 line
THe reftable/ library code has been made -Wsign-compare clean.
s/THe/The/
Quoted 2 lines
Will merge to 'master'.
source: <[email protected]>
Quoted 2 lines · Jeff King
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 ;-)
Quoted 9 lines
-- >8 --
Subject: [PATCH] path-walk: drop redundantparse_tree()callThis 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 toparse_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.
Quoted 4 lines
Signed-off-by Jeff King <[email protected]>--- 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.
Quoted 32 lines
path-walk.c +0
-1@@ -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 )
Quoted 14 lines · Eric Sunshine
Quoted 13 lines · Junio C Hamano
* 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: adjustread_block()to returnssize_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 asize_t
+ reftable/basics: adjusthash_size()to returnuint32_t
+ reftable/basics: adjustcommon_prefix_size()to returnsize_t
+ reftable/record: handle overflows when decoding varints
+ reftable/record: drop unused
+ meson: stop disabling -Wsign-compare
Quoted 3 lines
Quoted 1 line
THe reftable/ library code has been made -Wsign-compare clean.
s/THe/The/
Thanks.
Quoted 3 lines
Quoted 3 lines
Will merge to 'master'.
source: <[email protected]>
Quoted 10 lines · Junio C Hamano
* tb/unsafe-hash-cleanup (2025-01-17) 8 commits
-hash.h: dropunsafe_function variants
- csum-file: introducehashfile_checkpoint_init()
-t/helper/test-hash.c: useunsafe_hash_algo()
-csum-file.c: useunsafe_hash_algo()
-hash.h: introduceunsafe_hash_algo()
-csum-file.c: extract algop fromhashfile_checksum_valid()
- csum-file: store the hash algorithm as a struct field
- t/helper/test-tool: implement sha1-unsafe helper
Quoted 7 lines
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. <[email protected]>
source: <[email protected]>
Thanks for the nudge. I sent out a very small reroll of this series as <[email protected]>.
Quoted 17 lines
* tb/incremental-midx-part-2 (2024-11-20) 15 commits
- midx: implement writing incremental MIDX bitmaps
-pack-bitmap.c: useewah_or_iteratorfor type bitmap iterators
-pack-bitmap.c: keep track of each layer's type bitmaps
- ewah: implementstruct 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: teachrev-list --test-bitmapabout incremental MIDXs
-pack-bitmap.c: support bitmap pack-reuse with incremental MIDXs
-pack-bitmap.c: teachshow_objects_for_type()about incremental MIDXs
-pack-bitmap.c: teachbitmap_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
Quoted 4 lines
Incrementally updating multi-pack index files.
Needs review.
source: <[email protected]>
Yeah, I would really like to see this one progress. I'll gently nudge Peff (CC'd) as a potential reviewer here.
Quoted 10 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: addGIT_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
Quoted 8 lines
"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) <[email protected]>
source: <[email protected]>
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
Quoted 11 lines · Junio C Hamano
* kn/pack-write-with-reduced-globals (2025-01-21) 5 commits
- pack-write: passhash_algoto internal functions
- pack-write: passhash_algotowrite_rev_file()
- pack-write: passhash_algotowrite_idx_file()
- pack-write: pass repository toindex_pack_lockfile()
- pack-write: passhash_algotofixup_pack_header_footer()Code clean-up.
Well merge to 'next'?
source: <[email protected]>
This one is ready from my perspective.
Quoted 9 lines
* bf/fetch-set-head-fix (2025-01-13) 1 commit
- fetchset_head: fix non-mirror remotes in bare repositoriesFetching 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: <[email protected]>
I've left a review.
Quoted 15 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.)
Quoted 4 lines
More build fixes and enhancements on meson based build procedure.
Will merge to 'next'?
source: <[email protected]>
Ready from my perspective.
Quoted 12 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
Quoted 2 lines
CI updates (containerization, dropping stale ones, etc.).
source: <[email protected]>
This series was approved by Peff, but other than that it didn't get much feedback indeed. I'll rope in some additional reviewers.
Quoted 7 lines
* sk/strlen-returns-size_t (2024-12-26) 1 commit
-date.c: Fix type missmatch warings from msvcCode clean-up.
The remainder needs to be reviewed.
source: <[email protected]>
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]: <[email protected]>
Quoted 8 lines
* jc/show-index-h-update (2024-12-20) 1 commit
- show-index: the short help should say the command reads from its inputDoc and short-help text for "show-index" has been clarified to stress that the command reads its data from the standard input.
Comments?
source: <[email protected]>
This series looks good to me.
Quoted 9 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
Quoted 7 lines
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.
Quoted 10 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
Quoted 16 lines · Patrick Steinhardt
Quoted 15 lines · Junio C Hamano
* 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.)
Quoted 6 lines
Quoted 4 lines
More build fixes and enhancements on meson based build procedure.
Will merge to 'next'?
source: <[email protected]>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.
Signature · 1 line
Toon
Quoted 12 lines · Patrick Steinhardt
Quoted 12 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
Quoted 5 lines
Quoted 2 lines
CI updates (containerization, dropping stale ones, etc.).
source: <[email protected]>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.
Quoted 9 lines
Quoted 7 lines
* sk/strlen-returns-size_t (2024-12-26) 1 commit
-date.c: Fix type missmatch warings from msvcCode clean-up.
The remainder needs to be reviewed.
source: <[email protected]>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.
Quoted 10 lines
Quoted 8 lines
* jc/show-index-h-update (2024-12-20) 1 commit
- show-index: the short help should say the command reads from its inputDoc and short-help text for "show-index" has been clarified to stress that the command reads its data from the standard input.
Comments?
source: <[email protected]>This series looks good to me.
Will mark for 'next', then.
Quoted 14 lines
Quoted 14 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-deprecationFollowing 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.
Quoted 5 lines
Quoted 2 lines
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.
Quoted 8 lines
Quoted 8 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.
Quoted 7 lines
Quoted 2 lines
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.
Quoted 9 lines · Toon Claes
Quoted 7 lines · Patrick Steinhardt
Quoted 5 lines · Junio C Hamano
* ps/build-meson-fixes (2025-01-22) 12 commits
- ci: wire up Visual Studio build with Meson
...
Will merge to 'next'?
source: <[email protected]>
Quoted 4 lines
Quoted 1 line
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.
Quoted 7 lines · Junio C Hamano
Quoted 2 lines · Jeff King
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?).
Quoted 1 line
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
Quoted 7 lines · Jeff King
Quoted 2 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. ;)
Quoted 6 lines
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
Quoted 6 lines · Jeff King
Quoted 2 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.
Quoted 8 lines · Junio C Hamano
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
Quoted 8 lines · Jeff King
Quoted 4 lines · Junio C Hamano
Jeff King <[email protected]> writes:
Nice way to use extended context to show why the change makes sense.
Quoted 9 lines
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?).
Signature · 1 line
D. Ben Knoble
Quoted 8 lines · Jeff King
Quoted 1 line
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.
Quoted 3 lines · Jeff King
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.
Quoted 1 line
I dunno. I'll try it for a while and see how it goes.
Thanks.
Quoted 9 lines · Junio C Hamano
Quoted 3 lines · Jeff King
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.
Quoted 1 line
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.
Quoted 6 lines · Junio C Hamano
Quoted 4 lines · Jeff King
Quoted 1 line
Nice way to use extended context to show why the change makes sense.
I've been tempted to support a:
Quoted 8 lines
Quoted 4 lines
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...
Quoted 10 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
Quoted 6 lines · Junio C Hamano
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').
Quoted 9 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...
Quoted 3 lines
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