Git v2.39.3 Release Notes ========================= This release is primarily to merge fixes accumulated on the 'master' front to prepare for 2.40 release that are still relevant to 2.39.x maintenance track. Fixes since v2.39.2 ------------------- * Stop running win+VS build by default. * CI updates. We probably want a clean-up to move the long shell script embedded in yaml file into a separate file, but that can come later. * Avoid unnecessary builds in CI, with settings configured in ci-config. * Redefining system functions for a few functions did not follow our usual "implement git_foo() and #define foo(args) git_foo(args)" pattern, which has broken build for some folks. * Deal with a few deprecation warning from cURL library. * Newer regex library macOS stopped enabling GNU-like enhanced BRE, where '\(A\|B\)' works as alternation, unless explicitly asked with the REG_ENHANCED flag. "git grep" now can be compiled to do so, to retain the old behaviour. * When given a pattern that matches an empty string at the end of a line, the code to parse the "git diff" line-ranges fell into an infinite loop, which has been corrected. * Fix the sequence to fsync $GIT_DIR/packed-refs file that forgot to flush its output to the disk.. * "git diff --relative" did not mix well with "git diff --ext-diff", which has been corrected. * The logic to see if we are using the "cone" mode by checking the sparsity patterns has been tightened to avoid mistaking a pattern that names a single file as specifying a cone. * Doc update for environment variables set when hooks are invoked. * Document ORIG_HEAD a bit more. * "git ls-tree --format='%(path) %(path)' $tree $path" showed the path three times, which has been corrected. * Document that "branch -f " disables only the safety to avoid recreating an existing branch. * Clarify how "checkout -b/-B" and "git branch [-f]" are similar but different in the documentation. Also contains minor documentation updates and code clean-ups.