Version v2.39.2; changes since v2.39.1: --------------------------------------- Jeff King (3): http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION http: support CURLOPT_PROTOCOLS_STR Johannes Schindelin (12): fsck: document the new `gitattributes` message IDs attr: adjust a mismatched data type attr: adjust a mismatched data type Git 2.31.7 Git 2.32.6 Git 2.33.7 Git 2.34.7 Git 2.35.7 Git 2.36.5 Git 2.37.6 Git 2.38.4 Git 2.39.2 Junio C Hamano (1): Git 2.30.8 Patrick Steinhardt (1): apply: fix writing behind newly created symbolic links Taylor Blau (3): t5619: demonstrate clone_local() with ambiguous transport clone: delay picking a transport until after get_repo_path() dir-iterator: prevent top-level symlinks without FOLLOW_SYMLINKS Version v2.39.1; changes since v2.39.0: --------------------------------------- Carlo Marcelo Arenas Belón (1): test-lib: add prerequisite for 64-bit platforms Junio C Hamano (10): Git 2.30.7 Git 2.31.6 Git 2.32.5 Git 2.33.6 Git 2.34.6 Git 2.35.6 Git 2.36.4 Git 2.37.5 Git 2.38.3 Git 2.39.1 Patrick Steinhardt (25): attr: fix overflow when upserting attribute with overly long name attr: fix out-of-bounds read with huge attribute names attr: fix integer overflow when parsing huge attribute names attr: fix out-of-bounds write when parsing huge number of attributes attr: fix out-of-bounds read with unreasonable amount of patterns attr: fix integer overflow with more than INT_MAX macros attr: harden allocation against integer overflows attr: fix silently splitting up lines longer than 2048 bytes attr: ignore attribute lines exceeding 2048 bytes attr: ignore overly large gitattributes files pretty: fix out-of-bounds write caused by integer overflow pretty: fix out-of-bounds read when left-flushing with stealing pretty: fix out-of-bounds read when parsing invalid padding format pretty: fix adding linefeed when placeholder is not expanded pretty: fix integer overflow in wrapping format utf8: fix truncated string lengths in `utf8_strnwidth()` utf8: fix returning negative string width utf8: fix overflow when returning string width utf8: fix checking for glyph width in `strbuf_utf8_replace()` utf8: refactor `strbuf_utf8_replace` to not rely on preallocated buffer pretty: restrict input lengths for padding and wrapping formats fsck: refactor `fsck_blob()` to allow for more checks fsck: pull out function to check a set of blobs fsck: move checks for gitattributes fsck: implement checks for gitattributes Version v2.39.0; changes since v2.39.0-rc2: ------------------------------------------- Alexander Shopov (1): l10n: bg.po: Updated Bulgarian translation (5501t) Bagas Sanjaya (1): l10n: po-id for 2.39 (round 1) Emir SARI (1): l10n: tr: v2.39.0 updates Fangyi Zhou (1): l10n: zh_CN v2.39.0 round 1 Jean-Noël Avila (1): l10n: fr: v2.39 rnd 1 Johannes Schindelin (3): ci: avoid using deprecated {up,down}load-artifacts Action RelNotes: a couple of typofixes ci: use a newer `github-script` version Jordi Mas (1): l10n: Update Catalan translation Junio C Hamano (2): Git 2.38.2 Git 2.39 Matheus Tavares (1): mailmap: update email address of Matheus Tavares Oscar Dominguez (1): ci(main): upgrade actions/checkout to v3 Peter Krefting (1): l10n: sv.po: Update Swedish translation (5501t0f0) Ralf Thielow (1): l10n: de.po: update German translation Victoria Dye (1): rebase --update-refs: avoid unintended ref deletion Yi-Jyun Pan (1): l10n: zh_TW.po: Git 2.39-rc2 Ævar Arnfjörð Bjarmason (3): CI: upgrade to macos-12, and pin OSX version CI: don't explicitly pick "bash" shell outside of Windows, fix regression CI: migrate away from deprecated "set-output" syntax Version v2.39.0-rc2; changes since v2.39.0-rc1: ----------------------------------------------- Junio C Hamano (1): Git 2.39-rc2 Ævar Arnfjörð Bjarmason (2): Makefiles: change search through $(MAKEFLAGS) for GNU make 4.4 cocci: avoid "should ... be a metavariable" warnings Version v2.39.0-rc1; changes since v2.39.0-rc0: ----------------------------------------------- Andreas Hasenack (1): chainlint.pl: fix /proc/cpuinfo regexp Eric Sunshine (1): lib-httpd: extend module location auto-detection Eric Wong (1): prune: quiet ENOENT on missing directories Glen Choo (1): object-file: use real paths when adding alternates Jean-Noël Avila (1): i18n: fix command template placeholder format Jeff King (2): parse_object(): drop extra "has" check before checking object type parse_object(): check on-disk type of suspected blob Jiang Xin (5): t5516: fail to run in verbose mode github-actions: run gcc-8 on ubuntu-20.04 image ci: remove the pipe after "p4 -V" to catch errors ci: use the same version of p4 on both Linux and macOS ci: install python on ubuntu Junio C Hamano (3): Another batch before -rc1 A bit more before -rc1 Git 2.39-rc1 Kyle Meyer (1): merge-recursive: fix variable typo in error message Paul Smith (1): Makefile: avoid multiple patterns when recipes generate one file Phillip Wood (3): git_parse_unsigned: reject negative values config: require at least one digit when parsing numbers git_parse_signed(): avoid integer overflow René Scharfe (1): list-objects-filter: plug combine_filter_data leak SZEDER Gábor (3): line-log: free diff queue when processing non-merge commits line-log: free the diff queues' arrays when processing merge commits diff.c: use diff_free_queue() Ævar Arnfjörð Bjarmason (13): cache.h: remove unused "the_index" compat macros builtin/{grep,log}.: don't define "USE_THE_INDEX_COMPATIBILITY_MACROS" cocci & cache.h: remove rarely used "the_index" compat macros read-cache API & users: make discard_index() return void cocci: add a index-compatibility.pending.cocci cocci & cache.h: apply a selection of "pending" index-compatibility cocci & cache.h: apply variable section of "pending" index-compatibility cocci: apply "pending" index-compatibility to "t/helper/*.c" {builtin/*,repository}.c: add & use "USE_THE_INDEX_VARIABLE" cache.h & test-tool.h: add & use "USE_THE_INDEX_VARIABLE" cocci: apply "pending" index-compatibility to some "builtin/*.c" parse_object(): simplify blob conditional trace2 tests: guard pthread test with "PTHREAD" Version v2.39.0-rc0; changes since v2.38.4: ------------------------------------------- Alex Henrie (1): push: improve grammar of branch.autoSetupMerge advice Anh Le (2): index: add trace2 region for clear skip worktree index: raise a bug if the index is materialised more than once Arthur Chan (1): fuzz: reorganise the path for existing oss-fuzz fuzzers Daniel Sonbolian (1): git.c: improve code readability in cmd_main() Debra Obondo (1): t7001-mv.sh: modernizing test script using functions Derrick Stolee (14): maintenance: add 'unregister --force' scalar: make 'unregister' idempotent gc: replace config subprocesses with API calls string-list: document iterator behavior on NULL input bundle-uri: use plain string in find_temp_filename() bundle-uri: create bundle_list struct and helpers bundle-uri: create base key-value pair parsing bundle-uri: parse bundle list in config format bundle-uri: limit recursion depth for bundle lists bundle: properly clear all revision flags bundle-uri: fetch a list of bundles bundle: add flags to verify_bundle() bundle-uri: quiet failed unbundlings bundle-uri: suppress stderr from remote-https Diomidis Spinellis (1): grep: fix multibyte regex handling under macOS Elijah Newren (4): merge-ort: fix bug with dir rename vs change dir to symlink merge-tree: update documentation for differences in -z output merge-tree: support multiple batched merges with --stdin sparse-checkout.txt: new document with sparse-checkout directions Emily Shaffer (2): gc: add tests for --cruft and friends config: let feature.experimental imply gc.cruftPacks=true Eric DeCosta (6): fsmonitor: refactor filesystem checks to common interface fsmonitor: relocate socket file if .git directory is remote fsmonitor: avoid socket location check if using hook fsmonitor: deal with synthetic firmlinks on macOS fsmonitor: check for compatability before communicating with fsmonitor fsmonitor: add documentation for allowRemote and socketDir options Eric Sunshine (8): check-non-portable-shell: detect obsolescent egrep/fgrep chainlint: add explanatory comments chainlint: tighten accuracy when consuming input stream chainlint: latch start/end position of each token chainlint: annotate original test definition rather than token stream chainlint: sidestep impoverished macOS "terminfo" chainlint: latch line numbers at which each token starts and ends chainlint: prefix annotated test definition with line numbers Eric Wong (1): delta-islands: free island-related data after use Glen Choo (2): config: respect includes in protected config http: redact curl h2h3 headers in info Han-Wen Nienhuys (1): refs: unify parse_worktree_ref() and ref_type() Jeff Hostetler (8): trace2: use size_t alloc,nr_open_regions in tr2tls_thread_ctx tr2tls: clarify TLS terminology api-trace2.txt: elminate section describing the public trace2 API trace2: rename the thread_name argument to trace2_thread_start trace2: improve thread-name documentation in the thread-context trace2: convert ctx.thread_name from strbuf to pointer trace2: add stopwatch timers trace2: add global counter mechanism Jeff King (27): fsmonitor: fix leak of warning message diffstat_consume(): assert non-zero length submodule--helper: drop unused argc from module_list_compute() update-index: drop unused argc from do_reupdate() mark unused parameters in trivial compat functions object-file: mark unused parameters in hash_unknown functions string-list: mark unused callback parameters date: mark unused parameters in handler functions apply: mark unused parameters in handlers apply: mark unused parameters in noop error/warning routine convert: mark unused parameter in null stream filter diffcore-pickaxe: mark unused parameters in pickaxe functions ll-merge: mark unused parameters in callbacks Makefile: force -O0 when compiling with SANITIZE=leak repack: convert "names" util bitfield to array repack: populate extension bits incrementally repack: expand error message for missing pack files repack: use tempfiles for signal cleanup repack: drop remove_temporary_files() Git.pm: trust rev-parse to find bare repositories t7700: annotate cruft-pack failure with ok=sigpipe shortlog: accept `--date`-related options t5516: move plaintext-password tests from t5601 and t5516 ref-filter: fix parsing of signatures without blank lines ref-filter: fix parsing of signatures with CRLF and no body branch: gracefully handle '-d' on orphan HEAD t: run t5551 tests with both HTTP and HTTP/2 Jerry Zhang (6): patch-id: fix stable patch id for binary / header-only patch-id: use stable patch-id for rebases builtin: patch-id: fix patch-id with binary diffs patch-id: fix patch-id for mode changes builtin: patch-id: add --verbatim as a command mode builtin: patch-id: remove unused diff-tree prefix Johannes Schindelin (9): cmake: make it easier to diagnose regressions in CTest runs cmake: copy the merge tools for testing add -p: avoid ambiguous signed/unsigned comparison cmake: avoid editing t/test-lib.sh cmake: increase time-out for a long-running test t5516/t5601: be less strict about the number of credential warnings scalar reconfigure -a: remove stale `scalar.repo` entries ci: use a newer `github-script` version tests(scalar): tighten the stale `scalar.repo` test some John Cai (2): fsck: remove the unused BAD_TAG_OBJECT fsck: document msg-id Jonathan Tan (4): promisor-remote: remove a return value promisor-remote: die upon failing fetch negotiator/skipping: avoid stack overflow Doc: document push.recurseSubmodules=only Julia Ramer (1): embargoed releases: also describe the git-security list and the process Junio C Hamano (17): Start 2.39 cycle symbolic-ref: teach "--[no-]recurse" option The (real) first batch for 2.39 The second batch The third batch The fourth batch ci: add address and undefined sanitizer tasks ci: use DC_SHA1=YesPlease on osx-clang job for CI The fifth batch diff: leave NEEDWORK notes in show_stats() function fsck: remove the unused MISSING_TREE_OBJECT Documentation: add lint-fsck-msgids The sixth batch The seventh batch The eighth batch adjust_shared_perm(): leave g+s alone when the group does not matter Git 2.39-rc0 Kousik Sanagavarapu (1): repository-version.txt: partialClone casing change M Hickford (4): Documentation/gitcredentials.txt: mention password alternatives Documentation: increase example cache timeout to 1 hour docs: clarify that credential discards unrecognised attributes Docs: describe how a credential-generating helper works Martin Ågren (1): test-lib-functions: drop redundant diagnostic print Matthew John Cheetham (3): wincred: ignore unknown lines (do not die) netrc: ignore unknown lines (do not die) osxkeychain: clarify that we ignore unknown lines Michael J Gruber (1): notes: avoid empty line in template Michael McClimon (1): Git.pm: add semicolon after catch statement Nsengiyumva Wilberforce (1): t1002: modernize outdated conditional Patrick Steinhardt (7): refs: fix memory leak when parsing hideRefs config refs: get rid of global list of hidden refs revision: move together exclusion-related functions revision: introduce struct to handle exclusions revision: add new parameter to exclude hidden refs rev-parse: add `--exclude-hidden=` option receive-pack: only use visible refs for connectivity check Philip Oakley (4): doc: use "commit-graph" hyphenation consistently doc: use 'object database' not ODB or abbreviation glossary: add "commit graph" description glossary: add reachability bitmap description Philippe Blain (9): test-lib-functions: mark 'test_commit' variables as 'local' subtree: use 'git rev-parse --verify [--quiet]' for better error messages subtree: add 'die_incompatible_opt' function to reduce duplication subtree: prefix die messages with 'fatal' subtree: define a variable before its first use in 'find_latest_squash' subtree: use named variables instead of "$@" in cmd_pull subtree: process 'git-subtree-split' trailer in separate function subtree: fix squash merging after annotated tag was squashed merged subtree: fix split after annotated tag was squashed merged Phillip Wood (20): t3416: tighten two tests t3416: set $EDITOR in subshell rebase: be stricter when reading state files containing oids rebase: store orig_head as a commit rebase: rename merge_base to branch_base rebase: factor out branch_base calculation rebase --keep-base: imply --reapply-cherry-picks rebase --keep-base: imply --no-fork-point rebase --apply: remove duplicated code t3406: rework rebase reflog tests rebase --merge: fix reflog when continuing rebase --merge: fix reflog message after skipping rebase --apply: respect GIT_REFLOG_ACTION rebase --apply: make reflog messages match rebase --merge rebase --abort: improve reflog message rebase: cleanup action handling sequencer: stop exporting GIT_REFLOG_ACTION rebase: stop exporting GIT_REFLOG_ACTION sequencer: unify label lookup sequencer: tighten label lookups René Scharfe (16): revision: use strtol_i() for exclude_parent revisions.txt: unspecify order of resolved parts of ^! diff: support ^! for merges submodule: use strvec_pushf() for --super-prefix run-command: fix return value comment am: simplify building "show" argument list bisect: simplify building "checkout" argument list bisect--helper: factor out do_bisect_run() sequencer: simplify building argument list in do_exec() use child_process member "args" instead of string array variable use child_process members "args" and "env" directly replace and remove run_command_v_opt_cd_env() replace and remove run_command_v_opt_tr2() replace and remove run_command_v_opt_cd_env_tr2() replace and remove run_command_v_opt() archive-tar: report filter start error only once Ronan Pigott (2): for-each-repo: interpolate repo path arguments maintenance: add option to register in a specific config Rubén Justo (3): branch: support for shortcuts like @{-1}, completed branch: error copying or renaming a detached HEAD branch: error code with --edit-description SZEDER Gábor (1): Documentation/build-docdep.perl: generate sorted output Shaoxuan Yuan (1): builtin/grep.c: integrate with sparse index Sotir Danailov (1): docs: git-send-email: difference between ssl and tls smtp-encryption Taylor Blau (26): midx.c: fix whitespace typo midx.c: consider annotated tags during bitmap selection midx.c: instrument MIDX and bitmap generation with trace2 regions pack-bitmap-write.c: instrument number of reused bitmaps builtin/repack.c: remove redundant pack-based bitmaps repack: don't remove .keep packs with `--pack-kept-objects` builtin/repack.c: pass "out" to `prepare_pack_objects` builtin/repack.c: pass "cruft_expiration" to `write_cruft_pack` builtin/repack.c: write cruft packs to arbitrary locations builtin/repack.c: implement `--expire-to` for storing pruned objects shortlog: make trailer insertion a noop when appropriate shortlog: extract `--group` fragment for translation shortlog: support arbitrary commit format `--group`s shortlog: extract `shortlog_finish_setup()` shortlog: implement `--group=author` in terms of `--group=` shortlog: implement `--group=committer` in terms of `--group=` apply: reject patches larger than ~1 GiB Documentation/howto/maintain-git.txt: fix Meta/redo-jch.sh invocation The ninth batch Documentation: build redo-jch.sh from master..jch Documentation: build redo-seen.sh from jch..seen The tenth batch The eleventh batch The twelfth batch builtin/gc.c: fix use-after-free in maintenance_unregister() The thirteenth batch Torsten Bögershausen (1): diff.c: use utf8_strwidth() to count display width Victoria Dye (6): rebase --update-refs: avoid unintended ref deletion cache-tree: add perf test comparing update and prime unpack-trees: add 'skip_cache_tree_update' option reset: use 'skip_cache_tree_update' option read-tree: use 'skip_cache_tree_update' option rebase: use 'skip_cache_tree_update' option Vincent Bernat (1): ls-files: fix --ignored and --killed flags in synopsis Vlad-Stefan Harbuz (1): Documentation: fix typo srz_zumix (1): fsmonitor--daemon: on macOS support symlink Ævar Arnfjörð Bjarmason (94): grep.c: remove "extended" in favor of "pattern_expression", fix segfault bundle-uri: create "key=value" line parsing bundle-uri: unit test "key=value" parsing run-command test helper: use "else if" pattern run-command API: have "run_processes_parallel{,_tr2}()" return void run-command tests: use "return", not "exit" run-command API: make "n" parameter a "size_t" run-command API: don't fall back on online_cpus() run-command.c: use designated init for pp_init(), add "const" run-command API: have run_process_parallel() take an "opts" struct run-command API: move *_tr2() users to "run_processes_parallel()" run-command.c: make "struct parallel_processes" const if possible run-command.c: don't copy *_fn to "struct parallel_processes" run-command.c: don't copy "ungroup" to "struct parallel_processes" run-command.c: don't copy "data" to "struct parallel_processes" run-command.c: use "opts->processes", not "pp->max_processes" run-command.c: pass "opts" further down, and use "opts->processes" run-command.c: remove "max_processes", add "const" to signal() handler tests: assert *.txt SYNOPSIS and -h output CodingGuidelines: update and clarify command-line conventions builtin/bundle.c: indent with tabs bundle: define subcommand -h in terms of command -h doc SYNOPSIS: don't use ' for subcommands doc SYNOPSIS: consistently use ' for commands built-ins: consistently add "\n" between "usage" and options doc txt & -h consistency: word-wrap doc txt & -h consistency: fix incorrect alternates syntax doc txt & -h consistency: add "-z" to cat-file "-h" doc txt & -h consistency: balance unbalanced "[" and "]" doc txt & -h consistency: correct padding around "[]()" stash doc SYNOPSIS & -h: correct padding around "[]()" doc txt & -h consistency: use "", not "..." doc SYNOPSIS & -h: use "-" to separate words in labels, not "_" doc txt & -h consistency: fix mismatching labels doc txt & -h consistency: add or fix optional "--" syntax doc txt & -h consistency: make output order consistent doc txt & -h consistency: add missing options and labels doc txt & -h consistency: make "rerere" consistent doc txt & -h consistency: make "read-tree" consistent doc txt & -h consistency: make "bundle" consistent doc txt & -h consistency: use "git foo" form, not "git-foo" doc txt & -h consistency: add missing options doc txt & -h consistency: make "stash" consistent doc txt & -h consistency: make "annotate" consistent doc txt & -h consistency: use "[