I Use This!
Very High Activity

News

Analyzed about 12 hours ago. based on code collected 1 day ago.
Posted 7 months ago by Johannes Schindelin
Dear Git users, I hereby announce that Git for Windows 2.42.0 is available from: https://gitforwindows.org/ Changes since Git for Windows v2.41.0(3) (July 13th 2023) New Features * Comes with Git v2.42.0. * Comes with cURL v8.2.1. * ... [More] Comes with Git LFS v3.4.0. * Comes with OpenSSL v3.1.2. * Comes with OpenSSH v9.4.P1. * Comes with Git Credential Manager v2.3.2. Bug Fixes * When init.defaultBranch is changed manually in the system config, subsequent Git for Windows upgrades would overwrite that change. This has been fixed. * When running on a remote APFS share, Git would fail, which has been fixed. Git-2.42.0-64-bit.exe | ce95be32ae58fee3ada7b997c519b60d60c6fb1bda7a305336103881de724902 Git-2.42.0-32-bit.exe | da3871a93b629348db08304d8a1a3edc8644c7403d31e99048092cb8c2d4adab PortableGit-2.42.0-64-bit.7z.exe | d394800e5eafa11814ff15f8631bd6f5379f7fbef347cf23a6d76cdbc42e23bd PortableGit-2.42.0-32-bit.7z.exe | e7d7da5ecd0e5eaa13efd2f8464e92fb58743552a21c3f2d2c630d678bc40e2a MinGit-2.42.0-64-bit.zip | b945e6df773fd8013f12e26b65b6815122be62a241d3ef4b9ed2d5ae67ae0aa1 MinGit-2.42.0-32-bit.zip | 3b3c1e50958f8d03ada4dc11ee1dfd5198a512935a1bab77d6b12c968d363491 MinGit-2.42.0-busybox-64-bit.zip | 0f321d093e405049ec8d4c0a3f6c564a767bd760cc85f46920a9d5b9bdcaf58e MinGit-2.42.0-busybox-32-bit.zip | e40151765772db868626b20129e1399e123229ae218d168b00eafe9899869624 Git-2.42.0-64-bit.tar.bz2 | 077ba0669103a7b9347c26f9fffaef11e8d0c3f5a31548dc1df0e30253f1a9be Git-2.42.0-32-bit.tar.bz2 | fa90a8c40d4f2449d685d1ba314fba9794169873ff19f1c5f46e8debca34de13 Ciao, Johannes [Less]
Posted 7 months ago by Junio C Hamano
The latest feature release Git v2.42.0 is now available at the usual places. It is comprised of 453 non-merge commits since v2.41.0, contributed by 78 people, 17 of which are new faces [*]. The tarballs are found at: ... [More] https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.42.0' tag and the 'master' branch that the tag points at: url = https://git.kernel.org/pub/scm/git/git url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://github.com/gitster/git New contributors whose contributions weren't in v2.41.0 are as follows. Welcome to the Git development community! Adam Majer, Andreas Herrmann, Greg Alexander, Han Young, Jacob Abel, Jan Klötzke, Jim Pryor, Johan Ruokangas, Josh Sref, Josip Sokcevic, Louis Strous, Lumynous, Petar Vutov, Premek Vysoky, Sebastian Thiel, Tribo Dar, and Vinayak Dev. Returning contributors who helped this release are as follows. Thanks for your continued support. , Alejandro R. Sedeño, Alex Henrie, Arkadii Yakovets, Bagas Sanjaya, Beat Bolli, brian m. carlson, Calvin Wan, Carlo Marcelo Arenas Belón, Christian Couder, D. Ben Knoble, Derrick Stolee, Dimitriy Ryazantcev, Elijah Newren, Emir SARI, Eric Sunshine, Eric Wong, Glen Choo, Hariom Verma, Jacob Keller, Jaydeep Das, Jean-Noël Avila, Jeff King, Johannes Schindelin, John Cai, Jonathan Nieder, Jonathan Tan, Jordi Mas, Junio C Hamano, Kate Golovanova, Kousik Sanagavarapu, Kristoffer Haugsbakk, Linus Arver, Martin Ågren, Matthew Hughes, Matthias Aßhauer, M Hickford, Michael Haggerty, Mike Hommey, Nsengiyumva Wilberforce, Oswald Buddenhagen, Patrick Steinhardt, Peter Krefting, Philippe Blain, Phillip Wood, Ralf Thielow, Randall S. Becker, René Scharfe, Rubén Justo, Sean Allred, Shuqi Liang, SZEDER Gábor, Taylor Blau, Teng Long, Todd Zullinger, Toon Claes, Torsten Bögershausen, Victoria Dye, Yi-Jyun Pan, Yuyi Wang, and ZheNing Hu. [*] We are counting not just the authorship contribution but issue reporting, mentoring, helping and reviewing that are recorded in the commit trailers. ---------------------------------------------------------------- Git v2.42 Release Notes ======================= UI, Workflows & Features * "git pack-refs" learns "--include" and "--exclude" to tweak the ref hierarchy to be packed using pattern matching. * 'git worktree add' learned how to create a worktree based on an orphaned branch with `--orphan`. * "git pack-objects" learned to invoke a new hook program that enumerates extra objects to be used as anchoring points to keep otherwise unreachable objects in cruft packs. * Add more "git var" for toolsmiths to learn various locations Git is configured with either via the configuration or hard-coded defaults. * 'git notes append' was taught '--separator' to specify string to insert between paragraphs. * The "git for-each-ref" family of commands learned placeholders related to GPG signature verification. * "git diff --no-index" learned to read from named pipes as if they were regular files, to allow "git diff <(process) <(substitution)" some shells support. * Help newbies by suggesting that there are cases where force-pushing is a valid and sensible thing to update a branch at a remote repository, rather than reconciling with merge/rebase. * "git blame --contents=file" has been taught to work in a bare repository. * "git branch -f X" to repoint the branch X said that X was "checked out" in another worktree, even when branch X was not and instead being bisected or rebased. The message was reworded to say the branch was "in use". * Tone down the warning on SHA-256 repositories being an experimental curiosity. We do not have support for them to interoperate with traditional SHA-1 repositories, but at this point, we do not plan to make breaking changes to SHA-256 repositories and there is no longer need for such a strongly phrased warning. Performance, Internal Implementation, Development Support etc. * "git diff-tree" has been taught to take advantage of the sparse-index feature. * Clang's sanitizer implementation seems to work better than GCC's. (merge d88d727143 jk/ci-use-clang-for-sanitizer-jobs later to maint). * The object traversal using reachability bitmap done by "pack-object" has been tweaked to take advantage of the fact that using "boundary" commits as representative of all the uninteresting ones can save quite a lot of object enumeration. * discover_git_directory() no longer touches the_repository. * "git worktree" learned to work better with sparse index feature. * When the external merge driver is killed by a signal, its output should not be trusted as a resolution with conflicts that is proposed by the driver, but the code did. * The set-up code for the get_revision() API now allows feeding options like --all and --not in the --stdin mode. * Move functions that are not about pure string manipulation out of strbuf.[ch] * "imap-send" codepaths got cleaned up to get rid of unused parameters. * Enumerating refs in the packed-refs file, while excluding refs that match certain patterns, has been optimized. * Mark-up unused parameters in the code so that we can eventually enable -Wunused-parameter by default. * Instead of inventing a custom counter variables for debugging, use existing trace2 facility in the fsync customization codepath. * "git branch --list --format=" and friends are taught a new "%(describe)" placeholder. * Clarify how to choose the starting point for a new topic in developer guidance document. * The implementation of "get_sha1_hex()" that reads a hexadecimal string that spells a full object name has been extended to cope with any hash function used in the repository, but the "sha1" in its name survived. Rename it to get_hash_hex(), a name that is more consistent within its friends like get_hash_hex_algop(). * Command line parser fix, and a small parse-options API update. Fixes since v2.41 ----------------- * "git tag" learned to leave the "$GIT_DIR/TAG_EDITMSG" file when the command failed, so that the user can salvage what they typed. (merge 08c12ec1d0 kh/keep-tag-editmsg-upon-failure later to maint). * The "-s" (silent, squelch) option of the "diff" family of commands did not interact with other options that specify the output format well. This has been cleaned up so that it will clear all the formatting options given before. (merge 9d484b92ed jc/diff-s-with-other-options later to maint). * Update documentation regarding Coccinelle patches. (merge 3bd0097cfc gc/doc-cocci-updates later to maint). * Some atoms that can be used in "--format=" for "git ls-tree" were not supported by "git ls-files", even though they were relevant in the context of the latter. (merge 4d28c4f75f zh/ls-files-format-atoms later to maint). * Document more pseudo-refs and teach the command line completion machinery to complete AUTO_MERGE. (merge 982ff3a649 pb/complete-and-document-auto-merge-and-friends later to maint). * "git submodule" code trusted the data coming from the config (and the in-tree .gitmodules file) too much without validating, leading to NULL dereference if the user mucks with a repository (e.g. submodule..url is removed). This has been corrected. (merge fbc806acd1 tb/submodule-null-deref-fix later to maint). * The value of config.worktree is per-repository, but has been kept in a singleton global variable per process. This has been OK as most Git operations interacted with a single repository at a time, but not right for operations like recursive "grep" that want to access multiple repositories from a single process without forking. The global variable has been eliminated and made into a member in the per-repository data structure. (merge 3867f6d650 vd/worktree-config-is-per-repository later to maint). * "git [-c log.follow=true] log [--follow] ':(glob)f**'" used to barf. (merge 8260bc5902 jk/log-follow-with-non-literal-pathspec later to maint). * Introduce a mechanism to disable replace refs globally and per repository. (merge 9c7d1b057f ds/disable-replace-refs later to maint). * "git cat-file --batch" and friends learned "-Z" that uses NUL delimiter for both input and output. (merge f79e18849b ps/cat-file-null-output later to maint). * The reimplemented "git add -i" did not honor color.ui configuration. (merge 6f74648cea ds/add-i-color-configuration-fix later to maint). * Compilation fix for platforms without D_TYPE in struct dirent. (merge 03bf92b9bf as/dtype-compilation-fix later to maint). * Suggest to refrain from using hex literals that are non-portable when writing printf(1) format strings. (merge f0b68f0546 jt/doc-use-octal-with-printf later to maint). * Simplify error message when run-command fails to start a command. (merge 6d224ac286 rs/run-command-exec-error-on-noent later to maint). * Gracefully deal with a stale MIDX file that lists a packfile that no longer exists. (merge 06f3867865 tb/open-midx-bitmap-fallback later to maint). * Even when diff.ignoreSubmodules tells us to ignore submodule changes, "git commit" with an index that already records changes to submodules should include the submodule changes in the resulting commit, but it did not. (merge 5768478edc js/defeat-ignore-submodules-config-with-explicit-addition later to maint). * When "git commit --trailer=..." invokes the interpret-trailers machinery, it knows what it feeds to interpret-trailers is a full log message without any patch, but failed to express that by passing the "--no-divider" option, which has been corrected. (merge be3d654343 jk/commit-use-no-divider-with-interpret-trailers later to maint). * Avoid breakage of "git pack-objects --cruft" due to inconsistency between the way the code enumerates packfiles in the repository. (merge 73320e49ad tb/collect-pack-filenames-fix later to maint). * We create .pack and then .idx, we consider only packfiles that have .idx usable (those with only .pack are not ready yet), so we should remove .idx before removing .pack for consistency. (merge 0dd1324a73 ds/remove-idx-before-pack later to maint). * Partially revert a sanity check that the rest of the config code was not ready, to avoid triggering it in a corner case. (merge a53f43f900 gc/config-partial-submodule-kvi-fix later to maint). * "git apply" punts when it is fed too large a patch input; the error message it gives when it happens has been clarified. (merge 42612e18d2 pw/apply-too-large later to maint). * During a cherry-pick or revert session that works on multiple commits, "git status" did not give correct information, which has been corrected. (merge a096a889f4 jk/cherry-pick-revert-status later to maint). * A few places failed to differentiate the case where the index is truly empty (nothing added) and we haven't yet read from the on-disk index file, which have been corrected. (merge 2ee045eea1 js/empty-index-fixes later to maint). * "git bugreport" tests did not test what it wanted to test, which has been corrected. (merge 1aa92b8500 ma/t0091-fixup later to maint). * Code snippets in a tutorial document no longer compiled after recent header shuffling, which have been corrected. (merge bbd7c7b7c0 vd/adjust-mfow-doc-to-updated-headers later to maint). * "git ls-files '(attr:X)D/'" that triggers the common prefix optimization codepath failed to read from "D/.gitattributes", which has been corrected. (merge f4a8fde057 jc/pathspec-match-with-common-prefix later to maint). * "git fsck --no-progress" still spewed noise from the commit-graph subsystem, which has been corrected. (merge 9281cd07f0 tb/fsck-no-progress later to maint). * Various offset computation in the code that accesses the packfiles and other data in the object layer has been hardened against arithmetic overflow, especially on 32-bit systems. (merge 9a25cad7e0 tb/object-access-overflow-protection later to maint). * Names of MinGW header files are spelled in mixed case in some source files, but the build host can be using case sensitive filesystem with header files with their name spelled in all lowercase. (merge 4a53d0d0bc mh/mingw-case-sensitive-build later to maint). * Update message mark-up for i18n in "git bundle". (merge bbb6acd998 dk/bundle-i18n-more later to maint). * "git tag --list --points-at X" showed tags that directly refers to object X, but did not list a tag that points at such a tag, which has been corrected. * "./configure --with-expat=no" did not work as a way to refuse use of the expat library on a system with the library installed, which has been corrected. (merge fb8f7269c2 ah/autoconf-fixes later to maint). * When the user edits "rebase -i" todo file so that it starts with a "fixup", which would make it invalid, the command truncated the rest of the file before giving an error and returning the control back to the user. Stop truncating to make it easier to correct such a malformed todo file. (merge 9645a087c2 ah/sequencer-rewrite-todo-fix later to maint). * Rewrite the description of giving a custom command to the submodule..update configuration variable. (merge 7cebc5bd78 pv/doc-submodule-update-settings later to maint). * Adjust to OpenSSL 3+, which deprecates its SHA-1 functions based on its traditional API, by using its EVP API instead. (merge bda9c12073 ew/hash-with-openssl-evp later to maint). * Exclude "." from the set of characters to be removed from the beginning and the end of the human-readable name. (merge 1c04cb0744 bc/ident-dot-is-no-longer-crud-letter later to maint). * "git bisect visualize" stopped running "gitk" on Git for Windows when the command was reimplemented in C around Git 2.34 timeframe. This has been corrected. (merge fff1594fa7 ma/locate-in-path-for-windows later to maint). * "git rebase -i" with a series of squash/fixup, when one of the steps stopped in conflicts and ended up getting skipped, did not handle the accumulated commit log messages, which has been corrected. (merge 6ce7afe163 pw/rebase-skip-commit-message-fix later to maint). * Adjust to newer Term::ReadLine to prevent it from breaking the interactive prompt code in send-email. (merge c016726c2d jk/send-email-with-new-readline later to maint). * Windows updates. (merge 0050f8e401 ds/maintenance-on-windows-fix later to maint). * Correct use of lstat() that assumed a failing call would not clobber the statbuf. (merge 72695d8214 st/mv-lstat-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 51f9d2e563 sa/doc-ls-remote later to maint). (merge c6d26a9dda jk/format-patch-message-id-unleak later to maint). (merge f7e063f326 ps/fetch-cleanups later to maint). (merge e4cf013468 tl/quote-problematic-arg-for-clarity later to maint). (merge 20025fdfc7 tz/test-ssh-verifytime-fix later to maint). (merge e48a21df65 tz/test-fix-pthreads-prereq later to maint). (merge 68b51172e3 mh/commit-reach-get-reachable-plug-leak later to maint). (merge aeee1408ce kh/use-default-notes-doc later to maint). (merge 3b8724bce6 jc/test-modernization later to maint). (merge 447a3b7331 jc/test-modernization-2 later to maint). (merge d57fa7fc73 la/doc-interpret-trailers later to maint). (merge 548afb0d9a la/docs-typofixes later to maint). (merge 3744ffcbcd rs/doc-ls-tree-hex-literal later to maint). (merge 6c26da8404 mh/credential-erase-improvements later to maint). (merge 78e56cff69 tz/lib-gpg-prereq-fix later to maint). (merge 80d32e84b5 rj/leakfixes later to maint). (merge 0a868031ed pb/complete-diff-options later to maint). (merge d4f28279ad jc/doc-hash-object-types later to maint). (merge 1876a5ae15 ks/t4205-test-describe-with-abbrev-fix later to maint). (merge 6e6a529b57 jk/fsck-indices-in-worktrees later to maint). (merge 3e81b896f7 rs/packet-length-simplify later to maint). (merge 4c9cb51fe7 mh/doc-credential-helpers later to maint). (merge 3437f549dd jr/gitignore-doc-example-markup later to maint). (merge 947ebd62a0 jc/am-parseopt-fix later to maint). (merge e12cb98e1e jc/branch-parseopt-fix later to maint). (merge d6f598e443 jc/gitignore-doc-pattern-markup later to maint). (merge a2dad4868b jc/transport-parseopt-fix later to maint). (merge 68cbb20e73 jc/parse-options-show-branch later to maint). (merge 3821eb6c3d jc/parse-options-reset later to maint). (merge c48af99a3e bb/trace2-comment-fix later to maint). (merge c95ae3ff9c rs/describe-parseopt-fix later to maint). (merge 36f76d2a25 rs/pack-objects-parseopt-fix later to maint). (merge 30c8c55cbf jc/tree-walk-drop-base-offset later to maint). (merge d089a06421 rs/bundle-parseopt-cleanup later to maint). (merge 823839bda1 ew/sha256-gcrypt-leak-fixes later to maint). (merge a5c01603b3 bc/ignore-clangd-cache later to maint). (merge 12009a182b js/allow-t4000-to-be-indented-with-spaces later to maint). (merge b3dcd24b8a jc/send-email-pre-process-fix later to maint). ---------------------------------------------------------------- Changes since v2.41.0 are as follows: Adam Majer (1): doc: sha256 is no longer experimental Alejandro R. Sedeño (1): statinfo.h: move DTYPE defines from dir.h Alex Henrie (4): wt-status: don't show divergence advice when committing remote: don't imply that integration is always required before pushing push: don't imply that integration is always required before pushing sequencer: finish parsing the todo list despite an invalid first line Andreas Herrmann (3): configure.ac: don't overwrite NO_EXPAT option configure.ac: don't overwrite NO_CURL option configure.ac: always save NO_ICONV to config.status Arkadii Yakovets (1): l10n: uk: update translation (2.42.0) Bagas Sanjaya (1): l10n: po-id for 2.42 (round 1) Beat Bolli (2): trace2: fix a comment wrapper: use trace2 counters to collect fsync stats Calvin Wan (13): strbuf: clarify API boundary strbuf: clarify dependency abspath: move related functions to abspath credential-store: move related functions to credential-store file object-name: move related functions to object-name path: move related function to path strbuf: remove global variable git-compat-util: move strbuf.c funcs to its header git-compat-util: move wrapper.c funcs to its header sane-ctype.h: create header for sane-ctype macros kwset: move translation table from ctype treewide: remove unnecessary includes for wrapper.h git-compat-util: move alloc macros to git-compat-util.h D. Ben Knoble (2): i18n: mark more bundle.c strings for translation t4002: fix "diff can read from stdin" syntax Derrick Stolee (7): add: check color.ui for interactive add add: test use of brackets when color is disabled repository: create disable_replace_refs() replace-objects: create wrapper around setting repository: create read_replace_refs setting packfile: delete .idx files before .pack files builtin/repack.c: only repack `.pack`s that exist Dimitriy Ryazantcev (1): l10n: ru.po: update Russian translation Elijah Newren (28): init-db: document existing bug with core.bare in template config init-db: remove unnecessary global variable init-db, clone: change unnecessary global into passed parameter setup: adopt shared init-db & clone code read-cache: move shared commit and ls-files code add: modify add_files_to_cache() to avoid globals read-cache: move shared add/checkout/commit code statinfo: move stat_{data,validity} functions from cache/read-cache run-command.h: move declarations for run-command.c from cache.h name-hash.h: move declarations for name-hash.c from cache.h sparse-index.h: move declarations for sparse-index.c from cache.h preload-index.h: move declarations for preload-index.c from elsewhere diff.h: move declaration for global in diff.c from cache.h merge.h: move declarations for merge.c from cache.h repository.h: move declaration of the_index from cache.h read-cache*.h: move declarations for read-cache.c functions from cache.h cache.h: remove this no-longer-used header log-tree: replace include of revision.h with simple forward declaration repository: remove unnecessary include of path.h diff.h: remove unnecessary include of oidset.h list-objects-filter-options.h: remove unneccessary include builtin.h: remove unneccessary includes git-compat-util.h: remove unneccessary include of wildmatch.h merge-ll: rename from ll-merge khash: name the structs that khash declares object-store-ll.h: split this header out of object-store.h hash-ll, hashmap: move oidhash() to hash-ll fsmonitor-ll.h: split this header out of fsmonitor.h Emir SARI (1): l10n: tr: git 2.42.0 Eric Sunshine (1): fsck: avoid misleading variable name Eric Wong (5): sha256/gcrypt: fix build with SANITIZE=leak sha256/gcrypt: fix memory leak with SHA-256 repos sha256/gcrypt: die on gcry_md_open failures sha256: avoid functions deprecated in OpenSSL 3+ avoid SHA-1 functions deprecated in OpenSSL 3+ Glen Choo (16): cocci: add headings to and reword README cocci: codify authoring and reviewing practices setup.c: don't setup in discover_git_directory() config: don't BUG when both kvi and source are set config: inline git_color_default_config urlmatch.h: use config_fn_t type config: add ctx arg to config_fn_t config.c: pass ctx in configsets config: pass ctx with config files config.c: pass ctx with CLI config trace2: plumb config kvi config: pass kvi to die_bad_number() config.c: remove config_reader from configsets config: add kvi.path, use it to evaluate includes config: pass source to config_parser_event_fn_t mailmap: change primary address for Glen Choo Han Young (1): blame: allow --contents to work with bare repo Jacob Abel (11): worktree add: include -B in usage docs t2400: cleanup created worktree in test t2400: refactor "worktree add" opt exclusion tests t2400: add tests to verify --quiet worktree add: add --orphan flag worktree add: introduce "try --orphan" hint worktree add: extend DWIM to infer --orphan worktree add: emit warn when there is a bad HEAD t2400: drop no-op `--sq` from rev-parse call builtin/worktree.c: convert tab in advice to space t2400: rewrite regex to avoid unintentional PCRE Jacob Keller (1): fix cherry-pick/revert status when doing multiple commits Jan Klötzke (1): ref-filter: handle nested tags in --points-at option Jean-Noël Avila (2): l10n: fr v2.42.0 rnd 1 l10n: fr v2.42.0 rnd 2 Jeff King (41): format-patch: free rev.message_id when exiting format-patch: free elements of rev.ref_message_ids list pathspec: factor out magic-to-name function diff: factor out --follow pathspec check diff: detect pathspec magic not supported by --follow ci: use clang for ASan/UBSan checks ci: run ASan/UBSan in a single job ci: drop linux-clang job commit: pass --no-divider to interpret-trailers http: handle both "h2" and "h2h3" in curl info lines var: mark unused parameters in git_var callbacks imap-send: use server conf argument in setup_curl() imap-send: drop unused parameter from imap_cmd_cb callback imap-send: drop unused fields from imap_cmd_cb refs.c: rename `ref_filter` ref-filter.h: provide `REF_FILTER_INIT` ref-filter: clear reachable list pointers after freeing ref-filter: add `ref_filter_clear()` ref-filter.c: parameterize match functions over patterns test-ref-store: drop unimplemented reflog-expire command do_for_each_ref_helper(): mark unused repository parameter http: mark unused parameters in curl callbacks http-push: mark unused parameter in xml callback am: mark unused keep_cr parameters count-objects: mark unused parameter in alternates callback revisions: drop unused "opt" parameter in "tweak" callbacks fsck: mark unused parameters in various fsck callbacks merge-tree: mark unused parameter in traverse callback replace: mark unused parameter in ref callback replace: mark unused parameter in each_mergetag_fn callback rev-parse: mark unused parameter in for_each_abbrev callback tag: mark unused parameters in each_tag_name_fn callbacks t/helper: mark unused callback void data parameters ref-filter: avoid parsing tagged objects in match_points_at() ref-filter: avoid parsing non-tags in match_points_at() ref-filter: simplify return type of match_points_at send-email: drop FakeTerm hack send-email: avoid creating more than one Term::ReadLine object repack: free geometry struct t4053: avoid writing to unopened pipe fsck: use enum object_type for fsck_walk callback Johan Ruokangas (1): gitignore.txt: use backticks instead of double quotes Johannes Schindelin (6): do_read_index(): always mark index as initialized unless erroring out split-index: accept that a base index can be empty commit -a -m: allow the top-level tree to become empty again t0040: declare non-tab indentation to be okay in this script win32: add a helper to run `git.exe` without a foreground window git maintenance: avoid console window in scheduled tasks on Windows John Cai (34): docs: clarify git-pack-refs --all will pack all refs pack-refs: teach --exclude option to exclude refs from being packed pack-refs: teach pack-refs --include option t0000-basic: modernize test format t0030-stripspace: modernize test format t3210-pack-refs: modernize test format t1001-read-tree-m-2way: modernize test format t1002-read-tree-m-u-2way: modernize test format t1006-cat-file: modernize test format t3500-cherry: modernize test format t3700-add: modernize test format t3903-stash: modernize test format t4002-diff-basic: modernize test format t4003-diff-rename-1: modernize test format t4004-diff-rename-symlink: modernize test format t4202-log: modernize test format t4206-log-follow-harder-copies: modernize test format t5300-pack-object: modernize test format t5301-sliding-window: modernize test format t5303-pack-corruption-resilience: modernize test format t5306-pack-nobase: modernize test format t6050-replace: modernize test format t7101-reset-empty-subdirs: modernize test format t7110-reset-merge: modernize test format t7111-reset-table: modernize test format t7201-co: modernize test format t7508-status: modernize test format t7600-merge: modernize test format t7700-repack: modernize test format t9100-git-svn-basic: modernize test format t9104-git-svn-follow-parent: modernize test format t9200-git-cvsexportcommit: modernize test format t9400-git-cvsserver-server: modernize test format docs: add git hash-object -t option's possible values Jonathan Tan (1): CodingGuidelines: use octal escapes, not hex Jordi Mas (1): l10n: Update Catalan translation Josip Sokcevic (1): diff-lib: honor override_submodule_config flag bit Junio C Hamano (48): diff: fix interaction between the "-s" option and other options show-branch doc: say , not Start the 2.42 cycle The second batch for 2.42 The third batch ll-merge: killing the external merge driver aborts the merge The fourth batch t6406: skip "external merge driver getting killed by a signal" test on Windows The fifth batch The sixth batch The seventh batch The eighth batch t6135: attr magic with path pattern tree-walk: lose base_offset that is never used in tree_entry_interesting tree-walk: drop unused base_offset from do_match() The ninth batch dir: match "attr" pathspec magic with correct paths The tenth batch The eleventh batch The twelfth batch gitignore.txt: mark up explanation of patterns consistently am: simplify parsing of "--[no-]keep-cr" branch: reject "--no-all" and "--no-remotes" early parse-options: introduce OPT_IPVERSION() fetch: reject --no-ipv[46] show-branch: --no-sparse should give dense output short help: allow multi-line opthelp remote: simplify "remote add --tags" help text short help: allow a gap smaller than USAGE_GAP show-branch: reject --[no-](topo|date)-order reset: reject --no-(mixed|soft|hard|merge|keep) option The thirteenth batch branch: update the message to refuse touching a branch in-use hex: retire get_sha1_hex() The fourteenth batch SubmittingPatches: choice of base for fixing an older maintenance track The fifteenth batch SubmittingPatches: explain why 'next' and above are inappropriate base SubmittingPatches: use of older maintenance tracks is an exception The sixteenth batch MyFirstContribution: refrain from self-iterating too much The seventeenth batch The eighteenth batch Git 2.42-rc0 A few more topics before -rc1 Git 2.42-rc1 Git 2.42-rc2 Git 2.42 Kousik Sanagavarapu (5): t/lib-gpg: introduce new prereq GPG2 ref-filter: add new "signature" atom t4205: correctly test %(describe:abbrev=...) ref-filter: add multiple-option parsing functions ref-filter: add new "describe" atom Kristoffer Haugsbakk (5): doc: tag: document `TAG_EDITMSG` t/t7004-tag: add regression test for successful tag creation tag: keep the message file in case ref transaction fails notes: update documentation for `use_default_notes` notes: move the documentation to the struct Linus Arver (15): docs: typofixes doc: trailer: fix grammar doc: trailer: swap verb order doc: trailer: drop "commit message part" phrasing doc: trailer: examples: avoid the word "message" by itself doc: trailer: remove redundant phrasing doc: trailer: use angle brackets for and doc: trailer..command: emphasize deprecation doc: trailer: mention 'key' in DESCRIPTION doc: trailer: add more examples in DESCRIPTION SubmittingPatches: reword awkward phrasing SubmittingPatches: discuss subsystems separately from git.git SubmittingPatches: de-emphasize branches as starting points SubmittingPatches: emphasize need to communicate non-default starting points SubmittingPatches: simplify guidance for choosing a starting point M Hickford (3): credential: avoid erasing distinct password credential: erase all matching credentials doc: gitcredentials: link to helper list Martin Ågren (5): t0091-bugreport.sh: actually verify some content of report notes doc: split up run-on sentences notes doc: tidy up `--no-stripspace` paragraph show-ref doc: fix carets in monospace rev-list-options: fix typo in `--stdin` documentation Matthias Aßhauer (3): run-command: conditionally define locate_in_PATH() compat/mingw: implement a native locate_in_PATH() docs: update when `git bisect visualize` uses `gitk` Mike Hommey (2): commit-reach: fix memory leak in get_reachable_subset() mingw: use lowercase includes for some Windows headers Oswald Buddenhagen (2): advice: handle "rebase" in error_resolve_conflict() t9001: remove excessive GIT_SEND_EMAIL_NOTTY=1 Patrick Steinhardt (17): fetch: drop unused DISPLAY_FORMAT_UNKNOWN enum value fetch: drop unneeded NULL-check for `remote_ref` fetch: pass through `fetch_config` directly fetch: use `fetch_config` to store "fetch.prune" value fetch: use `fetch_config` to store "fetch.pruneTags" value fetch: use `fetch_config` to store "fetch.showForcedUpdates" value fetch: use `fetch_config` to store "fetch.recurseSubmodules" value fetch: use `fetch_config` to store "fetch.parallel" value fetch: use `fetch_config` to store "submodule.fetchJobs" value t1006: don't strip timestamps from expected results t1006: modernize test style to use `test_cmp` strbuf: provide CRLF-aware helper to read until a specified delimiter cat-file: simplify reading from standard input cat-file: add option '-Z' that delimits input and output with NUL revision: reorder `read_revisions_from_stdin()` revision: small readability improvement for reading from stdin revision: handle pseudo-opts in `--stdin` mode Petar Vutov (1): doc: highlight that .gitmodules does not support !command Peter Krefting (1): l10n: sv.po: Update Swedish translation 5549t0f0u Philippe Blain (30): revisions.txt: use description list for special refs revisions.txt: document more special refs completion: complete REVERT_HEAD and BISECT_HEAD git-merge.txt: modernize word choice in "True merge" section Documentation: document AUTO_MERGE completion: complete AUTO_MERGE completion: add comments describing __git_diff_* globals completion: complete --break-rewrites completion: complete --cc completion: complete --combined-all-paths completion: complete --compact-summary completion: complete --default-prefix completion: complete --find-copies completion: complete --find-object completion: complete --find-renames completion: complete --function-context completion: complete --ignore-matching-lines completion: complete --irreversible-delete completion: complete --ita-invisible-in-index and --ita-visible-in-index completion: complete --line-prefix completion: complete --no-relative completion: complete --no-stat completion: complete --output completion: complete --output-indicator-{context,new,old} completion: complete --unified completion: complete --ws-error-highlight completion: move --pickaxe-{all,regex} to __git_diff_common_options completion: complete --diff-merges, its options and --no-diff-merges completion: complete --remerge-diff diff.c: mention completion above add_diff_options Phillip Wood (7): apply: improve error messages when reading patch diff --no-index: refuse to compare stdin to a directory diff --no-index: die on error reading stdin t4054: test diff --no-index with stdin diff --no-index: support reading from named pipes rebase --skip: fix commit message clean up when skipping squash t4053: avoid race when killing background processes Ralf Thielow (1): l10n: Update German translation René Scharfe (20): t1800: loosen matching of error message for bad shebang run-command: report exec error even on ENOENT ls-tree: fix documentation of %x format placeholder pretty: factor out expand_separator() strbuf: factor out strbuf_expand_step() replace strbuf_expand_dict_cb() with strbuf_expand_step() replace strbuf_expand() with strbuf_expand_step() strbuf: simplify strbuf_expand_literal_cb() ls-tree: simplify prefix handling pretty: avoid double negative in format_commit_item() pkt-line: add size parameter to packet_length() pretty: use strchr(3) in userformat_find_requirements() t6300: fix setup with GPGSSH but without GPG strbuf: use skip_prefix() in strbuf_addftime() ls-tree: fix --no-full-name describe: fix --no-exact-match pack-objects: fix --no-keep-true-parents pack-objects: fix --no-quiet bundle: use OPT_PASSTHRU_ARGV parse-options: disallow negating OPTION_SET_INT 0 Rubén Justo (11): config: fix a leak in git_config_copy_or_rename_section_in_file remote: fix a leak in query_matches_negative_refspec branch: fix a leak in dwim_and_setup_tracking branch: fix a leak in inherit_tracking branch: fix a leak in check_tracking_branch branch: fix a leak in setup_tracking rev-parse: fix a leak with --abbrev-ref branch: fix a leak in setup_tracking branch: fix a leak in cmd_branch config: fix a leak in git_config_copy_or_rename_section_in_file tests: mark as passing with SANITIZE=leak Sean Allred (5): show-ref doc: update for internal consistency ls-remote doc: remove redundant --tags example ls-remote doc: show peeled tags in examples ls-remote doc: explain what each example does ls-remote doc: document the output format Sebastian Thiel (1): mv: handle lstat() failure correctly Shuqi Liang (2): diff-tree: integrate with sparse index worktree: integrate with sparse-index Taylor Blau (53): object: add object_array initializer helper function pack-bitmap.c: extract `fill_in_bitmap()` pack-bitmap.c: use commit boundary during bitmap traversal builtin/submodule--helper.c: handle missing submodule URLs builtin/repack.c: only collect fully-formed packs reachable.c: extract `obj_is_recent()` gc: introduce `gc.recentObjectsHook` pack-bitmap.c: gracefully degrade on failure to load MIDX'd pack t7701: make annotated tag unreachable fsck: suppress commit-graph output with `--no-progress` fsck: suppress MIDX output with `--no-progress` commit-graph.c: extract `verify_one_commit_graph()` commit-graph.c: iteratively verify commit-graph chains commit-graph.c: pass progress to `verify_one_commit_graph()` commit-graph.c: avoid duplicated progress output during `verify` builtin/for-each-ref.c: add `--exclude` option refs: plumb `exclude_patterns` argument throughout refs/packed-backend.c: refactor `find_reference_location()` refs/packed-backend.c: implement jump lists to avoid excluded pattern(s) refs/packed-backend.c: add trace2 counters for jump list revision.h: store hidden refs in a `strvec` refs.h: let `for_each_namespaced_ref()` take excluded patterns refs.h: implement `hidden_refs_to_excludes()` builtin/receive-pack.c: avoid enumerating hidden references upload-pack.c: avoid enumerating hidden refs where possible ls-refs.c: avoid enumerating hidden refs where possible builtin/repack.c: avoid dir traversal in `collect_pack_filenames()` packfile.c: prevent overflow in `nth_packed_object_id()` packfile.c: prevent overflow in `load_idx()` packfile.c: use checked arithmetic in `nth_packed_object_offset()` midx.c: use `size_t`'s for fanout nr and alloc midx.c: prevent overflow in `nth_midxed_object_oid()` midx.c: prevent overflow in `nth_midxed_offset()` midx.c: store `nr`, `alloc` variables as `size_t`'s midx.c: prevent overflow in `write_midx_internal()` midx.c: prevent overflow in `fill_included_packs_batch()` pack-bitmap.c: ensure that eindex lookups don't overflow commit-graph.c: prevent overflow in `write_commit_graph_file()` commit-graph.c: prevent overflow in add_graph_to_chain() commit-graph.c: prevent overflow in `load_oid_from_graph()` commit-graph.c: prevent overflow in `fill_commit_graph_info()` commit-graph.c: prevent overflow in `fill_commit_in_graph()` commit-graph.c: prevent overflow in `load_tree_for_commit()` commit-graph.c: prevent overflow in `split_graph_merge_strategy()` commit-graph.c: prevent overflow in `merge_commit_graph()` commit-graph.c: prevent overflow in `write_commit_graph()` commit-graph.c: prevent overflow in `verify_commit_graph()` t/lib-commit-graph.sh: allow `graph_read_expect()` in sub-directories t/lib-commit-graph.sh: avoid directory change in `graph_git_behavior()` t5318: avoid top-level directory changes t5328: avoid top-level directory changes t/lib-commit-graph.sh: avoid sub-shell in `graph_git_behavior()` Documentation/RelNotes/2.42.0.txt: typofix Teng Long (10): surround %s with quotes when failed to lookup commit notes.c: cleanup 'strbuf_grow' call in 'append_edit' notes.c: use designated initializers for clarity t3321: add test cases about the notes stripspace behavior notes.c: introduce '--separator=' option notes.c: append separator instead of insert by pos notes.c: introduce "--[no-]stripspace" option notes: introduce "--no-separator" option l10n: zh_CN: v2.42.0 round 1 l10n: zh_CN: 2.42.0 round 2 Todd Zullinger (3): trace2 tests: fix PTHREADS prereq t/lib-gpg: fix ssh-keygen -Y check-novalidate with openssh-9.0 t/lib-gpg: require GPGSSH for GPGSSH_VERIFYTIME prereq Victoria Dye (3): config: use gitdir to get worktree config config: pass 'repo' directly to 'config_with_options()' repository: move 'repository_format_worktree_config' to repo scope Vinayak Dev (1): docs: add necessary headers to Documentation/MFOW.txt Yi-Jyun Pan (1): l10n: zh_TW.po: Git 2.42 ZheNing Hu (1): ls-files: align format atoms with ls-tree brian m. carlson (9): t: add a function to check executable bit var: add support for listing the shell var: format variable structure with C99 initializers var: adjust memory allocation for strings attr: expose and rename accessor functions var: add attributes files locations var: add config file locations ident: don't consider '.' a crud gitignore: ignore clangd .cache directory [Less]
Posted 8 months ago by Johannes Schindelin
Dear Git users, I hereby announce that Git for Windows 2.42.0-rc2 is available from: https://github.com/git-for-windows/git/releases/tag/v2.42.0-rc2.windows.1 Changes since Git for Windows v2.41.0(3) (July 13th 2023) New Features * Comes ... [More] with Git v2.42.0-rc2. * Comes with cURL v8.2.1. * Comes with Git LFS v3.4.0. * Comes with OpenSSL v3.1.2. * Comes with OpenSSH v9.4.P1. * Comes with Git Credential Manager v2.3.1. Bug Fixes * When init.defaultBranch is changed manually in the system config, subsequent Git for Windows upgrades would overwrite that change. This has been fixed. * When running on a remote APFS share, Git would fail, which has been fixed. Git-2.42.0-rc2-64-bit.exe | 6d7772323a683772cbc221596dfff66710c8ca3cbacc58283d0faf42f246691d Git-2.42.0-rc2-32-bit.exe | ed993c5396f1d656b94fbc4aeed60f568167cc14532746117cb25b0dda90668f PortableGit-2.42.0-rc2-64-bit.7z.exe | 22a120b2ac59a9379ea462267cde9d8aaaf5f399ecf160cd4853a6b8247925e6 PortableGit-2.42.0-rc2-32-bit.7z.exe | 17083a0ecd7539876099a938d2843e5029be05a027280d7463dcda602701beff MinGit-2.42.0-rc2-64-bit.zip | c92688495a1c2b4ea760b32070b3ea6ff4313b5095d40958006aea61764fadd1 MinGit-2.42.0-rc2-32-bit.zip | 5b54762906e8c18f6129496b4971fa6082e97dfb30a02e2a4174ce99ce181eee MinGit-2.42.0-rc2-busybox-64-bit.zip | 19c76cb4f3cfabd26522ef45841d4053fb57b1e76c585ad957393e0504828fad MinGit-2.42.0-rc2-busybox-32-bit.zip | 6f3696fd214776cfeb251a04fe618e8cbfe7c454160777df4e2e79ce7d400853 Git-2.42.0-rc2-64-bit.tar.bz2 | cdea6633fa5a914bc3f00f476e067ca768319cf7f69867c307488d2c72f8173f Git-2.42.0-rc2-32-bit.tar.bz2 | 34129e2fb5440f12e9c5099cc21a0159da9b4134c461014953ba6edcd4b00cec Ciao, Johannes [Less]
Posted 8 months ago by Junio C Hamano
A release candidate Git v2.42.0-rc2 is now available for testing at the usual places. It is comprised of 435 non-merge commits since v2.41.0, contributed by 67 people, 16 of which are new faces [*]. The tarballs are found at: ... [More] https://www.kernel.org/pub/software/scm/git/testing/ The following public repositories all have a copy of the 'v2.42.0-rc2' tag and the 'master' branch that the tag points at: url = https://git.kernel.org/pub/scm/git/git url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://github.com/gitster/git New contributors whose contributions weren't in v2.41.0 are as follows. Welcome to the Git development community! Adam Majer, Andreas Herrmann, Greg Alexander, Han Young, Jacob Abel, Jan Klötzke, Jim Pryor, Johan Ruokangas, Josh Sref, Josip Sokcevic, Louis Strous, Petar Vutov, Premek Vysoky, Sebastian Thiel, Tribo Dar, and Vinayak Dev. Returning contributors who helped this release are as follows. Thanks for your continued support. Alejandro R. Sedeño, Alex Henrie, Beat Bolli, brian m. carlson, Calvin Wan, Carlo Marcelo Arenas Belón, Christian Couder, D. Ben Knoble, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Glen Choo, Hariom Verma, Jacob Keller, Jaydeep Das, Jeff King, Johannes Schindelin, John Cai, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kousik Sanagavarapu, Kristoffer Haugsbakk, Linus Arver, Martin Ågren, Matthew Hughes, Matthias Aßhauer, M Hickford, Michael Haggerty, Mike Hommey, Nsengiyumva Wilberforce, Oswald Buddenhagen, Patrick Steinhardt, Philippe Blain, Phillip Wood, Randall S. Becker, René Scharfe, Rubén Justo, Sean Allred, Shuqi Liang, SZEDER Gábor, Taylor Blau, Teng Long, Todd Zullinger, Toon Claes, Torsten Bögershausen, Victoria Dye, Yuyi Wang, and ZheNing Hu. [*] We are counting not just the authorship contribution but issue reporting, mentoring, helping and reviewing that are recorded in the commit trailers. ---------------------------------------------------------------- Git v2.42 Release Notes (draft) =============================== UI, Workflows & Features * "git pack-refs" learns "--include" and "--exclude" to tweak the ref hierarchy to be packed using pattern matching. * 'git worktree add' learned how to create a worktree based on an orphaned branch with `--orphan`. * "git pack-objects" learned to invoke a new hook program that enumerates extra objects to be used as anchoring points to keep otherwise unreachable objects in cruft packs. * Add more "git var" for toolsmiths to learn various locations Git is configured with either via the configuration or hardcoded defaults. * 'git notes append' was taught '--separator' to specify string to insert between paragraphs. * The "git for-each-ref" family of commands learned placeholders related to GPG signature verification. * "git diff --no-index" learned to read from named pipes as if they were regular files, to allow "git diff <(process) <(substitution)" some shells support. * Help newbies by suggesting that there are cases where force-pushing is a valid and sensible thing to update a branch at a remote repository, rather than reconciling with merge/rebase. * "git blame --contents=file" has been taught to work in a bare repository. * "git branch -f X" to repoint the branch X said that X was "checked out" in another worktree, even when branch X was not and instead being bisected or rebased. The message was reworded to say the branch was "in use". * Tone down the warning on SHA-256 repositories being an experimental curiosity. We do not have support for them to interoperate with traditional SHA-1 repositories, but at this point, we do not plan to make breaking changes to SHA-256 repositories and there is no longer need for such a strongly phrased warning. Performance, Internal Implementation, Development Support etc. * "git diff-tree" has been taught to take advantage of the sparse-index feature. * Clang's sanitizer implementation seems to work better than GCC's. (merge d88d727143 jk/ci-use-clang-for-sanitizer-jobs later to maint). * The object traversal using reachability bitmap done by "pack-object" has been tweaked to take advantage of the fact that using "boundary" commits as representative of all the uninteresting ones can save quite a lot of object enumeration. * discover_git_directory() no longer touches the_repository. * "git worktree" learned to work better with sparse index feature. * When the external merge driver is killed by a signal, its output should not be trusted as a resolution with conflicts that is proposed by the driver, but the code did. * The set-up code for the get_revision() API now allows feeding options like --all and --not in the --stdin mode. * Move functions that are not about pure string manipulation out of strbuf.[ch] * "imap-send" codepaths got cleaned up to get rid of unused parameters. * Enumerating refs in the packed-refs file, while excluding refs that match certain patterns, has been optimized. * Mark-up unused parameters in the code so that we can eventually enable -Wunused-parameter by default. * Instead of inventing a custom counter variables for debugging, use existing trace2 facility in the fsync customization codepath. * "git branch --list --format=" and friends are taught a new "%(describe)" placeholder. * Clarify how to choose the starting point for a new topic in developer guidance document. * The implementation of "get_sha1_hex()" that reads a hexadecimal string that spells a full object name has been extended to cope with any hash function used in the repository, but the "sha1" in its name survived. Rename it to get_hash_hex(), a name that is more consistent within its friends like get_hash_hex_algop(). * Command line parser fix, and a small parse-options API update. Fixes since v2.41 ----------------- * "git tag" learned to leave the "$GIT_DIR/TAG_EDITMSG" file when the command failed, so that the user can salvage what they typed. (merge 08c12ec1d0 kh/keep-tag-editmsg-upon-failure later to maint). * The "-s" (silent, squelch) option of the "diff" family of commands did not interact with other options that specify the output format well. This has been cleaned up so that it will clear all the formatting options given before. (merge 9d484b92ed jc/diff-s-with-other-options later to maint). * Update documentation regarding Coccinelle patches. (merge 3bd0097cfc gc/doc-cocci-updates later to maint). * Some atoms that can be used in "--format=" for "git ls-tree" were not supported by "git ls-files", even though they were relevant in the context of the latter. (merge 4d28c4f75f zh/ls-files-format-atoms later to maint). * Document more pseudo-refs and teach the command line completion machinery to complete AUTO_MERGE. (merge 982ff3a649 pb/complete-and-document-auto-merge-and-friends later to maint). * "git submodule" code trusted the data coming from the config (and the in-tree .gitmodules file) too much without validating, leading to NULL dereference if the user mucks with a repository (e.g. submodule..url is removed). This has been corrected. (merge fbc806acd1 tb/submodule-null-deref-fix later to maint). * The value of config.worktree is per-repository, but has been kept in a singleton global variable per process. This has been OK as most Git operations interacted with a single repository at a time, but not right for operations like recursive "grep" that want to access multiple repositories from a single process without forking. The global variable has been eliminated and made into a member in the per-repository data structure. (merge 3867f6d650 vd/worktree-config-is-per-repository later to maint). * "git [-c log.follow=true] log [--follow] ':(glob)f**'" used to barf. (merge 8260bc5902 jk/log-follow-with-non-literal-pathspec later to maint). * Introduce a mechanism to disable replace refs globally and per repository. (merge 9c7d1b057f ds/disable-replace-refs later to maint). * "git cat-file --batch" and friends learned "-Z" that uses NUL delimiter for both input and output. (merge f79e18849b ps/cat-file-null-output later to maint). * The reimplemented "git add -i" did not honor color.ui configuration. (merge 6f74648cea ds/add-i-color-configuration-fix later to maint). * Compilation fix for platforms without D_TYPE in struct dirent. (merge 03bf92b9bf as/dtype-compilation-fix later to maint). * Suggest to refrain from using hex literals that are non-portable when writing printf(1) format strings. (merge f0b68f0546 jt/doc-use-octal-with-printf later to maint). * Simplify error message when run-command fails to start a command. (merge 6d224ac286 rs/run-command-exec-error-on-noent later to maint). * Gracefully deal with a stale MIDX file that lists a packfile that no longer exists. (merge 06f3867865 tb/open-midx-bitmap-fallback later to maint). * Even when diff.ignoreSubmodules tells us to ignore submodule changes, "git commit" with an index that already records changes to submodules should include the submodule changes in the resulting commit, but it did not. (merge 5768478edc js/defeat-ignore-submodules-config-with-explicit-addition later to maint). * When "git commit --trailer=..." invokes the interpret-trailers machinery, it knows what it feeds to interpret-trailers is a full log message without any patch, but failed to express that by passing the "--no-divider" option, which has been corrected. (merge be3d654343 jk/commit-use-no-divider-with-interpret-trailers later to maint). * Avoid breakage of "git pack-objects --cruft" due to inconsistency between the way the code enumerates packfiles in the repository. (merge 73320e49ad tb/collect-pack-filenames-fix later to maint). * We create .pack and then .idx, we consider only packfiles that have .idx usable (those with only .pack are not ready yet), so we should remove .idx before removing .pack for consistency. (merge 0dd1324a73 ds/remove-idx-before-pack later to maint). * Partially revert a sanity check that the rest of the config code was not ready, to avoid triggering it in a corner case. (merge a53f43f900 gc/config-partial-submodule-kvi-fix later to maint). * "git apply" punts when it is fed too large a patch input; the error message it gives when it happens has been clarified. (merge 42612e18d2 pw/apply-too-large later to maint). * During a cherry-pick or revert session that works on multiple commits, "git status" did not give correct information, which has been corrected. (merge a096a889f4 jk/cherry-pick-revert-status later to maint). * A few places failed to differentiate the case where the index is truly empty (nothing added) and we haven't yet read from the on-disk index file, which have been corrected. (merge 2ee045eea1 js/empty-index-fixes later to maint). * "git bugreport" tests did not test what it wanted to test, which has been corrected. (merge 1aa92b8500 ma/t0091-fixup later to maint). * Code snippets in a tutorial document no longer compiled after recent header shuffling, which have been corrected. (merge bbd7c7b7c0 vd/adjust-mfow-doc-to-updated-headers later to maint). * "git ls-files '(attr:X)D/'" that triggers the common prefix optimization codepath failed to read from "D/.gitattributes", which has been corrected. (merge f4a8fde057 jc/pathspec-match-with-common-prefix later to maint). * "git fsck --no-progress" still spewed noise from the commit-graph subsystem, which has been corrected. (merge 9281cd07f0 tb/fsck-no-progress later to maint). * Various offset computation in the code that accesses the packfiles and other data in the object layer has been hardened against arithmetic overflow, especially on 32-bit systems. (merge 9a25cad7e0 tb/object-access-overflow-protection later to maint). * Names of MinGW header files are spelled in mixed case in some source files, but the build host can be using case sensitive filesystem with header files with their name spelled in all lowercase. (merge 4a53d0d0bc mh/mingw-case-sensitive-build later to maint). * Update message mark-up for i18n in "git bundle". (merge bbb6acd998 dk/bundle-i18n-more later to maint). * "git tag --list --points-at X" showed tags that directly refers to object X, but did not list a tag that points at such a tag, which has been corrected. * "./configure --with-expat=no" did not work as a way to refuse use of the expat library on a system with the library installed, which has been corrected. (merge fb8f7269c2 ah/autoconf-fixes later to maint). * When the user edits "rebase -i" todo file so that it starts with a "fixup", which would make it invalid, the command truncated the rest of the file before giving an error and returning the control back to the user. Stop truncating to make it easier to correct such a malformed todo file. (merge 9645a087c2 ah/sequencer-rewrite-todo-fix later to maint). * Rewrite the description of giving a custom command to the submodule..update configuration variable. (merge 7cebc5bd78 pv/doc-submodule-update-settings later to maint). * Adjust to OpenSSL 3+, which deprecates its SHA-1 functions based on its traditional API, by using its EVP API instead. (merge bda9c12073 ew/hash-with-openssl-evp later to maint). * Exclude "." from the set of characters to be removed from the beginning and the end of the human-readable name. (merge 1c04cb0744 bc/ident-dot-is-no-longer-crud-letter later to maint). * "git bisect visualize" stopped running "gitk" on Git for Windows when the command was reimplemented in C around Git 2.34 timeframe. This has been corrected. (merge fff1594fa7 ma/locate-in-path-for-windows later to maint). * "git rebase -i" with a series of squash/fixup, when one of the steps stopped in conflicts and ended up getting skipped, did not handle the accumulated commit log messages, which has been corrected. (merge 6ce7afe163 pw/rebase-skip-commit-message-fix later to maint). * Adjust to newer Term::ReadLine to prevent it from breaking the interactive prompt code in send-email. (merge c016726c2d jk/send-email-with-new-readline later to maint). * Windows updates. (merge 0050f8e401 ds/maintenance-on-windows-fix later to maint). * Correct use of lstat() that assumed a failing call would not clobber the statbuf. (merge 72695d8214 st/mv-lstat-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 51f9d2e563 sa/doc-ls-remote later to maint). (merge c6d26a9dda jk/format-patch-message-id-unleak later to maint). (merge f7e063f326 ps/fetch-cleanups later to maint). (merge e4cf013468 tl/quote-problematic-arg-for-clarity later to maint). (merge 20025fdfc7 tz/test-ssh-verifytime-fix later to maint). (merge e48a21df65 tz/test-fix-pthreads-prereq later to maint). (merge 68b51172e3 mh/commit-reach-get-reachable-plug-leak later to maint). (merge aeee1408ce kh/use-default-notes-doc later to maint). (merge 3b8724bce6 jc/test-modernization later to maint). (merge 447a3b7331 jc/test-modernization-2 later to maint). (merge d57fa7fc73 la/doc-interpret-trailers later to maint). (merge 548afb0d9a la/docs-typofixes later to maint). (merge 3744ffcbcd rs/doc-ls-tree-hex-literal later to maint). (merge 6c26da8404 mh/credential-erase-improvements later to maint). (merge 78e56cff69 tz/lib-gpg-prereq-fix later to maint). (merge 80d32e84b5 rj/leakfixes later to maint). (merge 0a868031ed pb/complete-diff-options later to maint). (merge d4f28279ad jc/doc-hash-object-types later to maint). (merge 1876a5ae15 ks/t4205-test-describe-with-abbrev-fix later to maint). (merge 6e6a529b57 jk/fsck-indices-in-worktrees later to maint). (merge 3e81b896f7 rs/packet-length-simplify later to maint). (merge 4c9cb51fe7 mh/doc-credential-helpers later to maint). (merge 3437f549dd jr/gitignore-doc-example-markup later to maint). (merge 947ebd62a0 jc/am-parseopt-fix later to maint). (merge e12cb98e1e jc/branch-parseopt-fix later to maint). (merge d6f598e443 jc/gitignore-doc-pattern-markup later to maint). (merge a2dad4868b jc/transport-parseopt-fix later to maint). (merge 68cbb20e73 jc/parse-options-show-branch later to maint). (merge 3821eb6c3d jc/parse-options-reset later to maint). (merge c48af99a3e bb/trace2-comment-fix later to maint). (merge c95ae3ff9c rs/describe-parseopt-fix later to maint). (merge 36f76d2a25 rs/pack-objects-parseopt-fix later to maint). (merge 30c8c55cbf jc/tree-walk-drop-base-offset later to maint). (merge d089a06421 rs/bundle-parseopt-cleanup later to maint). (merge 823839bda1 ew/sha256-gcrypt-leak-fixes later to maint). (merge a5c01603b3 bc/ignore-clangd-cache later to maint). (merge 12009a182b js/allow-t4000-to-be-indented-with-spaces later to maint). (merge b3dcd24b8a jc/send-email-pre-process-fix later to maint). ---------------------------------------------------------------- Changes since v2.41.0 are as follows: Adam Majer (1): doc: sha256 is no longer experimental Alejandro R. Sedeño (1): statinfo.h: move DTYPE defines from dir.h Alex Henrie (4): wt-status: don't show divergence advice when committing remote: don't imply that integration is always required before pushing push: don't imply that integration is always required before pushing sequencer: finish parsing the todo list despite an invalid first line Andreas Herrmann (3): configure.ac: don't overwrite NO_EXPAT option configure.ac: don't overwrite NO_CURL option configure.ac: always save NO_ICONV to config.status Beat Bolli (2): trace2: fix a comment wrapper: use trace2 counters to collect fsync stats Calvin Wan (13): strbuf: clarify API boundary strbuf: clarify dependency abspath: move related functions to abspath credential-store: move related functions to credential-store file object-name: move related functions to object-name path: move related function to path strbuf: remove global variable git-compat-util: move strbuf.c funcs to its header git-compat-util: move wrapper.c funcs to its header sane-ctype.h: create header for sane-ctype macros kwset: move translation table from ctype treewide: remove unnecessary includes for wrapper.h git-compat-util: move alloc macros to git-compat-util.h D. Ben Knoble (2): i18n: mark more bundle.c strings for translation t4002: fix "diff can read from stdin" syntax Derrick Stolee (7): add: check color.ui for interactive add add: test use of brackets when color is disabled repository: create disable_replace_refs() replace-objects: create wrapper around setting repository: create read_replace_refs setting packfile: delete .idx files before .pack files builtin/repack.c: only repack `.pack`s that exist Elijah Newren (28): init-db: document existing bug with core.bare in template config init-db: remove unnecessary global variable init-db, clone: change unnecessary global into passed parameter setup: adopt shared init-db & clone code read-cache: move shared commit and ls-files code add: modify add_files_to_cache() to avoid globals read-cache: move shared add/checkout/commit code statinfo: move stat_{data,validity} functions from cache/read-cache run-command.h: move declarations for run-command.c from cache.h name-hash.h: move declarations for name-hash.c from cache.h sparse-index.h: move declarations for sparse-index.c from cache.h preload-index.h: move declarations for preload-index.c from elsewhere diff.h: move declaration for global in diff.c from cache.h merge.h: move declarations for merge.c from cache.h repository.h: move declaration of the_index from cache.h read-cache*.h: move declarations for read-cache.c functions from cache.h cache.h: remove this no-longer-used header log-tree: replace include of revision.h with simple forward declaration repository: remove unnecessary include of path.h diff.h: remove unnecessary include of oidset.h list-objects-filter-options.h: remove unneccessary include builtin.h: remove unneccessary includes git-compat-util.h: remove unneccessary include of wildmatch.h merge-ll: rename from ll-merge khash: name the structs that khash declares object-store-ll.h: split this header out of object-store.h hash-ll, hashmap: move oidhash() to hash-ll fsmonitor-ll.h: split this header out of fsmonitor.h Eric Sunshine (1): fsck: avoid misleading variable name Eric Wong (5): sha256/gcrypt: fix build with SANITIZE=leak sha256/gcrypt: fix memory leak with SHA-256 repos sha256/gcrypt: die on gcry_md_open failures sha256: avoid functions deprecated in OpenSSL 3+ avoid SHA-1 functions deprecated in OpenSSL 3+ Glen Choo (16): cocci: add headings to and reword README cocci: codify authoring and reviewing practices setup.c: don't setup in discover_git_directory() config: don't BUG when both kvi and source are set config: inline git_color_default_config urlmatch.h: use config_fn_t type config: add ctx arg to config_fn_t config.c: pass ctx in configsets config: pass ctx with config files config.c: pass ctx with CLI config trace2: plumb config kvi config: pass kvi to die_bad_number() config.c: remove config_reader from configsets config: add kvi.path, use it to evaluate includes config: pass source to config_parser_event_fn_t mailmap: change primary address for Glen Choo Han Young (1): blame: allow --contents to work with bare repo Jacob Abel (11): worktree add: include -B in usage docs t2400: cleanup created worktree in test t2400: refactor "worktree add" opt exclusion tests t2400: add tests to verify --quiet worktree add: add --orphan flag worktree add: introduce "try --orphan" hint worktree add: extend DWIM to infer --orphan worktree add: emit warn when there is a bad HEAD t2400: drop no-op `--sq` from rev-parse call builtin/worktree.c: convert tab in advice to space t2400: rewrite regex to avoid unintentional PCRE Jacob Keller (1): fix cherry-pick/revert status when doing multiple commits Jan Klötzke (1): ref-filter: handle nested tags in --points-at option Jeff King (40): format-patch: free rev.message_id when exiting format-patch: free elements of rev.ref_message_ids list pathspec: factor out magic-to-name function diff: factor out --follow pathspec check diff: detect pathspec magic not supported by --follow ci: use clang for ASan/UBSan checks ci: run ASan/UBSan in a single job ci: drop linux-clang job commit: pass --no-divider to interpret-trailers http: handle both "h2" and "h2h3" in curl info lines var: mark unused parameters in git_var callbacks imap-send: use server conf argument in setup_curl() imap-send: drop unused parameter from imap_cmd_cb callback imap-send: drop unused fields from imap_cmd_cb refs.c: rename `ref_filter` ref-filter.h: provide `REF_FILTER_INIT` ref-filter: clear reachable list pointers after freeing ref-filter: add `ref_filter_clear()` ref-filter.c: parameterize match functions over patterns test-ref-store: drop unimplemented reflog-expire command do_for_each_ref_helper(): mark unused repository parameter http: mark unused parameters in curl callbacks http-push: mark unused parameter in xml callback am: mark unused keep_cr parameters count-objects: mark unused parameter in alternates callback revisions: drop unused "opt" parameter in "tweak" callbacks fsck: mark unused parameters in various fsck callbacks merge-tree: mark unused parameter in traverse callback replace: mark unused parameter in ref callback replace: mark unused parameter in each_mergetag_fn callback rev-parse: mark unused parameter in for_each_abbrev callback tag: mark unused parameters in each_tag_name_fn callbacks t/helper: mark unused callback void data parameters ref-filter: avoid parsing tagged objects in match_points_at() ref-filter: avoid parsing non-tags in match_points_at() ref-filter: simplify return type of match_points_at send-email: drop FakeTerm hack send-email: avoid creating more than one Term::ReadLine object repack: free geometry struct t4053: avoid writing to unopened pipe Johan Ruokangas (1): gitignore.txt: use backticks instead of double quotes Johannes Schindelin (6): do_read_index(): always mark index as initialized unless erroring out split-index: accept that a base index can be empty commit -a -m: allow the top-level tree to become empty again t0040: declare non-tab indentation to be okay in this script win32: add a helper to run `git.exe` without a foreground window git maintenance: avoid console window in scheduled tasks on Windows John Cai (34): docs: clarify git-pack-refs --all will pack all refs pack-refs: teach --exclude option to exclude refs from being packed pack-refs: teach pack-refs --include option t0000-basic: modernize test format t0030-stripspace: modernize test format t3210-pack-refs: modernize test format t1001-read-tree-m-2way: modernize test format t1002-read-tree-m-u-2way: modernize test format t1006-cat-file: modernize test format t3500-cherry: modernize test format t3700-add: modernize test format t3903-stash: modernize test format t4002-diff-basic: modernize test format t4003-diff-rename-1: modernize test format t4004-diff-rename-symlink: modernize test format t4202-log: modernize test format t4206-log-follow-harder-copies: modernize test format t5300-pack-object: modernize test format t5301-sliding-window: modernize test format t5303-pack-corruption-resilience: modernize test format t5306-pack-nobase: modernize test format t6050-replace: modernize test format t7101-reset-empty-subdirs: modernize test format t7110-reset-merge: modernize test format t7111-reset-table: modernize test format t7201-co: modernize test format t7508-status: modernize test format t7600-merge: modernize test format t7700-repack: modernize test format t9100-git-svn-basic: modernize test format t9104-git-svn-follow-parent: modernize test format t9200-git-cvsexportcommit: modernize test format t9400-git-cvsserver-server: modernize test format docs: add git hash-object -t option's possible values Jonathan Tan (1): CodingGuidelines: use octal escapes, not hex Josip Sokcevic (1): diff-lib: honor override_submodule_config flag bit Junio C Hamano (47): diff: fix interaction between the "-s" option and other options show-branch doc: say , not Start the 2.42 cycle The second batch for 2.42 The third batch ll-merge: killing the external merge driver aborts the merge The fourth batch t6406: skip "external merge driver getting killed by a signal" test on Windows The fifth batch The sixth batch The seventh batch The eighth batch t6135: attr magic with path pattern tree-walk: lose base_offset that is never used in tree_entry_interesting tree-walk: drop unused base_offset from do_match() The ninth batch dir: match "attr" pathspec magic with correct paths The tenth batch The eleventh batch The twelfth batch gitignore.txt: mark up explanation of patterns consistently am: simplify parsing of "--[no-]keep-cr" branch: reject "--no-all" and "--no-remotes" early parse-options: introduce OPT_IPVERSION() fetch: reject --no-ipv[46] show-branch: --no-sparse should give dense output short help: allow multi-line opthelp remote: simplify "remote add --tags" help text short help: allow a gap smaller than USAGE_GAP show-branch: reject --[no-](topo|date)-order reset: reject --no-(mixed|soft|hard|merge|keep) option The thirteenth batch branch: update the message to refuse touching a branch in-use hex: retire get_sha1_hex() The fourteenth batch SubmittingPatches: choice of base for fixing an older maintenance track The fifteenth batch SubmittingPatches: explain why 'next' and above are inappropriate base SubmittingPatches: use of older maintenance tracks is an exception The sixteenth batch MyFirstContribution: refrain from self-iterating too much The seventeenth batch The eighteenth batch Git 2.42-rc0 A few more topics before -rc1 Git 2.42-rc1 Git 2.42-rc2 Kousik Sanagavarapu (5): t/lib-gpg: introduce new prereq GPG2 ref-filter: add new "signature" atom t4205: correctly test %(describe:abbrev=...) ref-filter: add multiple-option parsing functions ref-filter: add new "describe" atom Kristoffer Haugsbakk (5): doc: tag: document `TAG_EDITMSG` t/t7004-tag: add regression test for successful tag creation tag: keep the message file in case ref transaction fails notes: update documentation for `use_default_notes` notes: move the documentation to the struct Linus Arver (15): docs: typofixes doc: trailer: fix grammar doc: trailer: swap verb order doc: trailer: drop "commit message part" phrasing doc: trailer: examples: avoid the word "message" by itself doc: trailer: remove redundant phrasing doc: trailer: use angle brackets for and doc: trailer..command: emphasize deprecation doc: trailer: mention 'key' in DESCRIPTION doc: trailer: add more examples in DESCRIPTION SubmittingPatches: reword awkward phrasing SubmittingPatches: discuss subsystems separately from git.git SubmittingPatches: de-emphasize branches as starting points SubmittingPatches: emphasize need to communicate non-default starting points SubmittingPatches: simplify guidance for choosing a starting point M Hickford (3): credential: avoid erasing distinct password credential: erase all matching credentials doc: gitcredentials: link to helper list Martin Ågren (1): t0091-bugreport.sh: actually verify some content of report Matthias Aßhauer (3): run-command: conditionally define locate_in_PATH() compat/mingw: implement a native locate_in_PATH() docs: update when `git bisect visualize` uses `gitk` Mike Hommey (2): commit-reach: fix memory leak in get_reachable_subset() mingw: use lowercase includes for some Windows headers Oswald Buddenhagen (2): advice: handle "rebase" in error_resolve_conflict() t9001: remove excessive GIT_SEND_EMAIL_NOTTY=1 Patrick Steinhardt (17): fetch: drop unused DISPLAY_FORMAT_UNKNOWN enum value fetch: drop unneeded NULL-check for `remote_ref` fetch: pass through `fetch_config` directly fetch: use `fetch_config` to store "fetch.prune" value fetch: use `fetch_config` to store "fetch.pruneTags" value fetch: use `fetch_config` to store "fetch.showForcedUpdates" value fetch: use `fetch_config` to store "fetch.recurseSubmodules" value fetch: use `fetch_config` to store "fetch.parallel" value fetch: use `fetch_config` to store "submodule.fetchJobs" value t1006: don't strip timestamps from expected results t1006: modernize test style to use `test_cmp` strbuf: provide CRLF-aware helper to read until a specified delimiter cat-file: simplify reading from standard input cat-file: add option '-Z' that delimits input and output with NUL revision: reorder `read_revisions_from_stdin()` revision: small readability improvement for reading from stdin revision: handle pseudo-opts in `--stdin` mode Petar Vutov (1): doc: highlight that .gitmodules does not support !command Philippe Blain (30): revisions.txt: use description list for special refs revisions.txt: document more special refs completion: complete REVERT_HEAD and BISECT_HEAD git-merge.txt: modernize word choice in "True merge" section Documentation: document AUTO_MERGE completion: complete AUTO_MERGE completion: add comments describing __git_diff_* globals completion: complete --break-rewrites completion: complete --cc completion: complete --combined-all-paths completion: complete --compact-summary completion: complete --default-prefix completion: complete --find-copies completion: complete --find-object completion: complete --find-renames completion: complete --function-context completion: complete --ignore-matching-lines completion: complete --irreversible-delete completion: complete --ita-invisible-in-index and --ita-visible-in-index completion: complete --line-prefix completion: complete --no-relative completion: complete --no-stat completion: complete --output completion: complete --output-indicator-{context,new,old} completion: complete --unified completion: complete --ws-error-highlight completion: move --pickaxe-{all,regex} to __git_diff_common_options completion: complete --diff-merges, its options and --no-diff-merges completion: complete --remerge-diff diff.c: mention completion above add_diff_options Phillip Wood (7): apply: improve error messages when reading patch diff --no-index: refuse to compare stdin to a directory diff --no-index: die on error reading stdin t4054: test diff --no-index with stdin diff --no-index: support reading from named pipes rebase --skip: fix commit message clean up when skipping squash t4053: avoid race when killing background processes René Scharfe (20): t1800: loosen matching of error message for bad shebang run-command: report exec error even on ENOENT ls-tree: fix documentation of %x format placeholder pretty: factor out expand_separator() strbuf: factor out strbuf_expand_step() replace strbuf_expand_dict_cb() with strbuf_expand_step() replace strbuf_expand() with strbuf_expand_step() strbuf: simplify strbuf_expand_literal_cb() ls-tree: simplify prefix handling pretty: avoid double negative in format_commit_item() pkt-line: add size parameter to packet_length() pretty: use strchr(3) in userformat_find_requirements() t6300: fix setup with GPGSSH but without GPG strbuf: use skip_prefix() in strbuf_addftime() ls-tree: fix --no-full-name describe: fix --no-exact-match pack-objects: fix --no-keep-true-parents pack-objects: fix --no-quiet bundle: use OPT_PASSTHRU_ARGV parse-options: disallow negating OPTION_SET_INT 0 Rubén Justo (11): config: fix a leak in git_config_copy_or_rename_section_in_file remote: fix a leak in query_matches_negative_refspec branch: fix a leak in dwim_and_setup_tracking branch: fix a leak in inherit_tracking branch: fix a leak in check_tracking_branch branch: fix a leak in setup_tracking rev-parse: fix a leak with --abbrev-ref branch: fix a leak in setup_tracking branch: fix a leak in cmd_branch config: fix a leak in git_config_copy_or_rename_section_in_file tests: mark as passing with SANITIZE=leak Sean Allred (5): show-ref doc: update for internal consistency ls-remote doc: remove redundant --tags example ls-remote doc: show peeled tags in examples ls-remote doc: explain what each example does ls-remote doc: document the output format Sebastian Thiel (1): mv: handle lstat() failure correctly Shuqi Liang (2): diff-tree: integrate with sparse index worktree: integrate with sparse-index Taylor Blau (53): object: add object_array initializer helper function pack-bitmap.c: extract `fill_in_bitmap()` pack-bitmap.c: use commit boundary during bitmap traversal builtin/submodule--helper.c: handle missing submodule URLs builtin/repack.c: only collect fully-formed packs reachable.c: extract `obj_is_recent()` gc: introduce `gc.recentObjectsHook` pack-bitmap.c: gracefully degrade on failure to load MIDX'd pack t7701: make annotated tag unreachable fsck: suppress commit-graph output with `--no-progress` fsck: suppress MIDX output with `--no-progress` commit-graph.c: extract `verify_one_commit_graph()` commit-graph.c: iteratively verify commit-graph chains commit-graph.c: pass progress to `verify_one_commit_graph()` commit-graph.c: avoid duplicated progress output during `verify` builtin/for-each-ref.c: add `--exclude` option refs: plumb `exclude_patterns` argument throughout refs/packed-backend.c: refactor `find_reference_location()` refs/packed-backend.c: implement jump lists to avoid excluded pattern(s) refs/packed-backend.c: add trace2 counters for jump list revision.h: store hidden refs in a `strvec` refs.h: let `for_each_namespaced_ref()` take excluded patterns refs.h: implement `hidden_refs_to_excludes()` builtin/receive-pack.c: avoid enumerating hidden references upload-pack.c: avoid enumerating hidden refs where possible ls-refs.c: avoid enumerating hidden refs where possible builtin/repack.c: avoid dir traversal in `collect_pack_filenames()` packfile.c: prevent overflow in `nth_packed_object_id()` packfile.c: prevent overflow in `load_idx()` packfile.c: use checked arithmetic in `nth_packed_object_offset()` midx.c: use `size_t`'s for fanout nr and alloc midx.c: prevent overflow in `nth_midxed_object_oid()` midx.c: prevent overflow in `nth_midxed_offset()` midx.c: store `nr`, `alloc` variables as `size_t`'s midx.c: prevent overflow in `write_midx_internal()` midx.c: prevent overflow in `fill_included_packs_batch()` pack-bitmap.c: ensure that eindex lookups don't overflow commit-graph.c: prevent overflow in `write_commit_graph_file()` commit-graph.c: prevent overflow in add_graph_to_chain() commit-graph.c: prevent overflow in `load_oid_from_graph()` commit-graph.c: prevent overflow in `fill_commit_graph_info()` commit-graph.c: prevent overflow in `fill_commit_in_graph()` commit-graph.c: prevent overflow in `load_tree_for_commit()` commit-graph.c: prevent overflow in `split_graph_merge_strategy()` commit-graph.c: prevent overflow in `merge_commit_graph()` commit-graph.c: prevent overflow in `write_commit_graph()` commit-graph.c: prevent overflow in `verify_commit_graph()` t/lib-commit-graph.sh: allow `graph_read_expect()` in sub-directories t/lib-commit-graph.sh: avoid directory change in `graph_git_behavior()` t5318: avoid top-level directory changes t5328: avoid top-level directory changes t/lib-commit-graph.sh: avoid sub-shell in `graph_git_behavior()` Documentation/RelNotes/2.42.0.txt: typofix Teng Long (8): surround %s with quotes when failed to lookup commit notes.c: cleanup 'strbuf_grow' call in 'append_edit' notes.c: use designated initializers for clarity t3321: add test cases about the notes stripspace behavior notes.c: introduce '--separator=' option notes.c: append separator instead of insert by pos notes.c: introduce "--[no-]stripspace" option notes: introduce "--no-separator" option Todd Zullinger (3): trace2 tests: fix PTHREADS prereq t/lib-gpg: fix ssh-keygen -Y check-novalidate with openssh-9.0 t/lib-gpg: require GPGSSH for GPGSSH_VERIFYTIME prereq Victoria Dye (3): config: use gitdir to get worktree config config: pass 'repo' directly to 'config_with_options()' repository: move 'repository_format_worktree_config' to repo scope Vinayak Dev (1): docs: add necessary headers to Documentation/MFOW.txt ZheNing Hu (1): ls-files: align format atoms with ls-tree brian m. carlson (9): t: add a function to check executable bit var: add support for listing the shell var: format variable structure with C99 initializers var: adjust memory allocation for strings attr: expose and rename accessor functions var: add attributes files locations var: add config file locations ident: don't consider '.' a crud gitignore: ignore clangd .cache directory [Less]
Posted 8 months ago by Johannes Schindelin
Dear Git users, I hereby announce that Git for Windows 2.42.0-rc1 is available from: https://github.com/git-for-windows/git/releases/tag/v2.42.0-rc1.windows.1 Changes since Git for Windows v2.41.0(3) (July 13th 2023) New Features * Comes ... [More] with Git v2.42.0-rc1. * Comes with cURL v8.2.1. * Comes with Git LFS v3.4.0. * Comes with OpenSSL v3.1.2. * Comes with Git Credential Manager v2.3.0. * Comes with OpenSSH v9.4.P1. Bug Fixes * When init.defaultBranch is changed manually in the system config, subsequent Git for Windows upgrades would overwrite that change. This has been fixed. * When running on a remote APFS share, Git would fail, which has been fixed. Git-2.42.0-rc1-64-bit.exe | 994b21a82f3589ab236a4015c17ba726c4e88d13e0a2d7c0f64c8707b7963f53 Git-2.42.0-rc1-32-bit.exe | 528ea5006d88c741b9420dc25f585bb260fd4eaad25ca79517959c3f41a4d060 PortableGit-2.42.0-rc1-64-bit.7z.exe | 812545fef82b298667fe9bf16265dfa81cfe5837552fc12adade21478069154d PortableGit-2.42.0-rc1-32-bit.7z.exe | c3112a975750214d62295a031d6d130b3eccab4a6867c9f333424e316c66e70a MinGit-2.42.0-rc1-64-bit.zip | 68ffdb6473814d393e0ebf8b3c3661fab92c9da27b22a37225fc22e4b0913176 MinGit-2.42.0-rc1-32-bit.zip | 848b9e93e69feafbc7d3ef213357de658eddc424e39e27945ee80340b21718b6 MinGit-2.42.0-rc1-busybox-64-bit.zip | 46af4ca35887c86952831b9ca6e0575c2f90e8e7039691cc15dde6cf9bb12bae MinGit-2.42.0-rc1-busybox-32-bit.zip | 2eb98594673d5211de7f85f0438e63912c6271ef8b3ea610253219628a0e61ec Git-2.42.0-rc1-64-bit.tar.bz2 | 53c2175cffc569227d54db263ea417f290a70d36a764ab6c5613ca8e1f32f385 Git-2.42.0-rc1-32-bit.tar.bz2 | 95f99c3e9e8d681cfe11d1eda9654bdffc087a79c2232e90f6ea38b40ed4d491 Ciao, Johannes [Less]
Posted 8 months ago by Junio C Hamano
A release candidate Git v2.42.0-rc1 is now available for testing at the usual places. It is comprised of 422 non-merge commits since v2.41.0, contributed by 63 people, 15 of which are new faces [*]. There are still some corners to be rounded before ... [More] everything is ready to go, but I've already extended -rc1 by a day, so let's not wait for the regression fixes we already know of but haven't got around to. They will be in 'master' before -rc2 is tagged. On the other hand, changes that are not about fixing new regressions introduced during this cycle are to be postponed until the next cycle. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/testing/ The following public repositories all have a copy of the 'v2.42.0-rc1' tag and the 'master' branch that the tag points at: url = https://git.kernel.org/pub/scm/git/git url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://github.com/gitster/git New contributors whose contributions weren't in v2.41.0 are as follows. Welcome to the Git development community! Adam Majer, Andreas Herrmann, Greg Alexander, Han Young, Jacob Abel, Jan Klötzke, Jim Pryor, Johan Ruokangas, Josh Sref, Josip Sokcevic, Louis Strous, Petar Vutov, Premek Vysoky, Tribo Dar, and Vinayak Dev. Returning contributors who helped this release are as follows. Thanks for your continued support. Alejandro R. Sedeño, Alex Henrie, Beat Bolli, brian m. carlson, Calvin Wan, Christian Couder, D. Ben Knoble, Derrick Stolee, Elijah Newren, Eric Sunshine, Eric Wong, Glen Choo, Hariom Verma, Jacob Keller, Jaydeep Das, Jeff King, Johannes Schindelin, John Cai, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kousik Sanagavarapu, Kristoffer Haugsbakk, Linus Arver, Martin Ågren, Matthew Hughes, Matthias Aßhauer, M Hickford, Michael Haggerty, Mike Hommey, Nsengiyumva Wilberforce, Patrick Steinhardt, Philippe Blain, Phillip Wood, Randall S. Becker, René Scharfe, Rubén Justo, Sean Allred, Shuqi Liang, SZEDER Gábor, Taylor Blau, Teng Long, Todd Zullinger, Toon Claes, Torsten Bögershausen, Victoria Dye, and ZheNing Hu. [*] We are counting not just the authorship contribution but issue reporting, mentoring, helping and reviewing that are recorded in the commit trailers. ---------------------------------------------------------------- Git v2.42 Release Notes (draft) =============================== UI, Workflows & Features * "git pack-refs" learns "--include" and "--exclude" to tweak the ref hierarchy to be packed using pattern matching. * 'git worktree add' learned how to create a worktree based on an orphaned branch with `--orphan`. * "git pack-objects" learned to invoke a new hook program that enumerates extra objects to be used as anchoring points to keep otherwise unreachable objects in cruft packs. * Add more "git var" for toolsmiths to learn various locations Git is configured with either via the configuration or hardcoded defaults. * 'git notes append' was taught '--separator' to specify string to insert between paragraphs. * The "git for-each-ref" family of commands learned placeholders related to GPG signature verification. * "git diff --no-index" learned to read from named pipes as if they were regular files, to allow "git diff <(process) <(substitution)" some shells support. * Help newbies by suggesting that there are cases where force-pushing is a valid and sensible thing to update a branch at a remote repository, rather than reconciling with merge/rebase. * "git blame --contents=file" has been taught to work in a bare repository. * "git branch -f X" to repoint the branch X said that X was "checked out" in another worktree, even when branch X was not and instead being bisected or rebased. The message was reworded to say the branch was "in use". * Tone down the warning on SHA-256 repositories being an experimental curiosity. We do not have support for them to interoperate with traditional SHA-1 repositories, but at this point, we do not plan to make breaking changes to SHA-256 repositories and there is no longer need for such a strongly phrased warning. Performance, Internal Implementation, Development Support etc. * "git diff-tree" has been taught to take advantage of the sparse-index feature. * Clang's sanitizer implementation seems to work better than GCC's. (merge d88d727143 jk/ci-use-clang-for-sanitizer-jobs later to maint). * The object traversal using reachability bitmap done by "pack-object" has been tweaked to take advantage of the fact that using "boundary" commits as representative of all the uninteresting ones can save quite a lot of object enumeration. * discover_git_directory() no longer touches the_repository. * "git worktree" learned to work better with sparse index feature. * When the external merge driver is killed by a signal, its output should not be trusted as a resolution with conflicts that is proposed by the driver, but the code did. * The set-up code for the get_revision() API now allows feeding options like --all and --not in the --stdin mode. * Move functions that are not about pure string manipulation out of strbuf.[ch] * "imap-send" codepaths got cleaned up to get rid of unused parameters. * Enumerating refs in the packed-refs file, while excluding refs that match certain patterns, has been optimized. * Mark-up unused parameters in the code so that we can eventually enable -Wunused-parameter by default. * Instead of inventing a custom counter variables for debugging, use existing trace2 facility in the fsync customization codepath. * "git branch --list --format=" and friends are taught a new "%(describe)" placeholder. * Clarify how to choose the starting point for a new topic in developer guidance document. * The implementation of "get_sha1_hex()" that reads a hexadecimal string that spells a full object name has been extended to cope with any hash function used in the repository, but the "sha1" in its name survived. Rename it to get_hash_hex(), a name that is more consistent within its friends like get_hash_hex_algop(). * Command line parser fix, and a small parse-options API update. Fixes since v2.41 ----------------- * "git tag" learned to leave the "$GIT_DIR/TAG_EDITMSG" file when the command failed, so that the user can salvage what they typed. (merge 08c12ec1d0 kh/keep-tag-editmsg-upon-failure later to maint). * The "-s" (silent, squelch) option of the "diff" family of commands did not interact with other options that specify the output format well. This has been cleaned up so that it will clear all the formatting options given before. (merge 9d484b92ed jc/diff-s-with-other-options later to maint). * Update documentation regarding Coccinelle patches. (merge 3bd0097cfc gc/doc-cocci-updates later to maint). * Some atoms that can be used in "--format=" for "git ls-tree" were not supported by "git ls-files", even though they were relevant in the context of the latter. (merge 4d28c4f75f zh/ls-files-format-atoms later to maint). * Document more pseudo-refs and teach the command line completion machinery to complete AUTO_MERGE. (merge 982ff3a649 pb/complete-and-document-auto-merge-and-friends later to maint). * "git submodule" code trusted the data coming from the config (and the in-tree .gitmodules file) too much without validating, leading to NULL dereference if the user mucks with a repository (e.g. submodule..url is removed). This has been corrected. (merge fbc806acd1 tb/submodule-null-deref-fix later to maint). * The value of config.worktree is per-repository, but has been kept in a singleton global variable per process. This has been OK as most Git operations interacted with a single repository at a time, but not right for operations like recursive "grep" that want to access multiple repositories from a single process without forking. The global variable has been eliminated and made into a member in the per-repository data structure. (merge 3867f6d650 vd/worktree-config-is-per-repository later to maint). * "git [-c log.follow=true] log [--follow] ':(glob)f**'" used to barf. (merge 8260bc5902 jk/log-follow-with-non-literal-pathspec later to maint). * Introduce a mechanism to disable replace refs globally and per repository. (merge 9c7d1b057f ds/disable-replace-refs later to maint). * "git cat-file --batch" and friends learned "-Z" that uses NUL delimiter for both input and output. (merge f79e18849b ps/cat-file-null-output later to maint). * The reimplemented "git add -i" did not honor color.ui configuration. (merge 6f74648cea ds/add-i-color-configuration-fix later to maint). * Compilation fix for platforms without D_TYPE in struct dirent. (merge 03bf92b9bf as/dtype-compilation-fix later to maint). * Suggest to refrain from using hex literals that are non-portable when writing printf(1) format strings. (merge f0b68f0546 jt/doc-use-octal-with-printf later to maint). * Simplify error message when run-command fails to start a command. (merge 6d224ac286 rs/run-command-exec-error-on-noent later to maint). * Gracefully deal with a stale MIDX file that lists a packfile that no longer exists. (merge 06f3867865 tb/open-midx-bitmap-fallback later to maint). * Even when diff.ignoreSubmodules tells us to ignore submodule changes, "git commit" with an index that already records changes to submodules should include the submodule changes in the resulting commit, but it did not. (merge 5768478edc js/defeat-ignore-submodules-config-with-explicit-addition later to maint). * When "git commit --trailer=..." invokes the interpret-trailers machinery, it knows what it feeds to interpret-trailers is a full log message without any patch, but failed to express that by passing the "--no-divider" option, which has been corrected. (merge be3d654343 jk/commit-use-no-divider-with-interpret-trailers later to maint). * Avoid breakage of "git pack-objects --cruft" due to inconsistency between the way the code enumerates packfiles in the repository. (merge 73320e49ad tb/collect-pack-filenames-fix later to maint). * We create .pack and then .idx, we consider only packfiles that have .idx usable (those with only .pack are not ready yet), so we should remove .idx before removing .pack for consistency. (merge 0dd1324a73 ds/remove-idx-before-pack later to maint). * Partially revert a sanity check that the rest of the config code was not ready, to avoid triggering it in a corner case. (merge a53f43f900 gc/config-partial-submodule-kvi-fix later to maint). * "git apply" punts when it is fed too large a patch input; the error message it gives when it happens has been clarified. (merge 42612e18d2 pw/apply-too-large later to maint). * During a cherry-pick or revert session that works on multiple commits, "git status" did not give correct information, which has been corrected. (merge a096a889f4 jk/cherry-pick-revert-status later to maint). * A few places failed to differentiate the case where the index is truly empty (nothing added) and we haven't yet read from the on-disk index file, which have been corrected. (merge 2ee045eea1 js/empty-index-fixes later to maint). * "git bugreport" tests did not test what it wanted to test, which has been corrected. (merge 1aa92b8500 ma/t0091-fixup later to maint). * Code snippets in a tutorial document no longer compiled after recent header shuffling, which have been corrected. (merge bbd7c7b7c0 vd/adjust-mfow-doc-to-updated-headers later to maint). * "git ls-files '(attr:X)D/'" that triggers the common prefix optimization codepath failed to read from "D/.gitattributes", which has been corrected. (merge f4a8fde057 jc/pathspec-match-with-common-prefix later to maint). * "git fsck --no-progress" still spewed noise from the commit-graph subsystem, which has been corrected. (merge 9281cd07f0 tb/fsck-no-progress later to maint). * Various offset computation in the code that accesses the packfiles and other data in the object layer has been hardened against arithmetic overflow, especially on 32-bit systems. (merge 9a25cad7e0 tb/object-access-overflow-protection later to maint). * Names of MinGW header files are spelled in mixed case in some source files, but the build host can be using case sensitive filesystem with header files with their name spelled in all lowercase. (merge 4a53d0d0bc mh/mingw-case-sensitive-build later to maint). * Update message mark-up for i18n in "git bundle". (merge bbb6acd998 dk/bundle-i18n-more later to maint). * "git tag --list --points-at X" showed tags that directly refers to object X, but did not list a tag that points at such a tag, which has been corrected. * "./configure --with-expat=no" did not work as a way to refuse use of the expat library on a system with the library installed, which has been corrected. (merge fb8f7269c2 ah/autoconf-fixes later to maint). * When the user edits "rebase -i" todo file so that it starts with a "fixup", which would make it invalid, the command truncated the rest of the file before giving an error and returning the control back to the user. Stop truncating to make it easier to correct such a malformed todo file. (merge 9645a087c2 ah/sequencer-rewrite-todo-fix later to maint). * Rewrite the description of giving a custom command to the submodule..update configuration variable. (merge 7cebc5bd78 pv/doc-submodule-update-settings later to maint). * Adjust to OpenSSL 3+, which deprecates its SHA-1 functions based on its traditional API, by using its EVP API instead. (merge bda9c12073 ew/hash-with-openssl-evp later to maint). * Exclude "." from the set of characters to be removed from the beginning and the end of the human-readable name. (merge 1c04cb0744 bc/ident-dot-is-no-longer-crud-letter later to maint). * "git bisect visualize" stopped running "gitk" on Git for Windows when the command was reimplemented in C around Git 2.34 timeframe. This has been corrected. (merge fff1594fa7 ma/locate-in-path-for-windows later to maint). * "git rebase -i" with a series of squash/fixup, when one of the steps stopped in conflicts and ended up getting skipped, did not handle the accumulated commit log messages, which has been corrected. (merge 6ce7afe163 pw/rebase-skip-commit-message-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 51f9d2e563 sa/doc-ls-remote later to maint). (merge c6d26a9dda jk/format-patch-message-id-unleak later to maint). (merge f7e063f326 ps/fetch-cleanups later to maint). (merge e4cf013468 tl/quote-problematic-arg-for-clarity later to maint). (merge 20025fdfc7 tz/test-ssh-verifytime-fix later to maint). (merge e48a21df65 tz/test-fix-pthreads-prereq later to maint). (merge 68b51172e3 mh/commit-reach-get-reachable-plug-leak later to maint). (merge aeee1408ce kh/use-default-notes-doc later to maint). (merge 3b8724bce6 jc/test-modernization later to maint). (merge 447a3b7331 jc/test-modernization-2 later to maint). (merge d57fa7fc73 la/doc-interpret-trailers later to maint). (merge 548afb0d9a la/docs-typofixes later to maint). (merge 3744ffcbcd rs/doc-ls-tree-hex-literal later to maint). (merge 6c26da8404 mh/credential-erase-improvements later to maint). (merge 78e56cff69 tz/lib-gpg-prereq-fix later to maint). (merge 80d32e84b5 rj/leakfixes later to maint). (merge 0a868031ed pb/complete-diff-options later to maint). (merge d4f28279ad jc/doc-hash-object-types later to maint). (merge 1876a5ae15 ks/t4205-test-describe-with-abbrev-fix later to maint). (merge 6e6a529b57 jk/fsck-indices-in-worktrees later to maint). (merge 3e81b896f7 rs/packet-length-simplify later to maint). (merge 4c9cb51fe7 mh/doc-credential-helpers later to maint). (merge 3437f549dd jr/gitignore-doc-example-markup later to maint). (merge 947ebd62a0 jc/am-parseopt-fix later to maint). (merge e12cb98e1e jc/branch-parseopt-fix later to maint). (merge d6f598e443 jc/gitignore-doc-pattern-markup later to maint). (merge a2dad4868b jc/transport-parseopt-fix later to maint). (merge 68cbb20e73 jc/parse-options-show-branch later to maint). (merge 3821eb6c3d jc/parse-options-reset later to maint). (merge c48af99a3e bb/trace2-comment-fix later to maint). (merge c95ae3ff9c rs/describe-parseopt-fix later to maint). (merge 36f76d2a25 rs/pack-objects-parseopt-fix later to maint). (merge 30c8c55cbf jc/tree-walk-drop-base-offset later to maint). (merge d089a06421 rs/bundle-parseopt-cleanup later to maint). (merge 823839bda1 ew/sha256-gcrypt-leak-fixes later to maint). (merge a5c01603b3 bc/ignore-clangd-cache later to maint). ---------------------------------------------------------------- Changes since v2.41.0 are as follows: Adam Majer (1): doc: sha256 is no longer experimental Alejandro R. Sedeño (1): statinfo.h: move DTYPE defines from dir.h Alex Henrie (4): wt-status: don't show divergence advice when committing remote: don't imply that integration is always required before pushing push: don't imply that integration is always required before pushing sequencer: finish parsing the todo list despite an invalid first line Andreas Herrmann (3): configure.ac: don't overwrite NO_EXPAT option configure.ac: don't overwrite NO_CURL option configure.ac: always save NO_ICONV to config.status Beat Bolli (2): trace2: fix a comment wrapper: use trace2 counters to collect fsync stats Calvin Wan (13): strbuf: clarify API boundary strbuf: clarify dependency abspath: move related functions to abspath credential-store: move related functions to credential-store file object-name: move related functions to object-name path: move related function to path strbuf: remove global variable git-compat-util: move strbuf.c funcs to its header git-compat-util: move wrapper.c funcs to its header sane-ctype.h: create header for sane-ctype macros kwset: move translation table from ctype treewide: remove unnecessary includes for wrapper.h git-compat-util: move alloc macros to git-compat-util.h D. Ben Knoble (2): i18n: mark more bundle.c strings for translation t4002: fix "diff can read from stdin" syntax Derrick Stolee (7): add: check color.ui for interactive add add: test use of brackets when color is disabled repository: create disable_replace_refs() replace-objects: create wrapper around setting repository: create read_replace_refs setting packfile: delete .idx files before .pack files builtin/repack.c: only repack `.pack`s that exist Elijah Newren (28): init-db: document existing bug with core.bare in template config init-db: remove unnecessary global variable init-db, clone: change unnecessary global into passed parameter setup: adopt shared init-db & clone code read-cache: move shared commit and ls-files code add: modify add_files_to_cache() to avoid globals read-cache: move shared add/checkout/commit code statinfo: move stat_{data,validity} functions from cache/read-cache run-command.h: move declarations for run-command.c from cache.h name-hash.h: move declarations for name-hash.c from cache.h sparse-index.h: move declarations for sparse-index.c from cache.h preload-index.h: move declarations for preload-index.c from elsewhere diff.h: move declaration for global in diff.c from cache.h merge.h: move declarations for merge.c from cache.h repository.h: move declaration of the_index from cache.h read-cache*.h: move declarations for read-cache.c functions from cache.h cache.h: remove this no-longer-used header log-tree: replace include of revision.h with simple forward declaration repository: remove unnecessary include of path.h diff.h: remove unnecessary include of oidset.h list-objects-filter-options.h: remove unneccessary include builtin.h: remove unneccessary includes git-compat-util.h: remove unneccessary include of wildmatch.h merge-ll: rename from ll-merge khash: name the structs that khash declares object-store-ll.h: split this header out of object-store.h hash-ll, hashmap: move oidhash() to hash-ll fsmonitor-ll.h: split this header out of fsmonitor.h Eric Sunshine (1): fsck: avoid misleading variable name Eric Wong (5): sha256/gcrypt: fix build with SANITIZE=leak sha256/gcrypt: fix memory leak with SHA-256 repos sha256/gcrypt: die on gcry_md_open failures sha256: avoid functions deprecated in OpenSSL 3+ avoid SHA-1 functions deprecated in OpenSSL 3+ Glen Choo (16): cocci: add headings to and reword README cocci: codify authoring and reviewing practices setup.c: don't setup in discover_git_directory() config: don't BUG when both kvi and source are set config: inline git_color_default_config urlmatch.h: use config_fn_t type config: add ctx arg to config_fn_t config.c: pass ctx in configsets config: pass ctx with config files config.c: pass ctx with CLI config trace2: plumb config kvi config: pass kvi to die_bad_number() config.c: remove config_reader from configsets config: add kvi.path, use it to evaluate includes config: pass source to config_parser_event_fn_t mailmap: change primary address for Glen Choo Han Young (1): blame: allow --contents to work with bare repo Jacob Abel (11): worktree add: include -B in usage docs t2400: cleanup created worktree in test t2400: refactor "worktree add" opt exclusion tests t2400: add tests to verify --quiet worktree add: add --orphan flag worktree add: introduce "try --orphan" hint worktree add: extend DWIM to infer --orphan worktree add: emit warn when there is a bad HEAD t2400: drop no-op `--sq` from rev-parse call builtin/worktree.c: convert tab in advice to space t2400: rewrite regex to avoid unintentional PCRE Jacob Keller (1): fix cherry-pick/revert status when doing multiple commits Jan Klötzke (1): ref-filter: handle nested tags in --points-at option Jeff King (36): format-patch: free rev.message_id when exiting format-patch: free elements of rev.ref_message_ids list pathspec: factor out magic-to-name function diff: factor out --follow pathspec check diff: detect pathspec magic not supported by --follow ci: use clang for ASan/UBSan checks ci: run ASan/UBSan in a single job ci: drop linux-clang job commit: pass --no-divider to interpret-trailers http: handle both "h2" and "h2h3" in curl info lines var: mark unused parameters in git_var callbacks imap-send: use server conf argument in setup_curl() imap-send: drop unused parameter from imap_cmd_cb callback imap-send: drop unused fields from imap_cmd_cb refs.c: rename `ref_filter` ref-filter.h: provide `REF_FILTER_INIT` ref-filter: clear reachable list pointers after freeing ref-filter: add `ref_filter_clear()` ref-filter.c: parameterize match functions over patterns test-ref-store: drop unimplemented reflog-expire command do_for_each_ref_helper(): mark unused repository parameter http: mark unused parameters in curl callbacks http-push: mark unused parameter in xml callback am: mark unused keep_cr parameters count-objects: mark unused parameter in alternates callback revisions: drop unused "opt" parameter in "tweak" callbacks fsck: mark unused parameters in various fsck callbacks merge-tree: mark unused parameter in traverse callback replace: mark unused parameter in ref callback replace: mark unused parameter in each_mergetag_fn callback rev-parse: mark unused parameter in for_each_abbrev callback tag: mark unused parameters in each_tag_name_fn callbacks t/helper: mark unused callback void data parameters ref-filter: avoid parsing tagged objects in match_points_at() ref-filter: avoid parsing non-tags in match_points_at() ref-filter: simplify return type of match_points_at Johan Ruokangas (1): gitignore.txt: use backticks instead of double quotes Johannes Schindelin (3): do_read_index(): always mark index as initialized unless erroring out split-index: accept that a base index can be empty commit -a -m: allow the top-level tree to become empty again John Cai (34): docs: clarify git-pack-refs --all will pack all refs pack-refs: teach --exclude option to exclude refs from being packed pack-refs: teach pack-refs --include option t0000-basic: modernize test format t0030-stripspace: modernize test format t3210-pack-refs: modernize test format t1001-read-tree-m-2way: modernize test format t1002-read-tree-m-u-2way: modernize test format t1006-cat-file: modernize test format t3500-cherry: modernize test format t3700-add: modernize test format t3903-stash: modernize test format t4002-diff-basic: modernize test format t4003-diff-rename-1: modernize test format t4004-diff-rename-symlink: modernize test format t4202-log: modernize test format t4206-log-follow-harder-copies: modernize test format t5300-pack-object: modernize test format t5301-sliding-window: modernize test format t5303-pack-corruption-resilience: modernize test format t5306-pack-nobase: modernize test format t6050-replace: modernize test format t7101-reset-empty-subdirs: modernize test format t7110-reset-merge: modernize test format t7111-reset-table: modernize test format t7201-co: modernize test format t7508-status: modernize test format t7600-merge: modernize test format t7700-repack: modernize test format t9100-git-svn-basic: modernize test format t9104-git-svn-follow-parent: modernize test format t9200-git-cvsexportcommit: modernize test format t9400-git-cvsserver-server: modernize test format docs: add git hash-object -t option's possible values Jonathan Tan (1): CodingGuidelines: use octal escapes, not hex Josip Sokcevic (1): diff-lib: honor override_submodule_config flag bit Junio C Hamano (46): diff: fix interaction between the "-s" option and other options show-branch doc: say , not Start the 2.42 cycle The second batch for 2.42 The third batch ll-merge: killing the external merge driver aborts the merge The fourth batch t6406: skip "external merge driver getting killed by a signal" test on Windows The fifth batch The sixth batch The seventh batch The eighth batch t6135: attr magic with path pattern tree-walk: lose base_offset that is never used in tree_entry_interesting tree-walk: drop unused base_offset from do_match() The ninth batch dir: match "attr" pathspec magic with correct paths The tenth batch The eleventh batch The twelfth batch gitignore.txt: mark up explanation of patterns consistently am: simplify parsing of "--[no-]keep-cr" branch: reject "--no-all" and "--no-remotes" early parse-options: introduce OPT_IPVERSION() fetch: reject --no-ipv[46] show-branch: --no-sparse should give dense output short help: allow multi-line opthelp remote: simplify "remote add --tags" help text short help: allow a gap smaller than USAGE_GAP show-branch: reject --[no-](topo|date)-order reset: reject --no-(mixed|soft|hard|merge|keep) option The thirteenth batch branch: update the message to refuse touching a branch in-use hex: retire get_sha1_hex() The fourteenth batch SubmittingPatches: choice of base for fixing an older maintenance track The fifteenth batch SubmittingPatches: explain why 'next' and above are inappropriate base SubmittingPatches: use of older maintenance tracks is an exception The sixteenth batch MyFirstContribution: refrain from self-iterating too much The seventeenth batch The eighteenth batch Git 2.42-rc0 A few more topics before -rc1 Git 2.42-rc1 Kousik Sanagavarapu (5): t/lib-gpg: introduce new prereq GPG2 ref-filter: add new "signature" atom t4205: correctly test %(describe:abbrev=...) ref-filter: add multiple-option parsing functions ref-filter: add new "describe" atom Kristoffer Haugsbakk (5): doc: tag: document `TAG_EDITMSG` t/t7004-tag: add regression test for successful tag creation tag: keep the message file in case ref transaction fails notes: update documentation for `use_default_notes` notes: move the documentation to the struct Linus Arver (15): docs: typofixes doc: trailer: fix grammar doc: trailer: swap verb order doc: trailer: drop "commit message part" phrasing doc: trailer: examples: avoid the word "message" by itself doc: trailer: remove redundant phrasing doc: trailer: use angle brackets for and doc: trailer..command: emphasize deprecation doc: trailer: mention 'key' in DESCRIPTION doc: trailer: add more examples in DESCRIPTION SubmittingPatches: reword awkward phrasing SubmittingPatches: discuss subsystems separately from git.git SubmittingPatches: de-emphasize branches as starting points SubmittingPatches: emphasize need to communicate non-default starting points SubmittingPatches: simplify guidance for choosing a starting point M Hickford (3): credential: avoid erasing distinct password credential: erase all matching credentials doc: gitcredentials: link to helper list Martin Ågren (1): t0091-bugreport.sh: actually verify some content of report Matthias Aßhauer (3): run-command: conditionally define locate_in_PATH() compat/mingw: implement a native locate_in_PATH() docs: update when `git bisect visualize` uses `gitk` Mike Hommey (2): commit-reach: fix memory leak in get_reachable_subset() mingw: use lowercase includes for some Windows headers Patrick Steinhardt (17): fetch: drop unused DISPLAY_FORMAT_UNKNOWN enum value fetch: drop unneeded NULL-check for `remote_ref` fetch: pass through `fetch_config` directly fetch: use `fetch_config` to store "fetch.prune" value fetch: use `fetch_config` to store "fetch.pruneTags" value fetch: use `fetch_config` to store "fetch.showForcedUpdates" value fetch: use `fetch_config` to store "fetch.recurseSubmodules" value fetch: use `fetch_config` to store "fetch.parallel" value fetch: use `fetch_config` to store "submodule.fetchJobs" value t1006: don't strip timestamps from expected results t1006: modernize test style to use `test_cmp` strbuf: provide CRLF-aware helper to read until a specified delimiter cat-file: simplify reading from standard input cat-file: add option '-Z' that delimits input and output with NUL revision: reorder `read_revisions_from_stdin()` revision: small readability improvement for reading from stdin revision: handle pseudo-opts in `--stdin` mode Petar Vutov (1): doc: highlight that .gitmodules does not support !command Philippe Blain (30): revisions.txt: use description list for special refs revisions.txt: document more special refs completion: complete REVERT_HEAD and BISECT_HEAD git-merge.txt: modernize word choice in "True merge" section Documentation: document AUTO_MERGE completion: complete AUTO_MERGE completion: add comments describing __git_diff_* globals completion: complete --break-rewrites completion: complete --cc completion: complete --combined-all-paths completion: complete --compact-summary completion: complete --default-prefix completion: complete --find-copies completion: complete --find-object completion: complete --find-renames completion: complete --function-context completion: complete --ignore-matching-lines completion: complete --irreversible-delete completion: complete --ita-invisible-in-index and --ita-visible-in-index completion: complete --line-prefix completion: complete --no-relative completion: complete --no-stat completion: complete --output completion: complete --output-indicator-{context,new,old} completion: complete --unified completion: complete --ws-error-highlight completion: move --pickaxe-{all,regex} to __git_diff_common_options completion: complete --diff-merges, its options and --no-diff-merges completion: complete --remerge-diff diff.c: mention completion above add_diff_options Phillip Wood (6): apply: improve error messages when reading patch diff --no-index: refuse to compare stdin to a directory diff --no-index: die on error reading stdin t4054: test diff --no-index with stdin diff --no-index: support reading from named pipes rebase --skip: fix commit message clean up when skipping squash René Scharfe (19): t1800: loosen matching of error message for bad shebang run-command: report exec error even on ENOENT ls-tree: fix documentation of %x format placeholder pretty: factor out expand_separator() strbuf: factor out strbuf_expand_step() replace strbuf_expand_dict_cb() with strbuf_expand_step() replace strbuf_expand() with strbuf_expand_step() strbuf: simplify strbuf_expand_literal_cb() ls-tree: simplify prefix handling pretty: avoid double negative in format_commit_item() pkt-line: add size parameter to packet_length() pretty: use strchr(3) in userformat_find_requirements() t6300: fix setup with GPGSSH but without GPG strbuf: use skip_prefix() in strbuf_addftime() ls-tree: fix --no-full-name describe: fix --no-exact-match pack-objects: fix --no-keep-true-parents pack-objects: fix --no-quiet bundle: use OPT_PASSTHRU_ARGV Rubén Justo (11): config: fix a leak in git_config_copy_or_rename_section_in_file remote: fix a leak in query_matches_negative_refspec branch: fix a leak in dwim_and_setup_tracking branch: fix a leak in inherit_tracking branch: fix a leak in check_tracking_branch branch: fix a leak in setup_tracking rev-parse: fix a leak with --abbrev-ref branch: fix a leak in setup_tracking branch: fix a leak in cmd_branch config: fix a leak in git_config_copy_or_rename_section_in_file tests: mark as passing with SANITIZE=leak Sean Allred (5): show-ref doc: update for internal consistency ls-remote doc: remove redundant --tags example ls-remote doc: show peeled tags in examples ls-remote doc: explain what each example does ls-remote doc: document the output format Shuqi Liang (2): diff-tree: integrate with sparse index worktree: integrate with sparse-index Taylor Blau (53): object: add object_array initializer helper function pack-bitmap.c: extract `fill_in_bitmap()` pack-bitmap.c: use commit boundary during bitmap traversal builtin/submodule--helper.c: handle missing submodule URLs builtin/repack.c: only collect fully-formed packs reachable.c: extract `obj_is_recent()` gc: introduce `gc.recentObjectsHook` pack-bitmap.c: gracefully degrade on failure to load MIDX'd pack t7701: make annotated tag unreachable fsck: suppress commit-graph output with `--no-progress` fsck: suppress MIDX output with `--no-progress` commit-graph.c: extract `verify_one_commit_graph()` commit-graph.c: iteratively verify commit-graph chains commit-graph.c: pass progress to `verify_one_commit_graph()` commit-graph.c: avoid duplicated progress output during `verify` builtin/for-each-ref.c: add `--exclude` option refs: plumb `exclude_patterns` argument throughout refs/packed-backend.c: refactor `find_reference_location()` refs/packed-backend.c: implement jump lists to avoid excluded pattern(s) refs/packed-backend.c: add trace2 counters for jump list revision.h: store hidden refs in a `strvec` refs.h: let `for_each_namespaced_ref()` take excluded patterns refs.h: implement `hidden_refs_to_excludes()` builtin/receive-pack.c: avoid enumerating hidden references upload-pack.c: avoid enumerating hidden refs where possible ls-refs.c: avoid enumerating hidden refs where possible builtin/repack.c: avoid dir traversal in `collect_pack_filenames()` packfile.c: prevent overflow in `nth_packed_object_id()` packfile.c: prevent overflow in `load_idx()` packfile.c: use checked arithmetic in `nth_packed_object_offset()` midx.c: use `size_t`'s for fanout nr and alloc midx.c: prevent overflow in `nth_midxed_object_oid()` midx.c: prevent overflow in `nth_midxed_offset()` midx.c: store `nr`, `alloc` variables as `size_t`'s midx.c: prevent overflow in `write_midx_internal()` midx.c: prevent overflow in `fill_included_packs_batch()` pack-bitmap.c: ensure that eindex lookups don't overflow commit-graph.c: prevent overflow in `write_commit_graph_file()` commit-graph.c: prevent overflow in add_graph_to_chain() commit-graph.c: prevent overflow in `load_oid_from_graph()` commit-graph.c: prevent overflow in `fill_commit_graph_info()` commit-graph.c: prevent overflow in `fill_commit_in_graph()` commit-graph.c: prevent overflow in `load_tree_for_commit()` commit-graph.c: prevent overflow in `split_graph_merge_strategy()` commit-graph.c: prevent overflow in `merge_commit_graph()` commit-graph.c: prevent overflow in `write_commit_graph()` commit-graph.c: prevent overflow in `verify_commit_graph()` t/lib-commit-graph.sh: allow `graph_read_expect()` in sub-directories t/lib-commit-graph.sh: avoid directory change in `graph_git_behavior()` t5318: avoid top-level directory changes t5328: avoid top-level directory changes t/lib-commit-graph.sh: avoid sub-shell in `graph_git_behavior()` Documentation/RelNotes/2.42.0.txt: typofix Teng Long (8): surround %s with quotes when failed to lookup commit notes.c: cleanup 'strbuf_grow' call in 'append_edit' notes.c: use designated initializers for clarity t3321: add test cases about the notes stripspace behavior notes.c: introduce '--separator=' option notes.c: append separator instead of insert by pos notes.c: introduce "--[no-]stripspace" option notes: introduce "--no-separator" option Todd Zullinger (3): trace2 tests: fix PTHREADS prereq t/lib-gpg: fix ssh-keygen -Y check-novalidate with openssh-9.0 t/lib-gpg: require GPGSSH for GPGSSH_VERIFYTIME prereq Victoria Dye (3): config: use gitdir to get worktree config config: pass 'repo' directly to 'config_with_options()' repository: move 'repository_format_worktree_config' to repo scope Vinayak Dev (1): docs: add necessary headers to Documentation/MFOW.txt ZheNing Hu (1): ls-files: align format atoms with ls-tree brian m. carlson (9): t: add a function to check executable bit var: add support for listing the shell var: format variable structure with C99 initializers var: adjust memory allocation for strings attr: expose and rename accessor functions var: add attributes files locations var: add config file locations ident: don't consider '.' a crud gitignore: ignore clangd .cache directory [Less]
Posted 8 months ago by Johannes Schindelin
Dear Git users, I hereby announce that Git for Windows 2.42.0-rc0 is available from: https://github.com/git-for-windows/git/releases/tag/v2.42.0-rc0.windows.1 Changes since Git for Windows v2.41.0(3) (July 13th 2023) New Features * Comes ... [More] with Git v2.42.0-rc0. * Comes with OpenSSH v9.3.P2. * Comes with cURL v8.2.1. * Comes with Git LFS v3.4.0. * Comes with OpenSSL v3.1.2. * Comes with Git Credential Manager v2.3.0. Bug Fixes * When init.defaultBranch is changed manually in the system config, subsequent Git for Windows upgrades would overwrite that change. This has been fixed. * When running on a remote APFS share, Git would fail, which has been fixed. Git-2.42.0-rc0-64-bit.exe | b3e71e5ed580631c1eb08b3054e9e23d50c067c3b14dfd1991685d59c89436a1 Git-2.42.0-rc0-32-bit.exe | dd17207fade13189f6c8b453f6e58d4581df90c418d9f955d7bd7c7fd2b8eaf4 PortableGit-2.42.0-rc0-64-bit.7z.exe | d27891ada8bb801a18419b3365832e57935ed4cda73f2b341475b0fb7c9254aa PortableGit-2.42.0-rc0-32-bit.7z.exe | eec6b352552841736b4b5e8800f9727b814630792e568a8aa68d2f5c469d04ac MinGit-2.42.0-rc0-64-bit.zip | 298f6b2ec055a28d7818769dff1dc441fc831e8034fc1616102bf02e4b236416 MinGit-2.42.0-rc0-32-bit.zip | db63872425e432bd98f842e6b1607c3ca16ee019db1af13b079afc2d0ee6a30b MinGit-2.42.0-rc0-busybox-64-bit.zip | cd6366db4f405da787806b2543bdd8a4173f6d9fa8d5eb9f34dcce69e1ad408c MinGit-2.42.0-rc0-busybox-32-bit.zip | edd98eeee5bb89e76d68d87cff3d76ef3696989038444935ccbf193d36ce8e91 Git-2.42.0-rc0-64-bit.tar.bz2 | 6f28ffb0cd8438cd597eb5ff0b544e0290da8b705028911b3bb41f91ed08a26e Git-2.42.0-rc0-32-bit.tar.bz2 | 99dc31bcd4fc20885a29d7be85769c9226513048c1d90d865d6bd42b84dda316 Ciao, Johannes [Less]
Posted 8 months ago by Junio C Hamano
An early preview release Git v2.42.0-rc0 is now available for testing at the usual places. It is comprised of 401 non-merge commits since v2.41.0, contributed by 59 people, 13 of which are new faces [*]. The tarballs are found at: ... [More] https://www.kernel.org/pub/software/scm/git/testing/ The following public repositories all have a copy of the 'v2.42.0-rc0' tag and the 'master' branch that the tag points at: url = https://git.kernel.org/pub/scm/git/git url = https://kernel.googlesource.com/pub/scm/git/git url = git://repo.or.cz/alt-git.git url = https://github.com/gitster/git New contributors whose contributions weren't in v2.41.0 are as follows. Welcome to the Git development community! Andreas Herrmann, Greg Alexander, Han Young, Jacob Abel, Jan Klötzke, Jim Pryor, Johan Ruokangas, Josh Sref, Josip Sokcevic, Petar Vutov, Premek Vysoky, Tribo Dar, and Vinayak Dev. Returning contributors who helped this release are as follows. Thanks for your continued support. , Alejandro R. Sedeño, Alex Henrie, Beat Bolli, brian m. carlson, Calvin Wan, Christian Couder, D. Ben Knoble, Derrick Stolee, Elijah Newren, Eric Sunshine, Glen Choo, Hariom Verma, Jacob Keller, Jaydeep Das, Jeff King, Johannes Schindelin, John Cai, Jonathan Nieder, Jonathan Tan, Junio C Hamano, Kousik Sanagavarapu, Kristoffer Haugsbakk, Linus Arver, Martin Ågren, Matthew Hughes, M Hickford, Michael Haggerty, Mike Hommey, Nsengiyumva Wilberforce, Patrick Steinhardt, Philippe Blain, Phillip Wood, Randall S. Becker, René Scharfe, Rubén Justo, Sean Allred, Shuqi Liang, SZEDER Gábor, Taylor Blau, Teng Long, Todd Zullinger, Toon Claes, Torsten Bögershausen, Victoria Dye, and ZheNing Hu. [*] We are counting not just the authorship contribution but issue reporting, mentoring, helping and reviewing that are recorded in the commit trailers. ---------------------------------------------------------------- Git v2.42 Release Notes (draft) =============================== UI, Workflows & Features * "git pack-refs" learns "--include" and "--exclude" to tweak the ref hierarchy to be packed using pattern matching. * 'git worktree add' learned how to create a worktree based on an orphaned branch with `--orphan`. * "git pack-objects" learned to invoke a new hook program that enumerates extra objects to be used as anchoring points to keep otherwise unreachable objects in cruft packs. * Add more "git var" for toolsmiths to learn various locations Git is configured with either via the configuration or hardcoded defaults. * 'git notes append' was taught '--separator' to specify string to insert between paragraphs. * The "git for-each-ref" family of commands learned placeholders related to GPG signature verification. * "git diff --no-index" learned to read from named pipes as if they were regular files, to allow "git diff <(process) <(substitution)" some shells support. * Help newbies by suggesting that there are cases where force-pushing is a valid and sensible thing to update a branch at a remote repository, rather than reconciling with merge/rebase. * "git blame --contents=file" has been taught to work in a bare repository. * "git branch -f X" to repoint the branch X said that X was "checked out" in another worktree, even when branch X was not and instead being bisected or rebased. The message was reworded to say the branch was "in use". Performance, Internal Implementation, Development Support etc. * "git diff-tree" has been taught to take advantage of the sparse-index feature. * Clang's sanitizer implementation seems to work better than GCC's. (merge d88d727143 jk/ci-use-clang-for-sanitizer-jobs later to maint). * The object traversal using reachability bitmap done by "pack-object" has been tweaked to take advantage of the fact that using "boundary" commits as representative of all the uninteresting ones can save quite a lot of object enumeration. * discover_git_directory() no longer touches the_repository. * "git worktree" learned to work better with sparse index feature. * When the external merge driver is killed by a signal, its output should not be trusted as a resolution with conflicts that is proposed by the driver, but the code did. * The set-up code for the get_revision() API now allows feeding options like --all and --not in the --stdin mode. * Move functions that are not about pure string manipulation out of strbuf.[ch] * "imap-send" codepaths got cleaned up to get rid of unused parameters. * Enumerating refs in the packed-refs file, while excluding refs that match certain patterns, has been optimized. * Mark-up unused parameters in the code so that we can eventually enable -Wunused-parameter by default. * Instead of inventing a custom counter variables for debugging, use existing trace2 facility in the fsync customization codepath. * "git branch --list --format=" and friends are taught a new "%(describe)" placeholder. * Clarify how to choose the starting point for a new topic in developer guidance document. * The implementation of "get_sha1_hex()" that reads a hexadecimal string that spells a full object name has been extended to cope with any hash function used in the repository, but the "sha1" in its name survived. Rename it to get_hash_hex(), a name that is more consistent within its friends like get_hash_hex_algop(). * Command line parser fix, and a small parse-options API update. Fixes since v2.41 ----------------- * "git tag" learned to leave the "$GIT_DIR/TAG_EDITMSG" file when the command failed, so that the user can salvage what they typed. (merge 08c12ec1d0 kh/keep-tag-editmsg-upon-failure later to maint). * The "-s" (silent, squelch) option of the "diff" family of commands did not interact with other options that specify the output format well. This has been cleaned up so that it will clear all the formatting options given before. (merge 9d484b92ed jc/diff-s-with-other-options later to maint). * Update documentation regarding Coccinelle patches. (merge 3bd0097cfc gc/doc-cocci-updates later to maint). * Some atoms that can be used in "--format=" for "git ls-tree" were not supported by "git ls-files", even though they were relevant in the context of the latter. (merge 4d28c4f75f zh/ls-files-format-atoms later to maint). * Document more pseudo-refs and teach the command line completion machinery to complete AUTO_MERGE. (merge 982ff3a649 pb/complete-and-document-auto-merge-and-friends later to maint). * "git submodule" code trusted the data coming from the config (and the in-tree .gitmodules file) too much without validating, leading to NULL dereference if the user mucks with a repository (e.g. submodule..url is removed). This has been corrected. (merge fbc806acd1 tb/submodule-null-deref-fix later to maint). * The value of config.worktree is per-repository, but has been kept in a singleton global variable per process. This has been OK as most Git operations interacted with a single repository at a time, but not right for operations like recursive "grep" that want to access multiple repositories from a single process without forking. The global variable has been eliminated and made into a member in the per-repository data structure. (merge 3867f6d650 vd/worktree-config-is-per-repository later to maint). * "git [-c log.follow=true] log [--follow] ':(glob)f**'" used to barf. (merge 8260bc5902 jk/log-follow-with-non-literal-pathspec later to maint). * Introduce a mechanism to disable replace refs globally and per repository. (merge 9c7d1b057f ds/disable-replace-refs later to maint). * "git cat-file --batch" and friends learned "-Z" that uses NUL delimiter for both input and output. (merge f79e18849b ps/cat-file-null-output later to maint). * The reimplemented "git add -i" did not honor color.ui configuration. (merge 6f74648cea ds/add-i-color-configuration-fix later to maint). * Compilation fix for platforms without D_TYPE in struct dirent. (merge 03bf92b9bf as/dtype-compilation-fix later to maint). * Suggest to refrain from using hex literals that are non-portable when writing printf(1) format strings. (merge f0b68f0546 jt/doc-use-octal-with-printf later to maint). * Simplify error message when run-command fails to start a command. (merge 6d224ac286 rs/run-command-exec-error-on-noent later to maint). * Gracefully deal with a stale MIDX file that lists a packfile that no longer exists. (merge 06f3867865 tb/open-midx-bitmap-fallback later to maint). * Even when diff.ignoreSubmodules tells us to ignore submodule changes, "git commit" with an index that already records changes to submodules should include the submodule changes in the resulting commit, but it did not. (merge 5768478edc js/defeat-ignore-submodules-config-with-explicit-addition later to maint). * When "git commit --trailer=..." invokes the interpret-trailers machinery, it knows what it feeds to interpret-trailers is a full log message without any patch, but failed to express that by passing the "--no-divider" option, which has been corrected. (merge be3d654343 jk/commit-use-no-divider-with-interpret-trailers later to maint). * Avoid breakage of "git pack-objects --cruft" due to inconsistency between the way the code enumerates packfiles in the repository. (merge 73320e49ad tb/collect-pack-filenames-fix later to maint). * We create .pack and then .idx, we consider only packfiles that have .idx usable (those with only .pack are not ready yet), so we should remove .idx before removing .pack for consistency. (merge 0dd1324a73 ds/remove-idx-before-pack later to maint). * Partially revert a sanity check that the rest of the config code was not ready, to avoid triggering it in a corner case. (merge a53f43f900 gc/config-partial-submodule-kvi-fix later to maint). * "git apply" punts when it is fed too large a patch input; the error message it gives when it happens has been clarified. (merge 42612e18d2 pw/apply-too-large later to maint). * During a cherry-pick or revert session that works on multiple commits, "git status" did not give correct information, which has been corrected. (merge a096a889f4 jk/cherry-pick-revert-status later to maint). * A few places failed to differentiate the case where the index is truly empty (nothing added) and we haven't yet read from the on-disk index file, which have been corrected. (merge 2ee045eea1 js/empty-index-fixes later to maint). * "git bugreport" tests did not test what it wanted to test, which has been corrected. (merge 1aa92b8500 ma/t0091-fixup later to maint). * Code snippets in a tutorial document no longer compiled after recent header shuffling, which have been corrected. (merge bbd7c7b7c0 vd/adjust-mfow-doc-to-updated-headers later to maint). * "git ls-files '(attr:X)D/'" that triggers the common prefix optimization codepath failed to read from "D/.gitattributes", which has been corrected. (merge f4a8fde057 jc/pathspec-match-with-common-prefix later to maint). * "git fsck --no-progress" still spewed noise from the commit-graph subsystem, which has been corrected. (merge 9281cd07f0 tb/fsck-no-progress later to maint). * Various offset computation in the code that accesses the packfiles and other data in the object layer has been hardened against arithmetic overflow, especially on 32-bit systems. (merge 9a25cad7e0 tb/object-access-overflow-protection later to maint). * Names of MinGW header files are spelled in mixed case in some source files, but the build host can be using case sensitive filesystem with header files with their name spelled in all lowercase. (merge 4a53d0d0bc mh/mingw-case-sensitive-build later to maint). * Update message mark-up for i18n in "git bundle". (merge bbb6acd998 dk/bundle-i18n-more later to maint). * "git tag --list --points-at X" showed tags that directly refers to object X, but did not list a tag that points at such a tag, which has been corrected. * "./configure --with-expat=no" did not work as a way to refuse use of the expat library on a system with the library installed, which has been corrected. (merge fb8f7269c2 ah/autoconf-fixes later to maint). * When the user edits "rebase -i" todo file so that it starts with a "fixup", which would make it invalid, the command truncated the rest of the file before giving an error and returning the control back to the user. Stop truncating to make it easier to correct such a malformed todo file. (merge 9645a087c2 ah/sequencer-rewrite-todo-fix later to maint). * Rewrite the description of giving a custom command to the submodule..update configuration variable. (merge 7cebc5bd78 pv/doc-submodule-update-settings later to maint). * Other code cleanup, docfix, build fix, etc. (merge 51f9d2e563 sa/doc-ls-remote later to maint). (merge c6d26a9dda jk/format-patch-message-id-unleak later to maint). (merge f7e063f326 ps/fetch-cleanups later to maint). (merge e4cf013468 tl/quote-problematic-arg-for-clarity later to maint). (merge 20025fdfc7 tz/test-ssh-verifytime-fix later to maint). (merge e48a21df65 tz/test-fix-pthreads-prereq later to maint). (merge 68b51172e3 mh/commit-reach-get-reachable-plug-leak later to maint). (merge aeee1408ce kh/use-default-notes-doc later to maint). (merge 3b8724bce6 jc/test-modernization later to maint). (merge 447a3b7331 jc/test-modernization-2 later to maint). (merge d57fa7fc73 la/doc-interpret-trailers later to maint). (merge 548afb0d9a la/docs-typofixes later to maint). (merge 3744ffcbcd rs/doc-ls-tree-hex-literal later to maint). (merge 6c26da8404 mh/credential-erase-improvements later to maint). (merge 78e56cff69 tz/lib-gpg-prereq-fix later to maint). (merge 80d32e84b5 rj/leakfixes later to maint). (merge 0a868031ed pb/complete-diff-options later to maint). (merge d4f28279ad jc/doc-hash-object-types later to maint). (merge 1876a5ae15 ks/t4205-test-describe-with-abbrev-fix later to maint). (merge 6e6a529b57 jk/fsck-indices-in-worktrees later to maint). (merge 3e81b896f7 rs/packet-length-simplify later to maint). (merge 4c9cb51fe7 mh/doc-credential-helpers later to maint). (merge 3437f549dd jr/gitignore-doc-example-markup later to maint). (merge 947ebd62a0 jc/am-parseopt-fix later to maint). (merge e12cb98e1e jc/branch-parseopt-fix later to maint). (merge d6f598e443 jc/gitignore-doc-pattern-markup later to maint). (merge a2dad4868b jc/transport-parseopt-fix later to maint). (merge 68cbb20e73 jc/parse-options-show-branch later to maint). (merge 3821eb6c3d jc/parse-options-reset later to maint). (merge c48af99a3e bb/trace2-comment-fix later to maint). (merge c95ae3ff9c rs/describe-parseopt-fix later to maint). (merge 36f76d2a25 rs/pack-objects-parseopt-fix later to maint). (merge 30c8c55cbf jc/tree-walk-drop-base-offset later to maint). ---------------------------------------------------------------- Changes since v2.41.0 are as follows: Alejandro R. Sedeño (1): statinfo.h: move DTYPE defines from dir.h Alex Henrie (4): wt-status: don't show divergence advice when committing remote: don't imply that integration is always required before pushing push: don't imply that integration is always required before pushing sequencer: finish parsing the todo list despite an invalid first line Andreas Herrmann (3): configure.ac: don't overwrite NO_EXPAT option configure.ac: don't overwrite NO_CURL option configure.ac: always save NO_ICONV to config.status Beat Bolli (2): trace2: fix a comment wrapper: use trace2 counters to collect fsync stats Calvin Wan (13): strbuf: clarify API boundary strbuf: clarify dependency abspath: move related functions to abspath credential-store: move related functions to credential-store file object-name: move related functions to object-name path: move related function to path strbuf: remove global variable git-compat-util: move strbuf.c funcs to its header git-compat-util: move wrapper.c funcs to its header sane-ctype.h: create header for sane-ctype macros kwset: move translation table from ctype treewide: remove unnecessary includes for wrapper.h git-compat-util: move alloc macros to git-compat-util.h D. Ben Knoble (2): i18n: mark more bundle.c strings for translation t4002: fix "diff can read from stdin" syntax Derrick Stolee (7): add: check color.ui for interactive add add: test use of brackets when color is disabled repository: create disable_replace_refs() replace-objects: create wrapper around setting repository: create read_replace_refs setting packfile: delete .idx files before .pack files builtin/repack.c: only repack `.pack`s that exist Elijah Newren (28): init-db: document existing bug with core.bare in template config init-db: remove unnecessary global variable init-db, clone: change unnecessary global into passed parameter setup: adopt shared init-db & clone code read-cache: move shared commit and ls-files code add: modify add_files_to_cache() to avoid globals read-cache: move shared add/checkout/commit code statinfo: move stat_{data,validity} functions from cache/read-cache run-command.h: move declarations for run-command.c from cache.h name-hash.h: move declarations for name-hash.c from cache.h sparse-index.h: move declarations for sparse-index.c from cache.h preload-index.h: move declarations for preload-index.c from elsewhere diff.h: move declaration for global in diff.c from cache.h merge.h: move declarations for merge.c from cache.h repository.h: move declaration of the_index from cache.h read-cache*.h: move declarations for read-cache.c functions from cache.h cache.h: remove this no-longer-used header log-tree: replace include of revision.h with simple forward declaration repository: remove unnecessary include of path.h diff.h: remove unnecessary include of oidset.h list-objects-filter-options.h: remove unneccessary include builtin.h: remove unneccessary includes git-compat-util.h: remove unneccessary include of wildmatch.h merge-ll: rename from ll-merge khash: name the structs that khash declares object-store-ll.h: split this header out of object-store.h hash-ll, hashmap: move oidhash() to hash-ll fsmonitor-ll.h: split this header out of fsmonitor.h Eric Sunshine (1): fsck: avoid misleading variable name Glen Choo (15): cocci: add headings to and reword README cocci: codify authoring and reviewing practices setup.c: don't setup in discover_git_directory() config: don't BUG when both kvi and source are set config: inline git_color_default_config urlmatch.h: use config_fn_t type config: add ctx arg to config_fn_t config.c: pass ctx in configsets config: pass ctx with config files config.c: pass ctx with CLI config trace2: plumb config kvi config: pass kvi to die_bad_number() config.c: remove config_reader from configsets config: add kvi.path, use it to evaluate includes config: pass source to config_parser_event_fn_t Han Young (1): blame: allow --contents to work with bare repo Jacob Abel (11): worktree add: include -B in usage docs t2400: cleanup created worktree in test t2400: refactor "worktree add" opt exclusion tests t2400: add tests to verify --quiet worktree add: add --orphan flag worktree add: introduce "try --orphan" hint worktree add: extend DWIM to infer --orphan worktree add: emit warn when there is a bad HEAD t2400: drop no-op `--sq` from rev-parse call builtin/worktree.c: convert tab in advice to space t2400: rewrite regex to avoid unintentional PCRE Jacob Keller (1): fix cherry-pick/revert status when doing multiple commits Jan Klötzke (1): ref-filter: handle nested tags in --points-at option Jeff King (36): format-patch: free rev.message_id when exiting format-patch: free elements of rev.ref_message_ids list pathspec: factor out magic-to-name function diff: factor out --follow pathspec check diff: detect pathspec magic not supported by --follow ci: use clang for ASan/UBSan checks ci: run ASan/UBSan in a single job ci: drop linux-clang job commit: pass --no-divider to interpret-trailers http: handle both "h2" and "h2h3" in curl info lines var: mark unused parameters in git_var callbacks imap-send: use server conf argument in setup_curl() imap-send: drop unused parameter from imap_cmd_cb callback imap-send: drop unused fields from imap_cmd_cb refs.c: rename `ref_filter` ref-filter.h: provide `REF_FILTER_INIT` ref-filter: clear reachable list pointers after freeing ref-filter: add `ref_filter_clear()` ref-filter.c: parameterize match functions over patterns test-ref-store: drop unimplemented reflog-expire command do_for_each_ref_helper(): mark unused repository parameter http: mark unused parameters in curl callbacks http-push: mark unused parameter in xml callback am: mark unused keep_cr parameters count-objects: mark unused parameter in alternates callback revisions: drop unused "opt" parameter in "tweak" callbacks fsck: mark unused parameters in various fsck callbacks merge-tree: mark unused parameter in traverse callback replace: mark unused parameter in ref callback replace: mark unused parameter in each_mergetag_fn callback rev-parse: mark unused parameter in for_each_abbrev callback tag: mark unused parameters in each_tag_name_fn callbacks t/helper: mark unused callback void data parameters ref-filter: avoid parsing tagged objects in match_points_at() ref-filter: avoid parsing non-tags in match_points_at() ref-filter: simplify return type of match_points_at Johan Ruokangas (1): gitignore.txt: use backticks instead of double quotes Johannes Schindelin (3): do_read_index(): always mark index as initialized unless erroring out split-index: accept that a base index can be empty commit -a -m: allow the top-level tree to become empty again John Cai (34): docs: clarify git-pack-refs --all will pack all refs pack-refs: teach --exclude option to exclude refs from being packed pack-refs: teach pack-refs --include option t0000-basic: modernize test format t0030-stripspace: modernize test format t3210-pack-refs: modernize test format t1001-read-tree-m-2way: modernize test format t1002-read-tree-m-u-2way: modernize test format t1006-cat-file: modernize test format t3500-cherry: modernize test format t3700-add: modernize test format t3903-stash: modernize test format t4002-diff-basic: modernize test format t4003-diff-rename-1: modernize test format t4004-diff-rename-symlink: modernize test format t4202-log: modernize test format t4206-log-follow-harder-copies: modernize test format t5300-pack-object: modernize test format t5301-sliding-window: modernize test format t5303-pack-corruption-resilience: modernize test format t5306-pack-nobase: modernize test format t6050-replace: modernize test format t7101-reset-empty-subdirs: modernize test format t7110-reset-merge: modernize test format t7111-reset-table: modernize test format t7201-co: modernize test format t7508-status: modernize test format t7600-merge: modernize test format t7700-repack: modernize test format t9100-git-svn-basic: modernize test format t9104-git-svn-follow-parent: modernize test format t9200-git-cvsexportcommit: modernize test format t9400-git-cvsserver-server: modernize test format docs: add git hash-object -t option's possible values Jonathan Tan (1): CodingGuidelines: use octal escapes, not hex Josip Sokcevic (1): diff-lib: honor override_submodule_config flag bit Junio C Hamano (44): diff: fix interaction between the "-s" option and other options show-branch doc: say , not Start the 2.42 cycle The second batch for 2.42 The third batch ll-merge: killing the external merge driver aborts the merge The fourth batch t6406: skip "external merge driver getting killed by a signal" test on Windows The fifth batch The sixth batch The seventh batch The eighth batch t6135: attr magic with path pattern tree-walk: lose base_offset that is never used in tree_entry_interesting tree-walk: drop unused base_offset from do_match() The ninth batch dir: match "attr" pathspec magic with correct paths The tenth batch The eleventh batch The twelfth batch gitignore.txt: mark up explanation of patterns consistently am: simplify parsing of "--[no-]keep-cr" branch: reject "--no-all" and "--no-remotes" early parse-options: introduce OPT_IPVERSION() fetch: reject --no-ipv[46] show-branch: --no-sparse should give dense output short help: allow multi-line opthelp remote: simplify "remote add --tags" help text short help: allow a gap smaller than USAGE_GAP show-branch: reject --[no-](topo|date)-order reset: reject --no-(mixed|soft|hard|merge|keep) option The thirteenth batch branch: update the message to refuse touching a branch in-use hex: retire get_sha1_hex() The fourteenth batch SubmittingPatches: choice of base for fixing an older maintenance track The fifteenth batch SubmittingPatches: explain why 'next' and above are inappropriate base SubmittingPatches: use of older maintenance tracks is an exception The sixteenth batch MyFirstContribution: refrain from self-iterating too much The seventeenth batch The eighteenth batch Git 2.42-rc0 Kousik Sanagavarapu (5): t/lib-gpg: introduce new prereq GPG2 ref-filter: add new "signature" atom t4205: correctly test %(describe:abbrev=...) ref-filter: add multiple-option parsing functions ref-filter: add new "describe" atom Kristoffer Haugsbakk (5): doc: tag: document `TAG_EDITMSG` t/t7004-tag: add regression test for successful tag creation tag: keep the message file in case ref transaction fails notes: update documentation for `use_default_notes` notes: move the documentation to the struct Linus Arver (15): docs: typofixes doc: trailer: fix grammar doc: trailer: swap verb order doc: trailer: drop "commit message part" phrasing doc: trailer: examples: avoid the word "message" by itself doc: trailer: remove redundant phrasing doc: trailer: use angle brackets for and doc: trailer..command: emphasize deprecation doc: trailer: mention 'key' in DESCRIPTION doc: trailer: add more examples in DESCRIPTION SubmittingPatches: reword awkward phrasing SubmittingPatches: discuss subsystems separately from git.git SubmittingPatches: de-emphasize branches as starting points SubmittingPatches: emphasize need to communicate non-default starting points SubmittingPatches: simplify guidance for choosing a starting point M Hickford (3): credential: avoid erasing distinct password credential: erase all matching credentials doc: gitcredentials: link to helper list Martin Ågren (1): t0091-bugreport.sh: actually verify some content of report Mike Hommey (2): commit-reach: fix memory leak in get_reachable_subset() mingw: use lowercase includes for some Windows headers Patrick Steinhardt (17): fetch: drop unused DISPLAY_FORMAT_UNKNOWN enum value fetch: drop unneeded NULL-check for `remote_ref` fetch: pass through `fetch_config` directly fetch: use `fetch_config` to store "fetch.prune" value fetch: use `fetch_config` to store "fetch.pruneTags" value fetch: use `fetch_config` to store "fetch.showForcedUpdates" value fetch: use `fetch_config` to store "fetch.recurseSubmodules" value fetch: use `fetch_config` to store "fetch.parallel" value fetch: use `fetch_config` to store "submodule.fetchJobs" value t1006: don't strip timestamps from expected results t1006: modernize test style to use `test_cmp` strbuf: provide CRLF-aware helper to read until a specified delimiter cat-file: simplify reading from standard input cat-file: add option '-Z' that delimits input and output with NUL revision: reorder `read_revisions_from_stdin()` revision: small readability improvement for reading from stdin revision: handle pseudo-opts in `--stdin` mode Petar Vutov (1): doc: highlight that .gitmodules does not support !command Philippe Blain (30): revisions.txt: use description list for special refs revisions.txt: document more special refs completion: complete REVERT_HEAD and BISECT_HEAD git-merge.txt: modernize word choice in "True merge" section Documentation: document AUTO_MERGE completion: complete AUTO_MERGE completion: add comments describing __git_diff_* globals completion: complete --break-rewrites completion: complete --cc completion: complete --combined-all-paths completion: complete --compact-summary completion: complete --default-prefix completion: complete --find-copies completion: complete --find-object completion: complete --find-renames completion: complete --function-context completion: complete --ignore-matching-lines completion: complete --irreversible-delete completion: complete --ita-invisible-in-index and --ita-visible-in-index completion: complete --line-prefix completion: complete --no-relative completion: complete --no-stat completion: complete --output completion: complete --output-indicator-{context,new,old} completion: complete --unified completion: complete --ws-error-highlight completion: move --pickaxe-{all,regex} to __git_diff_common_options completion: complete --diff-merges, its options and --no-diff-merges completion: complete --remerge-diff diff.c: mention completion above add_diff_options Phillip Wood (5): apply: improve error messages when reading patch diff --no-index: refuse to compare stdin to a directory diff --no-index: die on error reading stdin t4054: test diff --no-index with stdin diff --no-index: support reading from named pipes René Scharfe (18): t1800: loosen matching of error message for bad shebang run-command: report exec error even on ENOENT ls-tree: fix documentation of %x format placeholder pretty: factor out expand_separator() strbuf: factor out strbuf_expand_step() replace strbuf_expand_dict_cb() with strbuf_expand_step() replace strbuf_expand() with strbuf_expand_step() strbuf: simplify strbuf_expand_literal_cb() ls-tree: simplify prefix handling pretty: avoid double negative in format_commit_item() pkt-line: add size parameter to packet_length() pretty: use strchr(3) in userformat_find_requirements() t6300: fix setup with GPGSSH but without GPG strbuf: use skip_prefix() in strbuf_addftime() ls-tree: fix --no-full-name describe: fix --no-exact-match pack-objects: fix --no-keep-true-parents pack-objects: fix --no-quiet Rubén Justo (11): config: fix a leak in git_config_copy_or_rename_section_in_file remote: fix a leak in query_matches_negative_refspec branch: fix a leak in dwim_and_setup_tracking branch: fix a leak in inherit_tracking branch: fix a leak in check_tracking_branch branch: fix a leak in setup_tracking rev-parse: fix a leak with --abbrev-ref branch: fix a leak in setup_tracking branch: fix a leak in cmd_branch config: fix a leak in git_config_copy_or_rename_section_in_file tests: mark as passing with SANITIZE=leak Sean Allred (5): show-ref doc: update for internal consistency ls-remote doc: remove redundant --tags example ls-remote doc: show peeled tags in examples ls-remote doc: explain what each example does ls-remote doc: document the output format Shuqi Liang (2): diff-tree: integrate with sparse index worktree: integrate with sparse-index Taylor Blau (48): object: add object_array initializer helper function pack-bitmap.c: extract `fill_in_bitmap()` pack-bitmap.c: use commit boundary during bitmap traversal builtin/submodule--helper.c: handle missing submodule URLs builtin/repack.c: only collect fully-formed packs reachable.c: extract `obj_is_recent()` gc: introduce `gc.recentObjectsHook` pack-bitmap.c: gracefully degrade on failure to load MIDX'd pack t7701: make annotated tag unreachable fsck: suppress commit-graph output with `--no-progress` fsck: suppress MIDX output with `--no-progress` commit-graph.c: extract `verify_one_commit_graph()` commit-graph.c: iteratively verify commit-graph chains commit-graph.c: pass progress to `verify_one_commit_graph()` commit-graph.c: avoid duplicated progress output during `verify` builtin/for-each-ref.c: add `--exclude` option refs: plumb `exclude_patterns` argument throughout refs/packed-backend.c: refactor `find_reference_location()` refs/packed-backend.c: implement jump lists to avoid excluded pattern(s) refs/packed-backend.c: add trace2 counters for jump list revision.h: store hidden refs in a `strvec` refs.h: let `for_each_namespaced_ref()` take excluded patterns refs.h: implement `hidden_refs_to_excludes()` builtin/receive-pack.c: avoid enumerating hidden references upload-pack.c: avoid enumerating hidden refs where possible ls-refs.c: avoid enumerating hidden refs where possible builtin/repack.c: avoid dir traversal in `collect_pack_filenames()` packfile.c: prevent overflow in `nth_packed_object_id()` packfile.c: prevent overflow in `load_idx()` packfile.c: use checked arithmetic in `nth_packed_object_offset()` midx.c: use `size_t`'s for fanout nr and alloc midx.c: prevent overflow in `nth_midxed_object_oid()` midx.c: prevent overflow in `nth_midxed_offset()` midx.c: store `nr`, `alloc` variables as `size_t`'s midx.c: prevent overflow in `write_midx_internal()` midx.c: prevent overflow in `fill_included_packs_batch()` pack-bitmap.c: ensure that eindex lookups don't overflow commit-graph.c: prevent overflow in `write_commit_graph_file()` commit-graph.c: prevent overflow in add_graph_to_chain() commit-graph.c: prevent overflow in `load_oid_from_graph()` commit-graph.c: prevent overflow in `fill_commit_graph_info()` commit-graph.c: prevent overflow in `fill_commit_in_graph()` commit-graph.c: prevent overflow in `load_tree_for_commit()` commit-graph.c: prevent overflow in `split_graph_merge_strategy()` commit-graph.c: prevent overflow in `merge_commit_graph()` commit-graph.c: prevent overflow in `write_commit_graph()` commit-graph.c: prevent overflow in `verify_commit_graph()` Documentation/RelNotes/2.42.0.txt: typofix Teng Long (8): surround %s with quotes when failed to lookup commit notes.c: cleanup 'strbuf_grow' call in 'append_edit' notes.c: use designated initializers for clarity t3321: add test cases about the notes stripspace behavior notes.c: introduce '--separator=' option notes.c: append separator instead of insert by pos notes.c: introduce "--[no-]stripspace" option notes: introduce "--no-separator" option Todd Zullinger (3): trace2 tests: fix PTHREADS prereq t/lib-gpg: fix ssh-keygen -Y check-novalidate with openssh-9.0 t/lib-gpg: require GPGSSH for GPGSSH_VERIFYTIME prereq Victoria Dye (3): config: use gitdir to get worktree config config: pass 'repo' directly to 'config_with_options()' repository: move 'repository_format_worktree_config' to repo scope Vinayak Dev (1): docs: add necessary headers to Documentation/MFOW.txt ZheNing Hu (1): ls-files: align format atoms with ls-tree brian m. carlson (7): t: add a function to check executable bit var: add support for listing the shell var: format variable structure with C99 initializers var: adjust memory allocation for strings attr: expose and rename accessor functions var: add attributes files locations var: add config file locations [Less]
Posted 8 months ago by Christian Couder
Hi everyone, The 101st edition of Git Rev News is now published: https://git.github.io/rev_news/2023/07/31/edition-101/ Thanks a lot to Eren Canpolat, Bruno Brito, Kristoffer Haugsbakk, Junio Hamano and Štěpán Němec who helped this month! ... [More] Enjoy, Christian, Jakub, Markus and Kaartic. PS: An issue for the next edition is already opened and contributions are welcome: https://github.com/git/git.github.io/issues/656 [Less]
Posted 8 months ago by Taylor Blau
Hi everybody, As I mentioned a ~month ago[1], GitHub is not hosting an in-person Git Merge this year. Instead, we're focusing our efforts on hosting a Virtual Contributor's Summit, the details of which are below. - We'll host the Contributor's ... [More] Summit on either Zoom or Microsoft Teams (since GitHub is in the process of transitioning from the former to the latter). - The schedule/duration is not fixed, there are options to vote on preferred days, length, and timezones in the form(s) below. - To participate, you must be either (a) an active Git contributor, (b) planning on contributing soon, or (c) working on a Git-related project that has interest in Git's internals. If you aren't sure whether or not you are welcome, please ask! Participants should fill out the following forms: - https://forms.gle/xiRcJWBAWJjWR7Zh6 (participants) - https://forms.gle/rQ5oWVSVBwyPZ1K29 (topics) The participants and topics lists are being recorded in the spreadsheet below, and this is also the place to record your vote(s) on topic selection. http://bit.ly/git-contributors-summit-2023 Please send any feedback or suggestions you have for this year's Contributor's Summit to me on- or off-list. My hope for this year is to have a smaller, remote-friendly, diverse, and efficient discussion. As we get closer to the date, we'll finalize the schedule, make sure we have volunteers to take notes, etc. I'm looking forward to seeing everybody (virtually) soon :-). Thanks, Taylor [1]: https://lore.kernel.org/git/[email protected]/ [Less]