I Use This!
Very High Activity

News

Analyzed about 15 hours ago. based on code collected 1 day ago.
Posted over 1 year ago by Johannes Schindelin
Dear Git users, I hereby announce that Git for Windows 2.39.0(2) is available from: https://gitforwindows.org/ Changes since Git for Windows v2.39.0 (December 12th 2022) New Features * Comes with PCRE2 v10.42. * Comes with Git Credential ... [More] Manager v2.0.886. * Comes with MinTTY v3.6.3. * Comes with cURL v7.87.0. Bug Fixes * The installer is expected to stop GPG agents automatically, but there was a bug that prevented that from working, which has been fixed. * A regression that caused no_proxy to be ignored was fixed by upgrading libcurl. * The Git Credential Manager version shipped with Git for Windows v2.39.0 could not always find its UI helper which was fixed by upgrading to a fixed version. * A bug in MinTTY caused it to throw a Critical Error when the printer spool service was not started, which was fixed by upgrading MinTTY. Git-2.39.0.2-64-bit.exe | 8cf0ee3efaabe8a9b9b6b6889ae0ed369d9f1c85696ad637e715959921ed71c3 Git-2.39.0.2-32-bit.exe | eb5a8bd17995117a3bcdb0b9fcec74141ae6b1a74fe960fd0c9192a2b1d9c903 PortableGit-2.39.0.2-64-bit.7z.exe | 0a58c7b062a29bc44fb573c9afc5323011d01237dd94c74e6c833929cfe25436 PortableGit-2.39.0.2-32-bit.7z.exe | 042de3e9f87e529ee53ed31385bc76b39a9794c32c18ea7c62e3e6445dd8484d MinGit-2.39.0.2-64-bit.zip | 771e7bef1b672e3f63b18b8c4a62d626c8f47c41390a745f313758c0b6ae4d63 MinGit-2.39.0.2-32-bit.zip | a5ac14121bb0fe879355f58db15aae41205046b7cd1832df40d1e784aa8e1c70 MinGit-2.39.0.2-busybox-64-bit.zip | 4337be32536f6840da4ef67ef93996a3808b774c4f61e3a2a585f5d968d1b1d3 MinGit-2.39.0.2-busybox-32-bit.zip | f68c4c5dce5cda8743d8a134174d1cbf0e0af725791bbc3c4062f3fdf93094b2 Git-2.39.0.2-64-bit.tar.bz2 | 1e81e8b0026cfa71050f81abf10669733a7b66b44c68e5a9448ace15cf521030 Git-2.39.0.2-32-bit.tar.bz2 | bf5e3281378e8ed23f6bff3f3e1ef7d84932050c2f590f75e4f19d419b7387ec Ciao, Johannes [Less]
Posted over 1 year ago by Johannes Schindelin
Dear Git users, I hereby announce that Git for Windows 2.39.0 is available from: https://gitforwindows.org/ Changes since Git for Windows v2.38.1 (October 18th 2022) New Features * Comes with Git v2.39.0. * Comes with OpenSSL v1.1.1s. ... [More] * Comes with cURL v7.86.0. * The Portable Git edition (which comes as a self-extracting 7-Zip archive) now uses the latest 7-Zip version to self-extract. * Comes with OpenSSH v9.1p1. * It is now possible to generate and use SSH keys protected by security keys (AKA FIDO devices) via Windows Hello, e.g. via ssh-keygen.exe -t ecdsa-sk. * Portable Git no longer configures color.diff, color.status and color.branch individually, but configures color.ui instead, which makes it easier to override the default. * Comes with GNU TLS v3.7.8. * Comes with Git Credential Manager Core v2.0.877. * Comes with MinTTY v3.6.2. * Comes with Bash v5.2 patchlevel 12. * Comes with Git LFS v3.3.0. * Comes with PCRE2 v10.41. Bug Fixes * The Git executables (e.g. git.exe itself) used to have incomplete version information recorded in their resources, which has been fixed. * A regression introduced in Git for Windows v2.38.0 that prevented git.exe from running in Windows Nano Server containers was fixed. Git-2.39.0-64-bit.exe | 2eaba567e17784654be77ba997329742d87845c6f15e33c9620f9a331c69a976 Git-2.39.0-32-bit.exe | 5b01ddb342a07e74e723fe93bc84c275a19236e853c406b4496478e64a7f8add PortableGit-2.39.0-64-bit.7z.exe | 8ca31e8474048b48b813ebdf95f288d58f253717d071d11785cc23f37dc6a396 PortableGit-2.39.0-32-bit.7z.exe | b8332fc12bcb1343d57c785d7ec140e2fd89f9d7f70309a00e79f9822c2cc855 MinGit-2.39.0-64-bit.zip | ae6863d7b7641ecf73f61edadbc7d1ff8259d08eccb4b9f006bb443d90910c25 MinGit-2.39.0-32-bit.zip | ad20467cf6a4c215b2c71f9bee192fb8ea1696fa3dda8e35e89544cdabdc1c7a MinGit-2.39.0-busybox-64-bit.zip | a5d177bceeddfecc97c2340f0c8bc97d55ba113c4cd5b6b7d58e513dccb3d74f MinGit-2.39.0-busybox-32-bit.zip | cb8371cbba56562f7af1d54281afb24bfa23395a57a0868398f644a79c2fea2a Git-2.39.0-64-bit.tar.bz2 | ed78c21d89281d91fb1282043c3b618350e8ff721947ad01678356126b0447f3 Git-2.39.0-32-bit.tar.bz2 | 09126077d63b3e3e19c90599f86c037eb57edddf255e75acc31720428d03d78b Ciao, Johannes [Less]
Posted over 1 year ago by Junio C Hamano
The latest feature release Git v2.39.0 is now available at the usual places. It is comprised of 483 non-merge commits since v2.38.0, contributed by 86 people, 31 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.39.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.38.0 are as follows. Welcome to the Git development community! Alexander Kanavin, Alexander Meshcheryakov, Andreas Hasenack, Anh Le, Arthur Chan, Daniel Sonbolian, Debra Obondo, Diomidis Spinellis, Erik Cervin Edin, Hank Leininger, herr.kaste, John A. Leuenhagen, Julia Ramer, Kevin Backhouse, Kousik Sanagavarapu, Lukáš Doktor, Martin Englund, M Hickford, Michael V. Scovetta, Noah Betzen, Nsengiyumva Wilberforce, orygaw, Oscar Dominguez, Ronan Pigott, Rubén Justo, Sotir Danailov, srz_zumix, Stefano Rivera, Tim Jaacks, Vincent Bernat, and Vlad-Stefan Harbuz. Returning contributors who helped this release are as follows. Thanks for your continued support. 정재우, Ævar Arnfjörð Bjarmason, Alejandro R. Sedeño, Alexander Shopov, Alex Henrie, Bagas Sanjaya, Derrick Stolee, Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer, Emir SARI, Eric DeCosta, Eric Sunshine, Eric Wong, Fangyi Zhou, Glen Choo, Han-Wen Nienhuys, Jan Pokorný, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jerry Zhang, Jiang Xin, Johannes Altmanninger, Johannes Schindelin, John Cai, Jonathan Tan, Jordi Mas, Julien Moutinho, Junio C Hamano, Kyle Meyer, Martin Ågren, Martin von Zweigbergk, Matheus Tavares, Matthew John Cheetham, Matthias Rüster, Michael J Gruber, Michael McClimon, Patrick Steinhardt, Paul Smith, Peter Krefting, Philip Oakley, Philippe Blain, Phillip Wood, Ralf Thielow, Randall S. Becker, René Scharfe, Sergey Organov, Shaoxuan Yuan, SZEDER Gábor, Taylor Blau, Torsten Bögershausen, Victoria Dye, Yi-Jyun Pan, and 依云. [*] We are counting not just the authorship contribution but issue reporting, mentoring, helping and reviewing that are recorded in the commit trailers. ---------------------------------------------------------------- Git v2.39 Release Notes ======================= UI, Workflows & Features ------------------------ * "git grep" learned to expand the sparse-index more lazily and on demand in a sparse checkout. * By default, use of fsmonitor on a repository on networked filesystem is disabled. Add knobs to make it workable on macOS. * After checking out a "branch" that is a symbolic-ref that points at another branch, "git symbolic-ref HEAD" reports the underlying branch, not the symbolic-ref the user gave checkout as argument. The command learned the "--no-recurse" option to stop after dereferencing a symbolic-ref only once. * "git branch --edit-description @{-1}" is now a way to edit branch description of the branch you were on before switching to the current branch. * "git merge-tree --stdin" is a new way to request a series of merges and report the merge results. * "git shortlog" learned to group by the "format" string. * A new "--include-whitespace" option is added to "git patch-id", and existing bugs in the internal patch-id logic that did not match what "git patch-id" produces have been corrected. * Enable gc.cruftpacks by default for those who opt into feature.experimental setting. * "git repack" learns to send cruft objects out of the way into packfiles outside the repository. * 'scalar reconfigure -a' is taught to automatically remove scalar.repo entires which no longer exist. * Redact headers from cURL's h2h3 module in GIT_CURL_VERBOSE and others. * 'git maintenance register' is taught to write configuration to an arbitrary path, and 'git for-each-repo' is taught to expand tilde characters in paths. * When creating new notes, the template used to get a stray empty newline, which has been removed. * "git receive-pack" used to use all the local refs as the boundary for checking connectivity of the data "git push" sent, but now it uses only the refs that it advertised to the pusher. In a repository with the .hideRefs configuration, this reduces the resources needed to perform the check. * With '--recurse-submodules=on-demand', all submodules are recursively pushed. Performance, Internal Implementation, Development Support etc. -------------------------------------------------------------- * With a bit of header twiddling, use the native regexp library on macOS instead of the compat/ one. * Prepare for GNU [ef]grep that throw warning of their uses. * Sources related to fuzz testing have been moved down to their own directory. * Most credential helpers ignored unknown entries in a credential description, but a few died upon seeing them. The latter were taught to ignore them, too * "scalar unregister" in a repository that is already been unregistered reported an error. * Remove error detection from a function that fetches from promisor remotes, and make it die when such a fetch fails to bring all the requested objects, to give an early failure to various operations. * Update CodingGuidelines to clarify what features to use and avoid in C99. * Avoid false-positive from LSan whose assumption may be broken with higher optimization levels. * Enable address and undefined sanitizer tasks at GitHub Actions CI. * More UNUSED annotation to help using -Wunused option with the compiler. (merge 4b992f0a24 jk/unused-anno-more later to maint). * Rewrite a deep recursion in the skipping negotiator to use a loop with on-heap prio queue to avoid stack wastage. * Add documentation for message IDs in fsck error messages. * Define the logical elements of a "bundle list", data structure to store them in-core, format to transfer them, and code to parse them. * The role the security mailing list plays in an embargoed release has been documented. * Two new facilities, "timer" and "counter", are introduced to the trace2 API. * Code simplification by using strvec_pushf() instead of building an argument in a separate strbuf. * Make sure generated dependency file is stably sorted to help developers debugging their build issues. * The glossary entries for "commit-graph file" and "reachability bitmap" have been added. * Various tests exercising the transfer.credentialsInUrl configuration are taught to avoid making requests which require resolving localhost to reduce CI-flakiness. * A redundant diagnostic message is dropped from test_path_is_missing(). * Simplify the run-command API. * Update the actions/github-script dependency in CI to avoid a deprecation warning. * Progress on being able to initialize a rev_info struct with a macro. * Add trace2 counters to the region to clear skip worktree bits in a sparse checkout. * Modernize test script to avoid "test -f" and friends. * Avoid calling 'cache_tree_update()' when doing so would be redundant. * Update the credential-cache documentation to provide a more realistic example. * Makefile comments updates and reordering to clarify knobs used to choose SHA implementations. * A design document for sparse-checkout's future directions has been added. * Teach chainlint.pl to annotate the original test definition instead of the token stream. * "make coccicheck" is time consuming. It has been made to run more incrementally. * `parse_object()` has been hardened to check for the existence of a suspected blob object. * The build procedure has been adjusted to GNUmake version 4.4, which made some changes to how pattern rule with multiple targets are handled. Fixes since v2.38 ----------------- * The codepath that reads from the index v4 had unaligned memory accesses, which has been corrected. * Fix messages incorrectly marked for translation. * "git fsck" failed to release contents of tree objects already used from the memory, which has been fixed. * "git clone" did not like to see the "--bare" and the "--origin" options used together without a good reason. * "git remote rename" failed to rename a remote without fetch refspec, which has been corrected. * Documentation on various Boolean GIT_* environment variables have been clarified. * "git rebase -i" can mistakenly attempt to apply a fixup to a commit itself, which has been corrected. * "git multi-pack-index repack/expire" used to repack unreachable cruft into a new pack, which have been corrected. * In read-only repositories, "git merge-tree" tried to come up with a merge result tree object, which it failed (which is not wrong) and led to a segfault (which is bad), which has been corrected. * Force C locale while running tests around httpd to make sure we can find expected error messages in the log. * Fix a logic in "mailinfo -b" that miscomputed the length of a substring, which lead to an out-of-bounds access. * The codepath to sign learned to report errors when it fails to read from "ssh-keygen". * Code clean-up that results in plugging a leak. * "GIT_EDITOR=: git branch --edit-description" resulted in failure, which has been corrected. * The code to clean temporary object directories (used for quarantine) tried to remove them inside its signal handler, which was a no-no. * Update comment in the Makefile about the RUNTIME_PREFIX config knob. * Clarify that "the sentence after : prefix does not begin with a capital letter" rule applies only to the commit title. * "git branch --edit-description" on an unborn branch misleadingly said that no such branch exists, which has been corrected. * Work around older clang that warns against C99 zero initialization syntax for struct. * Giving "--invert-grep" and "--all-match" without "--grep" to the "git log" command resulted in an attempt to access grep pattern expression structure that has not been allocated, which has been corrected. (merge db84376f98 ab/grep-simplify-extended-expression later to maint). * "git diff rev^!" did not show combined diff to go to the rev from its parents. (merge a79c6b6081 rs/diff-caret-bang-with-parents later to maint). * Allow configuration files in "protected" scopes to include other configuration files. (merge ecec57b3c9 gc/bare-repo-discovery later to maint). * Give a bit more diversity to macOS CI by using sha1dc in one of the jobs (the other one tests Apple Common Crypto). (merge 1ad5c3df35 jc/ci-osx-with-sha1dc later to maint). * A bugfix with tracing support in midx codepath (merge e9c3839944 tb/midx-bitmap-selection-fix later to maint). * When geometric repacking feature is in use together with the --pack-kept-objects option, we lost packs marked with .keep files. (merge 197443e80a tb/save-keep-pack-during-geometric-repack later to maint). * Move a global variable added as a hack during regression fixes to its proper place in the API. (merge 0b0ab95f17 ab/run-hook-api-cleanup later to maint). * Update to build procedure with VS using CMake/CTest. (merge c858750b41 js/cmake-updates later to maint). * The short-help text shown by "git cmd -h" and the synopsis text shown at the beginning of "git help cmd" have been made more consistent. * When creating a multi-pack bitmap, remove per-pack bitmap files unconditionally as they will never be consulted. (merge 55d902cd61 tb/remove-unused-pack-bitmap later to maint). * Fix a longstanding syntax error in Git.pm error codepath. * "git diff --stat" etc. were invented back when everything was ASCII and strlen() was a way to measure the display width of a string; adjust them to compute the display width assuming UTF-8 pathnames. (merge ce8529b2bb tb/diffstat-with-utf8-strwidth later to maint). * "git branch --edit-description" can exit with status -1 which is not a good practice; it learned to use 1 as everybody else instead. * "git apply" limits its input to a bit less than 1 GiB. * Merging a branch with directory renames into a branch that changes the directory to a symlink was mishandled by the ort merge strategy, which has been corrected. * A bugfix to "git subtree" in its split and merge features. * Fix some bugs in the reflog messages when rebasing and changes the reflog messages of "rebase --apply" to match "rebase --merge" with the aim of making the reflog easier to parse. * "git rebase --keep-base" used to discard the commits that are already cherry-picked to the upstream, even when "keep-base" meant that the base, on top of which the history is being rebuilt, does not yet include these cherry-picked commits. The --keep-base option now implies --reapply-cherry-picks and --no-fork-point options. * The way "git repack" created temporary files when it received a signal was prone to deadlocking, which has been corrected. * Various tests exercising the transfer.credentialsInUrl configuration are taught to avoid making requests which require resolving localhost to reduce CI-flakiness. * The adjust_shared_perm() helper function learned to refrain from setting the "g+s" bit on directories when it is not necessary. * "git archive" mistakenly complained twice about a missing executable, which has been corrected. * Fix a bug where `git branch -d` did not work on an orphaned HEAD. * `git rebase --update-refs` would delete references when all `update-ref` commands in the sequencer were removed, which has been corrected. * Fix a regression in the bisect-helper which mistakenly treats arguments to the command given to 'git bisect run' as arguments to the helper. * Correct an error where `git rebase` would mistakenly use a branch or tag named "refs/rewritten/xyz" when missing a rebase label. * Assorted fixes of parsing end-user input as integers. (merge 14770cf0de pw/config-int-parse-fixes later to maint). * "git prune" may try to iterate over .git/objects/pack for trash files to remove in it, and loudly fail when the directory is missing, which is not necessary. The command has been taught to ignore such a failure. (merge 6974765352 ew/prune-with-missing-objects-pack later to maint). * Add one more candidate directory that may house httpd modules while running tests. (merge 1c7dc23d41 es/locate-httpd-module-location-in-test later to maint). * A handful of leaks in the line-log machinery have been plugged. * The format of a line in /proc/cpuinfo that describes a CPU on s390x looked different from everybody else, and the code in chainlint.pl failed to parse it. (merge 1f51b77f4f ah/chainlint-cpuinfo-parse-fix later to maint). * Adjust the GitHub CI to newer ubuntu release. (merge 0d3507f3e7 jx/ci-ubuntu-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 413bc6d20a ds/cmd-main-reorder later to maint). (merge 8d2863e4ed nw/t1002-cleanup later to maint). (merge 7c2dc122f9 rs/list-objects-filter-leakfix later to maint). (merge 288fcb1c94 zk/push-use-bitmaps later to maint). (merge 42db324c0f km/merge-recursive-typofix later to maint). ---------------------------------------------------------------- Changes since v2.38.0 are as follows: Alejandro R. Sedeño (1): git-compat-util.h: GCC deprecated message arg only in GCC 4.5+ Alex Henrie (2): fsmonitor--daemon: don't translate literal commands push: improve grammar of branch.autoSetupMerge advice Alexander Shopov (1): l10n: bg.po: Updated Bulgarian translation (5501t) Andreas Hasenack (1): chainlint.pl: fix /proc/cpuinfo regexp 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 Bagas Sanjaya (1): l10n: po-id for 2.39 (round 1) Daniel Sonbolian (1): git.c: improve code readability in cmd_main() Debra Obondo (1): t7001-mv.sh: modernizing test script using functions Derrick Stolee (15): 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: fix technical doc issues 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 Emir SARI (1): l10n: tr: v2.39.0 updates 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 (9): 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 lib-httpd: extend module location auto-detection Eric Wong (2): delta-islands: free island-related data after use prune: quiet ENOENT on missing directories Fangyi Zhou (1): l10n: zh_CN v2.39.0 round 1 Glen Choo (3): config: respect includes in protected config http: redact curl h2h3 headers in info object-file: use real paths when adding alternates Han-Wen Nienhuys (1): refs: unify parse_worktree_ref() and ref_type() Jean-Noël Avila (2): i18n: fix command template placeholder format l10n: fr: v2.39 rnd 1 Jeff Hostetler (9): config.mak.dev: disable suggest braces error on old clang versions 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 (43): fsck: free tree buffers after walking unreachable objects fsck: turn off save_commit_buffer parse_object_buffer(): respect save_commit_buffer clone: allow "--bare" with "-o" remote: handle rename of remote without fetch refspec shell: add basic tests shell: limit size of interactive commands sequencer: detect author name errors in read_author_script() test-submodule: inline resolve_relative_url() function multi-pack-index: avoid writing to global in option callback commit: avoid writing to global in option callback attr: drop DEBUG_ATTR code dir: use fspathncmp() in pl_hashmap_cmp() 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 Makefile: force -O0 when compiling with SANITIZE=leak 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 parse_object(): drop extra "has" check before checking object type parse_object(): check on-disk type of suspected blob 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 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 Johannes Altmanninger (1): sequencer: avoid dropping fixup commit that targets self via commit-ish Johannes Schindelin (14): merge-ort: fix segmentation fault in read-only repositories merge-ort: return early when failing to write a blob 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 ci: avoid using deprecated {up,down}load-artifacts Action RelNotes: a couple of typofixes ci: use a newer `github-script` version John Cai (3): tmp-objdir: skip clean up when handling a signal 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 Jordi Mas (1): l10n: Update Catalan translation Julia Ramer (1): embargoed releases: also describe the git-security list and the process Junio C Hamano (32): environ: document GIT_SSL_NO_VERIFY environ: explain Boolean environment variables environ: GIT_FLUSH should be made a usual Boolean environ: simplify description of GIT_INDEX_FILE environ: GIT_INDEX_VERSION affects not just a new repository branch: do not fail a no-op --edit-desc SubmittingPatches: use usual capitalization in the log message body 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 Downmerge a handful of topics for 2.38.2 The sixth batch Downmerge a bit more for 2.38.2 The seventh batch The eighth batch adjust_shared_perm(): leave g+s alone when the group does not matter Git 2.39-rc0 Another batch before -rc1 A bit more before -rc1 Git 2.39-rc1 Git 2.39-rc2 Git 2.38.2 Git 2.39 Kevin Backhouse (1): alias.c: reject too-long cmdline strings in split_cmdline() Kousik Sanagavarapu (1): repository-version.txt: partialClone casing change Kyle Meyer (1): merge-recursive: fix variable typo in error message 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 Matheus Tavares (1): mailmap: update email address of Matheus Tavares 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 Noah Betzen (1): mergetool.txt: typofix 'overwriten' -> 'overwritten' Nsengiyumva Wilberforce (1): t1002: modernize outdated conditional Oscar Dominguez (1): ci(main): upgrade actions/checkout to v3 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 Paul Smith (1): Makefile: avoid multiple patterns when recipes generate one file Peter Krefting (1): l10n: sv.po: Update Swedish translation (5501t0f0) 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 (26): mailinfo -b: fix an out of bounds access ssh signing: return an error when signature cannot be read t3435: remove redundant test case 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 git_parse_unsigned: reject negative values config: require at least one digit when parsing numbers git_parse_signed(): avoid integer overflow sequencer: unify label lookup sequencer: tighten label lookups Ralf Thielow (1): l10n: de.po: update German translation René Scharfe (21): revision: use strtol_i() for exclude_parent revisions.txt: unspecify order of resolved parts of ^! diff: support ^! for merges gc: simplify maintenance_task_pack_refs() t/lib-httpd: pass LANG and LC_ALL to Apache bisect--helper: plug strvec leak archive: deduplicate verbose printing 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 list-objects-filter: plug combine_filter_data leak Ronan Pigott (2): for-each-repo: interpolate repo path arguments maintenance: add option to register in a specific config Rubén Justo (5): ref-filter.c: fix a leak in get_head_description branch: description for non-existent branch errors branch: support for shortcuts like @{-1}, completed branch: error copying or renaming a detached HEAD branch: error code with --edit-description SZEDER Gábor (4): Documentation/build-docdep.perl: generate sorted output 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() Sergey Organov (3): diff-merges: cleanup func_by_opt() diff-merges: cleanup set_diff_merges() diff-merges: clarify log.diffMerges documentation 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 (64): Documentation/git-multi-pack-index.txt: fix typo Documentation/git-multi-pack-index.txt: clarify expire behavior midx.c: prevent `expire` from removing the cruft pack midx.c: avoid cruft packs with `repack --batch-size=0` midx.c: replace `xcalloc()` with `CALLOC_ARRAY()` midx.c: remove unnecessary loop condition midx.c: avoid cruft packs with non-zero `repack --batch-size` builtin/clone.c: disallow `--local` clones with symlinks t/lib-submodule-update.sh: allow local submodules t/t1NNN: allow local submodules t/2NNNN: allow local submodules t/t3NNN: allow local submodules t/t4NNN: allow local submodules t/t5NNN: allow local submodules t/t6NNN: allow local submodules t/t7NNN: allow local submodules t/t9NNN: allow local submodules transport: make `protocol.file.allow` be "user" by default t1092: prepare for changing protocol.file.allow t2080: prepare for changing protocol.file.allow t1092: prepare for changing protocol.file.allow t2080: prepare for changing protocol.file.allow t3207: prepare for changing protocol.file.allow t5516: prepare for changing protocol.file.allow t5537: prepare for changing protocol.file.allow t7814: prepare for changing protocol.file.allow t3206: prepare for changing protocol.file.allow t5537: prepare for changing protocol.file.allow Git 2.30.6 Git 2.31.5 Git 2.32.4 Git 2.33.5 Git 2.34.5 Git 2.35.5 Git 2.36.3 t7527: prepare for changing protocol.file.allow Git 2.37.4 Git 2.38.1 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 (8): read-cache: avoid misaligned reads in index v4 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 rebase --update-refs: avoid unintended ref deletion Vincent Bernat (1): ls-files: fix --ignored and --killed flags in synopsis Vlad-Stefan Harbuz (1): Documentation: fix typo Yi-Jyun Pan (1): l10n: zh_TW.po: Git 2.39-rc2 srz_zumix (1): fsmonitor--daemon: on macOS support symlink Ævar Arnfjörð Bjarmason (118): test-lib: have SANITIZE=leak imply TEST_NO_MALLOC_CHECK CodingGuidelines: update for C99 CodingGuidelines: mention dynamic C99 initializer elements CodingGuidelines: allow declaring variables in for loops CodingGuidelines: mention C99 features we can't use grep.c: remove "extended" in favor of "pattern_expression", fix segfault CodingGuidelines: recommend against unportable C99 struct syntax 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 "[...]" for "zero or more" doc txt & -h consistency: make "diff-tree" consistent doc txt & -h consistency: make "commit" consistent reflog doc: list real subcommands up-front worktree: define subcommand -h in terms of command -h doc txt & -h consistency: make "worktree" consistent tests: start asserting that *.txt SYNOPSIS matches -h output tests: assert consistent whitespace in -h output fsmonitor OSX: compile with DC_SHA1=YesPlease merge: remove always-the-same "verbose" arguments hook tests: fix redirection logic error in 96e7225b310 submodule tests: reset "trace.out" between "grep" invocations run-command tests: test stdout of run_command_parallel() Makefile + shared.mak: rename and indent $(QUIET_SPATCH_T) cocci rules: remove unused "F" metavariable from pending rule Makefile: add ability to TAB-complete cocci *.patch rules Makefile: have "coccicheck" re-run if flags change Makefile: split off SPATCH_BATCH_SIZE comment from "cocci" heading cocci: split off include-less "tests" from SPATCH_FLAGS cocci: split off "--all-includes" from SPATCH_FLAGS cocci: make "coccicheck" rule incremental cocci: optimistically use COMPUTE_HEADER_DEPENDENCIES Makefile: copy contrib/coccinelle/*.cocci to build/ cocci rules: remove 's from rules that don't need them cocci: run against a generated ALL.cocci spatchcache: add a ccache-alike for "spatch" Makefile: always (re)set DC_SHA1 on fallback INSTALL: remove discussion of SHA-1 backends Makefile: correct DC_SHA1 documentation Makefile: create and use sections for "define" flag listing Makefile: rephrase the discussion of *_SHA1 knobs Makefile: document default SHA-256 backend Makefile: document SHA-1 and SHA-256 default and selection order Makefile & test-tool: replace "DC_SHA1" variable with a "define" Makefile: document default SHA-1 backend on OSX Makefile: discuss SHAttered in *_SHA{1,256} discussion submodule--helper: move "config" to a test-tool submodule tests: add tests for top-level flag output submodule--helper: fix a memory leak in "status" submodule tests: test for a "foreach" blind-spot submodule.c: refactor recursive block out of absorb function submodule API & "absorbgitdirs": remove "----recursive" option submodule--helper: remove --prefix from "absorbgitdirs" submodule--helper: drop "update --prefix " for "-C update" submodule--helper: use OPT_SUBCOMMAND() API revisions API: extend the nascent REV_INFO_INIT macro t7610: fix flaky timeout issue, don't clone from example.com Makefile: don't create a ".build/.build/" for cocci, fix output maintenance --unregister: fix uninit'd data use & -Wdeclaration-after-statement t7610: use "file:///dev/null", not "/dev/null", fixes MinGW 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" Makefiles: change search through $(MAKEFLAGS) for GNU make 4.4 cocci: avoid "should ... be a metavariable" warnings 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 Đoàn Trần Công Danh (8): CodingGuidelines: allow grep -E t: remove \{m,n\} from BRE grep usage t: convert egrep usage to "grep -E" t: convert fgrep usage to "grep -F" Makefile: clarify runtime relative gitexecdir bisect--helper: remove unused options bisect--helper: move all subcommands into their own functions bisect--helper: parse subcommand with OPT_SUBCOMMAND [Less]
Posted over 1 year ago by Junio C Hamano
The latest maintenance release Git v2.38.2 is now available at the usual places. There is nothing exciting here, it mostly is to backport/backmerge the accumulated fixes, including GitHub CI integration, made during 2.39 development cycle to the ... [More] 2.38 maintenance track. The tarballs are found at: https://www.kernel.org/pub/software/scm/git/ The following public repositories all have a copy of the 'v2.38.2' 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.38.2 Release Notes ======================== This is to backport various fixes accumulated during the development towards Git 2.39, the next feature release. Fixes since v2.38.1 ------------------- * Update CodingGuidelines to clarify what features to use and avoid in C99. * The codepath that reads from the index v4 had unaligned memory accesses, which has been corrected. * "git remote rename" failed to rename a remote without fetch refspec, which has been corrected. * "git clone" did not like to see the "--bare" and the "--origin" options used together without a good reason. * Fix messages incorrectly marked for translation. * "git fsck" failed to release contents of tree objects already used from the memory, which has been fixed. * "git rebase -i" can mistakenly attempt to apply a fixup to a commit itself, which has been corrected. * In read-only repositories, "git merge-tree" tried to come up with a merge result tree object, which it failed (which is not wrong) and led to a segfault (which is bad), which has been corrected. * Force C locale while running tests around httpd to make sure we can find expected error messages in the log. * Fix a logic in "mailinfo -b" that miscomputed the length of a substring, which lead to an out-of-bounds access. * The codepath to sign learned to report errors when it fails to read from "ssh-keygen". * "GIT_EDITOR=: git branch --edit-description" resulted in failure, which has been corrected. * Documentation on various Boolean GIT_* environment variables have been clarified. * "git multi-pack-index repack/expire" used to repack unreachable cruft into a new pack, which have been corrected. * The code to clean temporary object directories (used for quarantine) tried to remove them inside its signal handler, which was a no-no. * "git branch --edit-description" on an unborh branch misleadingly said that no such branch exists, which has been corrected. * GitHub CI settings have been adjusted to recent reality, merging and cherry-picking necessary topics that have been prepared for Git 2.39. * `git rebase --update-refs` would delete references when all `update-ref` commands in the sequencer were removed, which has been corrected. Also contains various documentation updates and code clean-ups. ---------------------------------------------------------------- Changes since v2.38.1 are as follows: Alejandro R. Sedeño (1): git-compat-util.h: GCC deprecated message arg only in GCC 4.5+ Alex Henrie (1): fsmonitor--daemon: don't translate literal commands Derrick Stolee (1): bundle-uri: fix technical doc issues Jeff Hostetler (1): config.mak.dev: disable suggest braces error on old clang versions Jeff King (12): fsck: free tree buffers after walking unreachable objects fsck: turn off save_commit_buffer parse_object_buffer(): respect save_commit_buffer clone: allow "--bare" with "-o" remote: handle rename of remote without fetch refspec sequencer: detect author name errors in read_author_script() test-submodule: inline resolve_relative_url() function multi-pack-index: avoid writing to global in option callback commit: avoid writing to global in option callback attr: drop DEBUG_ATTR code dir: use fspathncmp() in pl_hashmap_cmp() Makefile: force -O0 when compiling with SANITIZE=leak Jiang Xin (4): 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 Johannes Altmanninger (1): sequencer: avoid dropping fixup commit that targets self via commit-ish Johannes Schindelin (4): merge-ort: fix segmentation fault in read-only repositories merge-ort: return early when failing to write a blob ci: avoid using deprecated {up,down}load-artifacts Action ci: use a newer `github-script` version John Cai (1): tmp-objdir: skip clean up when handling a signal Junio C Hamano (10): environ: document GIT_SSL_NO_VERIFY environ: explain Boolean environment variables environ: GIT_FLUSH should be made a usual Boolean environ: simplify description of GIT_INDEX_FILE environ: GIT_INDEX_VERSION affects not just a new repository branch: do not fail a no-op --edit-desc SubmittingPatches: use usual capitalization in the log message body Downmerge a handful of topics for 2.38.2 Downmerge a bit more for 2.38.2 Git 2.38.2 Noah Betzen (1): mergetool.txt: typofix 'overwriten' -> 'overwritten' Oscar Dominguez (1): ci(main): upgrade actions/checkout to v3 Phillip Wood (3): mailinfo -b: fix an out of bounds access ssh signing: return an error when signature cannot be read t3435: remove redundant test case René Scharfe (4): gc: simplify maintenance_task_pack_refs() t/lib-httpd: pass LANG and LC_ALL to Apache bisect--helper: plug strvec leak archive: deduplicate verbose printing Rubén Justo (2): ref-filter.c: fix a leak in get_head_description branch: description for non-existent branch errors Sergey Organov (3): diff-merges: cleanup func_by_opt() diff-merges: cleanup set_diff_merges() diff-merges: clarify log.diffMerges documentation Taylor Blau (7): Documentation/git-multi-pack-index.txt: fix typo Documentation/git-multi-pack-index.txt: clarify expire behavior midx.c: prevent `expire` from removing the cruft pack midx.c: avoid cruft packs with `repack --batch-size=0` midx.c: replace `xcalloc()` with `CALLOC_ARRAY()` midx.c: remove unnecessary loop condition midx.c: avoid cruft packs with non-zero `repack --batch-size` Victoria Dye (2): read-cache: avoid misaligned reads in index v4 rebase --update-refs: avoid unintended ref deletion Ævar Arnfjörð Bjarmason (9): test-lib: have SANITIZE=leak imply TEST_NO_MALLOC_CHECK CodingGuidelines: update for C99 CodingGuidelines: mention dynamic C99 initializer elements CodingGuidelines: allow declaring variables in for loops CodingGuidelines: mention C99 features we can't use CodingGuidelines: recommend against unportable C99 struct syntax 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 Đoàn Trần Công Danh (1): Makefile: clarify runtime relative gitexecdir [Less]
Posted over 1 year ago by Johannes Schindelin
Dear Git users, I hereby announce that Git for Windows 2.39.0-rc2 is available from: https://github.com/git-for-windows/git/releases/tag/v2.39.0-rc2.windows.1 Changes since Git for Windows v2.38.1 (October 18th 2022) New Features * Comes ... [More] with Git v2.39.0-rc2. * Comes with OpenSSL v1.1.1s. * Comes with cURL v7.86.0. * The Portable Git edition (which comes as a self-extracting 7-Zip archive) now uses the latest 7-Zip version to self-extract. * Comes with OpenSSH v9.1p1. * It is now possible to generate and use SSH keys protected by security keys (AKA FIDO devices) via Windows Hello, e.g. via ssh-keygen.exe -t ecdsa-sk. * Portable Git no longer configures color.diff, color.status and color.branch individually, but configures color.ui instead, which makes it easier to override the default. * Comes with GNU TLS v3.7.8. * Comes with Git Credential Manager Core v2.0.877. * Comes with MinTTY v3.6.2. * Comes with Bash v5.2 patchlevel 12. * Comes with Git LFS v3.3.0. Bug Fixes * The Git executables (e.g. git.exe itself) used to have incomplete version information recorded in their resources, which has been fixed. * A regression introduced in Git for Windows v2.38.0 that prevented git.exe from running in Windows Nano Server containers was fixed. Git-2.39.0-rc2-64-bit.exe | 00845a71bc814d2ace4a83f25ee042e04e1e742813460ee64b99028c801aaac2 Git-2.39.0-rc2-32-bit.exe | 214c9e69e1ca6b0a299b4028f0053a735f07cdc27504a187d720048de33f5715 PortableGit-2.39.0-rc2-64-bit.7z.exe | 62557cbfb57e40da55dc96596d985dc409ee8f665fa265856982b92320773d27 PortableGit-2.39.0-rc2-32-bit.7z.exe | ba968b714dab78d63ad0fa66c1ab38980d46a591c2752e987f47523c136de90a MinGit-2.39.0-rc2-64-bit.zip | c05bd4694da21047083b0858a09453f6cf1c871933ec2c303bf352eb0b0391fb MinGit-2.39.0-rc2-32-bit.zip | 6d55bf2e405f7005477af028d670ee5fe79e22d5e1b7ab282ef5c030b3c9625c MinGit-2.39.0-rc2-busybox-64-bit.zip | c7617169686d04f6622a545019b000f318151a774e769e900595a1db21b4ba6d MinGit-2.39.0-rc2-busybox-32-bit.zip | 9b1593b76b759f41631e43f775ac40ce902eba24247cadd02a0fdd1a265e063a Git-2.39.0-rc2-64-bit.tar.bz2 | cf8d13e34810f6e90403098783c47c8c3213a3a6cbc35578d5e63f731b29e1a6 Git-2.39.0-rc2-32-bit.tar.bz2 | 2e1e4100e80c62bcf7086140ea30e07f107328e2378545302620c27896f87be8 Ciao, Johannes [Less]
Posted over 1 year ago by Junio C Hamano
A release candidate Git v2.39.0-rc2 is now available for testing at the usual places. It is comprised of 463 non-merge commits since v2.38.0, contributed by 74 people, 30 of which are new faces [*]. The tarballs are found at: ... [More] https://www.kernel.org/pub/software/scm/git/testing/ The following public repositories all have a copy of the 'v2.39.0-rc2' 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.38.0 are as follows. Welcome to the Git development community! Alexander Kanavin, Alexander Meshcheryakov, Andreas Hasenack, Anh Le, Arthur Chan, Daniel Sonbolian, Debra Obondo, Diomidis Spinellis, Erik Cervin Edin, Hank Leininger, herr.kaste, John A. Leuenhagen, Julia Ramer, Kevin Backhouse, Kousik Sanagavarapu, Lukáš Doktor, Martin Englund, M Hickford, Michael V. Scovetta, Noah Betzen, Nsengiyumva Wilberforce, orygaw, Ronan Pigott, Rubén Justo, Sotir Danailov, srz_zumix, Stefano Rivera, Tim Jaacks, Vincent Bernat, and Vlad-Stefan Harbuz. Returning contributors who helped this release are as follows. Thanks for your continued support. Ævar Arnfjörð Bjarmason, Alejandro R. Sedeño, Alex Henrie, Derrick Stolee, Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer, Eric DeCosta, Eric Sunshine, Eric Wong, Glen Choo, Han-Wen Nienhuys, Jan Pokorný, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jerry Zhang, Jiang Xin, Johannes Altmanninger, Johannes Schindelin, John Cai, Jonathan Tan, Julien Moutinho, Junio C Hamano, Kyle Meyer, Martin Ågren, Martin von Zweigbergk, Matthew John Cheetham, Michael J Gruber, Michael McClimon, Patrick Steinhardt, Paul Smith, Philip Oakley, Philippe Blain, Phillip Wood, Randall S. Becker, René Scharfe, Sergey Organov, Shaoxuan Yuan, SZEDER Gábor, Taylor Blau, Torsten Bögershausen, 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.39 Release Notes (draft) =============================== UI, Workflows & Features ------------------------ * "git grep" learned to expand the sparse-index more lazily and on demand in a sparse checkout. * By default, use of fsmonitor on a repository on networked filesystem is disabled. Add knobs to make it workable on macOS. * After checking out a "branch" that is a symbolic-ref that points at another branch, "git symbolic-ref HEAD" reports the underlying branch, not the symbolic-ref the user gave checkout as argument. The command learned the "--no-recurse" option to stop after dereferencing a symbolic-ref only once. * "git branch --edit-description @{-1}" is now a way to edit branch description of the branch you were on before switching to the current branch. * "git merge-tree --stdin" is a new way to request a series of merges and report the merge results. * "git shortlog" learned to group by the "format" string. * A new "--include-whitespace" option is added to "git patch-id", and existing bugs in the internal patch-id logic that did not match what "git patch-id" produces have been corrected. * Enable gc.cruftpacks by default for those who opt into feature.experimental setting. * "git repack" learns to send cruft objects out of the way into packfiles outside the repository. * 'scalar reconfigure -a' is taught to automatically remove scalar.repo entires which no longer exist. * Redact headers from cURL's h2h3 module in GIT_CURL_VERBOSE and others. * 'git maintenance register' is taught to write configuration to an arbitrary path, and 'git for-each-repo' is taught to expand tilde characters in paths. * When creating new notes, the template used to get a stray empty newline, which has been removed. * "git receive-pack" used to use all the local refs as the boundary for checking connectivity of the data "git push" sent, but now it uses only the refs that it advertised to the pusher. In a repository with the .hideRefs configuration, this reduces the resources needed to perform the check. * With '--recurse-submodules=on-demand', all submodules are recursively pushed. Performance, Internal Implementation, Development Support etc. -------------------------------------------------------------- * With a bit of header twiddling, use the native regexp library on macOS instead of the compat/ one. * Prepare for GNU [ef]grep that throw warning of their uses. * Sources related to fuzz testing have been moved down to their own directory. * Most credential helpers ignored unknown entries in a credential description, but a few died upon seeing them. The latter were taught to ignore them, too * "scalar unregister" in a repository that is already been unregistered reported an error. * Remove error detection from a function that fetches from promisor remotes, and make it die when such a fetch fails to bring all the requested objects, to give an early failure to various operations. * Update CodingGuidelines to clarify what features to use and avoid in C99. * Avoid false-positive from LSan whose assumption may be broken with higher optimization levels. * Enable address and undefined sanitizer tasks at GitHub Actions CI. * More UNUSED annotation to help using -Wunused option with the compiler. (merge 4b992f0a24 jk/unused-anno-more later to maint). * Rewrite a deep recursion in the skipping negotiator to use a loop with on-heap prio queue to avoid stack wastage. * Add documentation for message IDs in fsck error messages. * Define the logical elements of a "bundle list", data structure to store them in-core, format to transfer them, and code to parse them. * The role the security mailing list plays in an embargoed release has been documented. * Two new facilities, "timer" and "counter", are introduced to the trace2 API. * Code simplification by using strvec_pushf() instead of building an argument in a separate strbuf. * Make sure generated dependency file is stably sorted to help developers debugging their build issues. * The glossary entries for "commit-graph file" and "reachability bitmap" have been added. * Various tests exercising the transfer.credentialsInUrl configuration are taught to avoid making requests which require resolving localhost to reduce CI-flakiness. * A redundant diagnostic message is dropped from test_path_is_missing(). * Simplify the run-command API. * Update the actions/github-script dependency in CI to avoid a deprecation warning. * Progress on being able to initialize a rev_info struct with a macro. * Add trace2 counters to the region to clear skip worktree bits in a sparse checkout. * Modernize test script to avoid "test -f" and friends. * Avoid calling 'cache_tree_update()' when doing so would be redundant. * Update the credential-cache documentation to provide a more realistic example. * Makefile comments updates and reordering to clarify knobs used to choose SHA implementations. * A design document for sparse-checkout's future directions has been added. * Teach chainlint.pl to annotate the original test definition instead of the token stream. * "make coccicheck" is time consuming. It has been made to run more incrementally. * `parse_object()` has been hardened to check for the existence of a suspected blob object. * The build procedure has been adjusted to GNUmake version 4.4, which made some changes to how pattern rule with multiple targets are handled. Fixes since v2.38 ----------------- * The codepath that reads from the index v4 had unaligned memory accesses, which has been corrected. * Fix messages incorrectly marked for translation. * "git fsck" failed to release contents of tree objects already used from the memory, which has been fixed. * "git clone" did not like to see the "--bare" and the "--origin" options used together without a good reason. * "git remote rename" failed to rename a remote without fetch refspec, which has been corrected. * Documentation on various Boolean GIT_* environment variables have been clarified. * "git rebase -i" can mistakenly attempt to apply a fixup to a commit itself, which has been corrected. * "git multi-pack-index repack/expire" used to repack unreachable cruft into a new pack, which have been corrected. * In read-only repositories, "git merge-tree" tried to come up with a merge result tree object, which it failed (which is not wrong) and led to a segfault (which is bad), which has been corrected. * Force C locale while running tests around httpd to make sure we can find expected error messages in the log. * Fix a logic in "mailinfo -b" that miscomputed the length of a substring, which lead to an out-of-bounds access. * The codepath to sign learned to report errors when it fails to read from "ssh-keygen". * Code clean-up that results in plugging a leak. * "GIT_EDITOR=: git branch --edit-description" resulted in failure, which has been corrected. * The code to clean temporary object directories (used for quarantine) tried to remove them inside its signal handler, which was a no-no. * Update comment in the Makefile about the RUNTIME_PREFIX config knob. * Clarify that "the sentence after : prefix does not begin with a capital letter" rule applies only to the commit title. * "git branch --edit-description" on an unborh branch misleadingly said that no such branch exists, which has been corrected. * Work around older clang that warns against C99 zero initialization syntax for struct. * Giving "--invert-grep" and "--all-match" without "--grep" to the "git log" command resulted in an attempt to access grep pattern expression structure that has not been allocated, which has been corrected. (merge db84376f98 ab/grep-simplify-extended-expression later to maint). * "git diff rev^!" did not show combined diff to go to the rev from its parents. (merge a79c6b6081 rs/diff-caret-bang-with-parents later to maint). * Allow configuration files in "protected" scopes to include other configuration files. (merge ecec57b3c9 gc/bare-repo-discovery later to maint). * Give a bit more diversity to macOS CI by using sha1dc in one of the jobs (the other one tests Apple Common Crypto). (merge 1ad5c3df35 jc/ci-osx-with-sha1dc later to maint). * A bugfix with tracing support in midx codepath (merge e9c3839944 tb/midx-bitmap-selection-fix later to maint). * When geometric repacking feature is in use together with the --pack-kept-objects option, we lost packs marked with .keep files. (merge 197443e80a tb/save-keep-pack-during-geometric-repack later to maint). * Move a global variable added as a hack during regression fixes to its proper place in the API. (merge 0b0ab95f17 ab/run-hook-api-cleanup later to maint). * Update to build procedure with VS using CMake/CTest. (merge c858750b41 js/cmake-updates later to maint). * The short-help text shown by "git cmd -h" and the synopsis text shown at the beginning of "git help cmd" have been made more consistent. * When creating a multi-pack bitmap, remove per-pack bitmap files unconditionally as they will never be consulted. (merge 55d902cd61 tb/remove-unused-pack-bitmap later to maint). * Fix a longstanding syntax error in Git.pm error codepath. * "git diff --stat" etc. were invented back when everything was ASCII and strlen() was a way to measure the display width of a string; adjust them to compute the display width assuming UTF-8 pathnames. (merge ce8529b2bb tb/diffstat-with-utf8-strwidth later to maint). * "git branch --edit-description" can exit with status -1 which is not a good practice; it learned to use 1 as everybody else instead. * "git apply" limits its input to a bit less than 1 GiB. * Merging a branch with directory renames into a branch that changes the directory to a symlink was mishandled by the ort merge strategy, which has been corrected. * A bugfix to "git subtree" in its split and merge features. * Fix some bugs in the reflog messages when rebasing and changes the reflog messages of "rebase --apply" to match "rebase --merge" with the aim of making the reflog easier to parse. * "git rebase --keep-base" used to discard the commits that are already cherry-picked to the upstream, even when "keep-base" meant that the base, on top of which the history is being rebuilt, does not yet include these cherry-picked commits. The --keep-base option now implies --reapply-cherry-picks and --no-fork-point options. * The way "git repack" creared temporary files when it received a signal was prone to deadlocking, which has been corrected. * Various tests exercising the transfer.credentialsInUrl configuration are taught to avoid making requests which require resolving localhost to reduce CI-flakiness. * The adjust_shared_perm() helper function learned to refrain from setting the "g+s" bit on directories when it is not necessary. * "git archive" mistakenly complained twice about a missing executable, which has been corrected. * Fix a bug where `git branch -d` did not work on an orphaned HEAD. * `git rebase --update-refs` would delete references when all `update-ref` commands in the sequencer were removed, which has been corrected. * Fix a regression in the bisect-helper which mistakenly treats arguments to the command given to 'git bisect run' as arguments to the helper. * Correct an error where `git rebase` would mistakenly use a branch or tag named "refs/rewritten/xyz" when missing a rebase label. * Assorted fixes of parsing end-user input as integers. (merge 14770cf0de pw/config-int-parse-fixes later to maint). * "git prune" may try to iterate over .git/objects/pack for trash files to remove in it, and loudly fail when the directory is missing, which is not necessary. The command has been taught to ignore such a failure. (merge 6974765352 ew/prune-with-missing-objects-pack later to maint). * Add one more candidate directory that may house httpd modules while running tests. (merge 1c7dc23d41 es/locate-httpd-module-location-in-test later to maint). * A handful of leaks in the line-log machinery have been plugged. * The format of a line in /proc/cpuinfo that describes a CPU on s390x looked different from everybody else, and the code in chainlint.pl failed to parse it. (merge 1f51b77f4f ah/chainlint-cpuinfo-parse-fix later to maint). * Adjust the GitHub CI to newer ubuntu release. (merge 0d3507f3e7 jx/ci-ubuntu-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 413bc6d20a ds/cmd-main-reorder later to maint). (merge 8d2863e4ed nw/t1002-cleanup later to maint). (merge 7c2dc122f9 rs/list-objects-filter-leakfix later to maint). (merge 288fcb1c94 zk/push-use-bitmaps later to maint). (merge 42db324c0f km/merge-recursive-typofix later to maint). ---------------------------------------------------------------- Changes since v2.38.0 are as follows: Alejandro R. Sedeño (1): git-compat-util.h: GCC deprecated message arg only in GCC 4.5+ Alex Henrie (2): fsmonitor--daemon: don't translate literal commands push: improve grammar of branch.autoSetupMerge advice Andreas Hasenack (1): chainlint.pl: fix /proc/cpuinfo regexp 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 (15): 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: fix technical doc issues 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 (9): 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 lib-httpd: extend module location auto-detection Eric Wong (2): delta-islands: free island-related data after use prune: quiet ENOENT on missing directories Glen Choo (3): config: respect includes in protected config http: redact curl h2h3 headers in info object-file: use real paths when adding alternates Han-Wen Nienhuys (1): refs: unify parse_worktree_ref() and ref_type() Jean-Noël Avila (1): i18n: fix command template placeholder format Jeff Hostetler (9): config.mak.dev: disable suggest braces error on old clang versions 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 (43): fsck: free tree buffers after walking unreachable objects fsck: turn off save_commit_buffer parse_object_buffer(): respect save_commit_buffer clone: allow "--bare" with "-o" remote: handle rename of remote without fetch refspec shell: add basic tests shell: limit size of interactive commands sequencer: detect author name errors in read_author_script() test-submodule: inline resolve_relative_url() function multi-pack-index: avoid writing to global in option callback commit: avoid writing to global in option callback attr: drop DEBUG_ATTR code dir: use fspathncmp() in pl_hashmap_cmp() 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 Makefile: force -O0 when compiling with SANITIZE=leak 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 parse_object(): drop extra "has" check before checking object type parse_object(): check on-disk type of suspected blob 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 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 Johannes Altmanninger (1): sequencer: avoid dropping fixup commit that targets self via commit-ish Johannes Schindelin (11): merge-ort: fix segmentation fault in read-only repositories merge-ort: return early when failing to write a blob 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 (3): tmp-objdir: skip clean up when handling a signal 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 (30): environ: document GIT_SSL_NO_VERIFY environ: explain Boolean environment variables environ: GIT_FLUSH should be made a usual Boolean environ: simplify description of GIT_INDEX_FILE environ: GIT_INDEX_VERSION affects not just a new repository branch: do not fail a no-op --edit-desc SubmittingPatches: use usual capitalization in the log message body 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 Downmerge a handful of topics for 2.38.2 The sixth batch Downmerge a bit more for 2.38.2 The seventh batch The eighth batch adjust_shared_perm(): leave g+s alone when the group does not matter Git 2.39-rc0 Another batch before -rc1 A bit more before -rc1 Git 2.39-rc1 Git 2.39-rc2 Kevin Backhouse (1): alias.c: reject too-long cmdline strings in split_cmdline() Kousik Sanagavarapu (1): repository-version.txt: partialClone casing change Kyle Meyer (1): merge-recursive: fix variable typo in error message 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 Noah Betzen (1): mergetool.txt: typofix 'overwriten' -> 'overwritten' 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 Paul Smith (1): Makefile: avoid multiple patterns when recipes generate one file 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 (26): mailinfo -b: fix an out of bounds access ssh signing: return an error when signature cannot be read t3435: remove redundant test case 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 git_parse_unsigned: reject negative values config: require at least one digit when parsing numbers git_parse_signed(): avoid integer overflow sequencer: unify label lookup sequencer: tighten label lookups René Scharfe (21): revision: use strtol_i() for exclude_parent revisions.txt: unspecify order of resolved parts of ^! diff: support ^! for merges gc: simplify maintenance_task_pack_refs() t/lib-httpd: pass LANG and LC_ALL to Apache bisect--helper: plug strvec leak archive: deduplicate verbose printing 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 list-objects-filter: plug combine_filter_data leak Ronan Pigott (2): for-each-repo: interpolate repo path arguments maintenance: add option to register in a specific config Rubén Justo (5): ref-filter.c: fix a leak in get_head_description branch: description for non-existent branch errors branch: support for shortcuts like @{-1}, completed branch: error copying or renaming a detached HEAD branch: error code with --edit-description SZEDER Gábor (4): Documentation/build-docdep.perl: generate sorted output 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() Sergey Organov (3): diff-merges: cleanup func_by_opt() diff-merges: cleanup set_diff_merges() diff-merges: clarify log.diffMerges documentation 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 (64): Documentation/git-multi-pack-index.txt: fix typo Documentation/git-multi-pack-index.txt: clarify expire behavior midx.c: prevent `expire` from removing the cruft pack midx.c: avoid cruft packs with `repack --batch-size=0` midx.c: replace `xcalloc()` with `CALLOC_ARRAY()` midx.c: remove unnecessary loop condition midx.c: avoid cruft packs with non-zero `repack --batch-size` builtin/clone.c: disallow `--local` clones with symlinks t/lib-submodule-update.sh: allow local submodules t/t1NNN: allow local submodules t/2NNNN: allow local submodules t/t3NNN: allow local submodules t/t4NNN: allow local submodules t/t5NNN: allow local submodules t/t6NNN: allow local submodules t/t7NNN: allow local submodules t/t9NNN: allow local submodules transport: make `protocol.file.allow` be "user" by default t1092: prepare for changing protocol.file.allow t2080: prepare for changing protocol.file.allow t1092: prepare for changing protocol.file.allow t2080: prepare for changing protocol.file.allow t3207: prepare for changing protocol.file.allow t5516: prepare for changing protocol.file.allow t5537: prepare for changing protocol.file.allow t7814: prepare for changing protocol.file.allow t3206: prepare for changing protocol.file.allow t5537: prepare for changing protocol.file.allow Git 2.30.6 Git 2.31.5 Git 2.32.4 Git 2.33.5 Git 2.34.5 Git 2.35.5 Git 2.36.3 t7527: prepare for changing protocol.file.allow Git 2.37.4 Git 2.38.1 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 (7): read-cache: avoid misaligned reads in index v4 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 (115): test-lib: have SANITIZE=leak imply TEST_NO_MALLOC_CHECK CodingGuidelines: update for C99 CodingGuidelines: mention dynamic C99 initializer elements CodingGuidelines: allow declaring variables in for loops CodingGuidelines: mention C99 features we can't use grep.c: remove "extended" in favor of "pattern_expression", fix segfault CodingGuidelines: recommend against unportable C99 struct syntax 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 "[...]" for "zero or more" doc txt & -h consistency: make "diff-tree" consistent doc txt & -h consistency: make "commit" consistent reflog doc: list real subcommands up-front worktree: define subcommand -h in terms of command -h doc txt & -h consistency: make "worktree" consistent tests: start asserting that *.txt SYNOPSIS matches -h output tests: assert consistent whitespace in -h output fsmonitor OSX: compile with DC_SHA1=YesPlease merge: remove always-the-same "verbose" arguments hook tests: fix redirection logic error in 96e7225b310 submodule tests: reset "trace.out" between "grep" invocations run-command tests: test stdout of run_command_parallel() Makefile + shared.mak: rename and indent $(QUIET_SPATCH_T) cocci rules: remove unused "F" metavariable from pending rule Makefile: add ability to TAB-complete cocci *.patch rules Makefile: have "coccicheck" re-run if flags change Makefile: split off SPATCH_BATCH_SIZE comment from "cocci" heading cocci: split off include-less "tests" from SPATCH_FLAGS cocci: split off "--all-includes" from SPATCH_FLAGS cocci: make "coccicheck" rule incremental cocci: optimistically use COMPUTE_HEADER_DEPENDENCIES Makefile: copy contrib/coccinelle/*.cocci to build/ cocci rules: remove 's from rules that don't need them cocci: run against a generated ALL.cocci spatchcache: add a ccache-alike for "spatch" Makefile: always (re)set DC_SHA1 on fallback INSTALL: remove discussion of SHA-1 backends Makefile: correct DC_SHA1 documentation Makefile: create and use sections for "define" flag listing Makefile: rephrase the discussion of *_SHA1 knobs Makefile: document default SHA-256 backend Makefile: document SHA-1 and SHA-256 default and selection order Makefile & test-tool: replace "DC_SHA1" variable with a "define" Makefile: document default SHA-1 backend on OSX Makefile: discuss SHAttered in *_SHA{1,256} discussion submodule--helper: move "config" to a test-tool submodule tests: add tests for top-level flag output submodule--helper: fix a memory leak in "status" submodule tests: test for a "foreach" blind-spot submodule.c: refactor recursive block out of absorb function submodule API & "absorbgitdirs": remove "----recursive" option submodule--helper: remove --prefix from "absorbgitdirs" submodule--helper: drop "update --prefix " for "-C update" submodule--helper: use OPT_SUBCOMMAND() API revisions API: extend the nascent REV_INFO_INIT macro t7610: fix flaky timeout issue, don't clone from example.com Makefile: don't create a ".build/.build/" for cocci, fix output maintenance --unregister: fix uninit'd data use & -Wdeclaration-after-statement t7610: use "file:///dev/null", not "/dev/null", fixes MinGW 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" Makefiles: change search through $(MAKEFLAGS) for GNU make 4.4 cocci: avoid "should ... be a metavariable" warnings Đoàn Trần Công Danh (8): CodingGuidelines: allow grep -E t: remove \{m,n\} from BRE grep usage t: convert egrep usage to "grep -E" t: convert fgrep usage to "grep -F" Makefile: clarify runtime relative gitexecdir bisect--helper: remove unused options bisect--helper: move all subcommands into their own functions bisect--helper: parse subcommand with OPT_SUBCOMMAND [Less]
Posted over 1 year ago by Yuri D'Elia
git-assembler 1.3 was just released. Aside from the usual bug-fixes, this version now accepts wildcards when referring to branch names. This reduces duplication in boilerplate rules as well enabling new forms of branch compositions that work very ... [More] well with CI. git-assembler can perform automatic merge and rebase operations following a simple declarative script. Like "make", but for branches. You can use git-assembler to create a branch which is a combination of patches using various strategies and keep it always updated. Documentation and links are available at: https://www.thregr.org/~wavexx/software/git-assembler/ The source itself: https://gitlab.com/wavexx/git-assembler [Less]
Posted over 1 year ago by Christian Couder
Hi everyone, The 93rd edition of Git Rev News is now published: https://git.github.io/rev_news/2022/11/30/edition-93/ Thanks a lot to Bagas Sanjaya, Bruno Brito, Glen Choo and René Scharfe. who helped this month! Enjoy, Christian, Jakub, Markus ... [More] and Kaartic. PS: An issue for the next edition is already opened and contributions are welcome: https://github.com/git/git.github.io/issues/620 [Less]
Posted over 1 year ago by Johannes Schindelin
Dear Git users, I hereby announce that Git for Windows 2.39.0-rc1 is available from: https://github.com/git-for-windows/git/releases/tag/v2.39.0-rc1.windows.1 Changes since Git for Windows v2.38.1 (October 18th 2022) New Features * Comes ... [More] with Git v2.39.0-rc1. * Comes with OpenSSL v1.1.1s. * Comes with cURL v7.86.0. * The Portable Git edition (which comes as a self-extracting 7-Zip archive) now uses the latest 7-Zip version to self-extract. * Comes with OpenSSH v9.1p1. * It is now possible to generate and use SSH keys protected by security keys (AKA FIDO devices) via Windows Hello, e.g. via ssh-keygen.exe -t ecdsa-sk. * Portable Git no longer configures color.diff, color.status and color.branch individually, but configures color.ui instead, which makes it easier to override the default. * Comes with GNU TLS v3.7.8. * Comes with Git Credential Manager Core v2.0.877. * Comes with MinTTY v3.6.2. * Comes with Bash v5.2 patchlevel 12. Bug Fixes * The Git executables (e.g. git.exe itself) used to have incomplete version information recorded in their resources, which has been fixed. * A regression introduced in Git for Windows v2.38.0 that prevented git.exe from running in Windows Nano Server containers was fixed. Git-2.39.0-rc1-64-bit.exe | ea2412da9d24706a9f600d34136536e281b1ec5d67ab04cb2edfeb16eb39fc33 Git-2.39.0-rc1-32-bit.exe | aa4fc74ee343fb8e172a69ecb28b215cba84e93c70d1d25b15c70a24966bfb03 PortableGit-2.39.0-rc1-64-bit.7z.exe | dd568bd0fab26f8660a89b125b91c0f681b2b7c235681973bbd886498a62070c PortableGit-2.39.0-rc1-32-bit.7z.exe | 0c29213329d702efaeda39bccadbda7edf7eded113a68e2b0b4c7242ac6432ae MinGit-2.39.0-rc1-64-bit.zip | d0bf3d86da0571cfc99b39d9b06c1d58136870e0dde0235db6b3f22685633072 MinGit-2.39.0-rc1-32-bit.zip | 43f658e613de064c38619dcffa51d2fa4e55a4035f6b46054b8342613767a2de MinGit-2.39.0-rc1-busybox-64-bit.zip | 5c4e74bc0f6d731e9fbc8693c4bfe25ea6b172d38adf70ff0c2d1015c7288f46 MinGit-2.39.0-rc1-busybox-32-bit.zip | eaaf0444b95ab48f442e7a7375dfac0e97c1547afb348a627c70795ec5edb5e2 Git-2.39.0-rc1-64-bit.tar.bz2 | 5db8ec7346080deceed5ee7f7e6c8025b4621954e0772873f1c8c528508979dc Git-2.39.0-rc1-32-bit.tar.bz2 | db2b57ab50f4e4a5e225842f8ff31bc849ab0c5961fbdd177b3e92c45b6ba859 Ciao, Johannes [Less]
Posted over 1 year ago by Junio C Hamano
A release candidate Git v2.39.0-rc1 is now available for testing at the usual places. It is comprised of 460 non-merge commits since v2.38.0, contributed by 74 people, 30 of which are new faces [*]. The tarballs are found at: ... [More] https://www.kernel.org/pub/software/scm/git/testing/ The following public repositories all have a copy of the 'v2.39.0-rc1' 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.38.0 are as follows. Welcome to the Git development community! Alexander Kanavin, Alexander Meshcheryakov, Andreas Hasenack, Anh Le, Arthur Chan, Daniel Sonbolian, Debra Obondo, Diomidis Spinellis, Erik Cervin Edin, Hank Leininger, herr.kaste, John A. Leuenhagen, Julia Ramer, Kevin Backhouse, Kousik Sanagavarapu, Lukáš Doktor, Martin Englund, M Hickford, Michael V. Scovetta, Noah Betzen, Nsengiyumva Wilberforce, orygaw, Ronan Pigott, Rubén Justo, Sotir Danailov, srz_zumix, Stefano Rivera, Tim Jaacks, Vincent Bernat, and Vlad-Stefan Harbuz. Returning contributors who helped this release are as follows. Thanks for your continued support. 정재우, Ævar Arnfjörð Bjarmason, Alejandro R. Sedeño, Alex Henrie, Derrick Stolee, Đoàn Trần Công Danh, Elijah Newren, Emily Shaffer, Eric DeCosta, Eric Sunshine, Eric Wong, Glen Choo, Han-Wen Nienhuys, Jan Pokorný, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jerry Zhang, Jiang Xin, Johannes Altmanninger, Johannes Schindelin, John Cai, Jonathan Tan, Julien Moutinho, Junio C Hamano, Kyle Meyer, Martin Ågren, Martin von Zweigbergk, Matthew John Cheetham, Michael J Gruber, Michael McClimon, Patrick Steinhardt, Paul Smith, Philip Oakley, Philippe Blain, Phillip Wood, Randall S. Becker, René Scharfe, Sergey Organov, Shaoxuan Yuan, SZEDER Gábor, Taylor Blau, Torsten Bögershausen, 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.39 Release Notes (draft) =============================== UI, Workflows & Features ------------------------ * "git grep" learned to expand the sparse-index more lazily and on demand in a sparse checkout. * By default, use of fsmonitor on a repository on networked filesystem is disabled. Add knobs to make it workable on macOS. * After checking out a "branch" that is a symbolic-ref that points at another branch, "git symbolic-ref HEAD" reports the underlying branch, not the symbolic-ref the user gave checkout as argument. The command learned the "--no-recurse" option to stop after dereferencing a symbolic-ref only once. * "git branch --edit-description @{-1}" is now a way to edit branch description of the branch you were on before switching to the current branch. * "git merge-tree --stdin" is a new way to request a series of merges and report the merge results. * "git shortlog" learned to group by the "format" string. * A new "--include-whitespace" option is added to "git patch-id", and existing bugs in the internal patch-id logic that did not match what "git patch-id" produces have been corrected. * Enable gc.cruftpacks by default for those who opt into feature.experimental setting. * "git repack" learns to send cruft objects out of the way into packfiles outside the repository. * 'scalar reconfigure -a' is taught to automatically remove scalar.repo entires which no longer exist. * Redact headers from cURL's h2h3 module in GIT_CURL_VERBOSE and others. * 'git maintenance register' is taught to write configuration to an arbitrary path, and 'git for-each-repo' is taught to expand tilde characters in paths. * When creating new notes, the template used to get a stray empty newline, which has been removed. * "git receive-pack" used to use all the local refs as the boundary for checking connectivity of the data "git push" sent, but now it uses only the refs that it advertised to the pusher. In a repository with the .hideRefs configuration, this reduces the resources needed to perform the check. * With '--recurse-submodules=on-demand', all submodules are recursively pushed. Performance, Internal Implementation, Development Support etc. -------------------------------------------------------------- * With a bit of header twiddling, use the native regexp library on macOS instead of the compat/ one. * Prepare for GNU [ef]grep that throw warning of their uses. * Sources related to fuzz testing have been moved down to their own directory. * Most credential helpers ignored unknown entries in a credential description, but a few died upon seeing them. The latter were taught to ignore them, too * "scalar unregister" in a repository that is already been unregistered reported an error. * Remove error detection from a function that fetches from promisor remotes, and make it die when such a fetch fails to bring all the requested objects, to give an early failure to various operations. * Update CodingGuidelines to clarify what features to use and avoid in C99. * Avoid false-positive from LSan whose assumption may be broken with higher optimization levels. * Enable address and undefined sanitizer tasks at GitHub Actions CI. * More UNUSED annotation to help using -Wunused option with the compiler. (merge 4b992f0a24 jk/unused-anno-more later to maint). * Rewrite a deep recursion in the skipping negotiator to use a loop with on-heap prio queue to avoid stack wastage. * Add documentation for message IDs in fsck error messages. * Define the logical elements of a "bundle list", data structure to store them in-core, format to transfer them, and code to parse them. * The role the security mailing list plays in an embargoed release has been documented. * Two new facilities, "timer" and "counter", are introduced to the trace2 API. * Code simplification by using strvec_pushf() instead of building an argument in a separate strbuf. * Make sure generated dependency file is stably sorted to help developers debugging their build issues. * The glossary entries for "commit-graph file" and "reachability bitmap" have been added. * Various tests exercising the transfer.credentialsInUrl configuration are taught to avoid making requests which require resolving localhost to reduce CI-flakiness. * A redundant diagnostic message is dropped from test_path_is_missing(). * Simplify the run-command API. * Update the actions/github-script dependency in CI to avoid a deprecation warning. * Progress on being able to initialize a rev_info struct with a macro. * Add trace2 counters to the region to clear skip worktree bits in a sparse checkout. * Modernize test script to avoid "test -f" and friends. * Avoid calling 'cache_tree_update()' when doing so would be redundant. * Update the credential-cache documentation to provide a more realistic example. * Makefile comments updates and reordering to clarify knobs used to choose SHA implementations. * A design document for sparse-checkout's future directions has been added. * Teach chainlint.pl to annotate the original test definition instead of the token stream. * "make coccicheck" is time consuming. It has been made to run more incrementally. * `parse_object()` has been hardened to check for the existence of a suspected blob object. * Adjust the documentation build procedure to GNUmake version 4.4, which made some changes to how pattern rule with multiple targets are handled. Fixes since v2.38 ----------------- * The codepath that reads from the index v4 had unaligned memory accesses, which has been corrected. * Fix messages incorrectly marked for translation. * "git fsck" failed to release contents of tree objects already used from the memory, which has been fixed. * "git clone" did not like to see the "--bare" and the "--origin" options used together without a good reason. * "git remote rename" failed to rename a remote without fetch refspec, which has been corrected. * Documentation on various Boolean GIT_* environment variables have been clarified. * "git rebase -i" can mistakenly attempt to apply a fixup to a commit itself, which has been corrected. * "git multi-pack-index repack/expire" used to repack unreachable cruft into a new pack, which have been corrected. * In read-only repositories, "git merge-tree" tried to come up with a merge result tree object, which it failed (which is not wrong) and led to a segfault (which is bad), which has been corrected. * Force C locale while running tests around httpd to make sure we can find expected error messages in the log. * Fix a logic in "mailinfo -b" that miscomputed the length of a substring, which lead to an out-of-bounds access. * The codepath to sign learned to report errors when it fails to read from "ssh-keygen". * Code clean-up that results in plugging a leak. * "GIT_EDITOR=: git branch --edit-description" resulted in failure, which has been corrected. * The code to clean temporary object directories (used for quarantine) tried to remove them inside its signal handler, which was a no-no. * Update comment in the Makefile about the RUNTIME_PREFIX config knob. * Clarify that "the sentence after : prefix does not begin with a capital letter" rule applies only to the commit title. * "git branch --edit-description" on an unborh branch misleadingly said that no such branch exists, which has been corrected. * Work around older clang that warns against C99 zero initialization syntax for struct. * Giving "--invert-grep" and "--all-match" without "--grep" to the "git log" command resulted in an attempt to access grep pattern expression structure that has not been allocated, which has been corrected. (merge db84376f98 ab/grep-simplify-extended-expression later to maint). * "git diff rev^!" did not show combined diff to go to the rev from its parents. (merge a79c6b6081 rs/diff-caret-bang-with-parents later to maint). * Allow configuration files in "protected" scopes to include other configuration files. (merge ecec57b3c9 gc/bare-repo-discovery later to maint). * Give a bit more diversity to macOS CI by using sha1dc in one of the jobs (the other one tests Apple Common Crypto). (merge 1ad5c3df35 jc/ci-osx-with-sha1dc later to maint). * A bugfix with tracing support in midx codepath (merge e9c3839944 tb/midx-bitmap-selection-fix later to maint). * When geometric repacking feature is in use together with the --pack-kept-objects option, we lost packs marked with .keep files. (merge 197443e80a tb/save-keep-pack-during-geometric-repack later to maint). * Move a global variable added as a hack during regression fixes to its proper place in the API. (merge 0b0ab95f17 ab/run-hook-api-cleanup later to maint). * Update to build procedure with VS using CMake/CTest. (merge c858750b41 js/cmake-updates later to maint). * The short-help text shown by "git cmd -h" and the synopsis text shown at the beginning of "git help cmd" have been made more consistent. * When creating a multi-pack bitmap, remove per-pack bitmap files unconditionally as they will never be consulted. (merge 55d902cd61 tb/remove-unused-pack-bitmap later to maint). * Fix a longstanding syntax error in Git.pm error codepath. * "git diff --stat" etc. were invented back when everything was ASCII and strlen() was a way to measure the display width of a string; adjust them to compute the display width assuming UTF-8 pathnames. (merge ce8529b2bb tb/diffstat-with-utf8-strwidth later to maint). * "git branch --edit-description" can exit with status -1 which is not a good practice; it learned to use 1 as everybody else instead. * "git apply" limits its input to a bit less than 1 GiB. * Merging a branch with directory renames into a branch that changes the directory to a symlink was mishandled by the ort merge strategy, which has been corrected. * A bugfix to "git subtree" in its split and merge features. * Fix some bugs in the reflog messages when rebasing and changes the reflog messages of "rebase --apply" to match "rebase --merge" with the aim of making the reflog easier to parse. * "git rebase --keep-base" used to discard the commits that are already cherry-picked to the upstream, even when "keep-base" meant that the base, on top of which the history is being rebuilt, does not yet include these cherry-picked commits. The --keep-base option now implies --reapply-cherry-picks and --no-fork-point options. * The way "git repack" creared temporary files when it received a signal was prone to deadlocking, which has been corrected. * Various tests exercising the transfer.credentialsInUrl configuration are taught to avoid making requests which require resolving localhost to reduce CI-flakiness. * The adjust_shared_perm() helper function learned to refrain from setting the "g+s" bit on directories when it is not necessary. * "git archive" mistakenly complained twice about a missing executable, which has been corrected. * Fix a bug where `git branch -d` did not work on an orphaned HEAD. * `git rebase --update-refs` would delete references when all `update-ref` commands in the sequencer were removed, which has been corrected. * Fix a regression in the bisect-helper which mistakenly treats arguments to the command given to 'git bisect run' as arguments to the helper. * Correct an error where `git rebase` would mistakenly use a branch or tag named "refs/rewritten/xyz" when missing a rebase label. * Assorted fixes of parsing end-user input as integers. (merge 14770cf0de pw/config-int-parse-fixes later to maint). * "git prune" may try to iterate over .git/objects/pack for trash files to remove in it, and loudly fail when the directory is missing, which is not necessary. The command has been taught to ignore such a failure. (merge 6974765352 ew/prune-with-missing-objects-pack later to maint). * Add one more candidate directory that may house httpd modules while running tests. (merge 1c7dc23d41 es/locate-httpd-module-location-in-test later to maint). * A handful of leaks in the line-log machinery have been plugged. * The format of a line in /proc/cpuinfo that describes a CPU on s390x looked different from everybody else, and the code in chainlint.pl failed to parse it. (merge 1f51b77f4f ah/chainlint-cpuinfo-parse-fix later to maint). * Adjust the GitHub CI to newer ubuntu release. (merge 0d3507f3e7 jx/ci-ubuntu-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 413bc6d20a ds/cmd-main-reorder later to maint). (merge 8d2863e4ed nw/t1002-cleanup later to maint). (merge 7c2dc122f9 rs/list-objects-filter-leakfix later to maint). (merge 288fcb1c94 zk/push-use-bitmaps later to maint). (merge 42db324c0f km/merge-recursive-typofix later to maint). ---------------------------------------------------------------- Changes since v2.38.0 are as follows: Alejandro R. Sedeño (1): git-compat-util.h: GCC deprecated message arg only in GCC 4.5+ Alex Henrie (2): fsmonitor--daemon: don't translate literal commands push: improve grammar of branch.autoSetupMerge advice Andreas Hasenack (1): chainlint.pl: fix /proc/cpuinfo regexp 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 (15): 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: fix technical doc issues 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 (9): 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 lib-httpd: extend module location auto-detection Eric Wong (2): delta-islands: free island-related data after use prune: quiet ENOENT on missing directories Glen Choo (3): config: respect includes in protected config http: redact curl h2h3 headers in info object-file: use real paths when adding alternates Han-Wen Nienhuys (1): refs: unify parse_worktree_ref() and ref_type() Jean-Noël Avila (1): i18n: fix command template placeholder format Jeff Hostetler (9): config.mak.dev: disable suggest braces error on old clang versions 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 (43): fsck: free tree buffers after walking unreachable objects fsck: turn off save_commit_buffer parse_object_buffer(): respect save_commit_buffer clone: allow "--bare" with "-o" remote: handle rename of remote without fetch refspec shell: add basic tests shell: limit size of interactive commands sequencer: detect author name errors in read_author_script() test-submodule: inline resolve_relative_url() function multi-pack-index: avoid writing to global in option callback commit: avoid writing to global in option callback attr: drop DEBUG_ATTR code dir: use fspathncmp() in pl_hashmap_cmp() 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 Makefile: force -O0 when compiling with SANITIZE=leak 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 parse_object(): drop extra "has" check before checking object type parse_object(): check on-disk type of suspected blob 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 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 Johannes Altmanninger (1): sequencer: avoid dropping fixup commit that targets self via commit-ish Johannes Schindelin (11): merge-ort: fix segmentation fault in read-only repositories merge-ort: return early when failing to write a blob 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 (3): tmp-objdir: skip clean up when handling a signal 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 (29): environ: document GIT_SSL_NO_VERIFY environ: explain Boolean environment variables environ: GIT_FLUSH should be made a usual Boolean environ: simplify description of GIT_INDEX_FILE environ: GIT_INDEX_VERSION affects not just a new repository branch: do not fail a no-op --edit-desc SubmittingPatches: use usual capitalization in the log message body 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 Downmerge a handful of topics for 2.38.2 The sixth batch Downmerge a bit more for 2.38.2 The seventh batch The eighth batch adjust_shared_perm(): leave g+s alone when the group does not matter Git 2.39-rc0 Another batch before -rc1 A bit more before -rc1 Git 2.39-rc1 Kevin Backhouse (1): alias.c: reject too-long cmdline strings in split_cmdline() Kousik Sanagavarapu (1): repository-version.txt: partialClone casing change Kyle Meyer (1): merge-recursive: fix variable typo in error message 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 Noah Betzen (1): mergetool.txt: typofix 'overwriten' -> 'overwritten' 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 Paul Smith (1): Makefile: avoid multiple patterns when recipes generate one file 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 (26): mailinfo -b: fix an out of bounds access ssh signing: return an error when signature cannot be read t3435: remove redundant test case 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 git_parse_unsigned: reject negative values config: require at least one digit when parsing numbers git_parse_signed(): avoid integer overflow sequencer: unify label lookup sequencer: tighten label lookups René Scharfe (21): revision: use strtol_i() for exclude_parent revisions.txt: unspecify order of resolved parts of ^! diff: support ^! for merges gc: simplify maintenance_task_pack_refs() t/lib-httpd: pass LANG and LC_ALL to Apache bisect--helper: plug strvec leak archive: deduplicate verbose printing 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 list-objects-filter: plug combine_filter_data leak Ronan Pigott (2): for-each-repo: interpolate repo path arguments maintenance: add option to register in a specific config Rubén Justo (5): ref-filter.c: fix a leak in get_head_description branch: description for non-existent branch errors branch: support for shortcuts like @{-1}, completed branch: error copying or renaming a detached HEAD branch: error code with --edit-description SZEDER Gábor (4): Documentation/build-docdep.perl: generate sorted output 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() Sergey Organov (3): diff-merges: cleanup func_by_opt() diff-merges: cleanup set_diff_merges() diff-merges: clarify log.diffMerges documentation 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 (64): Documentation/git-multi-pack-index.txt: fix typo Documentation/git-multi-pack-index.txt: clarify expire behavior midx.c: prevent `expire` from removing the cruft pack midx.c: avoid cruft packs with `repack --batch-size=0` midx.c: replace `xcalloc()` with `CALLOC_ARRAY()` midx.c: remove unnecessary loop condition midx.c: avoid cruft packs with non-zero `repack --batch-size` builtin/clone.c: disallow `--local` clones with symlinks t/lib-submodule-update.sh: allow local submodules t/t1NNN: allow local submodules t/2NNNN: allow local submodules t/t3NNN: allow local submodules t/t4NNN: allow local submodules t/t5NNN: allow local submodules t/t6NNN: allow local submodules t/t7NNN: allow local submodules t/t9NNN: allow local submodules transport: make `protocol.file.allow` be "user" by default t1092: prepare for changing protocol.file.allow t2080: prepare for changing protocol.file.allow t1092: prepare for changing protocol.file.allow t2080: prepare for changing protocol.file.allow t3207: prepare for changing protocol.file.allow t5516: prepare for changing protocol.file.allow t5537: prepare for changing protocol.file.allow t7814: prepare for changing protocol.file.allow t3206: prepare for changing protocol.file.allow t5537: prepare for changing protocol.file.allow Git 2.30.6 Git 2.31.5 Git 2.32.4 Git 2.33.5 Git 2.34.5 Git 2.35.5 Git 2.36.3 t7527: prepare for changing protocol.file.allow Git 2.37.4 Git 2.38.1 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 (7): read-cache: avoid misaligned reads in index v4 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 (113): test-lib: have SANITIZE=leak imply TEST_NO_MALLOC_CHECK CodingGuidelines: update for C99 CodingGuidelines: mention dynamic C99 initializer elements CodingGuidelines: allow declaring variables in for loops CodingGuidelines: mention C99 features we can't use grep.c: remove "extended" in favor of "pattern_expression", fix segfault CodingGuidelines: recommend against unportable C99 struct syntax 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 "[...]" for "zero or more" doc txt & -h consistency: make "diff-tree" consistent doc txt & -h consistency: make "commit" consistent reflog doc: list real subcommands up-front worktree: define subcommand -h in terms of command -h doc txt & -h consistency: make "worktree" consistent tests: start asserting that *.txt SYNOPSIS matches -h output tests: assert consistent whitespace in -h output fsmonitor OSX: compile with DC_SHA1=YesPlease merge: remove always-the-same "verbose" arguments hook tests: fix redirection logic error in 96e7225b310 submodule tests: reset "trace.out" between "grep" invocations run-command tests: test stdout of run_command_parallel() Makefile + shared.mak: rename and indent $(QUIET_SPATCH_T) cocci rules: remove unused "F" metavariable from pending rule Makefile: add ability to TAB-complete cocci *.patch rules Makefile: have "coccicheck" re-run if flags change Makefile: split off SPATCH_BATCH_SIZE comment from "cocci" heading cocci: split off include-less "tests" from SPATCH_FLAGS cocci: split off "--all-includes" from SPATCH_FLAGS cocci: make "coccicheck" rule incremental cocci: optimistically use COMPUTE_HEADER_DEPENDENCIES Makefile: copy contrib/coccinelle/*.cocci to build/ cocci rules: remove 's from rules that don't need them cocci: run against a generated ALL.cocci spatchcache: add a ccache-alike for "spatch" Makefile: always (re)set DC_SHA1 on fallback INSTALL: remove discussion of SHA-1 backends Makefile: correct DC_SHA1 documentation Makefile: create and use sections for "define" flag listing Makefile: rephrase the discussion of *_SHA1 knobs Makefile: document default SHA-256 backend Makefile: document SHA-1 and SHA-256 default and selection order Makefile & test-tool: replace "DC_SHA1" variable with a "define" Makefile: document default SHA-1 backend on OSX Makefile: discuss SHAttered in *_SHA{1,256} discussion submodule--helper: move "config" to a test-tool submodule tests: add tests for top-level flag output submodule--helper: fix a memory leak in "status" submodule tests: test for a "foreach" blind-spot submodule.c: refactor recursive block out of absorb function submodule API & "absorbgitdirs": remove "----recursive" option submodule--helper: remove --prefix from "absorbgitdirs" submodule--helper: drop "update --prefix " for "-C update" submodule--helper: use OPT_SUBCOMMAND() API revisions API: extend the nascent REV_INFO_INIT macro t7610: fix flaky timeout issue, don't clone from example.com Makefile: don't create a ".build/.build/" for cocci, fix output maintenance --unregister: fix uninit'd data use & -Wdeclaration-after-statement t7610: use "file:///dev/null", not "/dev/null", fixes MinGW 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" Đoàn Trần Công Danh (8): CodingGuidelines: allow grep -E t: remove \{m,n\} from BRE grep usage t: convert egrep usage to "grep -E" t: convert fgrep usage to "grep -F" Makefile: clarify runtime relative gitexecdir bisect--helper: remove unused options bisect--helper: move all subcommands into their own functions bisect--helper: parse subcommand with OPT_SUBCOMMAND [Less]