The latest maintenance release Git v2.46.1 is now available at the usual places. Unlike maintenance releases in the recent past, this one is _not_ about security fixes, but primarily about fixes to various commands that can work outside a repository barfing due to lack of initialization of the hash function. IOW, it is not the end of the world if you did not update to this version for a few weeks, or wait for 2.47 ;-). The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.46.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.46.1 Release Notes ======================== This release is primarily to merge fixes accumulated on the 'master' front to prepare for 2.47 release that are still relevant to 2.46.x maintenance track. Fixes since Git 2.46 -------------------- * "git checkout --ours" (no other arguments) complained that the option is incompatible with branch switching, which is technically correct, but found confusing by some users. It now says that the user needs to give pathspec to specify what paths to checkout. * It has been documented that we avoid "VAR=VAL shell_func" and why. * "git add -p" by users with diff.suppressBlankEmpty set to true failed to parse the patch that represents an unmodified empty line with an empty line (not a line with a single space on it), which has been corrected. * "git rebase --help" referred to "offset" (the difference between the location a change was taken from and the change gets replaced) incorrectly and called it "fuzz", which has been corrected. * "git notes add -m '' --allow-empty" and friends that take prepared data to create notes should not invoke an editor, but it started doing so since Git 2.42, which has been corrected. * An expensive operation to prepare tracing was done in re-encoding code path even when the tracing was not requested, which has been corrected. * Perforce tests have been updated. * The credential helper to talk to OSX keychain sometimes sent garbage bytes after the username, which has been corrected. * A recent update broke "git ls-remote" used outside a repository, which has been corrected. * "git config --value=foo --fixed-value section.key newvalue" barfed when the existing value in the configuration file used the valueless true syntax, which has been corrected. * "git reflog expire" failed to honor annotated tags when computing reachable commits. * A flakey test and incorrect calls to strtoX() functions have been fixed. * Follow-up on 2.45.1 regression fix. * "git rev-list ... | git diff-tree -p --remerge-diff --stdin" should behave more or less like "git log -p --remerge-diff" but instead it crashed, forgetting to prepare a temporary object store needed. * The patch parser in "git patch-id" has been tightened to avoid getting confused by lines that look like a patch header in the log message. * "git bundle unbundle" outside a repository triggered a BUG() unnecessarily, which has been corrected. * The code forgot to discard unnecessary in-core commit buffer data for commits that "git log --skip=<number>" traversed but omitted from the output, which has been corrected. * "git verify-pack" and "git index-pack" started dying outside a repository, which has been corrected. * A corner case bug in "git stash" was fixed. Also contains minor documentation updates and code clean-ups. ---------------------------------------------------------------- Changes since v2.46.0 are as follows: Celeste Liu (1): doc: replace 3 dash with correct 2 dash in git-config(1) D Harithamma (1): convert: return early when not tracing David Disseldorp (1): notes: do not trigger editor when adding an empty note Jayson Rhynas (1): doc: fix hex code escapes in git-ls-files Jeff King (4): credential/osxkeychain: respect NUL terminator in username apply: canonicalize modes read from patches t4129: fix racy index when calling chmod after git-add revision: free commit buffers for skipped commits Johannes Schindelin (2): ci: bump microsoft/setup-msbuild from v1 to v2 ci(win+VS): download the vcpkg artifacts using a dedicated GitHub Action Junio C Hamano (30): checkout: special case error messages during noop switching doc: note that AT&T ksh does not work with our test suite Revert "reflog expire: don't use lookup_commit_reference_gently()" howto-maintain: cover a whole development cycle howto-maintain: update daily tasks CodingGuidelines: document a shell that "fails" "VAR=VAL shell_func" doc: difference in location to apply is "offset", not "fuzz" mailmap: plug memory leak in read_mailmap_blob() csum-file: introduce discard_hashfile() t4204: patch-id supports various input format patch-id: call flush_current_id() only when needed patch-id: make get_one_patchid() more extensible patch-id: rewrite code that detects the beginning of a patch patch-id: tighten code to detect the patch header safe.directory: preliminary clean-up safe.directory: normalize the checked path safe.directory: normalize the configured path safe.directory: setting safe.directory="." allows the "current" directory t0018: remove leftover debugging cruft tests: drop use of 'tee' that hides exit status tutorial: grammofix doc: grammofix in git-diff-tree howto-maintain: mention preformatted docs Prepare for 2.46.1 CodingGuidelines: spaces around C operators A bit more topics for 2.46.x maintenance track git-config.1: --get-all description update git-config.1: fix description of --regexp in synopsis Another batch of topics for 2.46.1 Git 2.46.1 Justin Tobler (1): doc: clarify post-receive hook behavior Kousik Sanagavarapu (1): unit-tests/test-lib: fix typo in check_pointer_eq() description Kyle Lippincott (2): set errno=0 before strtoX calls t6421: fix test to work when repo dir contains d0 Patrick Steinhardt (8): t98xx: fix Perforce tests with p4d r23 and newer ci: update Perforce version to r23.2 t98xx: mark Perforce tests as memory-leak free builtin/ls-remote: fall back to SHA1 outside of a repo builtin/bundle: have unbundle check for repo before opening its bundle bundle: default to SHA1 when reading bundle headers builtin/stash: fix `--keep-index --include-untracked` with empty HEAD builtin/index-pack: fix segfaults when running outside of a repo Phillip Wood (2): add-patch: handle splitting hunks with diff.suppressBlankEmpty add-patch: use normalize_marker() when recounting edited hunk Ramsay Jones (1): compat/terminal: mark parameter of git_terminal_prompt() UNUSED René Scharfe (2): t-example-decorate: remove test messages log-tree: use decimal_width() Sven Strickroth (1): refs/files: prevent memory leak by freeing packed_ref_store Taylor Blau (1): config.c: avoid segfault with --fixed-value and valueless config Tomas Nordin (1): doc: remove dangling closing parenthesis Xing Xin (1): diff-tree: fix crash when used with --remerge-diff ahmed akef (1): docs: explain the order of output in the batched mode of git-cat-file(1)