https://github.com/git/git

sort by:
Revision Author Date Message Commit Date
c5f7ef5 Git 2.40-rc0 Signed-off-by: Junio C Hamano <gitster@pobox.com> 24 February 2023, 19:32:40 UTC
deb32d6 Merge branch 'jc/genzeros-avoid-raw-write' A test helper had a single write(2) of 256kB, which was too big for some platforms (e.g. NonStop), which has been corrected by using xwrite() wrapper appropriately. * jc/genzeros-avoid-raw-write: test-genzeros: avoid raw write(2) 24 February 2023, 19:32:30 UTC
a7981d0 Merge branch 'rd/doc-default-date-format' Update --date=default documentation. * rd/doc-default-date-format: rev-list: clarify git-log default date format 24 February 2023, 19:32:30 UTC
38a227b Merge branch 'js/gpg-errors' Error messages given upon a signature verification failure used to discard the errors from underlying gpg program, which has been corrected. * js/gpg-errors: gpg: do show gpg's error message upon failure t7510: add a test case that does not need gpg 24 February 2023, 19:32:29 UTC
9861932 Merge branch 'rs/ctype-test' Test safe_ctype * rs/ctype-test: test-ctype: test iscntrl, ispunct, isxdigit and isprint test-ctype: test islower and isupper test-ctype: test isascii 24 February 2023, 19:32:29 UTC
06dd2ba The seventeenth batch Signed-off-by: Junio C Hamano <gitster@pobox.com> 22 February 2023, 22:55:59 UTC
5048df6 Merge branch 'ab/hook-api-with-stdin' Extend the run-hooks API to allow feeding data from the standard input when running the hook script(s). * ab/hook-api-with-stdin: hook: support a --to-stdin=<path> option sequencer: use the new hook API for the simpler "post-rewrite" call hook API: support passing stdin to hooks, convert am's 'post-rewrite' run-command: allow stdin for run_processes_parallel run-command.c: remove dead assignment in while-loop 22 February 2023, 22:55:45 UTC
72972ea Merge branch 'ab/various-leak-fixes' Leak fixes. * ab/various-leak-fixes: push: free_refs() the "local_refs" in set_refspecs() push: refactor refspec_append_mapped() for subsequent leak-fix receive-pack: release the linked "struct command *" list grep API: plug memory leaks by freeing "header_list" grep.c: refactor free_grep_patterns() builtin/merge.c: free "&buf" on "Your local changes..." error builtin/merge.c: use fixed strings, not "strbuf", fix leak show-branch: free() allocated "head" before return commit-graph: fix a parse_options_concat() leak http-backend.c: fix cmd_main() memory leak, refactor reg{exec,free}() http-backend.c: fix "dir" and "cmd_arg" leaks in cmd_main() worktree: fix a trivial leak in prune_worktrees() repack: fix leaks on error with "goto cleanup" name-rev: don't xstrdup() an already dup'd string various: add missing clear_pathspec(), fix leaks clone: use free() instead of UNLEAK() commit-graph: use free_commit_graph() instead of UNLEAK() bundle.c: don't leak the "args" in the "struct child_process" tests: mark tests as passing with SANITIZE=leak 22 February 2023, 22:55:45 UTC
6aac634 Merge branch 'jk/doc-ls-remote-matching' Doc update. * jk/doc-ls-remote-matching: doc/ls-remote: clarify pattern format doc/ls-remote: cosmetic cleanups for examples 22 February 2023, 22:55:45 UTC
a42d69e Merge branch 'rs/cache-tree-strbuf-growth-fix' Remove unnecessary explicit sizing of strbuf. * rs/cache-tree-strbuf-growth-fix: cache-tree: fix strbuf growth in prime_cache_tree_rec() 22 February 2023, 22:55:44 UTC
24fb150 Merge branch 'ab/the-index-compatibility' Remove more remaining uses of macros that relies on the_index singleton instance without explicitly spelling it out. * ab/the-index-compatibility: cocci & cache.h: remove "USE_THE_INDEX_COMPATIBILITY_MACROS" cache-tree API: remove redundant update_main_cache_tree() cocci & cache-tree.h: migrate "write_cache_as_tree" to "*_index_*" cocci & cache.h: apply pending "index_cache_pos" rule cocci & cache.h: fully apply "active_nr" part of index-compatibility builtin/rm.c: use narrower "USE_THE_INDEX_VARIABLE" 22 February 2023, 22:55:44 UTC
5fc6d00 Merge branch 'en/name-rev-make-taggerdate-much-less-important' "git name-rev" heuristics update. * en/name-rev-make-taggerdate-much-less-important: name-rev: fix names by dropping taggerdate workaround 22 February 2023, 22:55:44 UTC
58eab6f test-genzeros: avoid raw write(2) This test helper feeds 256kB of data at once to a single invocation of the write(2) system call, which may be too much for some platforms. Call our xwrite() wrapper that knows to honor MAX_IO_SIZE limit and cope with short writes due to EINTR instead, and die a bit more loudly by calling die_errno() when xwrite() indicates an error. Reported-by: Randall S. Becker <rsbecker@nexbridge.com> Helped-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 16 February 2023, 16:30:38 UTC
9deef08 rev-list: clarify git-log default date format The documentation mistakenly said that the default format was similar to RFC 2822 format and tried to specify it by enumerating differences, which had two problems: * There are some more differences from the 2822 format that are not mentioned; worse yet * The default format is not modeled after RFC 2822 format at all. As can be seen in f80cd783 (date.c: add "show_date()" function., 2005-05-06), it is a derivative of ctime(3) format. Stop saying that it is similar to RFC 2822, and rewrite the description to explain the format without requiring the reader to know any other format. Signed-off-by: Junio C Hamano <gitster@pobox.com> 16 February 2023, 01:34:46 UTC
d9d677b The sixteenth batch Signed-off-by: Junio C Hamano <gitster@pobox.com> 16 February 2023, 01:11:54 UTC
59397e9 Merge branch 'cw/doc-pushurl-vs-url' Doc update. * cw/doc-pushurl-vs-url: Documentation: clarify multiple pushurls vs urls 16 February 2023, 01:11:54 UTC
eb11ec2 Merge branch 'ab/config-h-remove-unused' Code clean-up. * ab/config-h-remove-unused: config.h: remove unused git_configset_add_parameters() 16 February 2023, 01:11:54 UTC
06bca97 Merge branch 'ab/retire-scripted-add-p' Finally retire the scripted "git add -p/-i" implementation and have everybody use the one reimplemented in C. * ab/retire-scripted-add-p: docs & comments: replace mentions of "git-add--interactive.perl" add API: remove run_add_interactive() wrapper function add: remove "add.interactive.useBuiltin" & Perl "git add--interactive" 16 February 2023, 01:11:53 UTC
c5f7b2a Merge branch 'rs/size-t-fixes' Type fixes. * rs/size-t-fixes: pack-objects: use strcspn(3) in name_cmp_len() read-cache: use size_t for {base,df}_name_compare() 16 February 2023, 01:11:53 UTC
063ec7b Merge branch 'kf/t5000-modernise' Test clean-up. * kf/t5000-modernise: t5000: modernise archive and :(glob) test 16 February 2023, 01:11:53 UTC
aa1e73b Merge branch 'wl/new-command-doc' Comment fix. * wl/new-command-doc: new-command.txt: update reference to builtin docs 16 February 2023, 01:11:53 UTC
4a6e6b0 Merge branch 'ar/userdiff-java-update' Userdiff regexp update for Java language. * ar/userdiff-java-update: userdiff: support Java sealed classes userdiff: support Java record types userdiff: support Java type parameters 16 February 2023, 01:11:52 UTC
f7c208c Merge branch 'po/attributes-text' In-tree .gitattributes update to match the way we recommend our users to mark a file as text. * po/attributes-text: .gitattributes: include `text` attribute for eol attributes 16 February 2023, 01:11:52 UTC
a232de5 Merge branch 'ab/sequencer-unleak' Plug leaks in sequencer subsystem and its users. * ab/sequencer-unleak: commit.c: free() revs.commit in get_fork_point() builtin/rebase.c: free() "options.strategy_opts" sequencer.c: always free() the "msgbuf" in do_pick_commit() builtin/rebase.c: fix "options.onto_name" leak builtin/revert.c: move free-ing of "revs" to replay_opts_release() sequencer API users: fix get_replay_opts() leaks sequencer.c: split up sequencer_remove_state() rebase: use "cleanup" pattern in do_interactive_rebase() 16 February 2023, 01:11:52 UTC
4f59836 Merge branch 'ds/bundle-uri-5' The bundle-URI subsystem adds support for creation-token heuristics to help incremental fetches. * ds/bundle-uri-5: bundle-uri: test missing bundles with heuristic bundle-uri: store fetch.bundleCreationToken fetch: fetch from an external bundle URI bundle-uri: drop bundle.flag from design doc clone: set fetch.bundleURI if appropriate bundle-uri: download in creationToken order bundle-uri: parse bundle.<id>.creationToken values bundle-uri: parse bundle.heuristic=creationToken t5558: add tests for creationToken heuristic bundle: verify using check_connected() bundle: test unbundling with incomplete history 16 February 2023, 01:11:52 UTC
214242a Merge branch 'cb/grep-fallback-failing-jit' In an environment where dynamically generated code is prohibited to run (e.g. SELinux), failure to JIT pcre patterns is expected. Fall back to interpreted execution in such a case. * cb/grep-fallback-failing-jit: grep: fall back to interpreter if JIT memory allocation fails 16 February 2023, 01:11:51 UTC
ad6b320 gpg: do show gpg's error message upon failure There are few things more frustrating when signing a commit fails than reading a terse "error: gpg failed to sign the data" message followed by the unsurprising "fatal: failed to write commit object" message. In many cases where signing a commit or tag fails, `gpg` actually said something helpful, on its stderr, and Git even consumed that, but then keeps mum about it. Teach Git to stop withholding that rather important information. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 15 February 2023, 16:55:24 UTC
8300d15 t7510: add a test case that does not need gpg This test case not only increases test coverage in setups without working gpg, but also prepares for verifying that the error message of `gpg.program` is shown upon failure. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 15 February 2023, 16:55:22 UTC
b148564 Sync with 'maint' 14 February 2023, 22:17:35 UTC
768bb23 Prepare for 2.39.3 just in case Signed-off-by: Junio C Hamano <gitster@pobox.com> 14 February 2023, 22:15:57 UTC
037db6d Merge branch 'sk/remove-duplicate-includes' into maint-2.39 Code clean-up. * sk/remove-duplicate-includes: git: remove duplicate includes 14 February 2023, 22:15:57 UTC
ff6c740 Merge branch 'rs/clarify-error-in-write-loose-object' into maint-2.39 Code clean-up. * rs/clarify-error-in-write-loose-object: object-file: inline write_buffer() 14 February 2023, 22:15:57 UTC
651b443 Merge branch 'rs/reflog-expiry-cleanup' into maint-2.39 Code clean-up. * rs/reflog-expiry-cleanup: reflog: clear leftovers in reflog_expiry_cleanup() 14 February 2023, 22:15:56 UTC
dfd37b7 Merge branch 'rs/clear-commit-marks-cleanup' into maint-2.39 Code clean-up. * rs/clear-commit-marks-cleanup: commit: skip already cleared parents in clear_commit_marks_1() 14 February 2023, 22:15:56 UTC
7ac5eca Merge branch 'rs/am-parse-options-cleanup' into maint-2.39 Code clean-up. * rs/am-parse-options-cleanup: am: don't pass strvec to apply_parse_options() 14 February 2023, 22:15:56 UTC
b7a7af2 Merge branch 'jk/server-supports-v2-cleanup' into maint-2.39 Code clean-up. * jk/server-supports-v2-cleanup: server_supports_v2(): use a separate function for die_on_error 14 February 2023, 22:15:55 UTC
8d404d0 Merge branch 'jk/unused-post-2.39' into maint-2.39 Code clean-up around unused function parameters. * jk/unused-post-2.39: userdiff: mark unused parameter in internal callback list-objects-filter: mark unused parameters in virtual functions diff: mark unused parameters in callbacks xdiff: mark unused parameter in xdl_call_hunk_func() xdiff: drop unused parameter in def_ff() ws: drop unused parameter from ws_blank_line() list-objects: drop process_gitlink() function blob: drop unused parts of parse_blob_buffer() ls-refs: use repository parameter to iterate refs 14 February 2023, 22:15:55 UTC
2f80d1b Merge branch 'rj/branch-copy-and-rename' into maint-2.39 Fix a pair of bugs in 'git branch'. * rj/branch-copy-and-rename: branch: force-copy a branch to itself via @{-1} is a no-op 14 February 2023, 22:15:55 UTC
8ca2b1f Merge branch 'rs/t3920-crlf-eating-grep-fix' into maint-2.39 Test fix. * rs/t3920-crlf-eating-grep-fix: t3920: support CR-eating grep 14 February 2023, 22:15:54 UTC
763ae82 Merge branch 'js/t3920-shell-and-or-fix' into maint-2.39 Test fix. * js/t3920-shell-and-or-fix: t3920: don't ignore errors of more than one command with `|| true` 14 February 2023, 22:15:54 UTC
81b216e Merge branch 'ab/t4023-avoid-losing-exit-status-of-diff' into maint-2.39 Test fix. * ab/t4023-avoid-losing-exit-status-of-diff: t4023: fix ignored exit codes of git 14 February 2023, 22:15:54 UTC
54941a5 Merge branch 'ab/t7600-avoid-losing-exit-status-of-git' into maint-2.39 Test fix. * ab/t7600-avoid-losing-exit-status-of-git: t7600: don't ignore "rev-parse" exit code in helper 14 February 2023, 22:15:54 UTC
2509d01 Merge branch 'ab/t5314-avoid-losing-exit-status' into maint-2.39 Test fix. * ab/t5314-avoid-losing-exit-status: t5314: check exit code of "git" 14 February 2023, 22:15:53 UTC
5a8f4c8 Merge branch 'rs/plug-pattern-list-leak-in-lof' into maint-2.39 Leak fix. * rs/plug-pattern-list-leak-in-lof: list-objects-filter: plug pattern_list leak 14 February 2023, 22:15:53 UTC
db2a91b Merge branch 'rs/t4205-do-not-exit-in-test-script' into maint-2.39 Test fix. * rs/t4205-do-not-exit-in-test-script: t4205: don't exit test script on failure 14 February 2023, 22:15:53 UTC
e34fd13 Merge branch 'jc/doc-checkout-b' into maint-2.39 Clarify how "checkout -b/-B" and "git branch [-f]" are similar but different in the documentation. * jc/doc-checkout-b: checkout: document -b/-B to highlight the differences from "git branch" 14 February 2023, 22:15:52 UTC
26fc326 Merge branch 'jc/doc-branch-update-checked-out-branch' into maint-2.39 Document that "branch -f <branch>" disables only the safety to avoid recreating an existing branch. * jc/doc-branch-update-checked-out-branch: branch: document `-f` and linked worktree behaviour 14 February 2023, 22:15:52 UTC
1f07146 Merge branch 'rs/ls-tree-path-expansion-fix' into maint-2.39 "git ls-tree --format='%(path) %(path)' $tree $path" showed the path three times, which has been corrected. * rs/ls-tree-path-expansion-fix: ls-tree: remove dead store and strbuf for quote_c_style() ls-tree: fix expansion of repeated %(path) 14 February 2023, 22:15:52 UTC
fa5958f Merge branch 'pb/doc-orig-head' into maint-2.39 Document ORIG_HEAD a bit more. * pb/doc-orig-head: git-rebase.txt: add a note about 'ORIG_HEAD' being overwritten revisions.txt: be explicit about commands writing 'ORIG_HEAD' git-merge.txt: mention 'ORIG_HEAD' in the Description git-reset.txt: mention 'ORIG_HEAD' in the Description git-cherry-pick.txt: do not use 'ORIG_HEAD' in example 14 February 2023, 22:15:51 UTC
4f8ab59 Merge branch 'es/hooks-and-local-env' into maint-2.39 Doc update for environment variables set when hooks are invoked. * es/hooks-and-local-env: githooks: discuss Git operations in foreign repositories 14 February 2023, 22:15:51 UTC
4950677 Merge branch 'ws/single-file-cone' into maint-2.39 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. * ws/single-file-cone: dir: check for single file cone patterns 14 February 2023, 22:15:51 UTC
f8382a6 Merge branch 'jk/ext-diff-with-relative' into maint-2.39 "git diff --relative" did not mix well with "git diff --ext-diff", which has been corrected. * jk/ext-diff-with-relative: diff: drop "name" parameter from prepare_temp_file() diff: clean up external-diff argv setup diff: use filespec path to set up tempfiles for ext-diff 14 February 2023, 22:15:51 UTC
7cbfd0e Merge branch 'ab/bundle-wo-args' into maint-2.39 Fix to a small regression in 2.38 days. * ab/bundle-wo-args: bundle <cmd>: have usage_msg_opt() note the missing "<file>" builtin/bundle.c: remove superfluous "newargc" variable bundle: don't segfault on "git bundle <subcmd>" 14 February 2023, 22:15:50 UTC
259988a Merge branch 'ps/fsync-refs-fix' into maint-2.39 Fix the sequence to fsync $GIT_DIR/packed-refs file that forgot to flush its output to the disk.. * ps/fsync-refs-fix: refs: fix corruption by not correctly syncing packed-refs to disk 14 February 2023, 22:15:50 UTC
725f293 Merge branch 'lk/line-range-parsing-fix' into maint-2.39 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. * lk/line-range-parsing-fix: line-range: fix infinite loop bug with '$' regex 14 February 2023, 22:15:49 UTC
a67610f Merge branch 'rs/use-enhanced-bre-on-macos' into maint-2.39 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. * rs/use-enhanced-bre-on-macos: use enhanced basic regular expressions on macOS 14 February 2023, 22:15:49 UTC
11b53f8 Merge branch 'jk/curl-avoid-deprecated-api' into maint-2.39 Deal with a few deprecation warning from cURL library. * jk/curl-avoid-deprecated-api: http: support CURLOPT_PROTOCOLS_STR http: prefer CURLOPT_SEEKFUNCTION to CURLOPT_IOCTLFUNCTION http-push: prefer CURLOPT_UPLOAD to CURLOPT_PUT 14 February 2023, 22:15:49 UTC
6cdb8cd Merge branch 'jk/avoid-redef-system-functions' into maint-2.39 The jk/avoid-redef-system-functions-2.30 topic pre-merged for more recent codebase. * jk/avoid-redef-system-functions: 14 February 2023, 22:15:49 UTC
f3a28c2 Merge branch 'jk/avoid-redef-system-functions-2.30' into maint-2.39 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. * jk/avoid-redef-system-functions-2.30: git-compat-util: undefine system names before redeclaring them git-compat-util: avoid redefining system function names 14 February 2023, 22:15:47 UTC
83d585a Merge branch 'tb/ci-concurrency' into maint-2.39 Avoid unnecessary builds in CI, with settings configured in ci-config. * tb/ci-concurrency: ci: avoid unnecessary builds 14 February 2023, 22:15:46 UTC
f66b749 Merge branch 'cw/ci-whitespace' into maint-2.39 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. * cw/ci-whitespace: ci (check-whitespace): move to actions/checkout@v3 ci (check-whitespace): add links to job output ci (check-whitespace): suggest fixes for errors 14 February 2023, 22:15:45 UTC
a9405a8 Merge branch 'js/ci-disable-cmake-by-default' into maint-2.39 Stop running win+VS build by default. * js/ci-disable-cmake-by-default: ci: only run win+VS build & tests in Git for Windows' fork 14 February 2023, 22:15:45 UTC
c867e4f Sync with Git 2.39.2 14 February 2023, 01:03:55 UTC
567342f test-ctype: test iscntrl, ispunct, isxdigit and isprint Test the character classifiers added by 1c149ab2dd (ctype: support iscntrl, ispunct, isxdigit and isprint, 2012-10-15) and 0fcec2ce54 (format-patch: make rfc2047 encoding more strict, 2012-10-18). Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 13 February 2023, 21:36:05 UTC
2c17de8 test-ctype: test islower and isupper Test the character classifiers added by 43ccdf56ec (ctype: implement islower/isupper macro, 2012-02-10). Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 13 February 2023, 21:36:05 UTC
d5071be test-ctype: test isascii Test the character classifier added by c2e9364a06 (cleanup: add isascii(), 2009-03-07). It returns 1 for NUL as well, which requires special treatment, as our string-based tester can't find it with strcmp(3). Allow NUL to be given as the first character in a class specification string. This has the downside of no longer supporting the empty string, but that's OK since we are not interested in testing character classes with no members. Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 13 February 2023, 21:36:05 UTC
d9ec3b0 doc/ls-remote: clarify pattern format We document that you can specify "refs" to ls-remote, but we don't explain any further than that they are "matched" as patterns. Since this can be interpreted in a lot of ways, let's clarify that they are tail-matched globs. Likewise, let's use the word "patterns" to refer to them consistently, rather than "refs" (both here and in the quick "-h" help), and mention more explicitly that only one pattern needs to be matched (though there is also an example already that shows this in action). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 11 February 2023, 05:57:51 UTC
baebde7 doc/ls-remote: cosmetic cleanups for examples There are effectively three example commands and their output, but they're smushed together with no extra whitespace. Let's add some blank lines to make them more readable. Likewise, the first example uses "./." to refer to the path of the current repository, which is somewhat distracting. That may have been necessary back in 2005 when it was added, but we can just say "." these days. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com> 11 February 2023, 02:54:58 UTC
93ea118 cache-tree: fix strbuf growth in prime_cache_tree_rec() Use size_t to store the original length of the strbuf tree_len, as that's the correct type. Don't double the allocated size of the strbuf when adding a subdirectory name. And the chance of the trailing slash fitting in the slack left by strbuf_add() is very high, so stop pre-growing the strbuf at all. Suggested-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: René Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com> 10 February 2023, 20:24:12 UTC
dfd0a89 cocci & cache.h: remove "USE_THE_INDEX_COMPATIBILITY_MACROS" Have the last users of "USE_THE_INDEX_COMPATIBILITY_MACROS" use the underlying *_index() variants instead. Now all previous users of "USE_THE_INDEX_COMPATIBILITY_MACROS" have been migrated away from the wrapper macros, and if applicable to use the "USE_THE_INDEX_VARIABLE" added in [1]. Let's leave the "index-compatibility.cocci" in place, even though it won't be doing anything on "master". It will benefit any out-of-tree code that need to use these compatibility macros. We can eventually remove it. 1. bdafeae0b9c (cache.h & test-tool.h: add & use "USE_THE_INDEX_VARIABLE", 2022-11-19) Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 10 February 2023, 19:38:40 UTC
fcb864b cache-tree API: remove redundant update_main_cache_tree() Remove the redundant update_main_cache_tree() function, and make its users use cache_tree_update() instead. The behavior of populating the "the_index.cache_tree" if it wasn't present already was needed when this function was introduced in [1], but it hasn't been needed since [2]; The "cache_tree_update()" will now lazy-allocate, so there's no need for the wrapper. 1. 996277c5206 (Refactor cache_tree_update idiom from commit, 2011-12-06) 2. fb0882648e0 (cache-tree: clean up cache_tree_update(), 2021-01-23) Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 10 February 2023, 19:38:14 UTC
9937086 cocci & cache-tree.h: migrate "write_cache_as_tree" to "*_index_*" Add a trivial rule for "write_cache_as_tree" to "index-compatibility.cocci", and apply it. This was left out of the rules added in 0e6550a2c63 (cocci: add a index-compatibility.pending.cocci, 2022-11-19) because this compatibility wrapper lived in "cache-tree.h", not "cache.h" But it's like the other "USE_THE_INDEX_COMPATIBILITY_MACROS", so let's migrate it too. The replacement of "USE_THE_INDEX_COMPATIBILITY_MACROS" here with "USE_THE_INDEX_VARIABLE" is a manual change on top, now that these files only use "&the_index", and don't need any compatibility macros (or functions). The wrapping of some argument lists is likewise manual, as coccinelle would otherwise give us overly long argument lists. The reason for putting the "O" in the cocci rule on the "-" and "+" lines is because I couldn't get correct whitespacing otherwise, i.e. I'd end up with "oid,&the_index", not "oid, &the_index". Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 10 February 2023, 19:37:49 UTC
babed89 cocci & cache.h: apply pending "index_cache_pos" rule Apply the rule added in [1] to change "cache_name_pos" to "index_name_pos", which allows us to get rid of another "USE_THE_INDEX_COMPATIBILITY_MACROS" macro. The replacement of "USE_THE_INDEX_COMPATIBILITY_MACROS" here with "USE_THE_INDEX_VARIABLE" is a manual change on top, now that these files only use "&the_index", and don't need any compatibility macros (or functions). 1. 0e6550a2c63 (cocci: add a index-compatibility.pending.cocci, 2022-11-19) Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 10 February 2023, 19:37:27 UTC
cec13b9 cocci & cache.h: fully apply "active_nr" part of index-compatibility Apply the "active_nr" part of "index-compatibility.pending.cocci", which was left out in [1] due to an in-flight conflict. As of [2] the topic we conflicted with has been merged to "master", so we can fully apply this rule. 1. dc594180d9e (cocci & cache.h: apply variable section of "pending" index-compatibility, 2022-11-19) 2. 9ea1378d046 (Merge branch 'ab/various-leak-fixes', 2022-12-14) Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 10 February 2023, 19:31:18 UTC
6193aaa builtin/rm.c: use narrower "USE_THE_INDEX_VARIABLE" Replace the "USE_THE_INDEX_COMPATIBILITY_MACROS" define with the narrower "USE_THE_INDEX_VARIABLE". This could have been done in 07047d68294 (cocci: apply "pending" index-compatibility to some "builtin/*.c", 2022-11-19), but I missed it at the time. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 10 February 2023, 19:31:16 UTC
23c56f7 The fifteenth batch Signed-off-by: Junio C Hamano <gitster@pobox.com> 09 February 2023, 22:40:47 UTC
6d1b2e4 Merge branch 'ew/free-island-marks' "git pack-objects" learned to release delta-island bitmap data when it is done using it, saving peak heap memory usage. * ew/free-island-marks: delta-islands: free island_marks and bitmaps 09 February 2023, 22:40:47 UTC
8a1d607 Merge branch 'sk/winansi-createthread-fix' Fix use of CreateThread() API call made early in the windows start-up code. * sk/winansi-createthread-fix: compat/winansi: check for errors of CreateThread() correctly 09 February 2023, 22:40:47 UTC
4158b92 Merge branch 'hj/remove-msys-support' Remove support for MSys, which now lags way behind MSys2. * hj/remove-msys-support: mingw: remove msysGit/MSYS1 support mingw: remove duplicate `USE_NED_ALLOCATOR` directive 09 February 2023, 22:40:47 UTC
a674c7e Merge branch 'jk/httpd-test-updates' Test update. * jk/httpd-test-updates: t/lib-httpd: increase ssl key size to 2048 bits t/lib-httpd: drop SSLMutex config t/lib-httpd: bump required apache version to 2.4 t/lib-httpd: bump required apache version to 2.2 09 February 2023, 22:40:47 UTC
2c91b13 Merge branch 'gc/index-format-doc' Doc update. * gc/index-format-doc: docs: document zero bits in index "mode" 09 February 2023, 22:40:46 UTC
b2182a8 name-rev: fix names by dropping taggerdate workaround Commit 7550424804 ("name-rev: include taggerdate in considering the best name", 2016-04-22) introduced the idea of using taggerdate in the criteria for selecting the best name. At the time, a certain commit in linux.git -- namely, aed06b9cfcab -- was being named by name-rev as v4.6-rc1~9^2~792 which, while correct, was very suboptimal. Some investigation found that tweaking the MERGE_TRAVERSAL_WEIGHT to lower it could give alternate answers such as v3.13-rc7~9^2~14^2~42 or v3.13~5^2~4^2~2^2~1^2~42 A manual solution involving looking at tagger dates came up with v3.13-rc1~65^2^2~42 which is much nicer. That workaround was then implemented in name-rev. Unfortunately, the taggerdate heuristic is causing bugs. I was pointed to a case in a private repository where name-rev reports a name of the form v2022.10.02~86 when users expected to see one of the form v2022.10.01~2 (I've modified the names and numbers a bit from the real testcase.) As you can probably guess, v2022.10.01 was created after v2022.10.02 (by a few hours), even though it pointed to an older commit. While the condition is unusual even in the repository in question, it is not the only problematic set of tags in that repository. The taggerdate logic is causing problems. Further, it turns out that this taggerdate heuristic isn't even helping anymore. Due to the fix to naming logic in 3656f84278 ("name-rev: prefer shorter names over following merges", 2021-12-04), we get improved names without the taggerdate heuristic. For the original commit of interest in linux.git, a modern git without the taggerdate heuristic still provides the same optimal answer of interest, namely: v3.13-rc1~65^2^2~42 So, the taggerdate is no longer providing benefit, and it is causing problems. Simply get rid of it. However, note that "taggerdate" as a variable is used to store things besides a taggerdate these days. Ever since commit ef1e74065c ("name-rev: favor describing with tags and use committer date to tiebreak", 2017-03-29), this has been used to store committer dates and there it is used as a fallback tiebreaker (as opposed to a primary criteria overriding effective distance calculations). We do not want to remove that fallback tiebreaker, so not all instances of "taggerdate" are removed in this change. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 09 February 2023, 17:01:36 UTC
93d52ed userdiff: support Java sealed classes A new kind of class was added in Java 17 -- sealed classes.[1] This feature includes several new keywords that may appear in a declaration of a class. New modifiers before name of the class: "sealed" and "non-sealed", and a clause after name of the class marked by keyword "permits". The current set of regular expressions in userdiff.c already allows the modifier "sealed" and the "permits" clause, but not the modifier "non-sealed", which is the first hyphenated keyword in Java.[2] Allow hyphen in the words that precede the name of type to match the "non-sealed" modifier. In new input file "java-sealed" for the test t4018-diff-funcname.sh, use a Java code comment for the marker "RIGHT". This workaround is needed, because the name of the sealed class appears on the line of code that has the "ChangeMe" marker. [1] Detailed description in "JEP 409: Sealed Classes" https://openjdk.org/jeps/409 [2] "JEP draft: Keyword Management for the Java Language" https://openjdk.org/jeps/8223002 Signed-off-by: Andrei Rybak <rybak.a.v@gmail.com> Reviewed-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 February 2023, 20:57:13 UTC
575e6fc userdiff: support Java record types A new kind of class was added in Java 16 -- records.[1] The syntax of records is similar to regular classes with one important distinction: the name of the record class is followed by a mandatory list of components. The list is enclosed in parentheses, it may be empty, and it may immediately follow the name of the class or type parameters, if any, with or without separating whitespace. For example: public record Example(int i, String s) { } public record WithTypeParameters<A, B>(A a, B b, String s) { } record SpaceBeforeComponents (String comp1, int comp2) { } Support records in the builtin userdiff pattern for Java. Add "record" to the alternatives of keywords for kinds of class. Allowing matching various possibilities for the type parameters and/or list of the components of a record has already been covered by the preceding patch. [1] detailed description is available in "JEP 395: Records" https://openjdk.org/jeps/395 Signed-off-by: Andrei Rybak <rybak.a.v@gmail.com> Reviewed-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 February 2023, 20:57:11 UTC
39226a8 userdiff: support Java type parameters A class or interface in Java can have type parameters following the name in the declared type, surrounded by angle brackets (paired less than and greater than signs).[2] The type parameters -- `A` and `B` in the examples -- may follow the class name immediately: public class ParameterizedClass<A, B> { } or may be separated by whitespace: public class SpaceBeforeTypeParameters <A, B> { } A part of the builtin userdiff pattern for Java matches declarations of classes, enums, and interfaces. The regular expression requires at least one whitespace character after the name of the declared type. This disallows matching for opening angle bracket of type parameters immediately after the name of the type. Mandatory whitespace after the name of the type also disallows using the pattern in repositories with a fairly common code style that puts braces for the body of a class on separate lines: class WithLineBreakBeforeOpeningBrace { } Support matching Java code in more diverse code styles and declarations of classes and interfaces with type parameters immediately following the name of the type in the builtin userdiff pattern for Java. Do so by just matching anything until the end of the line after the keywords for the kind of type being declared. [1] Since Java 5 released in 2004. [2] Detailed description is available in the Java Language Specification, sections "Type Variables" and "Parameterized Types": https://docs.oracle.com/javase/specs/jls/se17/html/jls-4.html#jls-4.4 Signed-off-by: Andrei Rybak <rybak.a.v@gmail.com> Reviewed-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 February 2023, 20:56:57 UTC
0414b38 hook: support a --to-stdin=<path> option Expose the "path_to_stdin" API added in the preceding commit in the "git hook run" command. For now we won't be using this command interface outside of the tests, but exposing this functionality makes it easier to test the hook API. The plan is to use this to extend the "sendemail-validate" hook[1][2]. 1. https://lore.kernel.org/git/ad152e25-4061-9955-d3e6-a2c8b1bd24e7@amd.com 2. https://lore.kernel.org/git/20230120012459.920932-1-michael.strawbridge@amd.com Signed-off-by: Emily Shaffer <emilyshaffer@google.com> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 February 2023, 20:50:03 UTC
96af564 sequencer: use the new hook API for the simpler "post-rewrite" call Change the invocation of the "post-rewrite" hook added in 795160457db (sequencer (rebase -i): run the post-rewrite hook, if needed, 2017-01-02) to use the new hook API. This leaves the more complex "post-rewrite" invocation added in a87a6f3c98e (commit: move post-rewrite code to libgit, 2017-11-17) here in sequencer.c unconverted. Here we can pass in a file's via the "in" file descriptor, in that case we don't have a file, but will need to write_in_full() to an "in" provide by the API. Support for that will be added to the hook API in the future, but we're not there yet. Signed-off-by: Emily Shaffer <emilyshaffer@google.com> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 February 2023, 20:50:03 UTC
917e080 hook API: support passing stdin to hooks, convert am's 'post-rewrite' Convert the invocation of the 'post-rewrite' hook run by 'git am' to use the hook.h library. To do this we need to add a "path_to_stdin" member to "struct run_hooks_opt". In our API this is supported by asking for a file path, rather than by reading stdin. Reading directly from stdin would involve caching the entire stdin (to memory or to disk) once the hook API is made to support "jobs" larger than 1, along with support for executing N hooks at a time (i.e. the upcoming config-based hooks). Signed-off-by: Emily Shaffer <emilyshaffer@google.com> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 February 2023, 20:50:03 UTC
5402673 run-command: allow stdin for run_processes_parallel While it makes sense not to inherit stdin from the parent process to avoid deadlocking, it's not necessary to completely ban stdin to children. An informed user should be able to configure stdin safely. By setting `some_child.process.no_stdin=1` before calling `get_next_task()` we provide a reasonable default behavior but enable users to set up stdin streaming for themselves during the callback. `some_child.process.stdout_to_stderr`, however, remains unmodifiable by `get_next_task()` - the rest of the run_processes_parallel() API depends on child output in stderr. Signed-off-by: Emily Shaffer <emilyshaffer@google.com> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 February 2023, 20:50:03 UTC
5123e6e run-command.c: remove dead assignment in while-loop Remove code that's been unused since it was added in c553c72eed6 (run-command: add an asynchronous parallel child processor, 2015-12-15). Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 February 2023, 20:50:03 UTC
7876265 The fourteenth batch Signed-off-by: Junio C Hamano <gitster@pobox.com> 08 February 2023, 17:14:51 UTC
3fe6612 Merge branch 'ds/scalar-ignore-cron-error' Allow "scalar" to warn but continue when its periodic maintenance feature cannot be enabled. * ds/scalar-ignore-cron-error: scalar: only warn when background maintenance fails t921*: test scalar behavior starting maintenance t: allow 'scalar' in test_must_fail 08 February 2023, 17:14:42 UTC
c6dea59 Merge branch 'mh/doc-credential-cache-only-in-core' Documentation clarification. * mh/doc-credential-cache-only-in-core: Documentation: clarify that cache forgets credentials if the system restarts 08 February 2023, 17:14:42 UTC
ad7fd3c Merge branch 'gm/request-pull-with-non-pgp-signed-tags' Adjust "git request-pull" to strip embedded signature from signed tags to notice non-PGP signatures. * gm/request-pull-with-non-pgp-signed-tags: request-pull: filter out SSH/X.509 tag signatures 08 February 2023, 17:14:42 UTC
d390e08 Documentation: clarify multiple pushurls vs urls In a remote with multiple configured URLs, `git remote -v` shows the correct url that fetch uses. However, `git config remote.<remote>.url` returns the last defined url instead. This discrepancy can cause confusion for users with a remote defined as such, since any url defined after the first essentially acts as a pushurl. Add documentation to clarify how fetch interacts with multiple urls and how push interacts with multiple pushurls and urls. Add test affirming interaction between fetch and multiple urls. Signed-off-by: Calvin Wan <calvinwan@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 February 2023, 19:02:27 UTC
3eb1e1c config.h: remove unused git_configset_add_parameters() This function was removed in ecec57b3c97 (config: respect includes in protected config, 2022-10-13), but its prototype was left here. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Reviewed-by: Glen Choo <chooglen@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 February 2023, 18:50:27 UTC
0c10ed1 commit.c: free() revs.commit in get_fork_point() Fix a memory leak that's been with us since d96855ff517 (merge-base: teach "--fork-point" mode, 2013-10-23). Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 February 2023, 00:03:53 UTC
a535040 builtin/rebase.c: free() "options.strategy_opts" When the "strategy_opts" member was added in ba1905a5fef (builtin rebase: add support for custom merge strategies, 2018-09-04) the corresponding free() for it at the end of cmd_rebase() wasn't added, let's do so. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 February 2023, 00:03:53 UTC
a5792e9 sequencer.c: always free() the "msgbuf" in do_pick_commit() In [1] the strbuf_release(&msgbuf) was moved into this do_pick_commit(), but didn't take into account the case of [2], where we'd return before the strbuf_release(&msgbuf). Then when the "fixup" support was added in [3] this leak got worse, as in this error case we added another place where we'd "return" before reaching the strbuf_release(). This changes the behavior so that we'll call update_abort_safety_file() in these cases where we'd previously "return", but as noted in [4] "update_abort_safety_file() is a no-op when rebasing and you're changing code that is only run when rebasing.". Here "no-op" refers to the early return in update_abort_safety_file() if git_path_seq_dir() doesn't exist. 1. 452202c74b8 (sequencer: stop releasing the strbuf in write_message(), 2016-10-21) 2. f241ff0d0a9 (prepare the builtins for a libified merge_recursive(), 2016-07-26) 3. 6e98de72c03 (sequencer (rebase -i): add support for the 'fixup' and 'squash' commands, 2017-01-02) 4. https://lore.kernel.org/git/bcace50b-a4c3-c468-94a3-4fe0c62b3671@dunelm.org.uk/ Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 February 2023, 00:03:52 UTC
94ad545 builtin/rebase.c: fix "options.onto_name" leak Similar to the existing "squash_onto_name" added in [1] we need to free() the xstrdup()'d "options.onto.name" added for "--keep-base" in [2].. 1. 9dba809a69a (builtin rebase: support --root, 2018-09-04) 2. 414d924beb4 (rebase: teach rebase --keep-base, 2019-08-27) Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> 07 February 2023, 00:03:52 UTC
back to top