I Use This!
Very High Activity

News

Analyzed 1 day ago. based on code collected 3 days ago.
Posted 3 months ago by Johannes Schindelin
Dear Git users, I hereby announce that Git for Windows 2.44.0-rc0 is available from: https://github.com/git-for-windows/git/releases/tag/v2.44.0-rc0.windows.1 Changes since Git for Windows v2.43.0 (November 20th 2023) Git for Windows will ... [More] drop support for Windows 7 and for Windows 8 in the next versions, see the announcement of MSYS2 on which Git for Windows relies for components such as Bash and Perl. Please also note that the 32-bit variant of Git for Windows is deprecated; Its last official release is planned for 2025. New Features * Comes with Git v2.44.0-rc0. * Comes with gnupg v2.2.42. * Comes with libfido2 v1.14.0. * Comes with the MSYS2 runtime (Git for Windows flavor) based on Cygwin v3.4.10. * Comes with Perl v5.38.2. * Git for Windows learned to detect and use native Windows support for ANSI sequences, which allows using 24-bit colors in terminal windows. * Comes with Git LFS v3.4.1. * The repository viewer Tig that is included in Git for Windows can now be called also directly from PowerShell/CMD. * Comes with OpenSSH v9.6.P1. * Comes with Bash v5.2.26. * Comes with GNU TLS v3.8.3. * Comes with OpenSSL v3.2.1. * Comes with cURL v8.6.0. * Comes with GNU Privacy Guard v2.4.4. Bug Fixes * The 32-bit variant of Git for Windows was missing some MSYS2 runtime updates, which was addressed; Do note 32-bit support is phased out. * The Git for Windows installer showed cut-off text in some setups. This has been fixed. * The git credential-manager --help command previously would not find a page to display in the web browser, which has been fixed. Git-2.44.0-rc0-64-bit.exe | b3674c6a4fc010dda9065130e06d9a3c8a4b900d2c3b2bdf8183cc47919940a4 Git-2.44.0-rc0-32-bit.exe | 344039b0f71bcd07a19747ec58944cadc175c24f37365e4282d60cc77c77687d PortableGit-2.44.0-rc0-64-bit.7z.exe | b5b29161c2f80d7b0b9183fff274f545f0c4290e9ce1ef820107da44bf424a07 PortableGit-2.44.0-rc0-32-bit.7z.exe | d1b6c533e5ec7df93870c085b960ad2112a44e1fc9d52cd97c530984892e5cb8 MinGit-2.44.0-rc0-64-bit.zip | e3e2d8f601bb80b6472cd9d58a3ca7704f245b015e236d9b56231b4ced08169f MinGit-2.44.0-rc0-32-bit.zip | 953c76671644727df28f1b78a80c97266a25d62857afa36e7aacc88ff365fb97 MinGit-2.44.0-rc0-busybox-64-bit.zip | c65698f812ba3090215591978bdd62523922fcaaca31d8fdcaf27c6b75ec8ec1 MinGit-2.44.0-rc0-busybox-32-bit.zip | d614f5b893c8d8784c8e78c22470540eb050946500e57aac65e08e4c403510eb Git-2.44.0-rc0-64-bit.tar.bz2 | 4ad88d90e553cf31b90381c1ca880509c7c51c91e330ea1b9b73733f31598eee Git-2.44.0-rc0-32-bit.tar.bz2 | 28f4fa7ff42bd210e944173417f6efcf3b055bfb0ef149941ced91f03ab1560d Ciao, Johannes [Less]
Posted 3 months ago by Junio C Hamano
An early preview release Git v2.44.0-rc0 is now available for testing at the usual places. It is comprised of 432 non-merge commits since v2.43.0, contributed by 67 people, 30 of which are new faces [*]. Unlike previous cycles, I plan only for one ... [More] release candidate in the middle of next week until the final release around the 20th. 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.44.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.43.0 are as follows. Welcome to the Git development community! Achu Luma, Antonin Delpeuch, Benjamin Lehmann, Britton Leo Kerin, Carlos Andrés Ramírez Cataño, Chandra Pratap, Ghanshyam Thakkar, Illia Bobyr, James Touton, Janik Haag, Joanna Wang, Josh Brobst, Julian Prein, Justin Tobler, Kyle Lippincott, Maarten van der Schrieck, Marcel Krause, Marcelo Roberto Jimenez, Michael Lohmann, Nikolay Borisov, Nikolay Edigaryev, Ondrej Pohorelsky, Sam Delmerico, Shreyansh Paliwal, Sören Krecker, Stan Hu, Tamino Bauknecht, Wilfred Hughes, Willem Verstraeten, and Zach FettersMoore. Returning contributors who helped this release are as follows. Thanks for your continued support. Andy Koppe, Arthur Chan, Calvin Wan, Carlo Marcelo Arenas Belón, Christian Couder, Dragan Simic, Elijah Newren, Eric Sunshine, Glen Choo, Han-Wen Nienhuys, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jiang Xin, Johannes Schindelin, John Cai, Jonathan Tan, Josh Soref, Josh Steadmon, Josip Sokcevic, Junio C Hamano, Konstantin Ryabitsev, Kristoffer Haugsbakk, Linus Arver, M Hickford, Oswald Buddenhagen, Patrick Steinhardt, Philippe Blain, Phillip Wood, René Scharfe, Rubén Justo, Simon Ser, SZEDER Gábor, Taylor Blau, Todd Zullinger, Toon Claes, and Victoria Dye. [*] We are counting not just the authorship contribution but issue reporting, mentoring, helping and reviewing that are recorded in the commit trailers. ---------------------------------------------------------------- Git v2.44 Release Notes (draft) =============================== Backward Compatibility Notes * "git chekcout -B " used to allow switching to a branch that is in use on another worktree, but this was by mistake. The users need to use "--ignore-other-worktrees" option. UI, Workflows & Features * "git add" and "git stash" learned to support the ":(attr:...)" magic pathspec. * "git rebase --autosquash" is now enabled for non-interactive rebase, but it is still incompatible with the apply backend. * Introduce "git replay", a tool meant on the server side without working tree to recreate a history. * "git merge-file" learned to take the "--diff-algorithm" option to use algorithm different from the default "myers" diff. * Command line completion (in contrib/) learned to complete path arguments to the "add/set" subcommands of "git sparse-checkout" better. * "git checkout -B []" allowed a branch that is in use in another worktree to be updated and checked out, which might be a bit unexpected. The rule has been tightened, which is a breaking change. "--ignore-other-worktrees" option is required to unbreak you, if you are used to the current behaviour that "-B" overrides the safety. * The builtin_objectmode attribute is populated for each path without adding anything in .gitattributes files, which would be useful in magic pathspec, e.g., ":(attr:builtin_objectmode=100755)" to limit to executables. * "git fetch" learned to pay attention to "fetch.all" configuration variable, which pretends as if "--all" was passed from the command line when no remote parameter was given. * In addition to (rather cryptic) Security Identifiers, show username and domain in the error message when we barf on mismatch between the Git directory and the current user on Windows. * The error message given when "git branch -d branch" fails due to commits unique to the branch has been split into an error and a new conditional advice message. * When given an existing but unreadable file as a configuration file, gitweb behaved as if the file did not exist at all, but now it errors out. This is a change that may break backward compatibility. * When $HOME/.gitignore is missing but XDG config file available, we should write into the latter, not former. "git gc" and "git maintenance" wrote into a wrong "global config" file, which have been corrected. * Define "special ref" as a very narrow set that consists of FETCH_HEAD and MERGE_HEAD, and clarify everything else that used to be classified as such are actually just pseudorefs. * All conditional "advice" messages show how to turn them off, which becomes repetitive. Setting advice.* configuration explicitly on now omits the instruction part. * The "disable repository discovery of a bare repository" check, triggered by setting safe.bareRepository configuration variable to 'explicit', has been loosened to exclude the ".git/" directory inside a non-bare repository from the check. So you can do "cd .git && git cmd" to run a Git command that works on a bare repository without explicitly specifying $GIT_DIR now. * The completion script (in contrib/) learned more options that can be used with "git log". * The labels on conflict markers for the common ancestor, our version, and the other version are available to custom 3-way merge driver via %S, %X, and %Y placeholders. * The write codepath for the reftable data learned to honor core.fsync configuration. * The "--fsck-objects" option of "git index-pack" now can take the optional parameter to tweak severity of different fsck errors. * The wincred credential backend has been taught to support oauth refresh token the same way as credential-cache and credential-libsecret backends. Performance, Internal Implementation, Development Support etc. * Process to add some form of low-level unit tests has started. * Add support for GitLab CI. * "git for-each-ref --no-sort" still sorted the refs alphabetically which paid non-trivial cost. It has been redefined to show output in an unspecified order, to allow certain optimizations to take advantage of. * Simplify API implementation to delete references by eliminating duplication. * Subject approxidate() and show_date() machinery to OSS-Fuzz. * A new helper to let us pretend that we called lstat() when we know our cache_entry is up-to-date via fsmonitor. * The optimization based on fsmonitor in the "diff --cached" codepath is resurrected with the "fake-lstat" introduced earlier. * Test balloon to use C99 "bool" type from has been added. * "git clone" has been prepared to allow cloning a repository with non-default hash function into a repository that uses the reftable backend. * Streaming spans of packfile data used to be done only from a single, primary, pack in a repository with multiple packfiles. It has been extended to allow reuse from other packfiles, too. * Comment updates to help developers not to attempt to modify messages from plumbing commands that must stay constant. It might make sense to reassess the plumbing needs every few years, but that should be done as a separate effort. * Move test-ctype helper to the unit-test framework. * Instead of manually creating refs/ hierarchy on disk upon a creation of a secondary worktree, which is only usable via the files backend, use the refs API to populate it. * CI for GitLab learned to drive macOS jobs. * A few tests to "git commit -o " and "git commit -i " has been added. * Tests on ref API are moved around to prepare for reftable. * The Makefile often had to say "-L$(path) -R$(path)" that repeats the path to the same library directory for link time and runtime. A Makefile template is used to reduce such repetition. * The priority queue test has been migrated to the unit testing framework. Fixes since v2.43 ----------------- * The way CI testing used "prove" could lead to running the test suite twice needlessly, which has been corrected. * Update ref-related tests. * "git format-patch --encode-email-headers" ignored the option when preparing the cover letter, which has been corrected. * Newer versions of Getopt::Long started giving warnings against our (ab)use of it in "git send-email". Bump the minimum version requirement for Perl to 5.8.1 (from September 2002) to allow simplifying our implementation. * Earlier we stopped relying on commit-graph that (still) records information about commits that are lost from the object store, which has negative performance implications. The default has been flipped to disable this pessimization. * Stale URLs have been updated to their current counterparts (or archive.org) and HTTP links are replaced with working HTTPS links. * trace2 streams used to record the URLs that potentially embed authentication material, which has been corrected. * The sample pre-commit hook that tries to catch introduction of new paths that use potentially non-portable characters did not notice an existing path getting renamed to such a problematic path, when rename detection was enabled. * The command line parser for the "log" family of commands was too loose when parsing certain numbers, e.g., silently ignoring the extra 'q' in "git log -n 1q" without complaining, which has been tightened up. * "git $cmd --end-of-options --rev -- --path" for some $cmd failed to interpret "--rev" as a rev, and "--path" as a path. This was fixed for many programs like "reset" and "checkout". * "git bisect reset" has been taught to clean up state files and refs even when BISECT_START file is gone. * Some codepaths did not correctly parse configuration variables specified with valueless "true", which has been corrected. * Code clean-up for sanity checking of command line options for "git show-ref". * The code to parse the From e-mail header has been updated to avoid recursion. * "git fetch --atomic" issued an unnecessary empty error message, which has been corrected. * Command line completion script (in contrib/) learned to work better with the reftable backend. * "git status" is taught to show both the branch being bisected and being rebased when both are in effect at the same time. * "git archive --list extra garbage" silently ignored excess command line parameters, which has been corrected. * "git sparse-checkout set" added default patterns even when the patterns are being fed from the standard input, which has been corrected. * "git sparse-checkout (add|set) --[no-]cone --end-of-options" did not handle "--end-of-options" correctly after a recent update. * Unlike other environment variables that took the usual true/false/yes/no as well as 0/1, GIT_FLUSH only understood 0/1, which has been corrected. * Clearing in-core repository (happens during e.g., "git fetch --recurse-submodules" with commit graph enabled) made in-core commit object in an inconsistent state by discarding the necessary data from commit-graph too early, which has been corrected. * Update to a new feature recently added, "git show-ref --exists". (merge 0aabeaa562 tc/show-ref-exists-fix later to maint). * oss-fuzz tests are built and run in CI. (merge c4a9cf1df3 js/oss-fuzz-build-in-ci later to maint). * Rename detection logic ignored the final line of a file if it is an incomplete line. (merge 1c5bc6971e en/diffcore-delta-final-line-fix later to maint). * GitHub CI update. (merge 0188b2c8e0 pb/ci-github-skip-logs-for-broken-tests later to maint). * "git diff --no-rename A B" did not disable rename detection but did not trigger an error from the command line parser. (merge 457f96252f rs/parse-options-with-keep-unknown-abbrev-fix later to maint). * "git archive --remote=" learned to talk over the smart http (aka stateless) transport. (merge 176cd68634 jx/remote-archive-over-smart-http later to maint). * Fetching via protocol v0 over Smart HTTP transport sometimes failed to correctly auto-follow tags. (merge fba732c462 jk/fetch-auto-tag-following-fix later to maint). * The documentation for the --exclude-per-directory option marked it as deprecated, which confused readers into thinking there may be a plan to remove it in the future, which was not our intention. (merge 0009542cab jc/ls-files-doc-update later to maint). * "git diff --no-index file1 file2" segfaulted while invoking the external diff driver, which has been corrected. (merge 85a9a63c92 jk/diff-external-with-no-index later to maint). * Rewrite //-comments to /* comments */ in files whose comments prevalently use the latter. (merge de65079d7b jc/comment-style-fixes later to maint). * Cirrus CI jobs started breaking because we specified version of FreeBSD that is no longer available, which has been corrected. (merge 81fffb66d3 cb/use-freebsd-13-2-at-cirrus-ci later to maint). * A caller called index_file_exists() that takes a string expressed as with a wrong length, which has been corrected. (merge 156e28b36d jh/sparse-index-expand-to-path-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 5aea3955bc rj/clarify-branch-doc-m later to maint). (merge 9cce3be2df bk/bisect-doc-fix later to maint). (merge 8f50984cf4 ne/doc-filter-blob-limit-fix later to maint). (merge f10b0989b8 la/strvec-comment-fix later to maint). (merge 8430b438f6 vd/fsck-submodule-url-test later to maint). (merge f10031fadd nb/rebase-x-shell-docfix later to maint). (merge af3d2c160f jc/majordomo-to-subspace later to maint). (merge ee9895b0ff sd/negotiate-trace-fix later to maint). (merge 976d0251ce jc/coc-whitespace-fix later to maint). (merge 9023198280 jt/p4-spell-re-with-raw-string later to maint). (merge 36c9c44fa4 tb/pack-bitmap-drop-unused-struct-member later to maint). (merge 19ed0dff8f js/win32-retry-pipe-write-on-enospc later to maint). (merge 3cb4384683 jc/t0091-with-unknown-git later to maint). ---------------------------------------------------------------- Changes since v2.43.0 are as follows: Achu Luma (2): unit-tests: rewrite t/helper/test-ctype.c as a unit test t2400: avoid losing exit status to pipes Andy Koppe (3): rebase: fully ignore rebase.autoSquash without -i rebase: support --autosquash without -i rebase: rewrite --(no-)autosquash documentation Antonin Delpeuch (2): merge-file: add --diff-algorithm option merge-ll: expose revision names to custom drivers Arthur Chan (1): fuzz: add new oss-fuzz fuzzer for date.c / date.h Britton Leo Kerin (2): doc: use singular form of repeatable path arg doc: refer to pathspec instead of path Carlo Marcelo Arenas Belón (1): ci: update FreeBSD cirrus job Chandra Pratap (4): sideband.c: remove redundant 'NEEDSWORK' tag write-or-die: make GIT_FLUSH a Boolean environment variable t4129: prevent loss of exit code due to the use of pipes tests: move t0009-prio-queue.sh to the new unit testing framework Elijah Newren (32): t6429: remove switching aspects of fast-rebase replay: introduce new builtin replay: start using parse_options API replay: die() instead of failing assert() replay: introduce pick_regular_commit() replay: change rev walking options replay: add an important FIXME comment about gpg signing replay: remove progress and info output replay: remove HEAD related sanity check replay: make it a minimal server side command replay: use standard revision ranges replay: add --advance or 'cherry-pick' mode replay: add --contained to rebase contained branches replay: stop assuming replayed branches do not diverge completion: squelch stray errors in sparse-checkout completion completion: fix logic for determining whether cone mode is active completion: avoid misleading completions in cone mode completion: avoid user confusion in non-cone mode treewide: remove unnecessary includes from header files treewide: remove unnecessary includes in source files archive.h: remove unnecessary include blame.h: remove unnecessary includes fsmonitor--daemon.h: remove unnecessary includes http.h: remove unnecessary include line-log.h: remove unnecessary include pkt-line.h: remove unnecessary include submodule-config.h: remove unnecessary include trace2/tr2_tls.h: remove unnecessary include treewide: add direct includes currently only pulled in transitively treewide: remove unnecessary includes in source files sparse-checkout: be consistent with end of options markers diffcore-delta: avoid ignoring final 'line' of file Eric Sunshine (1): git-add.txt: add missing short option -A to synopsis Ghanshyam Thakkar (4): t7501: add tests for --include and --only t7501: add tests for --amend --signoff t0024: avoid losing exit status to pipes t0024: style fix Illia Bobyr (1): rebase: clarify --reschedule-failed-exec default James Touton (1): git-p4: use raw string literals for regular expressions Jean-Noël Avila (2): doc: enforce dashes in placeholders doc: enforce placeholders in documentation Jeff Hostetler (4): trace2: fix signature of trace2_def_param() macro t0211: test URL redacting in PERF format t0212: test URL redacting in EVENT format sparse-index: pass string length to index_file_exists() Jeff King (38): commit-graph: handle overflow in chunk_size checks midx: check consistency of fanout table commit-graph: drop redundant call to "lite" verification commit-graph: clarify missing-chunk error messages commit-graph: abort as soon as we see a bogus chunk commit-graph: use fanout value for graph size commit-graph: check order while reading fanout chunk commit-graph: drop verify_commit_graph_lite() commit-graph: mark chunk error messages for translation parse-options: decouple "--end-of-options" and "--" bisect: always clean on reset config: handle NULL value when parsing non-bools setup: handle NULL value when parsing extensions trace2: handle NULL values in tr2_sysenv config callback help: handle NULL value for alias.* config submodule: handle NULL value when parsing submodule.*.branch trailer: handle NULL value when parsing trailer-specific config fsck: handle NULL value when parsing message config config: reject bogus values for core.checkstat git_xmerge_config(): prefer error() to die() imap-send: don't use git_die_config() inside callback config: use config_error_nonbool() instead of custom messages diff: give more detailed messages for bogus diff.* config config: use git_config_string() for core.checkRoundTripEncoding push: drop confusing configset/callback redundancy gpg-interface: drop pointless config_error_nonbool() checks sequencer: simplify away extra git_config_string() call mailinfo: fix out-of-bounds memory reads in unquote_quoted_pair() t5100: make rfc822 comment test more careful mailinfo: avoid recursion when unquoting From headers t1006: add tests for %(objectsize:disk) commit-graph: retain commit slab when closing NULL commit_graph index-pack: spawn threads atomically transport-helper: re-examine object dir after fetching diff: handle NULL meta-info when spawning external diff Makefile: use mkdir_p_parent_template for UNIT_TEST_BIN Makefile: remove UNIT_TEST_BIN directory with "make clean" t/Makefile: get UNIT_TESTS list from C sources Jiang Xin (11): t5574: test porcelain output of atomic fetch fetch: no redundant error message for atomic fetch test-pkt-line: add option parser for unpack-sideband pkt-line: memorize sideband fragment in reader pkt-line: do not chomp newlines for sideband messages transport-helper: no connection restriction in connect_helper remote-curl: supports git-upload-archive service transport-helper: protocol v2 supports upload-archive http-backend: new rpc-service for git-upload-archive transport-helper: call do_take_over() in connect_helper transport-helper: call do_take_over() in process_connect Joanna Wang (2): attr: enable attr pathspec magic for git-add and git-stash attr: add builtin objectmode values support Johannes Schindelin (11): cmake: also build unit tests unit-tests: do not mistake `.pdb` files for being executable unit-tests: do show relative file paths artifacts-tar: when including `.dll` files, don't forget the unit-tests cmake: fix typo in variable name cmake: use test names instead of full paths cmake: handle also unit tests ci: avoid running the test suite _twice_ packfile.c: fix a typo in `each_file_in_pack_dir_fn()`'s declaration trace2: redact passwords from https:// URLs by default win32: special-case `ENOSPC` when writing to a pipe John Cai (15): t3210: move to t0601 remove REFFILES prerequisite for some tests in t1405 and t2017 t1414: convert test to use Git commands instead of writing refs manually t1404: move reffiles specific tests to t0600 t1405: move reffiles specific tests to t0601 t1406: move reffiles specific tests to t0600 t1410: move reffiles specific tests to t0600 t1415: move reffiles specific tests to t0601 t1503: move reffiles specific tests to t0600 t3903: make drop stash test ref backend agnostic t4202: move reffiles specific tests to t0600 t5312: move reffiles specific tests to t0601 reftable: honor core.fsync index-pack: test and document --strict==... index-pack: --fsck-objects to take an optional argument for fsck msgs Josh Brobst (1): builtin/reflog.c: fix dry-run option short name Josh Soref (13): doc: update links to current pages doc: switch links to https doc: update links for andre-simon.de doc: refer to internet archive CodingGuidelines: move period inside parentheses CodingGuidelines: write punctuation marks SubmittingPatches: drop ref to "What's in git.git" SubmittingPatches: discourage new trailers SubmittingPatches: update extra tags list SubmittingPatches: provide tag naming advice SubmittingPatches: clarify GitHub visual SubmittingPatches: clarify GitHub artifact format SubmittingPatches: hyphenate non-ASCII Josh Steadmon (4): unit tests: add a project plan document ci: run unit tests in CI fuzz: fix fuzz test build rules ci: build and run minimal fuzzers in GitHub CI Julian Prein (1): hooks--pre-commit: detect non-ASCII when renaming Junio C Hamano (44): cache: add fake_lstat() diff-lib: fix check_removed() when fsmonitor is active checkout: refactor die_if_checked_out() caller orphan/unborn: add to the glossary and use them consistently orphan/unborn: fix use of 'orphan' in end-user facing messages revision: parse integer arguments to --max-count, --skip, etc., more carefully Start the 2.44 cycle checkout: forbid "-B " from touching a branch used elsewhere git.txt: HEAD is not that special git-bisect.txt: BISECT_HEAD is not that special refs.h: HEAD is not that special docs: AUTO_MERGE is not that special docs: MERGE_AUTOSTASH is not that special doc: format.notes specify a ref under refs/notes/ hierarchy The second batch remote.h: retire CAS_OPT_NAME The third batch archive: "--list" does not take further options sparse-checkout: use default patterns for 'set' only !stdin The fourth batch The fifth batch The sixth batch messages: mark some strings with "up-to-date" not to touch The seventh batch The eighth batch The ninth batch Docs: [email protected] has been decomissioned CoC: whitespace fix ls-files: avoid the verb "deprecate" for individual options The tenth batch builtin/worktree: comment style fixes merge-ort.c: comment style fix reftable/pq_test: comment style fix The eleventh batch t0091: allow test in a repository without tags The twelfth batch Makefile: reduce repetitive library paths Makefile: simplify output of the libpath_template The thirteenth batch t/Makefile: say the default target upfront The fourteenth batch The fifteenth batch Git 2.43.1 Git 2.44-rc0 Justin Tobler (2): t1401: remove lockfile creation t5541: remove lockfile creation Kristoffer Haugsbakk (5): config: format newlines config: rename global config function config: factor out global config file retrieval maintenance: use XDG config if it exists config: add back code comment Kyle Lippincott (1): setup: allow cwd=.git w/ bareRepository=explicit Linus Arver (4): commit: ignore_non_trailer computes number of bytes to ignore trailer: find the end of the log message trailer: use offsets for trailer_start/trailer_end strvec: use correct member name in comments M Hickford (1): credential/wincred: store oauth_refresh_token Maarten van der Schrieck (1): Documentation: fix statement about rebase.instructionFormat Marcel Krause (1): doc: make the gitfile syntax easier to discover Marcelo Roberto Jimenez (1): gitweb: die when a configuration file cannot be read Michael Lohmann (2): Documentation/git-merge.txt: fix reference to synopsis Documentation/git-merge.txt: use backticks for command wrapping Nikolay Borisov (1): rebase: fix documentation about used shell in -x Nikolay Edigaryev (1): rev-list-options: fix off-by-one in '--filter=blob:limit=' explainer Patrick Steinhardt (124): t: allow skipping expected object ID in `ref-store update-ref` t: convert tests to not write references via the filesystem t: convert tests to not access symrefs via the filesystem t: convert tests to not access reflog via the filesystem t1450: convert tests to remove worktrees via git-worktree(1) t4207: delete replace references via git-update-ref(1) t7300: assert exact states of repo t7900: assert the absence of refs via git-for-each-ref(1) t: mark several tests that assume the files backend with REFFILES ci: reorder definitions for grouping functions ci: make grouping setup more generic ci: group installation of Docker dependencies ci: split out logic to set up failed test artifacts ci: unify setup of some environment variables ci: squelch warnings when testing with unusable Git repo ci: install test dependencies for linux-musl ci: add support for GitLab CI t/lib-httpd: dynamically detect httpd and modules path t/lib-httpd: stop using legacy crypt(3) for authentication t9164: fix inability to find basename(1) in Subversion hooks global: convert trivial usages of `test -a/-o ` contrib/subtree: stop using `-o` to test for number of args contrib/subtree: convert subtree type check to use case statement Makefile: stop using `test -o` when unlinking duplicate executables t5510: ensure that the packed-refs file needs locking refs/files: use transactions to delete references refs: deduplicate code to delete references refs: remove `delete_refs` callback from backends commit-graph: disable GIT_COMMIT_GRAPH_PARANOIA by default t0410: mark tests to require the reffiles backend t1400: split up generic reflog tests from the reffile-specific ones t1401: stop treating FETCH_HEAD as real reference t1410: use test-tool to create empty reflog t1417: make `reflog --updateref` tests backend agnostic t3310: stop checking for reference existence via `test -f` t4013: simplify magic parsing and drop "failure" t5401: speed up creation of many branches t5551: stop writing packed-refs directly t6301: write invalid object ID via `test-tool ref-store` reftable: wrap EXPECT macros in do/while reftable: handle interrupted reads reftable: handle interrupted writes reftable/stack: verify that `reftable_stack_add()` uses auto-compaction reftable/stack: perform auto-compaction with transactional interface reftable/stack: reuse buffers when reloading stack reftable/stack: fix stale lock when dying reftable/stack: fix use of unseeded randomness reftable/merged: reuse buffer to compute record keys reftable/block: introduce macro to initialize `struct block_iter` reftable/block: reuse buffer to compute record keys setup: extract function to create the refdb setup: allow skipping creation of the refdb remote-curl: rediscover repository when fetching refs builtin/clone: fix bundle URIs with mismatching object formats builtin/clone: set up sparse checkout later builtin/clone: skip reading HEAD when retrieving remote builtin/clone: create the refdb with the correct object format wt-status: read HEAD and ORIG_HEAD via the refdb refs: propagate errno when reading special refs fails refs: complete list of special refs bisect: consistently write BISECT_EXPECTED_REV via the refdb tests: adjust whitespace in chainlint expectations t: introduce DEFAULT_REPO_FORMAT prereq worktree: skip reading HEAD when repairing worktrees refs: refactor logic to look up storage backends setup: start tracking ref storage format setup: set repository's formats on init setup: introduce "extensions.refStorage" extension setup: introduce GIT_DEFAULT_REF_FORMAT envvar t: introduce GIT_TEST_DEFAULT_REF_FORMAT envvar builtin/rev-parse: introduce `--show-ref-format` flag builtin/init: introduce `--ref-format=` value flag builtin/clone: introduce `--ref-format=` value flag t9500: write "extensions.refstorage" into config reftable/stack: do not overwrite errors when compacting reftable/stack: do not auto-compact twice in `reftable_stack_add()` reftable/writer: fix index corruption when writing multiple indices reftable/record: constify some parts of the interface reftable/record: store "val1" hashes as static arrays reftable/record: store "val2" hashes as static arrays reftable/merged: really reuse buffers to compute record keys reftable/merged: transfer ownership of records when iterating git-prompt: stop manually parsing HEAD with unknown ref formats ci: add job performing static analysis on GitLab CI refs: prepare `refs_init_db()` for initializing worktree refs setup: move creation of "refs/" into the files backend refs/files: skip creation of "refs/{heads,tags}" for worktrees builtin/worktree: move setup of commondir file earlier worktree: expose interface to look up worktree by name builtin/worktree: create refdb via ref backend reftable/stack: refactor stack reloading to have common exit path reftable/stack: refactor reloading to use file descriptor reftable/stack: use stat info to avoid re-reading stack list reftable/blocksource: refactor code to match our coding style reftable/blocksource: use mmap to read tables git-p4: stop reaching into the refdb commit-graph: fix memory leak when not writing graph completion: discover repo path in `__git_pseudoref_exists ()` t9902: verify that completion does not print anything completion: improve existence check for pseudo-refs completion: silence pseudoref existence check completion: treat dangling symrefs as existing pseudorefs t7527: decrease likelihood of racing with fsmonitor daemon Makefile: detect new Homebrew location for ARM-based Macs ci: handle TEST_OUTPUT_DIRECTORY when printing test failures ci: make p4 setup on macOS more robust ci: add macOS jobs to GitLab CI reftable/stack: unconditionally reload stack after commit reftable/stack: fix race in up-to-date check sequencer: clean up pseudo refs with REF_NO_DEREF sequencer: delete REBASE_HEAD in correct repo when picking commits refs: convert AUTO_MERGE to become a normal pseudo-ref sequencer: introduce functions to handle autostashes via refs refs: convert MERGE_AUTOSTASH to become a normal pseudo-ref refs: redefine special refs Documentation: add "special refs" to the glossary reftable/stack: adjust permissions of compacted tables t1300: make tests more robust with non-default ref backends t1301: mark test for `core.sharedRepository` as reffiles specific t1302: make tests more robust with new extensions t1419: mark test suite as files-backend specific t5526: break test submodule differently t: mark tests regarding git-pack-refs(1) to be backend specific reftable/stack: fsync "tables.list" during compaction Philippe Blain (6): completion: complete missing rev-list options completion: complete --patch-with-raw completion: complete --encoding completion: complete missing 'git log' options ci(github): also skip logs of broken test cases imap-send: add missing "strbuf.h" include under NO_CURL Phillip Wood (1): unit tests: add TAP unit test framework René Scharfe (19): column: release strbuf and string_list after use i18n: factorize even more 'incompatible options' messages push: use die_for_incompatible_opt4() for - -delete/--tags/--all/--mirror repack: use die_for_incompatible_opt3() for -A/-k/--cruft revision: use die_for_incompatible_opt3() for - -graph/--reverse/--walk-reflogs revision, rev-parse: factorize incompatibility messages about - -exclude-hidden clean: factorize incompatibility message worktree: standardize incompatibility messages worktree: simplify incompatibility message for --orphan and commit-ish show-ref: use die_for_incompatible_opt3() t6300: avoid hard-coding object sizes git-compat-util: convert skip_{prefix,suffix}{,_mem} to bool rebase: use strvec_pushf() for format-patch revisions fast-import: use mem_pool_calloc() mem-pool: fix big allocations mem-pool: simplify alignment calculation t1006: prefer shell loop to awk for packed object sizes parse-options: fully disable option abbreviation with PARSE_OPT_KEEP_UNKNOWN parse-options: simplify positivation handling Rubén Justo (10): status: fix branch shown when not only bisecting branch: clarify term advice: sort the advice related lists advice: fix an unexpected leading space branch: make the advice to force-deleting a conditional one advice: allow disabling the automatic hint in advise_if_enabled() t5332: mark as leak-free t6113: mark as leak-free test-lib: check for TEST_PASSES_SANITIZE_LEAK t0080: mark as leak-free Sam Delmerico (1): push: region_leave trace for negotiate_using_fetch Shreyansh Paliwal (1): test-lib-functions.sh: fix test_grep fail message wording Simon Ser (1): format-patch: fix ignored encode_email_headers for cover letter Stan Hu (2): completion: refactor existence checks for pseudorefs completion: support pseudoref existence checks for reftables Sören Krecker (1): mingw: give more details about unsafe directory's ownership Tamino Bauknecht (1): fetch: add new config option fetch.all Taylor Blau (27): pack-objects: free packing_data in more places pack-bitmap-write: deep-clear the `bb_commit` slab pack-bitmap: plug leak in find_objects() midx: factor out `fill_pack_info()` midx: implement `BTMP` chunk midx: implement `midx_locate_pack()` pack-bitmap: pass `bitmapped_pack` struct to pack-reuse functions ewah: implement `bitmap_is_empty()` pack-bitmap: simplify `reuse_partial_packfile_from_bitmap()` signature pack-bitmap: return multiple packs via `reuse_partial_packfile_from_bitmap()` pack-objects: parameterize pack-reuse routines over a single pack pack-objects: keep track of `pack_start` for each reuse pack pack-objects: pass `bitmapped_pack`'s to pack-reuse functions pack-objects: prepare `write_reused_pack()` for multi-pack reuse pack-objects: prepare `write_reused_pack_verbatim()` for multi-pack reuse pack-objects: include number of packs reused in output git-compat-util.h: implement checked size_t to uint32_t conversion midx: implement `midx_preferred_pack()` pack-revindex: factor out `midx_key_to_pack_pos()` helper pack-revindex: implement `midx_pair_to_pack_pos()` pack-bitmap: prepare to mark objects from multiple packs for reuse pack-objects: add tracing for various packfile metrics t/test-lib-functions.sh: implement `test_trace2_data` helper pack-objects: allow setting `pack.allowPackReuse` to "single" pack-bitmap: enable reuse from all bitmapped packs t/perf: add performance tests for multi-pack reuse pack-bitmap: drop unused `reuse_objects` Todd Zullinger (2): perl: bump the required Perl version to 5.8.1 from 5.8.0 send-email: avoid duplicate specification warnings Toon Claes (1): builtin/show-ref: treat directory as non-existing in --exists Victoria Dye (14): ref-filter.c: really don't sort when using --no-sort ref-filter.h: add max_count and omit_empty to ref_format ref-filter.h: move contains caches into filter ref-filter.h: add functions for filter/format & format-only ref-filter.c: rename 'ref_filter_handler()' to 'filter_one()' ref-filter.c: refactor to create common helper functions ref-filter.c: filter & format refs in the same callback for-each-ref: clean up documentation of --format ref-filter.c: use peeled tag for '*' format fields t/perf: add perf tests for for-each-ref submodule-config.h: move check_submodule_url test-submodule: remove command line handling for check-name t7450: test submodule urls submodule-config.c: strengthen URL fsck check Zach FettersMoore (1): subtree: fix split processing with multiple subtrees present [Less]
Posted 3 months ago by Junio C Hamano
The latest maintenance release Git v2.43.1 is now available at the usual places. This is only to flush the accumulated fixes on the master front down to the maintenance track. 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.43.1' tag and the 'maint' 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 ---------------------------------------------------------------- Git 2.43.1 Release Notes ======================== There is nothing exciting to see here. Relative to Git 2.43, this release contains the fixes that have already been merged to the 'master' branch of the development towards the next major release. Fixes since Git 2.43.0 ---------------------- * The way CI testing used "prove" could lead to running the test suite twice needlessly, which has been corrected. * Newer versions of Getopt::Long started giving warnings against our (ab)use of it in "git send-email". Bump the minimum version requirement for Perl to 5.8.1 (from September 2002) to allow simplifying our implementation. * Earlier we stopped relying on commit-graph that (still) records information about commits that are lost from the object store, which has negative performance implications. The default has been flipped to disable this pessimization. * Stale URLs have been updated to their current counterparts (or archive.org) and HTTP links are replaced with working HTTPS links. * trace2 streams used to record the URLs that potentially embed authentication material, which has been corrected. * The sample pre-commit hook that tries to catch introduction of new paths that use potentially non-portable characters did not notice an existing path getting renamed to such a problematic path, when rename detection was enabled. * The command line parser for the "log" family of commands was too loose when parsing certain numbers, e.g., silently ignoring the extra 'q' in "git log -n 1q" without complaining, which has been tightened up. * "git $cmd --end-of-options --rev -- --path" for some $cmd failed to interpret "--rev" as a rev, and "--path" as a path. This was fixed for many programs like "reset" and "checkout". * "git bisect reset" has been taught to clean up state files and refs even when BISECT_START file is gone. * Some codepaths did not correctly parse configuration variables specified with valueless "true", which has been corrected. * Code clean-up for sanity checking of command line options for "git show-ref". * The code to parse the From e-mail header has been updated to avoid recursion. * "git fetch --atomic" issued an unnecessary empty error message, which has been corrected. * Command line completion script (in contrib/) learned to work better with the reftable backend. * "git status" is taught to show both the branch being bisected and being rebased when both are in effect at the same time. cf. * "git archive --list extra garbage" silently ignored excess command line parameters, which has been corrected. * "git sparse-checkout set" added default patterns even when the patterns are being fed from the standard input, which has been corrected. * Unlike other environment variables that took the usual true/false/yes/no as well as 0/1, GIT_FLUSH only understood 0/1, which has been corrected. * Clearing in-core repository (happens during e.g., "git fetch --recurse-submodules" with commit graph enabled) made in-core commit object in an inconsistent state by discarding the necessary data from commit-graph too early, which has been corrected. Also contains various documentation updates, code clean-ups and minor fixups. ---------------------------------------------------------------- Changes since v2.43.0 are as follows: Chandra Pratap (2): sideband.c: remove redundant 'NEEDSWORK' tag write-or-die: make GIT_FLUSH a Boolean environment variable Elijah Newren (12): treewide: remove unnecessary includes from header files treewide: remove unnecessary includes in source files archive.h: remove unnecessary include blame.h: remove unnecessary includes fsmonitor--daemon.h: remove unnecessary includes http.h: remove unnecessary include line-log.h: remove unnecessary include pkt-line.h: remove unnecessary include submodule-config.h: remove unnecessary include trace2/tr2_tls.h: remove unnecessary include treewide: add direct includes currently only pulled in transitively treewide: remove unnecessary includes in source files Eric Sunshine (1): git-add.txt: add missing short option -A to synopsis Illia Bobyr (1): rebase: clarify --reschedule-failed-exec default Jeff Hostetler (3): trace2: fix signature of trace2_def_param() macro t0211: test URL redacting in PERF format t0212: test URL redacting in EVENT format Jeff King (24): parse-options: decouple "--end-of-options" and "--" bisect: always clean on reset config: handle NULL value when parsing non-bools setup: handle NULL value when parsing extensions trace2: handle NULL values in tr2_sysenv config callback help: handle NULL value for alias.* config submodule: handle NULL value when parsing submodule.*.branch trailer: handle NULL value when parsing trailer-specific config fsck: handle NULL value when parsing message config config: reject bogus values for core.checkstat git_xmerge_config(): prefer error() to die() imap-send: don't use git_die_config() inside callback config: use config_error_nonbool() instead of custom messages diff: give more detailed messages for bogus diff.* config config: use git_config_string() for core.checkRoundTripEncoding push: drop confusing configset/callback redundancy gpg-interface: drop pointless config_error_nonbool() checks sequencer: simplify away extra git_config_string() call mailinfo: fix out-of-bounds memory reads in unquote_quoted_pair() t5100: make rfc822 comment test more careful mailinfo: avoid recursion when unquoting From headers t1006: add tests for %(objectsize:disk) commit-graph: retain commit slab when closing NULL commit_graph index-pack: spawn threads atomically Jiang Xin (5): t5574: test porcelain output of atomic fetch fetch: no redundant error message for atomic fetch test-pkt-line: add option parser for unpack-sideband pkt-line: memorize sideband fragment in reader pkt-line: do not chomp newlines for sideband messages Johannes Schindelin (3): ci: avoid running the test suite _twice_ packfile.c: fix a typo in `each_file_in_pack_dir_fn()`'s declaration trace2: redact passwords from https:// URLs by default Josh Brobst (1): builtin/reflog.c: fix dry-run option short name Josh Soref (13): doc: update links to current pages doc: switch links to https doc: update links for andre-simon.de doc: refer to internet archive CodingGuidelines: move period inside parentheses CodingGuidelines: write punctuation marks SubmittingPatches: drop ref to "What's in git.git" SubmittingPatches: discourage new trailers SubmittingPatches: update extra tags list SubmittingPatches: provide tag naming advice SubmittingPatches: clarify GitHub visual SubmittingPatches: clarify GitHub artifact format SubmittingPatches: hyphenate non-ASCII Julian Prein (1): hooks--pre-commit: detect non-ASCII when renaming Junio C Hamano (13): orphan/unborn: add to the glossary and use them consistently orphan/unborn: fix use of 'orphan' in end-user facing messages revision: parse integer arguments to --max-count, --skip, etc., more carefully git.txt: HEAD is not that special git-bisect.txt: BISECT_HEAD is not that special refs.h: HEAD is not that special docs: AUTO_MERGE is not that special docs: MERGE_AUTOSTASH is not that special doc: format.notes specify a ref under refs/notes/ hierarchy remote.h: retire CAS_OPT_NAME archive: "--list" does not take further options sparse-checkout: use default patterns for 'set' only !stdin Git 2.43.1 Linus Arver (3): commit: ignore_non_trailer computes number of bytes to ignore trailer: find the end of the log message trailer: use offsets for trailer_start/trailer_end Maarten van der Schrieck (1): Documentation: fix statement about rebase.instructionFormat Marcel Krause (1): doc: make the gitfile syntax easier to discover Michael Lohmann (2): Documentation/git-merge.txt: fix reference to synopsis Documentation/git-merge.txt: use backticks for command wrapping Patrick Steinhardt (31): ci: reorder definitions for grouping functions ci: make grouping setup more generic ci: group installation of Docker dependencies ci: split out logic to set up failed test artifacts ci: unify setup of some environment variables ci: squelch warnings when testing with unusable Git repo ci: install test dependencies for linux-musl ci: add support for GitLab CI commit-graph: disable GIT_COMMIT_GRAPH_PARANOIA by default t0410: mark tests to require the reffiles backend t1400: split up generic reflog tests from the reffile-specific ones t1401: stop treating FETCH_HEAD as real reference t1410: use test-tool to create empty reflog t1417: make `reflog --updateref` tests backend agnostic t3310: stop checking for reference existence via `test -f` t4013: simplify magic parsing and drop "failure" t5401: speed up creation of many branches t5551: stop writing packed-refs directly t6301: write invalid object ID via `test-tool ref-store` reftable: wrap EXPECT macros in do/while reftable: handle interrupted reads reftable: handle interrupted writes reftable/stack: verify that `reftable_stack_add()` uses auto-compaction reftable/stack: perform auto-compaction with transactional interface reftable/stack: reuse buffers when reloading stack reftable/stack: fix stale lock when dying reftable/stack: fix use of unseeded randomness reftable/merged: reuse buffer to compute record keys reftable/block: introduce macro to initialize `struct block_iter` reftable/block: reuse buffer to compute record keys tests: adjust whitespace in chainlint expectations René Scharfe (14): column: release strbuf and string_list after use i18n: factorize even more 'incompatible options' messages push: use die_for_incompatible_opt4() for - -delete/--tags/--all/--mirror repack: use die_for_incompatible_opt3() for -A/-k/--cruft revision: use die_for_incompatible_opt3() for - -graph/--reverse/--walk-reflogs revision, rev-parse: factorize incompatibility messages about - -exclude-hidden clean: factorize incompatibility message worktree: standardize incompatibility messages worktree: simplify incompatibility message for --orphan and commit-ish show-ref: use die_for_incompatible_opt3() t6300: avoid hard-coding object sizes rebase: use strvec_pushf() for format-patch revisions fast-import: use mem_pool_calloc() t1006: prefer shell loop to awk for packed object sizes Rubén Justo (1): status: fix branch shown when not only bisecting Shreyansh Paliwal (1): test-lib-functions.sh: fix test_grep fail message wording Stan Hu (2): completion: refactor existence checks for pseudorefs completion: support pseudoref existence checks for reftables Todd Zullinger (2): perl: bump the required Perl version to 5.8.1 from 5.8.0 send-email: avoid duplicate specification warnings [Less]
Posted 3 months ago by Christian Couder
Hi everyone, The 107th edition of Git Rev News is now published: https://git.github.io/rev_news/2024/01/31/edition-107/ Thanks a lot to Elijah Newren, Bruno Brito, Brandon Pugh and Štěpán Němec who helped this month! Enjoy, Christian, Jakub ... [More] , 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/686 [Less]
Posted 4 months ago by Taylor Blau
On Mon, Sep 25, 2023 at 02:37:13PM -0400, Taylor Blau wrote: > One notable change from last time is that our hosting fees have gone up > significantly. These are entirely from Heroku's change in policy to no > longer grant the Git project ... [More] hosting credits for the git-scm.com > project. Our costs in the meantime have been supported by a generous > donation from Dan Moore at FusionAuth. The below email has some more > details: > > https://lore.kernel.org/git/[email protected]/ > > It appears that since the above was written, Heroku has a new (?) > program for giving credits to open-source projects. The details are > below: > > https://www.heroku.com/open-source-credit-program > > I applied on behalf of the Git project on 2023-09-25, and will follow-up > on the list if/when we hear back from them. Out of the blue today I received an email from Heroku saying that our application to their open-source credit program was accepted. Quoting from their email: [...] We are excited to announce that your project was a fit to receive $250 credits/month for one year, totaling $3,000 in credits. These credits have been applied to the account submitted on the application, and will be valid from January 2024 to December 2024. $250 per month is more than enough to cover our hosting costs (which average around ~$140 USD per month), so we should have plenty of room to host git-scm.com free of charge for this year. I know that there are some plans in the works to convert git-scm.com to a static site in [1]. So even though we likely won't be on Heroku forever, this should tide us over until we're ready to move to GitHub Pages. I would like to thank Dan Moore for his generous donation to the Git project, which has covered our Heroku bill in past years. Now that Heroku has agreed to cover out costs for this year, we will be able to use the funds Dan has graciously provided to on behalf of FusionAuth for other purposes. Thanks, Taylor [1]: https://github.com/git/git-scm.com/pull/1804 [Less]
Posted 4 months ago by Christian Couder
Hi everyone, The 106th edition of Git Rev News is now published: https://git.github.io/rev_news/2023/12/31/edition-106/ Thanks a lot to VonC, Josh Soref and Štěpán Němec who helped this month! Enjoy, Christian, Jakub, Markus and Kaartic. PS: ... [More] An issue for the next edition is already opened and contributions are welcome: https://github.com/git/git.github.io/issues/679 [Less]
Posted 5 months ago by Christian Couder
Hi everyone, The 105th edition of Git Rev News is now published: https://git.github.io/rev_news/2023/11/30/edition-105/ Thanks a lot to Alexander Shopov, Luca Milanesio, Bruno Brito, and Štěpán Němec who helped this month! Enjoy, Christian ... [More] , 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/675 [Less]
Posted 6 months ago by Johannes Schindelin
Dear Git users, I hereby announce that Git for Windows 2.43.0 is available from: https://gitforwindows.org/ Changes since Git for Windows v2.42.0(2) (August 30th 2023) As announced previously, Git for Windows will drop support for Windows 7 ... [More] and for Windows 8 in one of the next versions, following Cygwin's and MSYS2's lead (Git for Windows relies on MSYS2 for components such as Bash and Perl). Following the footsteps of the MSYS2 and Cygwin projects on which Git for Windows depends, the 32-bit variant of Git for Windows is being phased out. New Features * Comes with Git v2.43.0. * Comes with MSYS2 runtime v3.4.9. * Comes with GNU TLS v3.8.1. * When installing into a Windows setup with Mandatory Address Space Layout Randomization (ASLR) enabled, which is incompatible with the MSYS2 runtime powering Git Bash, SSH and some other programs distributed with Git for Windows, the Git for Windows installer now offers to add exceptions that will allow those programs to work as expected. * Comes with OpenSSH v9.5.P1. * Comes with cURL v8.4.0. * Comes with OpenSSL v3.1.4. * Comes with Git Credential Manager v2.4.1. * Comes with Bash v5.2.21. * Comes with MinTTY v3.7.0. Bug Fixes * Symbolic links whose target is an absolute path without the drive prefix accidentally had a drive prefix added when checked out, rendering them "eternally modified". This bug has been fixed. * Git for Windows's installer is no longer confused by global GIT_* environment variables. * The installer no longer claims that "fast-forward or merge" is the default git pull behavior: The default behavior has changed in Git a while ago, to "fast-forward only". Git-2.43.0-64-bit.exe | a6058d7c4c16bfa5bcd6fde051a92de8c68535fd7ebade55fc0ab1c41be3c8d5 Git-2.43.0-32-bit.exe | aee1587a4004c6a57b614c81fdc2ae1fa33de0daaf6b650cf6467e4253e024a9 PortableGit-2.43.0-64-bit.7z.exe | c76216d032685fa972d129eca30f8c9fb957eb9f46ccbce954e70e07d6211961 PortableGit-2.43.0-32-bit.7z.exe | c33f9aa7bf9c59e24db71b65e9d75b1e8532562175afef380119aa1eee90afd1 MinGit-2.43.0-64-bit.zip | 1905d93068e986258fafc69517df8fddff829bb2a289c1fa4dcc6cdf720ddf36 MinGit-2.43.0-32-bit.zip | d46fac9c17b55627f714aefa36c3b00d81651d2bb4076a12b4455b5f841f1a9e MinGit-2.43.0-busybox-64-bit.zip | 2bd705f2c378ccbbf25a9095432aada3ac9dd2d963eff51421944beaccdc3e0c MinGit-2.43.0-busybox-32-bit.zip | 70799d1f5b9d2469f44299ff33461efd7814531dd9bfb7ae912d1cbf83478162 Git-2.43.0-64-bit.tar.bz2 | 4c19cc73003e55ec71d6f1ce4a961ab32ca22f9c57217d224982535161123f79 Git-2.43.0-32-bit.tar.bz2 | 192f58080247f1eea2845fb61e37e91c05a89b44260c7e045b936ca3e45ac7f6 Ciao, Johannes [Less]
Posted 6 months ago by Junio C Hamano
The latest feature release Git v2.43.0 is now available at the usual places. It is comprised of 464 non-merge commits since v2.42.0, contributed by 80 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.43.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.42.0 are as follows. Welcome to the Git development community! Aditya Neelamraju, Alyssa Ross, Caleb Hill, Dorcas AnonoLitunya, Dragan Simic, Isoken June Ibizugbe, Jan Alexander Steffens (heftig), Javier Mora, ks1322 ks1322, Mark Ruvald Pedersen, Matthew McClain, Naomi Ibe, Romain Chossart, Tang Yuyi, Vipul Kumar, 王常新, and 谢致邦 (XIE Zhibang). Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alexander Shopov, Andrei Rybak, Andy Koppe, Arkadii Yakovets, Bagas Sanjaya, Beat Bolli, brian m. carlson, Calvin Wan, Christian Couder, Christian Hesse, Derrick Stolee, Drew DeVault, Elijah Newren, Emily Shaffer, Emir SARI, Eric W. Biederman, Eric Wong, Evan Gates, Han Young, Hariom Verma, Jacob Abel, Jacob Stopak, Jason Hatton, Jean-Noël Avila, Jeff King, Johannes Schindelin, John Cai, Jordi Mas, Josh Soref, Josip Sokcevic, Junio C Hamano, Karthik Nayak, Kate Golovanova, Kousik Sanagavarapu, Kristoffer Haugsbakk, Linus Arver, Mark Levedahl, Martin Ågren, Martin Storsjö, M Hickford, Michael Strawbridge, Michal Suchanek, Oswald Buddenhagen, Patrick Steinhardt, Peter Krefting, Philippe Blain, Phillip Wood, Ralf Thielow, Randall S. Becker, René Scharfe, Robert Coup, Rubén Justo, Sergey Organov, Shuqi Liang, Stefan Haller, Štěpán Němec, Taylor Blau, Teng Long, Todd Zullinger, Victoria Dye, Wesley Schwengle, and Yi-Jyun Pan. [*] We are counting not just the authorship contribution but issue reporting, mentoring, helping and reviewing that are recorded in the commit trailers. ---------------------------------------------------------------- Git v2.43 Release Notes ======================= Backward Compatibility Notes * The "--rfc" option of "git format-patch" used to be a valid way to override an earlier "--subject-prefix=" on the command line and replace it with "[RFC PATCH]", but from this release, it merely prefixes the string "RFC " in front of the given subject prefix. If you are negatively affected by this change, please use "--subject-prefix=PATCH --rfc" as a replacement. * In Git 2.42, "git rev-list --stdin" learned to take non-revisions (like "--not") from the standard input, but the way such a "--not" was handled was quite confusing, which has been rethought. The updated rule is that "--not" given from the command line only affects revs given from the command line that comes but not revs read from the standard input, and "--not" read from the standard input affects revs given from the standard input and not revs given from the command line. UI, Workflows & Features * A message written in olden time prevented a branch from getting checked out, saying it is already checked out elsewhere. But these days, we treat a branch that is being bisected or rebased just like a branch that is checked out and protect it from getting modified with the same codepath. The message has been rephrased to say that the branch is "in use" to avoid confusion. * Hourly and other schedules of "git maintenance" jobs are randomly distributed now. * "git cmd -h" learned to signal which options can be negated by listing such options like "--[no-]opt". * The way authentication related data other than passwords (e.g., oauth token and password expiration data) are stored in libsecret keyrings has been rethought. * Update the libsecret and wincred credential helpers to correctly match which credential to erase; they erased the wrong entry in some cases. * Git GUI updates. * "git format-patch" learned a new "--description-file" option that lets cover letter description to be fed; this can be used on detached HEAD where there is no branch description available, and also can override the branch description if there is one. * Use of the "--max-pack-size" option to allow multiple packfiles to be created is now supported even when we are sending unreachable objects to cruft packs. * "git format-patch --rfc --subject-prefix=" used to ignore the "--subject-prefix" option and used "[RFC PATCH]"; now we will add "RFC" prefix to whatever subject prefix is specified. * "git log --format" has been taught the %(decorate) placeholder for further customization over what the "--decorate" option offers. * The default log message created by "git revert", when reverting a commit that records a revert, has been tweaked, to encourage people to describe complex "revert of revert of revert" situations better in their own words. * The command-line completion support (in contrib/) learned to complete "git commit --trailer=" for possible trailer keys. * "git update-index" learned the "--show-index-version" option to inspect the index format version used by the on-disk index file. * "git diff" learned the "diff.statNameWidth" configuration variable, to give the default width for the name part in the "--stat" output. * "git range-diff --notes=foo" compared "log --notes=foo --notes" of the two ranges, instead of using just the specified notes tree, which has been corrected to use only the specified notes tree. * The command line completion script (in contrib/) can be told to complete aliases by including ": git ;" in the alias to tell it that the alias should be completed in a similar way to how "git " is completed. The parsing code for the alias has been loosened to allow ';' without an extra space before it. * "git for-each-ref" and friends learned to apply mailmap to authorname and other fields in a more flexible way than using separate placeholder letters like %a[eElL] every time we want to come up with small variants. * "git repack" machinery learned to pay attention to the "--filter=" option. * "git repack" learned the "--max-cruft-size" option to prevent cruft packs from growing without bounds. * "git merge-tree" learned to take strategy backend specific options via the "-X" option, like "git merge" does. * "git log" and friends learned the "--dd" option that is a short-hand for "--diff-merges=first-parent -p". * The attribute subsystem learned to honor the "attr.tree" configuration variable that specifies which tree to read the .gitattributes files from. * "git merge-file" learns a mode to read three variants of the contents to be merged from blob objects. Performance, Internal Implementation, Development Support etc. * "git check-attr" has been taught to work better with sparse-index. * It may be tempting to leave the help text NULL for a command line option that is either hidden or too obvious, but "git subcmd -h" and "git subcmd --help-all" would have segfaulted if done so. Now the help text is truly optional. * Tests that are known to pass with LSan are now marked as such. * Flaky "git p4" tests, as well as "git svn" tests, are now skipped in the (rather expensive) sanitizer CI job. * Tests with LSan from time to time seem to emit harmless messages that make our tests unnecessarily flaky; we work around it by filtering the uninteresting output. * Unused parameters to functions are marked as such, and/or removed, in order to bring us closer to "-Wunused-parameter" clean. * The code to keep track of existing packs in the repository while repacking has been refactored. * The "streaming" interface used for bulk-checkin codepath has been narrowed to take only blob objects for now, with no real loss of functionality. * GitHub CI workflow has learned to trigger Coverity check. * Test coverage for trailers has been improved. * The code to iterate over loose references has been optimized to reduce the number of lstat() system calls. * The codepaths that read "chunk" formatted files have been corrected to pay attention to the chunk size and notice broken files. * Replace macos-12 used at GitHub CI with macos-13. (merge 682a868f67 js/ci-use-macos-13 later to maint). Fixes since v2.42 ----------------- * Overly long label names used in the sequencer machinery are now chopped to fit under filesystem limitation. * Scalar updates. * Tweak GitHub Actions CI so that pushing the same commit to multiple branch tips at the same time will not waste building and testing the same thing twice. * The commit-graph verification code that detects a mixture of zero and non-zero generation numbers has been updated. * "git diff -w --exit-code" with various options did not work correctly, which has been corrected. * The "transfer.unpackLimit" configuration variable ought to be used as a fallback, but overrode the more specific "fetch.unpackLimit" and "receive.unpackLimit" configuration variables by mistake, which has been corrected. * The use of API between two calls to require_clean_work_tree() from the sequencer code has been cleaned up for consistency. * "git diff --no-such-option" and other corner cases around the exit status of the "diff" command have been corrected. * "git for-each-ref --sort='contents:size'" sorted the refs according to size numerically, giving a ref that points at a blob twelve-byte (12) long before showing a blob hundred-byte (100) long, which has been corrected. * We now limit the depth of the tree objects and maximum length of pathnames recorded in tree objects. (merge 4d5693ba05 jk/tree-name-and-depth-limit later to maint). * Various fixes to the behavior of "rebase -i", when the command got interrupted by conflicting changes, have been made. * References from a description of the `--patch` option in various manual pages have been simplified and improved. * "git grep -e A --no-or -e B" is accepted, even though the negation of the "--or" option did not mean anything, which has been tightened. * The completion script (in contrib/) has been taught to treat the "-t" option to "git checkout" and "git switch" just like the "--track" option, to complete remote-tracking branches. * "git diff --no-index -R <(one) <(two)" did not work correctly, which has been corrected. * "git maintenance" timers' implementation has been updated, based on systemd timers, to work with WSL. * "git diff --cached" codepath did not fill the necessary stat information for a file when fsmonitor knows it is clean and ended up behaving as if it were not clean, which has been corrected. * How "alias.foo = : git cmd ; aliased-command-string" should be spelled with necessary whitespace around punctuation marks to work has been more clearly documented (but this will be moot with newer versions of Git where the parsing rules have been improved). * HTTP Header redaction code has been adjusted for a newer version of cURL library that shows its traces differently from earlier versions. * An error message given by "git send-email", when given a malformed address, did not show the offending address, which has been corrected. * UBSan options were not propagated through the test framework to git run via the httpd, unlike ASan options, which has been corrected. * "checkout --merge -- path" and "update-index --unresolve path" did not resurrect conflicted state that was resolved to remove path, but now they do. (merge 5bdedac3c7 jc/unresolve-removal later to maint). * The display width table for unicode characters has been updated for Unicode 15.1 (merge 872976c37e bb/unicode-width-table-15 later to maint). * Update mailmap entry for Derrick. (merge 6e5457d8c7 ds/mailmap-entry-update later to maint). * In the ".gitmodules" files, submodules are keyed by their names, and the path to the submodule whose name is $name is specified by the submodule.$name.path variable. There were a few codepaths that mixed the name and path up when consulting the submodule database, which have been corrected. It took long for these bugs to be found as the name of a submodule initially is the same as its path, and the problem does not surface until it is moved to a different path, which apparently happens very rarely. * "git diff --merge-base X other args..." insisted that X must be a commit and errored out when given an annotated tag that peels to a commit, but we only need it to be a committish. This has been corrected. (merge 4adceb5a29 ar/diff-index-merge-base-fix later to maint). * "git merge-tree" used to segfault when the "--attr-source" option is used, which has been corrected. (merge e95bafc52f jc/merge-ort-attr-index-fix later to maint). * Unlike "git log --pretty=%D", "git log --pretty="%(decorate)" did not auto-initialize the decoration subsystem, which has been corrected. * Feeding "git stash store" with a random commit that was not created by "git stash create" now errors out. (merge d9b6634589 jc/fail-stash-to-store-non-stash later to maint). * The index file has room only for the lower 32-bit of the file size in the cached stat information, which means cached stat information will have 0 in its sd_size member for a file whose size is a multiple of 4GiB. This is mistaken for a racily clean path. Avoid it by storing a bogus sd_size value instead for such files. (merge 5143ac07b1 bc/racy-4gb-files later to maint). * "git p4" tried to store symlinks to LFS when told, but has been fixed not to do so, because it does not make sense. (merge 10c89a02b0 mm/p4-symlink-with-lfs later to maint). * The codepath to handle recipient addresses `git send-email --compose` learns from the user was completely broken, which has been corrected. (merge 3ec6167567 jk/send-email-fix-addresses-from-composed-messages later to maint). * "cd sub && git grep -f patterns" tried to read "patterns" file at the top level of the working tree; it has been corrected to read "sub/patterns" instead. * "git reflog expire --single-worktree" has been broken for the past 20 months or so, which has been corrected. * "git send-email" did not have certain pieces of data computed yet when it tried to validate the outgoing messages and its recipient addresses, which has been sorted out. * "git bugreport" learned to complain when it received a command line argument that it will not use. * The codepath to traverse the commit-graph learned to notice that a commit is missing (e.g., corrupt repository lost an object), even though it knows something about the commit (like its parents) from what is in commit-graph. (merge 7a5d604443 ps/do-not-trust-commit-graph-blindly-for-existence later to maint). * "git rev-list --missing" did not work for missing commit objects, which has been corrected. * "git rev-list --unpacked --objects" failed to exclude packed non-commit objects, which has been corrected. (merge 7b3c8e9f38 tb/rev-list-unpacked-fix later to maint). * "To dereference" and "to peel" were sometimes used in in-code comments and documentation but without description in the glossary. (merge 893dce2ffb vd/glossary-dereference-peel later to maint). * Other code cleanup, docfix, build fix, etc. (merge c2c349a15c xz/commit-title-soft-limit-doc later to maint). (merge 1bd809938a tb/format-pack-doc-update later to maint). (merge 8f81532599 an/clang-format-typofix later to maint). (merge 3ca86adc2d la/strvec-header-fix later to maint). (merge 6789275d37 jc/test-i18ngrep later to maint). (merge 9972cd6004 ps/leakfixes later to maint). (merge 46edab516b tz/send-email-helpfix later to maint). ---------------------------------------------------------------- Changes since v2.42.0 are as follows: Aditya Neelamraju (1): clang-format: fix typo in comment Alexander Shopov (1): l10n: bg.po: Updated Bulgarian translation (5579t) Alyssa Ross (1): diff: fix --merge-base with annotated tags Andrei Rybak (1): SubmittingPatches: call gitk's command "Copy commit reference" Andy Koppe (8): pretty-formats: enclose options in angle brackets decorate: refactor format_decorations() decorate: avoid some unnecessary color overhead decorate: color each token separately pretty: add %(decorate[:]) format pretty: add pointer and tag options to %(decorate) decorate: use commit color for HEAD arrow pretty: fix ref filtering for %(decorate) formats Arkadii Yakovets (1): l10n: update uk localization for v2.43 Bagas Sanjaya (1): l10n: po-id for 2.43 (round 1) Beat Bolli (1): unicode: update the width tables to Unicode 15.1 Caleb Hill (1): git-clean doc: fix "without do cleaning" typo Calvin Wan (4): hex-ll: separate out non-hash-algo functions wrapper: reduce scope of remove_or_warn() config: correct bad boolean env value error message parse: separate out parsing functions from config.h Christian Couder (9): pack-objects: allow `--filter` without `--stdout` t/helper: add 'find-pack' test-tool repack: refactor finishing pack-objects command repack: refactor finding pack prefix pack-bitmap-write: rebuild using new bitmap when remapping repack: add `--filter=` option gc: add `gc.repackFilter` config option repack: implement `--filter-to` for storing filtered out objects gc: add `gc.repackFilterTo` config option Christian Hesse (2): t/lib-gpg: forcibly run a trustdb update t/t6300: drop magic filtering Derrick Stolee (13): upload-pack: fix race condition in error messages maintenance: add get_random_minute() maintenance: use random minute in launchctl scheduler maintenance: use random minute in Windows scheduler maintenance: use random minute in cron scheduler maintenance: swap method locations maintenance: use random minute in systemd scheduler maintenance: fix systemd schedule overlaps maintenance: update schedule before config scalar: add --[no-]src option setup: add discover_git_directory_reason() scalar reconfigure: help users remove buggy repos mailmap: change primary address for Derrick Stolee Dorcas AnonoLitunya (1): t7601: use "test_path_is_file" etc. instead of "test -f" Dragan Simic (2): diff --stat: add config option to limit filename width diff --stat: set the width defaults in a helper function Drew DeVault (1): format-patch: --rfc honors what --subject-prefix sets Elijah Newren (26): documentation: wording improvements documentation: fix small error documentation: fix typos documentation: fix apostrophe usage documentation: add missing words documentation: remove extraneous words documentation: fix subject/verb agreement documentation: employ consistent verb tense for a list documentation: fix verb tense documentation: fix adjective vs. noun documentation: fix verb vs. noun documentation: fix singular vs. plural documentation: whitespace is already generally plural documentation: fix choice of article documentation: add missing article documentation: remove unnecessary hyphens documentation: add missing hyphens documentation: use clearer prepositions documentation: fix punctuation documentation: fix capitalization documentation: fix whitespace issues documentation: add some commas where they are helpful documentation: add missing fullstops documentation: add missing quotes documentation: add missing parenthesis RelNotes: minor wording fixes in 2.43.0 release notes Emily Shaffer (2): t0091-bugreport: stop using i18ngrep bugreport: reject positional arguments Emir SARI (1): l10n: tr: v2.43.0 Eric W. Biederman (1): bulk-checkin: only support blobs in index_bulk_checkin Eric Wong (1): treewide: fix various bugs w/ OpenSSL 3+ EVP API Evan Gates (1): git-config: fix misworded --type=path explanation Han Young (1): show doc: redirect user to git log manual instead of git diff-tree Isoken June Ibizugbe (1): builtin/branch.c: adjust error messages to coding guidelines Jacob Abel (1): builtin/worktree.c: fix typo in "forgot fetch" msg Jacob Stopak (1): Include gettext.h in MyFirstContribution tutorial Jan Alexander Steffens (heftig) (6): submodule--helper: use submodule_from_path in set-{url,branch} submodule--helper: return error from set-url when modifying failed t7419: actually test the branch switching t7419, t7420: use test_cmp_config instead of grepping .gitmodules t7419: test that we correctly handle renamed submodules t7420: test that we correctly handle renamed submodules Jason Hatton (1): Prevent git from rehashing 4GiB files Javier Mora (2): git-status.txt: fix minor asciidoc format issue doc/git-bisect: clarify `git bisect run` syntax Jean-Noël Avila (1): l10n: fr: v2.43.0 rnd 2 Jeff King (114): hashmap: use expected signatures for comparison functions diff-files: avoid negative exit value diff: show usage for unknown builtin_diff_files() options diff: die when failing to read index in git-diff builtin diff: drop useless return from run_diff_{files,index} functions diff: drop useless return values in git-diff helpers diff: drop useless "status" parameter from diff_result_code() commit-graph: verify swapped zero/non-zero generation cases test-lib: ignore uninteresting LSan output sequencer: use repository parameter in short_commit_name() sequencer: mark repository argument as unused ref-filter: mark unused parameters in parser callbacks pack-bitmap: mark unused parameters in show_object callback worktree: mark unused parameters in each_ref_fn callback commit-graph: mark unused data parameters in generation callbacks ls-tree: mark unused parameter in callback stash: mark unused parameter in diff callback trace2: mark unused us_elapsed_absolute parameters trace2: mark unused config callback parameter test-trace2: mark unused argv/argc parameters grep: mark unused parameter in output function add-interactive: mark unused callback parameters negotiator/noop: mark unused callback parameters worktree: mark unused parameters in noop repair callback imap-send: mark unused parameters with NO_OPENSSL grep: mark unused parmaeters in pcre fallbacks credential: mark unused parameter in urlmatch callback fetch: mark unused parameter in ref_transaction callback bundle-uri: mark unused parameters in callbacks gc: mark unused descriptors in scheduler callbacks update-ref: mark unused parameter in parser callbacks ci: allow branch selection through "vars" ci: deprecate ci/config/allow-ref script merge: make xopts a strvec merge: simplify parsing of "-n" option format-patch: use OPT_STRING_LIST for to/cc options tree-walk: reduce stack size for recursive functions tree-walk: drop MAX_TRAVERSE_TREES macro tree-walk: rename "error" variable fsck: detect very large tree pathnames add core.maxTreeDepth config traverse_trees(): respect max_allowed_tree_depth read_tree(): respect max_allowed_tree_depth list-objects: respect max_allowed_tree_depth tree-diff: respect max_allowed_tree_depth lower core.maxTreeDepth default to 2048 checkout-index: delay automatic setting of to_tempfile parse-options: prefer opt->value to globals in callbacks parse-options: mark unused "opt" parameter in callbacks merge: do not pass unused opt->value parameter parse-options: add more BUG_ON() annotations interpret-trailers: mark unused "unset" parameters in option callbacks parse-options: mark unused parameters in noop callback merge-ort: drop custom err() function merge-ort: stop passing "opt" to read_oid_strbuf() merge-ort: drop unused parameters from detect_and_process_renames() merge-ort: drop unused "opt" parameter from merge_check_renames_reusable() http: factor out matching of curl http/2 trace lines http: update curl http/2 info matching for curl 8.3.0 merge-ort: lowercase a few error messages fsmonitor: prefer repo_git_path() to git_pathdup() fsmonitor/win32: drop unused parameters fsmonitor: mark some maybe-unused parameters fsmonitor/win32: mark unused parameter in fsm_os__incompatible() fsmonitor: mark unused parameters in stub functions fsmonitor/darwin: mark unused parameters in system callback fsmonitor: mark unused hashmap callback parameters run-command: mark unused parameters in start_bg_wait callbacks test-lib: set UBSAN_OPTIONS to match ASan commit-graph: factor out chain opening function commit-graph: check mixed generation validation when loading chain file t5324: harmonize sha1/sha256 graph chain corruption commit-graph: detect read errors when verifying graph chain commit-graph: tighten chain size check commit-graph: report incomplete chains during verification t6700: mark test as leak-free commit-reach: free temporary list in get_octopus_merge_bases() merge: free result of repo_get_merge_bases() commit-graph: move slab-clearing to close_commit_graph() commit-graph: free all elements of graph chain commit-graph: delay base_graph assignment in add_graph_to_chain() commit-graph: free graph struct that was not added to chain commit-graph: free write-context entries before overwriting commit-graph: free write-context base_graph_name during cleanup commit-graph: clear oidset after finishing write decorate: add clear_decoration() function revision: clear decoration structs during release_revisions() daemon: free listen_addr before returning repack: free existing_cruft array after use chunk-format: note that pair_chunk() is unsafe t: add library for munging chunk-format files midx: stop ignoring malformed oid fanout chunk commit-graph: check size of oid fanout chunk midx: check size of oid lookup chunk commit-graph: check consistency of fanout table midx: check size of pack names chunk midx: enforce chunk alignment on reading midx: check size of object offset chunk midx: bounds-check large offset chunk midx: check size of revindex chunk commit-graph: check size of commit data chunk commit-graph: detect out-of-bounds extra-edges pointers commit-graph: bounds-check base graphs chunk commit-graph: check size of generations chunk commit-graph: bounds-check generation overflow chunk commit-graph: check bounds when accessing BDAT chunk commit-graph: check bounds when accessing BIDX chunk commit-graph: detect out-of-order BIDX offsets chunk-format: drop pair_chunk_unsafe() t5319: make corrupted large-offset test more robust doc/send-email: mention handling of "reply-to" with --compose Revert "send-email: extract email-parsing code into a subroutine" send-email: handle to/cc/bcc from --compose message t: avoid perl's pack/unpack "Q" specifier Johannes Schindelin (19): windows: ignore empty `PATH` elements is_Cygwin: avoid `exec`ing anything Move is_ functions to the beginning Move the `_which` function (almost) to the top Work around Tcl's default `PATH` lookup rebase: allow overriding the maximal length of the generated labels ci: avoid building from the same commit in parallel ci(linux-asan-ubsan): let's save some time var: avoid a segmentation fault when `HOME` is unset completion(switch/checkout): treat --track and -t the same maintenance(systemd): support the Windows Subsystem for Linux ci: add a GitHub workflow to submit Coverity scans coverity: cache the Coverity Build Tool coverity: allow overriding the Coverity project coverity: support building on Windows coverity: allow running on macOS coverity: detect and report when the token or project is incorrect max_tree_depth: lower it for MSVC to avoid stack overflows ci: upgrade to using macos-13 John Cai (3): merge-ort: initialize repo in index state attr: read attributes from HEAD when bare repo attr: add attr.tree for setting the treeish to read attributes from Jordi Mas (1): l10n: Update Catalan translation Josh Soref (1): Documentation/git-status: add missing line breaks Josip Sokcevic (1): diff-lib: fix check_removed when fsmonitor is on Junio C Hamano (57): update-index: do not read HEAD and MERGE_HEAD unconditionally resolve-undo: allow resurrecting conflicted state that resolved to deletion update-index: use unmerge_index_entry() to support removal update-index: remove stale fallback code for "--unresolve" checkout/restore: refuse unmerging paths unless checking out of the index checkout/restore: add basic tests for --merge checkout: allow "checkout -m path" to unmerge removed paths mv: fix error for moving directory to another diff: move the fallback "--exit-code" code down diff: mode-only change should be noticed by "--patch -w --exit-code" diff: teach "--stat -w --exit-code" to notice differences t4040: remove test that succeeded for a wrong reason pretty-formats: define "literal formatting code" diff: spell DIFF_INDEX_CACHED out when calling run_diff_index() diff: the -w option breaks --exit-code for --raw and other output modes transfer.unpackLimit: fetch/receive.unpackLimit takes precedence Start the 2.43 cycle The second batch for 2.43 The extra batch to update credenthal helpers The third batch The fourth batch The fifth batch The sixth batch The seventh batch update-index doc: v4 is OK with JGit and libgit2 update-index: add --show-index-version test-tool: retire "index-version" The eighth batch The ninth batch The tenth batch The eleventh batch completion: loosen and document the requirement around completing alias The twelfth batch The thirteenth batch The fourteenth batch The fifteenth batch doc: update list archive reference to use lore.kernel.org The sixteenth batch merge: introduce {copy|clear}_merge_options() stash: be careful what we store grep: -f is relative to $cwd The seventeenth batch The eighteenth batch commit: do not use cryptic "new_index" in end-user facing messages The nineteenth batch am: align placeholder for --whitespace option with apply The twentieth batch The twenty-first batch The twenty-second batch test framework: further deprecate test_i18ngrep Git 2.42.1 tests: teach callers of test_i18ngrep to use test_grep A bit more before -rc1 Prepare for -rc1 Git 2.43-rc1 Git 2.43-rc2 Git 2.43 Karthik Nayak (3): revision: rename bit to `do_not_die_on_missing_objects` rev-list: move `show_commit()` to the bottom rev-list: add commit object support in `--missing` option Kousik Sanagavarapu (4): ref-filter: sort numerically when ":size" is used t/t6300: cleanup test_atom t/t6300: introduce test_bad_atom ref-filter: add mailmap support Kristoffer Haugsbakk (2): range-diff: treat notes like `log` grep: die gracefully when outside repository Linus Arver (17): trailer tests: make test cases self-contained trailer test description: this tests --where=after, not --where=before trailer: add tests to check defaulting behavior with --no-* flags trailer doc: narrow down scope of --where and related flags trailer: trailer location is a place, not an action trailer --no-divider help: describe usual "---" meaning trailer --parse help: expose aliased options trailer --only-input: prefer "configuration variables" over "rules" trailer --parse docs: add explanation for its usefulness trailer --unfold help: prefer "reformat" over "join" trailer doc: emphasize the effect of configuration variables trailer doc: separator within key suppresses default separator trailer doc: is a or , not both trailer: separate public from internal portion of trailer_iterator trailer: split process_input_file into separate pieces trailer: split process_command_line_args into separate functions strvec: drop unnecessary include of hex.h M Hickford (3): credential/libsecret: store new attributes credential/libsecret: erase matching creds only credential/wincred: erase matching creds only Mark Levedahl (6): git gui Makefile - remove Cygwin modifications git-gui - remove obsolete Cygwin specific code git-gui - use cygstart to browse on Cygwin git-gui - use mkshortcut on Cygwin git-gui - re-enable use of hook scripts git-gui - use git-hook, honor core.hooksPath Mark Ruvald Pedersen (1): sequencer: truncate labels to accommodate loose refs Martin Ågren (1): git-merge-file doc: drop "-file" from argument placeholders Matthew McClain (1): git-p4 shouldn't attempt to store symlinks in LFS Michael Strawbridge (1): send-email: move validation code below process_address_list Michal Suchanek (1): git-push doc: more visibility for -q option Naomi Ibe (1): builtin/add.c: clean up die() messages Oswald Buddenhagen (16): t/lib-rebase: set_fake_editor(): fix recognition of reset's short command t/lib-rebase: set_fake_editor(): handle FAKE_LINES more consistently sequencer: simplify allocation of result array in todo_list_rearrange_squash() t/lib-rebase: improve documentation of set_fake_editor() t9001: fix indentation in test_no_confirm() format-patch: add --description-file option sequencer: rectify empty hint in call of require_clean_work_tree() sequencer: beautify subject of reverts of reverts git-revert.txt: add discussion sequencer: fix error message on failure to copy SQUASH_MSG t3404-rebase-interactive.sh: fix typos in title of a rewording test sequencer: remove unreachable exit condition in pick_commits() am: fix error message in parse_opt_show_current_patch() rebase: simplify code related to imply_merge() rebase: handle --strategy via imply_merge() as well rebase: move parse_opt_keep_empty() down Patrick Steinhardt (23): upload-pack: fix exit code when denying fetch of unreachable object ID revision: make pseudo-opt flags read via stdin behave consistently doc/git-worktree: mention "refs/rewritten" as per-worktree refs doc/git-repack: fix syntax for `-g` shorthand option doc/git-repack: don't mention nonexistent "--unpacked" option commit-graph: introduce envvar to disable commit existence checks commit: detect commits that exist in commit-graph but not in the ODB builtin/show-ref: convert pattern to a local variable builtin/show-ref: split up different subcommands builtin/show-ref: fix leaking string buffer builtin/show-ref: fix dead code when passing patterns builtin/show-ref: refactor `--exclude-existing` options builtin/show-ref: stop using global variable to count matches builtin/show-ref: stop using global vars for `show_one()` builtin/show-ref: refactor options for patterns subcommand builtin/show-ref: ensure mutual exclusiveness of subcommands builtin/show-ref: explicitly spell out different modes in synopsis builtin/show-ref: add new mode to check for reference existence t: use git-show-ref(1) to check for ref existence test-bloom: stop setting up Git directory twice shallow: fix memory leak when registering shallow roots setup: refactor `upgrade_repository_format()` to have common exit setup: fix leaking repository format Peter Krefting (1): l10n: sv.po: Update Swedish translation (5579t) Philippe Blain (3): completion: commit: complete configured trailer tokens completion: commit: complete trailers tokens more robustly completion: improve doc for complex aliases Phillip Wood (7): rebase -i: move unlink() calls rebase -i: remove patch file after conflict resolution sequencer: use rebase_path_message() sequencer: factor out part of pick_commits() rebase: fix rewritten list for failed pick rebase --continue: refuse to commit after failed command rebase -i: fix adding failed command to the todo list Ralf Thielow (1): l10n: Update German translation René Scharfe (18): subtree: disallow --no-{help,quiet,debug,branch,message} t1502, docs: disallow --no-help t1502: move optionspec help output to a file t1502: test option negation parse-options: show negatability of options in short help parse-options: factor out usage_indent() and usage_padding() parse-options: no --[no-]no-... parse-options: simplify usage_padding() parse-options: allow omitting option help text name-rev: use OPT_HIDDEN_BOOL for --peel-tag grep: use OPT_INTEGER_F for --max-depth grep: reject --no-or diff --no-index: fix -R with stdin parse-options: drop unused parse_opt_ctx_t member parse-options: make CMDMODE errors more precise am: simplify --show-current-patch handling am, rebase: fix arghelp syntax of --empty reflog: fix expire --single-worktree Robert Coup (1): upload-pack: add tracing for fetches Rubén Justo (2): branch: error message deleting a branch in use branch: error message checking out a branch in use Sergey Organov (4): doc/diff-options: fix link to generating patch section diff-merges: improve --diff-merges documentation diff-merges: introduce '--dd' option completion: complete '--dd' Shuqi Liang (3): t1092: add tests for 'git check-attr' attr.c: read attributes in a sparse directory check-attr: integrate with sparse-index Tang Yuyi (1): merge-tree: add -X strategy option Taylor Blau (28): repack: move `pack_geometry` struct to the stack commit-graph: introduce `commit_graph_generation_from_graph()` t/t5318-commit-graph.sh: test generation zero transitions during fsck commit-graph: avoid repeated mixed generation number warnings leak tests: mark a handful of tests as leak-free leak tests: mark t3321-notes-stripspace.sh as leak-free leak tests: mark t5583-push-branches.sh as leak-free builtin/pack-objects.c: remove unnecessary strbuf_reset() builtin/pack-objects.c: support `--max-pack-size` with `--cruft` Documentation/gitformat-pack.txt: remove multi-cruft packs alternative Documentation/gitformat-pack.txt: drop mixed version section builtin/repack.c: extract structure to store existing packs builtin/repack.c: extract marking packs for deletion builtin/repack.c: extract redundant pack cleanup for --geometric builtin/repack.c: extract redundant pack cleanup for existing packs builtin/repack.c: extract `has_existing_non_kept_packs()` builtin/repack.c: store existing cruft packs separately builtin/repack.c: avoid directly inspecting "util" builtin/repack.c: extract common cruft pack loop git-send-email.perl: avoid printing undef when validating addresses t7700: split cruft-related tests to t7704 builtin/repack.c: parse `--max-pack-size` with OPT_MAGNITUDE builtin/repack.c: implement support for `--max-cruft-size` builtin/repack.c: avoid making cruft packs preferred Documentation/gitformat-pack.txt: fix typo Documentation/gitformat-pack.txt: fix incorrect MIDX documentation list-objects: drop --unpacked non-commit objects from results pack-bitmap: drop --unpacked non-commit objects from results Teng Long (1): l10n: zh_CN: for git 2.43.0-rc1 Todd Zullinger (3): RelNotes: minor typo fixes in 2.43.0 draft RelNotes: improve wording of credential helper notes send-email: remove stray characters from usage Victoria Dye (5): ref-cache.c: fix prefix matching in ref iteration dir.[ch]: expose 'get_dtype' dir.[ch]: add 'follow_symlink' arg to 'get_dtype' files-backend.c: avoid stat in 'loose_fill_ref_dir' glossary: add definitions for dereference & peel Vipul Kumar (1): git-gui: Fix a typo in README Wesley Schwengle (2): git-push.txt: fix grammar git-svn: drop FakeTerm hack Yi-Jyun Pan (1): l10n: zh-TW: Git 2.43.0-rc1 brian m. carlson (2): t: add a test helper to truncate files merge-file: add an option to process object IDs Ævar Arnfjörð Bjarmason (1): Makefiles: change search through $(MAKEFLAGS) for GNU make 4.4 Štěpán Němec (6): doc: fix some typos, grammar and wording issues doc/diff-options: improve wording of the log.diffMerges mention git-jump: admit to passing merge mode args to ls-files doc/gitk: s/sticked/stuck/ t/README: fix multi-prerequisite example doc/cat-file: make synopsis and description less confusing 王常新 (1): merge-ort.c: fix typo 'neeed' to 'needed' 谢致邦 (XIE Zhibang) (2): doc: correct the 50 characters soft limit doc: correct the 50 characters soft limit (+) [Less]
Posted 6 months ago by Johannes Schindelin
Dear Git users, I hereby announce that Git for Windows 2.43.0-rc2 is available from: https://github.com/git-for-windows/git/releases/tag/v2.43.0-rc2.windows.1 Changes since Git for Windows v2.42.0(2) (August 30th 2023) New Features * Comes ... [More] with Git v2.43.0-rc2. * Comes with MSYS2 runtime v3.4.9. * Comes with GNU TLS v3.8.1. * When installing into a Windows setup with Mandatory Address Space Layout Randomization (ASLR) enabled, which is incompatible with the MSYS2 runtime powering Git Bash, SSH and some other programs distributed with Git for Windows, the Git for Windows installer now offers to add exceptions that will allow those programs to work as expected. * Comes with OpenSSH v9.5.P1. * Comes with cURL v8.4.0. * Comes with OpenSSL v3.1.4. * Comes with Git Credential Manager v2.4.1. * Comes with Bash v5.2.21. * Comes with MinTTY v3.7.0. Bug Fixes * Symbolic links whose target is an absolute path without the drive prefix accidentally had a drive prefix added when checked out, rendering them "eternally modified". This bug has been fixed. * Git for Windows's installer is no longer confused by global GIT_* environment variables. * The installer no longer claims that "fast-forward or merge" is the default git pull behavior: The default behavior has changed in Git a while ago, to "fast-forward only". Git-2.43.0-rc2-64-bit.exe | 47eab02a2ef7ec969fc812918f16697c15199aa76cb42b4b352a882265017dd5 Git-2.43.0-rc2-32-bit.exe | 95618190eecde6e4a155dc45d3eb02e056fce67cb3510f44d513f9eba25e28f6 PortableGit-2.43.0-rc2-64-bit.7z.exe | 4a364e3b6b02357e316293223f620431dfabe665ea19beb6c2ae995effa6f48f PortableGit-2.43.0-rc2-32-bit.7z.exe | 6c66cf90bfc634a93e4587f6b76e0c126a244d5f87421dc08eeb585bf7bef048 MinGit-2.43.0-rc2-64-bit.zip | 77720ce608791c4d55fcd80df1953f0b7e2889ed8683a5adce6133edd116d071 MinGit-2.43.0-rc2-32-bit.zip | fbb71e2a7092edbd5e3b3eb12d907b00c0f5757ab5d4b8ab76df3b882d2fdbc0 MinGit-2.43.0-rc2-busybox-64-bit.zip | c99191e111a37c7bc619827426f687925629a24a743e7d4dc64743301f96c07a MinGit-2.43.0-rc2-busybox-32-bit.zip | 2da34c6d61dd481e6c33a317dccf464b8e9bffaf94e251823d780dba4c23d8cf Git-2.43.0-rc2-64-bit.tar.bz2 | 3cd453298075b7da69fa14a095f1c9552c9d360c4a5946b1d5d1748243e9aaa1 Git-2.43.0-rc2-32-bit.tar.bz2 | d32f73e4027d416397d9382e017ddbf0b41d0ba38c78588f44723c1e8e7ceae4 Ciao, Johannes [Less]