head 1.5; access; symbols pkgsrc-2026Q1:1.5.0.6 pkgsrc-2026Q1-base:1.5 pkgsrc-2025Q4:1.5.0.4 pkgsrc-2025Q4-base:1.5 pkgsrc-2025Q3:1.5.0.2 pkgsrc-2025Q3-base:1.5 pkgsrc-2025Q2:1.3.0.10 pkgsrc-2025Q2-base:1.3 pkgsrc-2025Q1:1.3.0.8 pkgsrc-2025Q1-base:1.3 pkgsrc-2024Q4:1.3.0.6 pkgsrc-2024Q4-base:1.3 pkgsrc-2024Q3:1.3.0.4 pkgsrc-2024Q3-base:1.3 pkgsrc-2024Q2:1.3.0.2 pkgsrc-2024Q2-base:1.3 pkgsrc-2024Q1:1.2.0.4 pkgsrc-2024Q1-base:1.2 pkgsrc-2023Q4:1.2.0.2 pkgsrc-2023Q4-base:1.2 pkgsrc-2023Q3:1.1.0.32 pkgsrc-2023Q3-base:1.1 pkgsrc-2023Q2:1.1.0.30 pkgsrc-2023Q2-base:1.1 pkgsrc-2023Q1:1.1.0.28 pkgsrc-2023Q1-base:1.1 pkgsrc-2022Q4:1.1.0.26 pkgsrc-2022Q4-base:1.1 pkgsrc-2022Q3:1.1.0.24 pkgsrc-2022Q3-base:1.1 pkgsrc-2022Q2:1.1.0.22 pkgsrc-2022Q2-base:1.1 pkgsrc-2022Q1:1.1.0.20 pkgsrc-2022Q1-base:1.1 pkgsrc-2021Q4:1.1.0.18 pkgsrc-2021Q4-base:1.1 pkgsrc-2021Q3:1.1.0.16 pkgsrc-2021Q3-base:1.1 pkgsrc-2021Q2:1.1.0.14 pkgsrc-2021Q2-base:1.1 pkgsrc-2021Q1:1.1.0.12 pkgsrc-2021Q1-base:1.1 pkgsrc-2020Q4:1.1.0.10 pkgsrc-2020Q4-base:1.1 pkgsrc-2020Q3:1.1.0.8 pkgsrc-2020Q3-base:1.1 pkgsrc-2020Q2:1.1.0.6 pkgsrc-2020Q2-base:1.1 pkgsrc-2020Q1:1.1.0.2 pkgsrc-2020Q1-base:1.1 pkgsrc-2019Q4:1.1.0.4 pkgsrc-2019Q4-base:1.1; locks; strict; comment @# @; 1.5 date 2025.08.18.19.36.35; author adam; state Exp; branches; next 1.4; commitid ogDLlLm0PtcIpf7G; 1.4 date 2025.06.30.19.10.20; author adam; state Exp; branches; next 1.3; commitid eV8hWNw4T1yqQW0G; 1.3 date 2024.04.29.18.55.38; author adam; state Exp; branches 1.3.10.1; next 1.2; commitid gaBXNF24P63iu48F; 1.2 date 2023.11.21.20.51.21; author adam; state Exp; branches 1.2.4.1; next 1.1; commitid zcYEA7ODR0eXgwNE; 1.1 date 2019.11.08.12.24.31; author adam; state Exp; branches; next ; commitid Ly0t2n562yZzQ2KB; 1.3.10.1 date 2025.07.08.23.34.01; author maya; state Exp; branches; next ; commitid qap0qbAVMdI3302G; 1.2.4.1 date 2024.06.23.15.58.52; author bsiegert; state Exp; branches; next ; commitid NiJGEefCRlAdK7fF; desc @@ 1.5 log @git: updated to 2.51.0 Git v2.51 Release Notes ======================= UI, Workflows & Features ------------------------ * Userdiff patterns for the R language have been added. * Documentation for "git send-email" has been updated with a bit more credential helper and OAuth information. * "git cat-file --batch" learns to understand %(objectmode) atom to allow the caller to tell missing objects (due to repository corruption) and submodules (whose commit objects are OK to be missing) apart. * "git diff --no-index dirA dirB" can limit the comparison with pathspec at the end of the command line, just like normal "git diff". * "git subtree" (in contrib/) learned to grok GPG signing its commits. * "git whatchanged" that is longer to type than "git log --raw" which is its modern rough equivalent has outlived its usefulness more than 10 years ago. Plan to deprecate and remove it. * An interchange format for stash entries is defined, and subcommand of "git stash" to import/export has been added. * "git merge/pull" has been taught the "--compact-summary" option to use the compact-summary format, intead of diffstat, when showing the summary of the incoming changes. * "git imap-send" has been broken for a long time, which has been resurrected and then taught to talk OAuth2.0 etc. * Some error messages from "git imap-send" has been updated. * When "git daemon" sees a signal while attempting to accept() a new client, instead of retrying, it skipped it by mistake, which has been corrected. * The reftable ref backend has matured enough; Git 3.0 will make it the default format in a newly created repositories by default. * "netrc" credential helper has been improved to understand textual service names (like smtp) in addition to the numeric port numbers (like 25). * Lift the limitation to use changed-path filter in "git log" so that it can be used for a pathspec with multiple literal paths. * Clean up the way how signature on commit objects are exported to and imported from fast-import stream. * Remove unsupported, unused, and unsupportable old option from "git log". * Document recently added "git imap-send --list" with an example. * "git pull" learned to pay attention to pull.autostash configuration variable, which overrides rebase/merge.autostash. * "git for-each-ref" learns "--start-after" option to help applications that want to page its output. * "git switch" and "git restore" are declared to be no longer experimental. * "git -c alias.foo=bar foo -h baz" reported "'foo' is aliased to 'bar'" and then went on to run "git foo -h baz", which was unexpected. Tighten the rule so that alias expansion is reported only when "-h" is the sole option. Performance, Internal Implementation, Development Support etc. -------------------------------------------------------------- * "git pack-objects" learned to find delta bases from blobs at the same path, using the --path-walk API. * CodingGuidelines update. * Add settings for Solaris 10 & 11. * Meson-based build/test framework now understands TAP output generated by our tests. * "Do not explicitly initialize to zero" rule has been clarified in the CodingGuidelines document. * A test helper "test_seq" function learned the "-f " option, which allowed us to simplify a lot of test scripts. * A lot of stale stuff has been removed from the contrib/ hierarchy. * "git push" and "git fetch" are taught to update refs in batches to gain performance. * Some code paths in "git prune" used to ignore the passed-in repository object and used the `the_repository` singleton instance instead, which has been corrected. * Update ".clang-format" and ".editorconfig" to match our style guide a bit better. * "make coccicheck" succeeds even when spatch made suggestions, which has been updated to fail in such a case. * Code clean-up around object access API. * Define .precision to more canned parse-options type to avoid bugs coming from using a variable with a wrong type to capture the parsed values. * Flipping the default hash function to SHA-256 at Git 3.0 boundary is planned. * Declare weather-balloon we raised for "bool" type 18 months ago a success and officially allow using the type in our codebase. * GIT_TEST_INSTALLED was not honored in the recent topic related to SHA256 hashes, which has been corrected. * The pop_most_recent_commit() function can have quite expensive worst case performance characteristics, which has been optimized by using prio-queue data structure. * Move structure definition from unrelated header file to where it belongs. * To help our developers, document what C99 language features are being considered for adoption, in addition to what past experiments have already decided. * The reftable unit tests are now ported to the "clar" unit testing framework. * Redefine where the multi-pack-index sits in the object subsystem, which recently was restructured to allow multiple backends that support a single object source that belongs to one repository. A MIDX does span multiple "object sources". * Reduce implicit assumption and dependence on the_repository in the object-file subsystem. Fixes since v2.50 ----------------- Unless otherwise noted, all the changes in 2.50.X maintenance track, including security updates, are included in this release. * A memory-leak in an error code path has been plugged. (merge 7082da85cb ly/commit-graph-graph-write-leakfix later to maint). * A memory-leak in an error code path has been plugged. (merge aedebdb6b9 ly/fetch-pack-leakfix later to maint). * Some leftover references to documentation source files that no longer exist, due to recent ".txt" -> ".adoc" renaming, have been corrected. (merge 3717a5775a jw/doc-txt-to-adoc-refs later to maint). * "git stash -p " improvements. (merge 468817bab2 pw/stash-p-pathspec-fixes later to maint). * "git send-email" incremented its internal message counter when a message was edited, which made logic that treats the first message specially misbehave, which has been corrected. (merge 2cc27b3501 ag/send-email-edit-threading-fix later to maint). * "git stash" recorded a wrong branch name when submodules are present in the current checkout, which has been corrected. (merge ffb36c64f2 kj/stash-onbranch-submodule-fix later to maint). * When asking to apply mailmap to both author and committer field while showing a commit object, the field that appears later was not correctly parsed and replaced, which has been corrected. (merge abf94a283f sa/multi-mailmap-fix later to maint). * "git maintenance" lacked the care "git gc" had to avoid holding onto the repository lock for too long during packing refs, which has been remedied. (merge 1b5074e614 ps/maintenance-ref-lock later to maint). * Avoid regexp_constraint and instead use comparison_constraint when listing functions to exclude from application of coccinelle rules, as spatch can be built with different regexp engine X-<. (merge f2ad545813 jc/cocci-avoid-regexp-constraint later to maint). * Updating submodules from the upstream did not work well when submodule's HEAD is detached, which has been improved. (merge ca62f524c1 jk/submodule-remote-lookup-cleanup later to maint). * Remove unnecessary check from "git daemon" code. (merge 0c856224d2 cb/daemon-fd-check-fix later to maint). * Use of sysctl() system call to learn the total RAM size used on BSDs has been corrected. (merge 781c1cf571 cb/total-ram-bsd-fix later to maint). * Drop FreeBSD 4 support and declare that we support only FreeBSD 12 or later, which has memmem() supported. (merge 0392f976a7 bs/config-mak-freebsd later to maint). * A diff-filter with negative-only specification like "git log --diff-filter=d" did not trigger correctly, which has been fixed. (merge 375ac087c5 jk/all-negative-diff-filter-fix later to maint). * A failure to open the index file for writing due to conflicting access did not state what went wrong, which has been corrected. (merge 9455397a5c hy/read-cache-lock-error-fix later to maint). * Tempfile removal fix in the codepath to sign commits with SSH keys. (merge 4498127b04 re/ssh-sign-buffer-fix later to maint). * Code and test clean-up around string-list API. (merge 6e5b26c3ff sj/string-list later to maint). * "git apply -N" should start from the current index and register only new files, but it instead started from an empty index, which has been corrected. (merge 2b49d97fcb rp/apply-intent-to-add-fix later to maint). * Leakfix with a new and a bit invasive test on pack-bitmap files. (merge bfd5522e98 ly/load-bitmap-leakfix later to maint). * "git fetch --prune" used to be O(n^2) expensive when there are many refs, which has been corrected. (merge 87d8d8c5d0 ph/fetch-prune-optim later to maint). * When a ref creation at refs/heads/foo/bar fails, the files backend now removes refs/heads/foo/ if the directory is otherwise not used. (merge a3a7f20516 ps/refs-files-remove-empty-parent later to maint). * "pack-objects" has been taught to avoid pointing into objects in cruft packs from midx. * "git remote" now detects remote names that overlap with each other (e.g., remote nickname "outer" and "outer/inner" are used at the same time), as it will lead to overlapping remote-tracking branches. (merge a5a727c448 jk/remote-avoid-overlapping-names later to maint). * The gpg.program configuration variable, which names a pathname to the (custom) GPG compatible program, can now be spelled with ~tilde expansion. (merge 7d275cd5c0 jb/gpg-program-variable-is-a-pathname later to maint). * Our header file relied on that the system-supplied header is not later included, which would override our macro definitions, but "amazon linux" broke this assumption. Fix this by preemptively including near the beginning of ourselves. (merge 9d3b33125f ps/sane-ctype-workaround later to maint). * Clean-up compat/bswap.h mess. (merge f4ac32c03a ss/compat-bswap-revamp later to maint). * Meson-based build did not handle libexecdir setting correctly, which has been corrected. (merge 056dbe8612 rj/meson-libexecdir-fix later to maint). * Document that we do not require "real" name when signing your patches off. (merge 1f0fed312a bc/contribution-under-non-real-names later to maint). * "git commit" that concludes a conflicted merge failed to notice and remove existing comment added automatically (like "# Conflicts:") when the core.commentstring is set to 'auto'. (merge 92b7c7c9f5 ac/auto-comment-char-fix later to maint). * "git rebase -i" with bogus rebase.instructionFormat configuration failed to produce the todo file after recording the state files, leading to confused "git status"; this has been corrected. (merge ade14bffd7 ow/rebase-verify-insn-fmt-before-initializing-state later to maint). * A few file descriptors left unclosed upon program completion in a few test helper programs are now closed. (merge 0f1b33815b hl/test-helper-fd-close later to maint). * Interactive prompt code did not correctly strip CRLF from the end of line on Windows. (merge 711a20827b js/prompt-crlf-fix later to maint). * The config API had a set of convenience wrapper functions that implicitly use the_repository instance; they have been removed and inlined at the calling sites. * "git add/etc -p" now honor the diff.context configuration variable, and also they learn to honor the -U command-line option. (merge 2b3ae04011 lm/add-p-context later to maint). * The case where a new submodule takes a path where there used to be a completely different subproject is now dealt with a bit better than before. (merge 5ed8c5b465 kj/renamed-submodule later to maint). * The deflate codepath in "git archive --format=zip" had a longstanding bug coming from misuse of zlib API, which has been corrected. * Other code cleanup, docfix, build fix, etc. @ text @$NetBSD: patch-git-gui_Makefile,v 1.4 2025/06/30 19:10:20 adam Exp $ Fix installation. --- git-gui/Makefile.orig 2025-08-18 00:35:38.000000000 +0000 +++ git-gui/Makefile @@@@ -47,11 +47,11 @@@@ endif RM_RF ?= rm -rf RMDIR ?= rmdir -INSTALL_D0 = $(INSTALL) -d -m 755 # space is required here +INSTALL_D0 = $(BSD_INSTALL_DATA_DIR) # space is required here INSTALL_D1 = -INSTALL_R0 = $(INSTALL) -m 644 # space is required here +INSTALL_R0 = $(BSD_INSTALL_DATA) # space is required here INSTALL_R1 = -INSTALL_X0 = $(INSTALL) -m 755 # space is required here +INSTALL_X0 = $(BSD_INSTALL_SCRIPT) # space is required here INSTALL_X1 = INSTALL_L0 = rm -f # space is required here INSTALL_L1 = && ln # space is required here @@@@ -72,11 +72,11 @@@@ ifndef V QUIET_MSGFMT1 = 2>&1` && echo "$$v" | sed -e 's/fuzzy translations/fuzzy/' | sed -e 's/ messages*//g' INSTALL_D0 = dir= - INSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m 755 "$$dir" + INSTALL_D1 = && echo ' ' DEST $$dir && $(BSD_INSTALL_DATA_DIR) -d -m 755 "$$dir" INSTALL_R0 = src= - INSTALL_R1 = && echo ' ' INSTALL 644 `basename $$src` && $(INSTALL) -m 644 $$src + INSTALL_R1 = && echo ' ' INSTALL 644 `basename $$src` && $(BSD_INSTALL_DATA_DIR) -m 644 $$src INSTALL_X0 = src= - INSTALL_X1 = && echo ' ' INSTALL 755 `basename $$src` && $(INSTALL) -m 755 $$src + INSTALL_X1 = && echo ' ' INSTALL 755 `basename $$src` && $(BSD_INSTALL_DATA_DIR) -m 755 $$src INSTALL_L0 = dst= INSTALL_L1 = && src= @ 1.4 log @git: updated to 2.50.0 Git v2.50 Release Notes ======================= UI, Workflows & Features ------------------------ * A post-processing filter for "diff --raw" output has been introduced. * "git repack" learned "--combine-cruft-below-size" option that controls how cruft-packs are combined. * TCP keepalive behaviour on http transports can now be configured by calling cURL library. * Incrementally updating multi-pack index files. * "git reflog" learns "drop" subcommand, that discards the entire reflog data for a ref. * A new userdiff driver for ".ini" format configuration files has been added. * The job to coalesce loose objects into packfiles in "git maintenance" now has configurable batch size. * "git clone" still gave the message about the default branch name; this message has been turned into an advice message that can be turned off. * "git rev-list" learns machine-parsable output format that delimits each field with NUL. * "git maintenance" learns a new task to expire reflog entries. * Auth-related (and unrelated) error handling in send-email has been made more robust. * Updating multiple references have only been possible in an all-or-nothing fashion with transactions, but it can be more efficient to batch multiple updates even when some of them are allowed to fail in a best-effort manner. A new "best effort batches of updates" mode has been introduced. * "git help --build-options" reports SHA-1 and SHA-256 backends used in the build. * "git cat-file --batch" and friends learned to allow "--filter=" to omit certain objects, just like the transport layer does. * "git blame --porcelain" mode now talks about unblamable lines and lines that are blamed to an ignored commit. * The build procedure installs bash (but not zsh) completion script. * send-email has been updated to work better with Outlook's SMTP server. * "git diff --minimal" used to give non-minimal output when its optimization kicked in, which has been disabled. * "git index-pack --fix-thin" used to abort to prevent a cycle in delta chains from forming in a corner case even when there is no such cycle. * Make repository clean-up tasks that "gc" can do available to "git maintenance" front-end. * Bundle-URI feature did not use refs recorded in the bundle other than normal branches as anchoring points to optimize the follow-up fetch during "git clone"; now it is told to utilize all. * The `send-email` documentation has been updated with OAuth2.0 related examples. * Two of the "scalar" subcommands that add a repository that hasn't been under "scalar"'s control are taught an option not to enable the scheduled maintenance on it. * The userdiff pattern for shell scripts has been updated to cope with more bash-isms. * "git merge-tree" learned an option to see if it resolves cleanly without actually creating a result. * The commit title in the "rebase -i" todo file are now prefixed with '#', just like a merge commit being replayed. * "git receive-pack" optionally learns not to care about connectivity check, which can be useful when the repository arranges to ensure connectivity by some other means. * "git notes --help" documentation updates. Performance, Internal Implementation, Development Support etc. -------------------------------------------------------------- * A handful of built-in command implementations have been rewritten to use the repository instance supplied by git.c:run_builtin(), its caller. * "git fsck" becomes more careful when checking the refs. * "git fast-export | git fast-import" learns to deal with commit and tag objects with embedded signatures a bit better. This is highly experimental and the format of the data stream may change in the future without compatibility guarantees. * The code paths to check whether a refname X is available (by seeing if another ref X/Y exists, etc.) have been optimized. * First step of deprecating and removing merge-recursive. * In protocol v2 where the refs advertisement is constrained, we try to tell the server side not to limit the advertisement when there is no specific need to, which has been the source of confusion and recent bugs. Revamp the logic to simplify. * Update meson based build procedure for breaking changes support. * Enable -Wunreachable-code for developer builds. * Ensure what we write in assert() does not have side effects, and introduce ASSERT() macro to mark those that cannot be mechanically checked for lack of side effects. * Give more meaningful error return values from block writer layer of the reftable ref-API backend. * Make the code in reftable library less reliant on the service routines it used to borrow from Git proper, to make it easier to use by external users of the library. * CI update. * The object layer has been updated to take an explicit repository instance as a parameter in more code paths. * Some warnings from "-Wsign-compare" for builtin/rm.c have been squelched. * A few traditional unit tests have been rewritten to use the clar framework. * Some warnings from "-Wsign-compare" for pathspec.c have been squelched. * "make test" used to have a hard dependency on (basic) Perl; tests have been rewritten help environment with NO_PERL test the build as much as possible. * Remove remnants of the recursive merge strategy backend, which was superseded by the ort merge strategy. * Optimize the code to dedup references recorded in a bundle file. * Update parse-options API to catch mistakes to pass address of an integral variable of a wrong type/size. * Since a call to repo_config() can be called with repo set to NULL these days, a command that is marked as RUN_SETUP in the builtin command table does not have to check repo with NULL before making the call. * Overhaul of the reftable API. * Reduce requirement for Perl in our documentation build and a few scripts. * The build procedure based on Meson learned to drive the benchmarking tests. * Code clean-up for meson-based build infrastructure. * Add an equivalent to "make hdr-check" target to meson based builds. * Further code clean-up in the object-store layer. * Build performance fix. * Teach "git send-email" to also consult `hostname -f` for mail domain to compute the identity given to SMTP servers. * The dependency on the_repository variable has been reduced from the code paths in "git replay". * Support to create a loose object file with unknown object type has been dropped. * The code path to access the "packed-refs" file while "fsck" is taught to mmap the file, instead of reading the whole file into memory. * Assorted fixes for issues found with CodeQL. * Remove the leftover hints to the test framework to mark tests that do not pass the leak checker tests, as they should no longer be needed. * When a stale .midx file refers to .pack files that no longer exist, we ended up checking for these non-existent files repeatedly, which has been optimized by memoizing the non-existence. * Build settings have been improved for BSD based systems. * Newer version of libcURL detected curl_easy_setopt() calls we made with platform-natural "int" when we should have used "long", which all have been corrected. * Tests that compare $HOME and $(pwd), which should be the same directory unless the tests chdir's around, would fail when the user enters the test directory via symbolic links, which has been corrected. Fixes since v2.49 ----------------- * The refname exclusion logic in the packed-ref backend has been broken for some time, which confused upload-pack to advertise different set of refs. This has been corrected. (merge 10e8a9352b tb/refs-exclude-fixes later to maint). * The merge-recursive and merge-ort machinery crashed in corner cases when certain renames are involved. (merge 3adba40858 en/merge-process-renames-crash-fix later to maint). * Certain "cruft" objects would have never been refreshed when there are multiple cruft packs in the repository, which has been corrected. (merge 08f612ba70 tb/multi-cruft-pack-refresh-fix later to maint). * The xdiff code on 32-bit platform misbehaved when an insanely large context size is given, which has been corrected. (merge d39e28e68c rs/xdiff-context-length-fix later to maint). * GitHub Actions CI switched on a CI/CD variable that does not exist when choosing what packages to install etc., which has been corrected. (merge ee89f7c79d kn/ci-meson-check-build-docs-fix later to maint). * Using "git name-rev --stdin" as an example, improve the framework to prepare tests to pretend to be in the future where the breaking changes have already happened. (merge de3dec1187 jc/name-rev-stdin later to maint). * An earlier code refactoring of the hash machinery missed a few required calls to init_fn. (merge d39f04b638 jh/hash-init-fixes later to maint). * A documentation page was left out from formatting and installation, which has been corrected. (merge ae85116f18 pw/build-breaking-changes-doc later to maint). * The bash command line completion script (in contrib/) has been updated to cope with remote repository nicknames with slashes in them. (merge 778d2f1760 dm/completion-remote-names-fix later to maint). * "Dubious ownership" checks on Windows has been tightened up. (merge 5bb88e89ef js/mingw-admins-are-special later to maint). * Layout configuration in vimdiff backend didn't work as advertised, which has been corrected. (merge 93bab2d04b fr/vimdiff-layout-fixes later to maint). * Fix our use of zlib corner cases. (merge 1cb2f293f5 jk/zlib-inflate-fixes later to maint). * Fix lockfile contention in reftable code on Windows. (merge 0a3dceabf1 ps/mingw-creat-excl-fix later to maint). * "git-merge-file" documentation source, which has lines that look like conflict markers, lacked custom conflict marker size defined, which has been corrected.. (merge d3b5832381 pw/custom-conflict-marker-size-for-merge-related-docs later to maint). * Squelch false-positive from sparse. (merge da87b58014 dd/sparse-glibc-workaround later to maint). * Adjust to the deprecation of use of Ubuntu 20.04 GitHub Actions CI. (merge 832d9f6d0b js/ci-github-update-ubuntu later to maint). * Work around CI breakage due to fedora base image getting updated. (merge 8a471a663b js/ci-fedora-gawk later to maint). * A ref transaction corner case fix. (merge b9fadeead7 jt/ref-transaction-abort-fix later to maint). * Random build fixes. (merge 85e1d6819f ps/misc-build-fixes later to maint). * "git fetch []" with only the configured fetch refspec should be the only thing to update refs/remotes//HEAD, but the code was overly eager to do so in other cases. * Incorrect sorting of refs with bytes with high-bit set on platforms with signed char led to a BUG, which has been corrected. * "make perf" fixes. (merge 1665f12fa0 pb/perf-test-fixes later to maint). * Doc mark-up updates. (merge 5a5565ec44 ja/doc-reset-mv-rm-markup-updates later to maint). * Work around false positive from CodeQL checker. (merge 0f558141ed js/range-check-codeql-workaround later to maint). * "git log --{left,right}-only A...B", when A and B does not share any common ancestor, now behaves as expected. (merge e7ef4be7c2 mh/left-right-limited later to maint). * Document the convention to disable hooks altogether by setting the hooksPath configuration variable to /dev/null. (merge 1b2eee94f1 ds/doc-disable-hooks later to maint). * Make sure outage of third-party sites that supply P4, Git-LFS, and JGit we use for testing would not prevent our CI jobs from running at all. * Various build tweaks, including CSPRNG selection on some platforms. (merge cdda67de03 rj/build-tweaks later to maint). * Developer support fix.. (merge 32b74b9809 js/git-perf-env-override later to maint). * Fix for scheduled maintenance tasks on platforms using launchctl. (merge eb2d7beb0e jh/gc-launchctl-schedule-fix later to maint). * Update to arm64 Windows port (part of which had been reverted as it broke builds for existing platforms, which may need to be redone in future releases). * hashmap API clean-up to ensure hashmap_clear() leaves a cleared map in a reusable state. (merge 9481877de3 en/hashmap-clear-fix later to maint). * "git mv a a/b dst" would ask to move the directory 'a' itself, as well as its contents, in a single destination directory, which is a contradicting request that is impossible to satisfy. This case is now detected and the command errors out. (merge 974f0d4664 ps/mv-contradiction-fix later to maint). * Further refinement on CI messages when an optional external software is unavailable (e.g. due to third-party service outage). (merge 956acbefbd jc/ci-skip-unavailable-external-software later to maint). * Test result aggregation did not work in Meson based CI jobs. (merge bd38ed5be1 ps/ci-test-aggreg-fix-for-meson later to maint). * Code clean-up around stale CI elements and building with Visual Studio. (merge a7b060f67f js/ci-buildsystems-cleanup later to maint). * "git add 'f?o'" did not add 'foo' if 'f?o', an unusual pathname, also existed on the working tree, which has been corrected. (merge ec727e189c kj/glob-path-with-special-char later to maint). * The fallback implementation of open_nofollow() depended on open("symlink", O_NOFOLLOW) to set errno to ELOOP, but a few BSD derived systems use different errno, which has been worked around. (merge f47bcc3413 cf/wrapper-bsd-eloop later to maint). * Use-after-free fix in the sequencer. (merge 5dbaec628d pw/sequencer-reflog-use-after-free later to maint). * win+Meson CI pipeline, unlike other pipelines for Windows, used to build artifacts in developer mode, which has been changed to build them in release mode for consistency. (merge 184abdcf05 js/ci-build-win-in-release-mode later to maint). * CI settings at GitLab has been updated to run MSVC based Meson job automatically (as opposed to be done only upon manual request). (merge 6389579b2f ps/ci-gitlab-enable-msvc-meson-job later to maint). * "git apply" and "git add -i/-p" code paths no longer unnecessarily expand sparse-index while working. (merge ecf9ba20e3 ds/sparse-apply-add-p later to maint). * Avoid adding directory path to a sparse-index tree entries to the name-hash, since they would bloat the hashtable without anybody querying for them. This was done already for a single threaded part of the code, but now the multi-threaded code also does the same. (merge 2e60aabc75 am/sparse-index-name-hash-fix later to maint). * Recent versions of Perl started warning against "! A =~ /pattern/" which does not negate the result of the matching. As it turns out that the problematic function is not even called, it was removed. (merge 67cae845d2 op/cvsserver-perl-warning later to maint). * "git apply --index/--cached" when applying a deletion patch in reverse failed to give the mode bits of the path "removed" by the patch to the file it creates, which has been corrected. * "git verify-refs" errored out in a repository in which linked worktrees were prepared with Git 2.43 or lower. (merge d5b3c38b8a sj/ref-contents-check-fix later to maint). * Update total_ram() function on BSD variants. * Update online_cpus() function on BSD variants. * Revert a botched bswap.h change that broke ntohll() functions on big-endian systems with __builtin_bswap32/64(). * Fixes for GitHub Actions Coverity job. (merge 3cc4fc1ebd js/github-ci-win-coverity-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 227c4f33a0 ja/doc-block-delimiter-markup-fix later to maint). (merge 2bfd3b3685 ab/decorate-code-cleanup later to maint). (merge 5337daddc7 am/dir-dedup-decl-of-repository later to maint). (merge 554051d691 en/diff-rename-follow-fix later to maint). (merge a18c18b470 en/random-cleanups later to maint). (merge 5af21c9acb hj/doc-rev-list-ancestry-fix later to maint). (merge 26d76ca284 aj/doc-restore-p-update later to maint). (merge 2c0dcb9754 cc/lop-remote later to maint). (merge 7b399322a2 ja/doc-branch-markup later to maint). (merge ee434e1807 pw/doc-pack-refs-markup-fix later to maint). (merge c000918eb7 tb/bitamp-typofix later to maint). (merge fa8cd29676 js/imap-send-peer-cert-verify later to maint). (merge 98b423bc1c rs/clear-commit-marks-simplify later to maint). (merge 133d065dd6 ta/bulk-checkin-signed-compare-false-warning-fix later to maint). (merge d2827dc31e es/meson-build-skip-coccinelle later to maint). (merge ee8edb7156 dk/vimdiff-doc-fix later to maint). (merge 107d889303 md/t1403-path-is-file later to maint). (merge abd4192b07 js/comma-semicolon-confusion later to maint). (merge 27b7264206 ab/environment-clean-header later to maint). (merge ff4a749354 as/typofix-in-env-h-header later to maint). (merge 86eef3541e az/tighten-string-array-constness later to maint). (merge 25292c301d lo/remove-log-reencode-from-rev-info later to maint). (merge 1aa50636fd jk/p5332-testfix later to maint). (merge 42cf4ac552 ps/ci-resurrect-p4-on-github later to maint). (merge 104add8368 js/diff-codeql-false-positive-workaround later to maint). (merge f62977b93c en/get-tree-entry-doc later to maint). (merge e5dd0a05ed ly/am-split-stgit-leakfix later to maint). (merge bac220e154 rc/t1001-test-path-is-file later to maint). (merge 91db6c735d ly/reftable-writer-leakfix later to maint). (merge 20e4e9ad0b jc/doc-synopsis-option-markup later to maint). (merge cddcee7f64 es/meson-configure-build-options-fix later to maint). (merge cea9f55f00 wk/sparse-checkout-doc-fix later to maint). @ text @d1 1 a1 1 $NetBSD: patch-git-gui_Makefile,v 1.3 2024/04/29 18:55:38 adam Exp $ a3 1 Do not build Git Gui.app on Darwin. d5 1 a5 1 --- git-gui/Makefile.orig 2025-06-16 05:42:57.000000000 +0000 d7 1 a7 1 @@@@ -48,11 +48,11 @@@@ endif d20 3 a22 3 INSTALL_A0 = find # space is required here INSTALL_A1 = | cpio -pud @@@@ -75,11 +75,11 @@@@ ifndef V d27 1 a27 1 + INSTALL_D1 = && echo ' ' DEST $$dir && $(BSD_INSTALL_DATA_DIR) "$$dir" d30 1 a30 1 + INSTALL_R1 = && echo ' ' INSTALL 644 `basename $$src` && $(BSD_INSTALL_DATA) $$src d33 1 a33 3 + INSTALL_X1 = && echo ' ' INSTALL 755 `basename $$src` && $(BSD_INSTALL_SCRIPT) $$src INSTALL_A0 = src= INSTALL_A1 = && echo ' ' INSTALL ' ' `basename "$$src"` && find "$$src" | cpio -pud d35 2 a36 9 @@@@ -138,7 +138,7 @@@@ ifeq ($(exedir),$(gg_libdir)) endif ifeq ($(uname_S),Darwin) ifeq ($(shell test -d $(TKFRAMEWORK) && echo y),y) - GITGUI_MACOSXAPP := YesPlease + GITGUI_MACOSXAPP := endif endif ifneq (,$(findstring MINGW,$(uname_S))) @ 1.3 log @git: updated to 2.45.0 Git v2.45 Release Notes ======================= Backward Compatibility Notes UI, Workflows & Features * Integrate the reftable code into the refs framework as a backend. With "git init --ref-format=reftable", hopefully it would be a lot more efficient to manage a repository with many references. * "git checkout -p" and friends learned that that "@@" is a synonym for "HEAD". * Variants of vimdiff learned to honor mergetool..layout settings. * "git reflog" learned a "list" subcommand that enumerates known reflogs. * When a merge conflicted at a submodule, merge-ort backend used to unconditionally give a lengthy message to suggest how to resolve it. Now the message can be squelched as an advice message. * "git for-each-ref" learned "--include-root-refs" option to show even the stuff outside the 'refs/' hierarchy. * "git rev-list --missing=print" has learned to optionally take "--allow-missing-tips", which allows the objects at the starting points to be missing. * "git merge-tree" has learned that the three trees involved in the 3-way merge only need to be trees, not necessarily commits. * "git log --merge" learned to pay attention to CHERRY_PICK_HEAD and other kinds of *_HEAD pseudorefs. * Platform specific tweaks for OS/390 has been added to config.mak.uname. * Users with safe.bareRepository=explicit can still work from within $GIT_DIR of a seconary worktree (which resides at .git/worktrees/$name/) of the primary worktree without explicitly specifying the $GIT_DIR environment variable or the --git-dir= option. * The output format for dates "iso-strict" has been tweaked to show a time in the Zulu timezone with "Z" suffix, instead of "+00:00". * "git diff" and friends learned two extra configuration variables, diff.srcPrefix and diff.dstPrefix. * The status.showUntrackedFiles configuration variable had a name that tempts users to set a Boolean value expressed in our usual "false", "off", and "0", but it only took "no". This has been corrected so "true" and its synonyms are taken as "normal", while "false" and its synonyms are taken as "no". * Remove an ancient and not well maintained Hg-to-git migration script from contrib/. * Hints that suggest what to do after resolving conflicts can now be squelched by disabling advice.mergeConflict. * Allow git-cherry-pick(1) to automatically drop redundant commits via a new `--empty` option, similar to the `--empty` options for git-rebase(1) and git-am(1). Includes a soft deprecation of `--keep-redundant-commits` as well as some related docs changes and sequencer code cleanup. * "git config" learned "--comment=" option to leave a comment immediately after the "variable = value" on the same line in the configuration file. * core.commentChar used to be limited to a single byte, but has been updated to allow an arbitrary multi-byte sequence. * "git add -p" and other "interactive hunk selection" UI has learned to skip showing the hunk immediately after it has already been shown, and an additional action to explicitly ask to reshow the current hunk. * "git pack-refs" learned the "--auto" option, which defers the decision of whether and how to pack to the ref backend. This is used by the reftable backend to avoid repacking of an already-optimal ref database. The new mode is triggered from "git gc --auto". * "git add -u " and "git commit [-i] " did not diagnose a pathspec element that did not match any files in certain situations, unlike "git add " did. * The userdiff patterns for C# has been updated. * Git writes a "waiting for your editor" message on an incomplete line after launching an editor, and then append another error message on the same line if the editor errors out. It now clears the "waiting for..." line before giving the error message. * The filename used for rejected hunks "git apply --reject" creates was limited to PATH_MAX, which has been lifted. * When "git bisect" reports the commit it determined to be the culprit, we used to show it in a format that does not honor common UI tweaks, like log.date and log.decorate. The code has been taught to use "git show" to follow more customizations. Performance, Internal Implementation, Development Support etc. * The code to iterate over refs with the reftable backend has seen some optimization. * More tests that are marked as "ref-files only" have been updated to improve test coverage of reftable backend. * Some parts of command line completion script (in contrib/) have been micro-optimized. * The way placeholders are to be marked-up in documentation have been specified; use "__" to typeset the word inside a pair of emphasized. * "git --no-lazy-fetch cmd" allows to run "cmd" while disabling lazy fetching of objects from the promisor remote, which may be handy for debugging. * The implementation in "git clean" that makes "-n" and "-i" ignore clean.requireForce has been simplified, together with the documentation. * Uses of xwrite() helper have been audited and updated for better error checking and simpler code. * Some trace2 events that lacked def_param have learned to show it, enriching the output. * The parse-options code that deals with abbreviated long option names have been cleaned up. * The code in reftable backend that creates new table files works better with the tempfile framework to avoid leaving cruft after a failure. * The reftable code has its own custom binary search function whose comparison callback has an unusual interface, which caused the binary search to degenerate into a linear search, which has been corrected. * The code to iterate over reflogs in the reftable has been optimized to reduce memory allocation and deallocation. * Work to support a repository that work with both SHA-1 and SHA-256 hash algorithms has started. * A new fuzz target that exercises config parsing code has been added. * Fix the way recently added tests interpolate variables defined outside them, and document the best practice to help future developers. * Introduce an experimental protocol for contributors to propose the topic description to be used in the "What's cooking" report, the merge commit message for the topic, and in the release notes and document it in the SubmittingPatches document. * The t/README file now gives a hint on running individual tests in the "t/" directory with "make t-*.sh t-*.sh". (merge 8d383806fc pb/test-scripts-are-build-targets later to maint). * The "hint:" messages given by the advice mechanism, when given a message with a blank line, left a line with trailing whitespace, which has been cleansed. * Documentation rules has been explicitly described how to mark-up literal parts and a few manual pages have been updated as examples. * The .editorconfig file has been taught that a Makefile uses HT indentation. * t-prio-queue test has been cleaned up by using C99 compound literals; this is meant to also serve as a weather-balloon to smoke out folks with compilers who have trouble compiling code that uses the feature. * Windows binary used to decide the use of unix-domain socket at build time, but it learned to make the decision at runtime instead. * The "shared repository" test in the t0610 reftable test failed under restrictive umask setting (e.g. 007), which has been corrected. * Document and apply workaround for a buggy version of dash that mishandles "local var=val" construct. * The codepaths that reach date_mode_from_type() have been updated to pass "struct date_mode" by value to make them thread safe. * The strategy to compact multiple tables of reftables after many operations accumulate many entries has been improved to avoid accumulating too many tables uncollected. * The code to iterate over reftable blocks has seen some optimization to reduce memory allocation and deallocation. * The way "git fast-import" handles paths described in its input has been tightened up and more clearly documented. * The cvsimport tests required that the platform understands traditional timezone notations like CST6CDT, which has been updated to work on those systems as long as they understand POSIX notation with explicit tz transition dates. * The code to format trailers have been cleaned up. Fixes since v2.44 ----------------- * "git apply" on a filesystem without filemode support have learned to take a hint from what is in the index for the path, even when not working with the "--index" or "--cached" option, when checking the executable bit match what is required by the preimage in the patch. (merge 45b625142d cp/apply-core-filemode later to maint). * "git column" has been taught to reject negative padding value, as it would lead to nonsense behaviour including division by zero. (merge 76fb807faa kh/column-reject-negative-padding later to maint). * "git am --help" now tells readers what actions are available in "git am --whitespace=", in addition to saying that the option is passed through to the underlying "git apply". (merge a171dac734 jc/am-whitespace-doc later to maint). * "git tag --column" failed to check the exit status of its "git column" invocation, which has been corrected. (merge 92e66478fc rj/tag-column-fix later to maint). * Credential helper based on libsecret (in contrib/) has been updated to handle an empty password correctly. (merge 8f1f2023b7 mh/libsecret-empty-password-fix later to maint). * "git difftool --dir-diff" learned to honor the "--trust-exit-code" option; it used to always exit with 0 and signalled success. (merge eb84c8b6ce ps/difftool-dir-diff-exit-code later to maint). * The code incorrectly attempted to use textconv cache when asked, even when we are not running in a repository, which has been corrected. (merge affe355fe7 jk/textconv-cache-outside-repo-fix later to maint). * Remove an empty file that shouldn't have been added in the first place. (merge 4f66942215 js/remove-cruft-files later to maint). * The logic to access reflog entries by date and number had ugly corner cases at the boundaries, which have been cleaned up. (merge 5edd126720 jk/reflog-special-cases-fix later to maint). * An error message from "git upload-pack", which responds to "git fetch" requests, had a trailing NUL in it, which has been corrected. (merge 3f4c7a0805 sg/upload-pack-error-message-fix later to maint). * Clarify wording in the CodingGuidelines that requires to be the first header file. (merge 4e89f0e07c jc/doc-compat-util later to maint). * "git commit -v --cleanup=scissors" used to add the scissors line twice in the log message buffer, which has been corrected. (merge e90cc075cc jt/commit-redundant-scissors-fix later to maint). * A custom remote helper no longer cannot access the newly created repository during "git clone", which is a regression in Git 2.44. This has been corrected. (merge 199f44cb2e ps/remote-helper-repo-initialization-fix later to maint). * Various parts of upload-pack have been updated to bound the resource consumption relative to the size of the repository to protect from abusive clients. (merge 6cd05e768b jk/upload-pack-bounded-resources later to maint). * The upload-pack program, when talking over v2, accepted the packfile-uris protocol extension from the client, even if it did not advertise the capability, which has been corrected. (merge a922bfa3b5 jk/upload-pack-v2-capability-cleanup later to maint). * Make sure failure return from merge_bases_many() is properly caught. (merge 25fd20eb44 js/merge-base-with-missing-commit later to maint). * FSMonitor client code was confused when FSEvents were given in a different case on a case-insensitive filesystem, which has been corrected. (merge 29c139ce78 jh/fsmonitor-icase-corner-case-fix later to maint). * The "core.commentChar" configuration variable only allows an ASCII character, which was not clearly documented, which has been corrected. (merge fb7c556f58 kh/doc-commentchar-is-a-byte later to maint). * With release 2.44 we got rid of all uses of test_i18ngrep and there is no in-flight topic that adds a new use of it. Make a call to test_i18ngrep a hard failure, so that we can remove it at the end of this release cycle. (merge 381a83dfa3 jc/test-i18ngrep later to maint). * The command line completion script (in contrib/) learned to complete "git reflog" better. (merge 1284f9cc11 rj/complete-reflog later to maint). * The logic to complete the command line arguments to "git worktree" subcommand (in contrib/) has been updated to correctly honor things like "git -C dir" etc. (merge 3574816d98 rj/complete-worktree-paths-fix later to maint). * When git refuses to create a branch because the proposed branch name is not a valid refname, an advice message is given to refer the user to exact naming rules. (merge 8fbd903e58 kh/branch-ref-syntax-advice later to maint). * Code simplification by getting rid of code that sets an environment variable that is no longer used. (merge 72a8d3f027 pw/rebase-i-ignore-cherry-pick-help-environment later to maint). * The code to find the effective end of log messages can fall into an endless loop, which has been corrected. (merge 2541cba2d6 fs/find-end-of-log-message-fix later to maint). * Mark-up used in the documentation has been improved for consistency. (merge 45d5ed3e50 ja/doc-markup-fixes later to maint). * The status.showUntrackedFiles configuration variable was incorrectly documented to accept "false", which has been corrected. * Leaks from "git restore" have been plugged. (merge 2f64da0790 rj/restore-plug-leaks later to maint). * "git bugreport --no-suffix" was not supported and instead segfaulted, which has been corrected. (merge b3b57c69da js/bugreport-no-suffix-fix later to maint). * The documentation for "%(trailers[:options])" placeholder in the "--pretty" option of commands in the "git log" family has been updated. (merge bff85a338c bl/doc-key-val-sep-fix later to maint). * "git checkout --conflict=bad" reported a bad conflictStyle as if it were given to a configuration variable; it has been corrected to report that the command line option is bad. (merge 5a99c1ac1a pw/checkout-conflict-errorfix later to maint). * Code clean-up in the "git log" machinery that implements custom log message formatting. (merge 1c10b8e5b0 jk/pretty-subject-cleanup later to maint). * "git config" corrupted literal HT characters written in the configuration file as part of a value, which has been corrected. (merge e6895c3f97 ds/config-internal-whitespace-fix later to maint). * A unit test for reftable code tried to enumerate all files in a directory after reftable operations and expected to see nothing but the files it wanted to leave there, but was fooled by .nfs* cruft files left, which has been corrected. (merge 0068aa7946 ps/reftable-unit-test-nfs-workaround later to maint). * The implementation and documentation of "object-format" option exchange between the Git itself and its remote helpers did not quite match, which has been corrected. * The "--pretty=" option of the commands in the "git log" family, defined as "[pretty] shortHand = " should have been looked up case insensitively, but was not, which has been corrected. (merge f999d5188b bl/pretty-shorthand-config-fix later to maint). * "git apply" failed to extract the filename the patch applied to, when the change was about an empty file created in or deleted from a directory whose name ends with a SP, which has been corrected. (merge 776ffd1a30 jc/apply-parse-diff-git-header-names-fix later to maint). * Update a more recent tutorial doc. (merge 95ab557b4b dg/myfirstobjectwalk-updates later to maint). * The test script had an incomplete and ineffective attempt to avoid clobbering the testing user's real crontab (and its equivalents), which has been completed. (merge 73cb87773b es/test-cron-safety later to maint). * Use advice_if_enabled() API to rewrite a simple pattern to call advise() after checking advice_enabled(). (merge 6412d01527 rj/use-adv-if-enabled later to maint). * Another "set -u" fix for the bash prompt (in contrib/) script. (merge d7805bc743 vs/complete-with-set-u-fix later to maint). * "git checkout/switch --detach foo", after switching to the detached HEAD state, gave the tracking information for the 'foo' branch, which was pointless. * "git apply" has been updated to lift the hardcoded pathname length limit, which in turn allowed a mksnpath() function that is no longer used. (merge 708f7e0590 rs/apply-lift-path-length-limit later to maint). * A file descriptor leak in an error codepath, used when "git apply --reject" fails to create the *.rej file, has been corrected. (merge 2b1f456adf rs/apply-reject-fd-leakfix later to maint). * A config parser callback function fell through instead of returning after recognising and processing a variable, wasting cycles, which has been corrected. (merge a816ccd642 ds/fetch-config-parse-microfix later to maint). * Fix was added to work around a regression in libcURL 8.7.0 (which has already been fixed in their tip of the tree). (merge 92a209bf24 jk/libcurl-8.7-regression-workaround later to maint). * The variable that holds the value read from the core.excludefile configuration variable used to leak, which has been corrected. (merge 0e0fefb29f jc/unleak-core-excludesfile later to maint). * vreportf(), which is used by error() and friends, has been taught to give the error message printf-format string when its vsnprintf() call fails, instead of showing nothing useful to identify the nature of the error. (merge c63adab961 rs/usage-fallback-to-show-message-format later to maint). * Adjust to an upcoming changes to GNU make that breaks our Makefiles. (merge 227b8fd902 tb/make-indent-conditional-with-non-spaces later to maint). * Git 2.44 introduced a regression that makes the updated code to barf in repositories with multi-pack index written by older versions of Git, which has been corrected. * When .git/rr-cache/ rerere database gets corrupted or rerere is fed to work on a file with conflicted hunks resolved incompletely, the rerere machinery got confused and segfaulted, which has been corrected. (merge 167395bb47 mr/rerere-crash-fix later to maint). * The "receive-pack" program (which responds to "git push") was not converted to run "git maintenance --auto" when other codepaths that used to run "git gc --auto" were updated, which has been corrected. (merge 7bf3057d9c ps/run-auto-maintenance-in-receive-pack later to maint). * Other code cleanup, docfix, build fix, etc. (merge f0e578c69c rs/use-xstrncmpz later to maint). (merge 83e6eb7d7a ba/credential-test-clean-fix later to maint). (merge 64562d784d jb/doc-interactive-singlekey-do-not-need-perl later to maint). (merge c431a235e2 cp/t9146-use-test-path-helpers later to maint). (merge 82d75402d5 ds/doc-send-email-capitalization later to maint). (merge 41bff66e35 jc/doc-add-placeholder-fix later to maint). (merge 6835f0efe9 jw/remote-doc-typofix later to maint). (merge 244001aa20 hs/rebase-not-in-progress later to maint). (merge 2ca6c07db2 jc/no-include-of-compat-util-from-headers later to maint). (merge 87bd7fbb9c rs/fetch-simplify-with-starts-with later to maint). (merge f39addd0d9 rs/name-rev-with-mempool later to maint). (merge 9a97b43e03 rs/submodule-prefix-simplify later to maint). (merge 40b8076462 ak/rebase-autosquash later to maint). (merge 3223204456 eg/add-uflags later to maint). (merge 5f78d52dce es/config-doc-sort-sections later to maint). (merge 781fb7b4c2 as/option-names-in-messages later to maint). (merge 51d41dc243 jk/doc-remote-helpers-markup-fix later to maint). (merge e1aaf309db pb/ci-win-artifact-names-fix later to maint). (merge ad538c61da jc/index-pack-fsck-levels later to maint). (merge 67471bc704 ja/doc-formatting-fix later to maint). (merge 86f9ce7dd6 bl/doc-config-fixes later to maint). (merge 0d527842b7 az/grep-group-error-message-update later to maint). (merge 7c43bdf07b rs/strbuf-expand-bad-format later to maint). (merge 8b68b48d5c ds/typofix-core-config-doc later to maint). (merge 39bb692152 rs/imap-send-use-xsnprintf later to maint). (merge 8d320cec60 jc/t2104-style-fixes later to maint). (merge b4454d5a7b pw/t3428-cleanup later to maint). (merge 84a7c33a4b pf/commitish-committish later to maint). (merge 8882ee9d68 la/mailmap-entry later to maint). (merge 44bdba2fa6 rs/no-openssl-compilation-fix-on-macos later to maint). (merge f412d72c19 yb/replay-doc-linkfix later to maint). (merge 5da40be8d7 xx/rfc2822-date-format-in-doc later to maint). @ text @d1 1 a1 1 $NetBSD: patch-git-gui_Makefile,v 1.2 2023/11/21 20:51:21 adam Exp $ d6 1 a6 1 --- git-gui/Makefile.orig 2024-04-29 16:19:22.000000000 +0000 d8 1 a8 1 @@@@ -50,11 +50,11 @@@@ endif d23 2 a24 2 @@@@ -78,11 +78,11 @@@@ ifndef V QUIET_2DEVNULL = 2>/dev/null d38 2 a39 2 @@@@ -144,7 +144,7 @@@@ endif gg_libdir_sed_in := $(gg_libdir) @ 1.3.10.1 log @Pullup ticket #6982 - requested by wiz devel/git: Security fix Revisions pulled up: - devel/git-base/Makefile 1.125 - devel/git-base/PLIST 1.47 - devel/git-base/distinfo 1.155-1.156 - devel/git-base/patches/patch-git-gui_Makefile 1.4 - devel/git-docs/PLIST 1.25 - devel/git-gitk/PLIST 1.11 - devel/git-perlscripts/Makefile 1.12 - devel/git/Makefile.version 1.136-1.137 --- Module Name: pkgsrc Committed By: adam Date: Mon Jun 30 19:10:21 UTC 2025 Modified Files: pkgsrc/devel/git: Makefile.version pkgsrc/devel/git-base: Makefile PLIST distinfo pkgsrc/devel/git-base/patches: patch-git-gui_Makefile pkgsrc/devel/git-docs: PLIST pkgsrc/devel/git-gitk: PLIST Log Message: git: updated to 2.50.0 Git v2.50 Release Notes ======================= UI, Workflows & Features ------------------------ * A post-processing filter for "diff --raw" output has been introduced. * "git repack" learned "--combine-cruft-below-size" option that controls how cruft-packs are combined. * TCP keepalive behaviour on http transports can now be configured by calling cURL library. * Incrementally updating multi-pack index files. * "git reflog" learns "drop" subcommand, that discards the entire reflog data for a ref. * A new userdiff driver for ".ini" format configuration files has been added. * The job to coalesce loose objects into packfiles in "git maintenance" now has configurable batch size. * "git clone" still gave the message about the default branch name; this message has been turned into an advice message that can be turned off. * "git rev-list" learns machine-parsable output format that delimits each field with NUL. * "git maintenance" learns a new task to expire reflog entries. * Auth-related (and unrelated) error handling in send-email has been made more robust. * Updating multiple references have only been possible in an all-or-nothing fashion with transactions, but it can be more efficient to batch multiple updates even when some of them are allowed to fail in a best-effort manner. A new "best effort batches of updates" mode has been introduced. * "git help --build-options" reports SHA-1 and SHA-256 backends used in the build. * "git cat-file --batch" and friends learned to allow "--filter=" to omit certain objects, just like the transport layer does. * "git blame --porcelain" mode now talks about unblamable lines and lines that are blamed to an ignored commit. * The build procedure installs bash (but not zsh) completion script. * send-email has been updated to work better with Outlook's SMTP server. * "git diff --minimal" used to give non-minimal output when its optimization kicked in, which has been disabled. * "git index-pack --fix-thin" used to abort to prevent a cycle in delta chains from forming in a corner case even when there is no such cycle. * Make repository clean-up tasks that "gc" can do available to "git maintenance" front-end. * Bundle-URI feature did not use refs recorded in the bundle other than normal branches as anchoring points to optimize the follow-up fetch during "git clone"; now it is told to utilize all. * The `send-email` documentation has been updated with OAuth2.0 related examples. * Two of the "scalar" subcommands that add a repository that hasn't been under "scalar"'s control are taught an option not to enable the scheduled maintenance on it. * The userdiff pattern for shell scripts has been updated to cope with more bash-isms. * "git merge-tree" learned an option to see if it resolves cleanly without actually creating a result. * The commit title in the "rebase -i" todo file are now prefixed with '#', just like a merge commit being replayed. * "git receive-pack" optionally learns not to care about connectivity check, which can be useful when the repository arranges to ensure connectivity by some other means. * "git notes --help" documentation updates. Performance, Internal Implementation, Development Support etc. -------------------------------------------------------------- * A handful of built-in command implementations have been rewritten to use the repository instance supplied by git.c:run_builtin(), its caller. * "git fsck" becomes more careful when checking the refs. * "git fast-export | git fast-import" learns to deal with commit and tag objects with embedded signatures a bit better. This is highly experimental and the format of the data stream may change in the future without compatibility guarantees. * The code paths to check whether a refname X is available (by seeing if another ref X/Y exists, etc.) have been optimized. * First step of deprecating and removing merge-recursive. * In protocol v2 where the refs advertisement is constrained, we try to tell the server side not to limit the advertisement when there is no specific need to, which has been the source of confusion and recent bugs. Revamp the logic to simplify. * Update meson based build procedure for breaking changes support. * Enable -Wunreachable-code for developer builds. * Ensure what we write in assert() does not have side effects, and introduce ASSERT() macro to mark those that cannot be mechanically checked for lack of side effects. * Give more meaningful error return values from block writer layer of the reftable ref-API backend. * Make the code in reftable library less reliant on the service routines it used to borrow from Git proper, to make it easier to use by external users of the library. * CI update. * The object layer has been updated to take an explicit repository instance as a parameter in more code paths. * Some warnings from "-Wsign-compare" for builtin/rm.c have been squelched. * A few traditional unit tests have been rewritten to use the clar framework. * Some warnings from "-Wsign-compare" for pathspec.c have been squelched. * "make test" used to have a hard dependency on (basic) Perl; tests have been rewritten help environment with NO_PERL test the build as much as possible. * Remove remnants of the recursive merge strategy backend, which was superseded by the ort merge strategy. * Optimize the code to dedup references recorded in a bundle file. * Update parse-options API to catch mistakes to pass address of an integral variable of a wrong type/size. * Since a call to repo_config() can be called with repo set to NULL these days, a command that is marked as RUN_SETUP in the builtin command table does not have to check repo with NULL before making the call. * Overhaul of the reftable API. * Reduce requirement for Perl in our documentation build and a few scripts. * The build procedure based on Meson learned to drive the benchmarking tests. * Code clean-up for meson-based build infrastructure. * Add an equivalent to "make hdr-check" target to meson based builds. * Further code clean-up in the object-store layer. * Build performance fix. * Teach "git send-email" to also consult `hostname -f` for mail domain to compute the identity given to SMTP servers. * The dependency on the_repository variable has been reduced from the code paths in "git replay". * Support to create a loose object file with unknown object type has been dropped. * The code path to access the "packed-refs" file while "fsck" is taught to mmap the file, instead of reading the whole file into memory. * Assorted fixes for issues found with CodeQL. * Remove the leftover hints to the test framework to mark tests that do not pass the leak checker tests, as they should no longer be needed. * When a stale .midx file refers to .pack files that no longer exist, we ended up checking for these non-existent files repeatedly, which has been optimized by memoizing the non-existence. * Build settings have been improved for BSD based systems. * Newer version of libcURL detected curl_easy_setopt() calls we made with platform-natural "int" when we should have used "long", which all have been corrected. * Tests that compare $HOME and $(pwd), which should be the same directory unless the tests chdir's around, would fail when the user enters the test directory via symbolic links, which has been corrected. Fixes since v2.49 ----------------- * The refname exclusion logic in the packed-ref backend has been broken for some time, which confused upload-pack to advertise different set of refs. This has been corrected. (merge 10e8a9352b tb/refs-exclude-fixes later to maint). * The merge-recursive and merge-ort machinery crashed in corner cases when certain renames are involved. (merge 3adba40858 en/merge-process-renames-crash-fix later to maint). * Certain "cruft" objects would have never been refreshed when there are multiple cruft packs in the repository, which has been corrected. (merge 08f612ba70 tb/multi-cruft-pack-refresh-fix later to maint). * The xdiff code on 32-bit platform misbehaved when an insanely large context size is given, which has been corrected. (merge d39e28e68c rs/xdiff-context-length-fix later to maint). * GitHub Actions CI switched on a CI/CD variable that does not exist when choosing what packages to install etc., which has been corrected. (merge ee89f7c79d kn/ci-meson-check-build-docs-fix later to maint). * Using "git name-rev --stdin" as an example, improve the framework to prepare tests to pretend to be in the future where the breaking changes have already happened. (merge de3dec1187 jc/name-rev-stdin later to maint). * An earlier code refactoring of the hash machinery missed a few required calls to init_fn. (merge d39f04b638 jh/hash-init-fixes later to maint). * A documentation page was left out from formatting and installation, which has been corrected. (merge ae85116f18 pw/build-breaking-changes-doc later to maint). * The bash command line completion script (in contrib/) has been updated to cope with remote repository nicknames with slashes in them. (merge 778d2f1760 dm/completion-remote-names-fix later to maint). * "Dubious ownership" checks on Windows has been tightened up. (merge 5bb88e89ef js/mingw-admins-are-special later to maint). * Layout configuration in vimdiff backend didn't work as advertised, which has been corrected. (merge 93bab2d04b fr/vimdiff-layout-fixes later to maint). * Fix our use of zlib corner cases. (merge 1cb2f293f5 jk/zlib-inflate-fixes later to maint). * Fix lockfile contention in reftable code on Windows. (merge 0a3dceabf1 ps/mingw-creat-excl-fix later to maint). * "git-merge-file" documentation source, which has lines that look like conflict markers, lacked custom conflict marker size defined, which has been corrected.. (merge d3b5832381 pw/custom-conflict-marker-size-for-merge-related-docs later to maint). * Squelch false-positive from sparse. (merge da87b58014 dd/sparse-glibc-workaround later to maint). * Adjust to the deprecation of use of Ubuntu 20.04 GitHub Actions CI. (merge 832d9f6d0b js/ci-github-update-ubuntu later to maint). * Work around CI breakage due to fedora base image getting updated. (merge 8a471a663b js/ci-fedora-gawk later to maint). * A ref transaction corner case fix. (merge b9fadeead7 jt/ref-transaction-abort-fix later to maint). * Random build fixes. (merge 85e1d6819f ps/misc-build-fixes later to maint). * "git fetch []" with only the configured fetch refspec should be the only thing to update refs/remotes//HEAD, but the code was overly eager to do so in other cases. * Incorrect sorting of refs with bytes with high-bit set on platforms with signed char led to a BUG, which has been corrected. * "make perf" fixes. (merge 1665f12fa0 pb/perf-test-fixes later to maint). * Doc mark-up updates. (merge 5a5565ec44 ja/doc-reset-mv-rm-markup-updates later to maint). * Work around false positive from CodeQL checker. (merge 0f558141ed js/range-check-codeql-workaround later to maint). * "git log --{left,right}-only A...B", when A and B does not share any common ancestor, now behaves as expected. (merge e7ef4be7c2 mh/left-right-limited later to maint). * Document the convention to disable hooks altogether by setting the hooksPath configuration variable to /dev/null. (merge 1b2eee94f1 ds/doc-disable-hooks later to maint). * Make sure outage of third-party sites that supply P4, Git-LFS, and JGit we use for testing would not prevent our CI jobs from running at all. * Various build tweaks, including CSPRNG selection on some platforms. (merge cdda67de03 rj/build-tweaks later to maint). * Developer support fix.. (merge 32b74b9809 js/git-perf-env-override later to maint). * Fix for scheduled maintenance tasks on platforms using launchctl. (merge eb2d7beb0e jh/gc-launchctl-schedule-fix later to maint). * Update to arm64 Windows port (part of which had been reverted as it broke builds for existing platforms, which may need to be redone in future releases). * hashmap API clean-up to ensure hashmap_clear() leaves a cleared map in a reusable state. (merge 9481877de3 en/hashmap-clear-fix later to maint). * "git mv a a/b dst" would ask to move the directory 'a' itself, as well as its contents, in a single destination directory, which is a contradicting request that is impossible to satisfy. This case is now detected and the command errors out. (merge 974f0d4664 ps/mv-contradiction-fix later to maint). * Further refinement on CI messages when an optional external software is unavailable (e.g. due to third-party service outage). (merge 956acbefbd jc/ci-skip-unavailable-external-software later to maint). * Test result aggregation did not work in Meson based CI jobs. (merge bd38ed5be1 ps/ci-test-aggreg-fix-for-meson later to maint). * Code clean-up around stale CI elements and building with Visual Studio. (merge a7b060f67f js/ci-buildsystems-cleanup later to maint). * "git add 'f?o'" did not add 'foo' if 'f?o', an unusual pathname, also existed on the working tree, which has been corrected. (merge ec727e189c kj/glob-path-with-special-char later to maint). * The fallback implementation of open_nofollow() depended on open("symlink", O_NOFOLLOW) to set errno to ELOOP, but a few BSD derived systems use different errno, which has been worked around. (merge f47bcc3413 cf/wrapper-bsd-eloop later to maint). * Use-after-free fix in the sequencer. (merge 5dbaec628d pw/sequencer-reflog-use-after-free later to maint). * win+Meson CI pipeline, unlike other pipelines for Windows, used to build artifacts in developer mode, which has been changed to build them in release mode for consistency. (merge 184abdcf05 js/ci-build-win-in-release-mode later to maint). * CI settings at GitLab has been updated to run MSVC based Meson job automatically (as opposed to be done only upon manual request). (merge 6389579b2f ps/ci-gitlab-enable-msvc-meson-job later to maint). * "git apply" and "git add -i/-p" code paths no longer unnecessarily expand sparse-index while working. (merge ecf9ba20e3 ds/sparse-apply-add-p later to maint). * Avoid adding directory path to a sparse-index tree entries to the name-hash, since they would bloat the hashtable without anybody querying for them. This was done already for a single threaded part of the code, but now the multi-threaded code also does the same. (merge 2e60aabc75 am/sparse-index-name-hash-fix later to maint). * Recent versions of Perl started warning against "! A =~ /pattern/" which does not negate the result of the matching. As it turns out that the problematic function is not even called, it was removed. (merge 67cae845d2 op/cvsserver-perl-warning later to maint). * "git apply --index/--cached" when applying a deletion patch in reverse failed to give the mode bits of the path "removed" by the patch to the file it creates, which has been corrected. * "git verify-refs" errored out in a repository in which linked worktrees were prepared with Git 2.43 or lower. (merge d5b3c38b8a sj/ref-contents-check-fix later to maint). * Update total_ram() function on BSD variants. * Update online_cpus() function on BSD variants. * Revert a botched bswap.h change that broke ntohll() functions on big-endian systems with __builtin_bswap32/64(). * Fixes for GitHub Actions Coverity job. (merge 3cc4fc1ebd js/github-ci-win-coverity-fix later to maint). * Other code cleanup, docfix, build fix, etc. (merge 227c4f33a0 ja/doc-block-delimiter-markup-fix later to maint). (merge 2bfd3b3685 ab/decorate-code-cleanup later to maint). (merge 5337daddc7 am/dir-dedup-decl-of-repository later to maint). (merge 554051d691 en/diff-rename-follow-fix later to maint). (merge a18c18b470 en/random-cleanups later to maint). (merge 5af21c9acb hj/doc-rev-list-ancestry-fix later to maint). (merge 26d76ca284 aj/doc-restore-p-update later to maint). (merge 2c0dcb9754 cc/lop-remote later to maint). (merge 7b399322a2 ja/doc-branch-markup later to maint). (merge ee434e1807 pw/doc-pack-refs-markup-fix later to maint). (merge c000918eb7 tb/bitamp-typofix later to maint). (merge fa8cd29676 js/imap-send-peer-cert-verify later to maint). (merge 98b423bc1c rs/clear-commit-marks-simplify later to maint). (merge 133d065dd6 ta/bulk-checkin-signed-compare-false-warning-fix later to maint). (merge d2827dc31e es/meson-build-skip-coccinelle later to maint). (merge ee8edb7156 dk/vimdiff-doc-fix later to maint). (merge 107d889303 md/t1403-path-is-file later to maint). (merge abd4192b07 js/comma-semicolon-confusion later to maint). (merge 27b7264206 ab/environment-clean-header later to maint). (merge ff4a749354 as/typofix-in-env-h-header later to maint). (merge 86eef3541e az/tighten-string-array-constness later to maint). (merge 25292c301d lo/remove-log-reencode-from-rev-info later to maint). (merge 1aa50636fd jk/p5332-testfix later to maint). (merge 42cf4ac552 ps/ci-resurrect-p4-on-github later to maint). (merge 104add8368 js/diff-codeql-false-positive-workaround later to maint). (merge f62977b93c en/get-tree-entry-doc later to maint). (merge e5dd0a05ed ly/am-split-stgit-leakfix later to maint). (merge bac220e154 rc/t1001-test-path-is-file later to maint). (merge 91db6c735d ly/reftable-writer-leakfix later to maint). (merge 20e4e9ad0b jc/doc-synopsis-option-markup later to maint). (merge cddcee7f64 es/meson-configure-build-options-fix later to maint). (merge cea9f55f00 wk/sparse-checkout-doc-fix later to maint). --- Module Name: pkgsrc Committed By: wiz Date: Tue Jul 8 20:49:03 UTC 2025 Modified Files: pkgsrc/devel/git: Makefile.version pkgsrc/devel/git-base: distinfo pkgsrc/devel/git-perlscripts: Makefile Log Message: git*: update to 2.50.1 Git v2.50.1 Release Notes ========================= This release merges up the fixes that appear in v2.43.7, v2.44.4, v2.45.4, v2.46.4, v2.47.3, v2.48.2, and v2.49.1 to address the following CVEs: CVE-2025-27613, CVE-2025-27614, CVE-2025-46334, CVE-2025-46835, CVE-2025-48384, CVE-2025-48385, and CVE-2025-48386. See the release notes for v2.43.7 for details. @ text @d1 1 a1 1 $NetBSD$ d6 1 a6 1 --- git-gui/Makefile.orig 2025-06-16 05:42:57.000000000 +0000 d8 1 a8 1 @@@@ -48,11 +48,11 @@@@ endif d23 2 a24 2 @@@@ -75,11 +75,11 @@@@ ifndef V QUIET_MSGFMT1 = 2>&1` && echo "$$v" | sed -e 's/fuzzy translations/fuzzy/' | sed -e 's/ messages*//g' d38 2 a39 2 @@@@ -138,7 +138,7 @@@@ ifeq ($(exedir),$(gg_libdir)) endif @ 1.2 log @git: updated to 2.43.0 Git v2.43 Release Notes ======================= Backward Compatibility Notes * The "--rfc" option of "git format-patch" used to be a valid way to override an earlier "--subject-prefix=" on the command line and replace it with "[RFC PATCH]", but from this release, it merely prefixes the string "RFC " in front of the given subject prefix. If you are negatively affected by this change, please use "--subject-prefix=PATCH --rfc" as a replacement. * In Git 2.42, "git rev-list --stdin" learned to take non-revisions (like "--not") from the standard input, but the way such a "--not" was handled was quite confusing, which has been rethought. The updated rule is that "--not" given from the command line only affects revs given from the command line that comes but not revs read from the standard input, and "--not" read from the standard input affects revs given from the standard input and not revs given from the command line. UI, Workflows & Features * A message written in olden time prevented a branch from getting checked out, saying it is already checked out elsewhere. But these days, we treat a branch that is being bisected or rebased just like a branch that is checked out and protect it from getting modified with the same codepath. The message has been rephrased to say that the branch is "in use" to avoid confusion. * Hourly and other schedules of "git maintenance" jobs are randomly distributed now. * "git cmd -h" learned to signal which options can be negated by listing such options like "--[no-]opt". * The way authentication related data other than passwords (e.g., oauth token and password expiration data) are stored in libsecret keyrings has been rethought. * Update the libsecret and wincred credential helpers to correctly match which credential to erase; they erased the wrong entry in some cases. * Git GUI updates. * "git format-patch" learned a new "--description-file" option that lets cover letter description to be fed; this can be used on detached HEAD where there is no branch description available, and also can override the branch description if there is one. * Use of the "--max-pack-size" option to allow multiple packfiles to be created is now supported even when we are sending unreachable objects to cruft packs. * "git format-patch --rfc --subject-prefix=" used to ignore the "--subject-prefix" option and used "[RFC PATCH]"; now we will add "RFC" prefix to whatever subject prefix is specified. * "git log --format" has been taught the %(decorate) placeholder for further customization over what the "--decorate" option offers. * The default log message created by "git revert", when reverting a commit that records a revert, has been tweaked, to encourage people to describe complex "revert of revert of revert" situations better in their own words. * The command-line completion support (in contrib/) learned to complete "git commit --trailer=" for possible trailer keys. * "git update-index" learned the "--show-index-version" option to inspect the index format version used by the on-disk index file. * "git diff" learned the "diff.statNameWidth" configuration variable, to give the default width for the name part in the "--stat" output. * "git range-diff --notes=foo" compared "log --notes=foo --notes" of the two ranges, instead of using just the specified notes tree, which has been corrected to use only the specified notes tree. * The command line completion script (in contrib/) can be told to complete aliases by including ": git ;" in the alias to tell it that the alias should be completed in a similar way to how "git " is completed. The parsing code for the alias has been loosened to allow ';' without an extra space before it. * "git for-each-ref" and friends learned to apply mailmap to authorname and other fields in a more flexible way than using separate placeholder letters like %a[eElL] every time we want to come up with small variants. * "git repack" machinery learned to pay attention to the "--filter=" option. * "git repack" learned the "--max-cruft-size" option to prevent cruft packs from growing without bounds. * "git merge-tree" learned to take strategy backend specific options via the "-X" option, like "git merge" does. * "git log" and friends learned the "--dd" option that is a short-hand for "--diff-merges=first-parent -p". * The attribute subsystem learned to honor the "attr.tree" configuration variable that specifies which tree to read the .gitattributes files from. * "git merge-file" learns a mode to read three variants of the contents to be merged from blob objects. Performance, Internal Implementation, Development Support etc. * "git check-attr" has been taught to work better with sparse-index. * It may be tempting to leave the help text NULL for a command line option that is either hidden or too obvious, but "git subcmd -h" and "git subcmd --help-all" would have segfaulted if done so. Now the help text is truly optional. * Tests that are known to pass with LSan are now marked as such. * Flaky "git p4" tests, as well as "git svn" tests, are now skipped in the (rather expensive) sanitizer CI job. * Tests with LSan from time to time seem to emit harmless messages that make our tests unnecessarily flaky; we work around it by filtering the uninteresting output. * Unused parameters to functions are marked as such, and/or removed, in order to bring us closer to "-Wunused-parameter" clean. * The code to keep track of existing packs in the repository while repacking has been refactored. * The "streaming" interface used for bulk-checkin codepath has been narrowed to take only blob objects for now, with no real loss of functionality. * GitHub CI workflow has learned to trigger Coverity check. * Test coverage for trailers has been improved. * The code to iterate over loose references has been optimized to reduce the number of lstat() system calls. * The codepaths that read "chunk" formatted files have been corrected to pay attention to the chunk size and notice broken files. * Replace macos-12 used at GitHub CI with macos-13. (merge 682a868f67 js/ci-use-macos-13 later to maint). Fixes since v2.42 ----------------- * Overly long label names used in the sequencer machinery are now chopped to fit under filesystem limitation. * Scalar updates. * Tweak GitHub Actions CI so that pushing the same commit to multiple branch tips at the same time will not waste building and testing the same thing twice. * The commit-graph verification code that detects a mixture of zero and non-zero generation numbers has been updated. * "git diff -w --exit-code" with various options did not work correctly, which has been corrected. * The "transfer.unpackLimit" configuration variable ought to be used as a fallback, but overrode the more specific "fetch.unpackLimit" and "receive.unpackLimit" configuration variables by mistake, which has been corrected. * The use of API between two calls to require_clean_work_tree() from the sequencer code has been cleaned up for consistency. * "git diff --no-such-option" and other corner cases around the exit status of the "diff" command have been corrected. * "git for-each-ref --sort='contents:size'" sorted the refs according to size numerically, giving a ref that points at a blob twelve-byte (12) long before showing a blob hundred-byte (100) long, which has been corrected. * We now limit the depth of the tree objects and maximum length of pathnames recorded in tree objects. (merge 4d5693ba05 jk/tree-name-and-depth-limit later to maint). * Various fixes to the behavior of "rebase -i", when the command got interrupted by conflicting changes, have been made. * References from a description of the `--patch` option in various manual pages have been simplified and improved. * "git grep -e A --no-or -e B" is accepted, even though the negation of the "--or" option did not mean anything, which has been tightened. * The completion script (in contrib/) has been taught to treat the "-t" option to "git checkout" and "git switch" just like the "--track" option, to complete remote-tracking branches. * "git diff --no-index -R <(one) <(two)" did not work correctly, which has been corrected. * "git maintenance" timers' implementation has been updated, based on systemd timers, to work with WSL. * "git diff --cached" codepath did not fill the necessary stat information for a file when fsmonitor knows it is clean and ended up behaving as if it were not clean, which has been corrected. * How "alias.foo = : git cmd ; aliased-command-string" should be spelled with necessary whitespace around punctuation marks to work has been more clearly documented (but this will be moot with newer versions of Git where the parsing rules have been improved). * HTTP Header redaction code has been adjusted for a newer version of cURL library that shows its traces differently from earlier versions. * An error message given by "git send-email", when given a malformed address, did not show the offending address, which has been corrected. * UBSan options were not propagated through the test framework to git run via the httpd, unlike ASan options, which has been corrected. * "checkout --merge -- path" and "update-index --unresolve path" did not resurrect conflicted state that was resolved to remove path, but now they do. (merge 5bdedac3c7 jc/unresolve-removal later to maint). * The display width table for unicode characters has been updated for Unicode 15.1 (merge 872976c37e bb/unicode-width-table-15 later to maint). * Update mailmap entry for Derrick. (merge 6e5457d8c7 ds/mailmap-entry-update later to maint). * In the ".gitmodules" files, submodules are keyed by their names, and the path to the submodule whose name is $name is specified by the submodule.$name.path variable. There were a few codepaths that mixed the name and path up when consulting the submodule database, which have been corrected. It took long for these bugs to be found as the name of a submodule initially is the same as its path, and the problem does not surface until it is moved to a different path, which apparently happens very rarely. * "git diff --merge-base X other args..." insisted that X must be a commit and errored out when given an annotated tag that peels to a commit, but we only need it to be a committish. This has been corrected. (merge 4adceb5a29 ar/diff-index-merge-base-fix later to maint). * "git merge-tree" used to segfault when the "--attr-source" option is used, which has been corrected. (merge e95bafc52f jc/merge-ort-attr-index-fix later to maint). * Unlike "git log --pretty=%D", "git log --pretty="%(decorate)" did not auto-initialize the decoration subsystem, which has been corrected. * Feeding "git stash store" with a random commit that was not created by "git stash create" now errors out. (merge d9b6634589 jc/fail-stash-to-store-non-stash later to maint). * The index file has room only for the lower 32-bit of the file size in the cached stat information, which means cached stat information will have 0 in its sd_size member for a file whose size is a multiple of 4GiB. This is mistaken for a racily clean path. Avoid it by storing a bogus sd_size value instead for such files. (merge 5143ac07b1 bc/racy-4gb-files later to maint). * "git p4" tried to store symlinks to LFS when told, but has been fixed not to do so, because it does not make sense. (merge 10c89a02b0 mm/p4-symlink-with-lfs later to maint). * The codepath to handle recipient addresses `git send-email --compose` learns from the user was completely broken, which has been corrected. (merge 3ec6167567 jk/send-email-fix-addresses-from-composed-messages later to maint). * "cd sub && git grep -f patterns" tried to read "patterns" file at the top level of the working tree; it has been corrected to read "sub/patterns" instead. * "git reflog expire --single-worktree" has been broken for the past 20 months or so, which has been corrected. * "git send-email" did not have certain pieces of data computed yet when it tried to validate the outgoing messages and its recipient addresses, which has been sorted out. * "git bugreport" learned to complain when it received a command line argument that it will not use. * The codepath to traverse the commit-graph learned to notice that a commit is missing (e.g., corrupt repository lost an object), even though it knows something about the commit (like its parents) from what is in commit-graph. (merge 7a5d604443 ps/do-not-trust-commit-graph-blindly-for-existence later to maint). * "git rev-list --missing" did not work for missing commit objects, which has been corrected. * "git rev-list --unpacked --objects" failed to exclude packed non-commit objects, which has been corrected. (merge 7b3c8e9f38 tb/rev-list-unpacked-fix later to maint). * "To dereference" and "to peel" were sometimes used in in-code comments and documentation but without description in the glossary. (merge 893dce2ffb vd/glossary-dereference-peel later to maint). * Other code cleanup, docfix, build fix, etc. (merge c2c349a15c xz/commit-title-soft-limit-doc later to maint). (merge 1bd809938a tb/format-pack-doc-update later to maint). (merge 8f81532599 an/clang-format-typofix later to maint). (merge 3ca86adc2d la/strvec-header-fix later to maint). (merge 6789275d37 jc/test-i18ngrep later to maint). (merge 9972cd6004 ps/leakfixes later to maint). (merge 46edab516b tz/send-email-helpfix later to maint). @ text @d1 1 a1 1 $NetBSD: patch-git-gui_Makefile,v 1.1 2019/11/08 12:24:31 adam Exp $ d6 1 a6 1 --- git-gui/Makefile.orig 2023-11-20 02:07:41.000000000 +0000 d41 1 a41 1 ifeq ($(shell test -d $(TKFRAMEWORK) && echo y),y) d44 1 a44 1 endif @ 1.2.4.1 log @Pullup ticket #6863 - requested by taca devel/git: security fix Revisions pulled up: - devel/git-base/distinfo 1.143-1.144 - devel/git-base/patches/patch-config.mak.uname 1.6 - devel/git-base/patches/patch-git-gui_Makefile 1.3 - devel/git/Makefile.version 1.125-1.126 --- Module Name: pkgsrc Committed By: adam Date: Mon Apr 29 18:55:38 UTC 2024 Modified Files: pkgsrc/devel/git: Makefile.version pkgsrc/devel/git-base: distinfo pkgsrc/devel/git-base/patches: patch-config.mak.uname patch-git-gui_Makefile Log Message: git: updated to 2.45.0 Git v2.45 Release Notes ======================= Backward Compatibility Notes UI, Workflows & Features * Integrate the reftable code into the refs framework as a backend. With "git init --ref-format=reftable", hopefully it would be a lot more efficient to manage a repository with many references. * "git checkout -p" and friends learned that that "@@" is a synonym for "HEAD". * Variants of vimdiff learned to honor mergetool..layout settings. * "git reflog" learned a "list" subcommand that enumerates known reflogs. * When a merge conflicted at a submodule, merge-ort backend used to unconditionally give a lengthy message to suggest how to resolve it. Now the message can be squelched as an advice message. * "git for-each-ref" learned "--include-root-refs" option to show even the stuff outside the 'refs/' hierarchy. * "git rev-list --missing=print" has learned to optionally take "--allow-missing-tips", which allows the objects at the starting points to be missing. * "git merge-tree" has learned that the three trees involved in the 3-way merge only need to be trees, not necessarily commits. * "git log --merge" learned to pay attention to CHERRY_PICK_HEAD and other kinds of *_HEAD pseudorefs. * Platform specific tweaks for OS/390 has been added to config.mak.uname. * Users with safe.bareRepository=explicit can still work from within $GIT_DIR of a seconary worktree (which resides at .git/worktrees/$name/) of the primary worktree without explicitly specifying the $GIT_DIR environment variable or the --git-dir= option. * The output format for dates "iso-strict" has been tweaked to show a time in the Zulu timezone with "Z" suffix, instead of "+00:00". * "git diff" and friends learned two extra configuration variables, diff.srcPrefix and diff.dstPrefix. * The status.showUntrackedFiles configuration variable had a name that tempts users to set a Boolean value expressed in our usual "false", "off", and "0", but it only took "no". This has been corrected so "true" and its synonyms are taken as "normal", while "false" and its synonyms are taken as "no". * Remove an ancient and not well maintained Hg-to-git migration script from contrib/. * Hints that suggest what to do after resolving conflicts can now be squelched by disabling advice.mergeConflict. * Allow git-cherry-pick(1) to automatically drop redundant commits via a new `--empty` option, similar to the `--empty` options for git-rebase(1) and git-am(1). Includes a soft deprecation of `--keep-redundant-commits` as well as some related docs changes and sequencer code cleanup. * "git config" learned "--comment=" option to leave a comment immediately after the "variable = value" on the same line in the configuration file. * core.commentChar used to be limited to a single byte, but has been updated to allow an arbitrary multi-byte sequence. * "git add -p" and other "interactive hunk selection" UI has learned to skip showing the hunk immediately after it has already been shown, and an additional action to explicitly ask to reshow the current hunk. * "git pack-refs" learned the "--auto" option, which defers the decision of whether and how to pack to the ref backend. This is used by the reftable backend to avoid repacking of an already-optimal ref database. The new mode is triggered from "git gc --auto". * "git add -u " and "git commit [-i] " did not diagnose a pathspec element that did not match any files in certain situations, unlike "git add " did. * The userdiff patterns for C# has been updated. * Git writes a "waiting for your editor" message on an incomplete line after launching an editor, and then append another error message on the same line if the editor errors out. It now clears the "waiting for..." line before giving the error message. * The filename used for rejected hunks "git apply --reject" creates was limited to PATH_MAX, which has been lifted. * When "git bisect" reports the commit it determined to be the culprit, we used to show it in a format that does not honor common UI tweaks, like log.date and log.decorate. The code has been taught to use "git show" to follow more customizations. Performance, Internal Implementation, Development Support etc. * The code to iterate over refs with the reftable backend has seen some optimization. * More tests that are marked as "ref-files only" have been updated to improve test coverage of reftable backend. * Some parts of command line completion script (in contrib/) have been micro-optimized. * The way placeholders are to be marked-up in documentation have been specified; use "__" to typeset the word inside a pair of emphasized. * "git --no-lazy-fetch cmd" allows to run "cmd" while disabling lazy fetching of objects from the promisor remote, which may be handy for debugging. * The implementation in "git clean" that makes "-n" and "-i" ignore clean.requireForce has been simplified, together with the documentation. * Uses of xwrite() helper have been audited and updated for better error checking and simpler code. * Some trace2 events that lacked def_param have learned to show it, enriching the output. * The parse-options code that deals with abbreviated long option names have been cleaned up. * The code in reftable backend that creates new table files works better with the tempfile framework to avoid leaving cruft after a failure. * The reftable code has its own custom binary search function whose comparison callback has an unusual interface, which caused the binary search to degenerate into a linear search, which has been corrected. * The code to iterate over reflogs in the reftable has been optimized to reduce memory allocation and deallocation. * Work to support a repository that work with both SHA-1 and SHA-256 hash algorithms has started. * A new fuzz target that exercises config parsing code has been added. * Fix the way recently added tests interpolate variables defined outside them, and document the best practice to help future developers. * Introduce an experimental protocol for contributors to propose the topic description to be used in the "What's cooking" report, the merge commit message for the topic, and in the release notes and document it in the SubmittingPatches document. * The t/README file now gives a hint on running individual tests in the "t/" directory with "make t-*.sh t-*.sh". (merge 8d383806fc pb/test-scripts-are-build-targets later to maint). * The "hint:" messages given by the advice mechanism, when given a message with a blank line, left a line with trailing whitespace, which has been cleansed. * Documentation rules has been explicitly described how to mark-up literal parts and a few manual pages have been updated as examples. * The .editorconfig file has been taught that a Makefile uses HT indentation. * t-prio-queue test has been cleaned up by using C99 compound literals; this is meant to also serve as a weather-balloon to smoke out folks with compilers who have trouble compiling code that uses the feature. * Windows binary used to decide the use of unix-domain socket at build time, but it learned to make the decision at runtime instead. * The "shared repository" test in the t0610 reftable test failed under restrictive umask setting (e.g. 007), which has been corrected. * Document and apply workaround for a buggy version of dash that mishandles "local var=val" construct. * The codepaths that reach date_mode_from_type() have been updated to pass "struct date_mode" by value to make them thread safe. * The strategy to compact multiple tables of reftables after many operations accumulate many entries has been improved to avoid accumulating too many tables uncollected. * The code to iterate over reftable blocks has seen some optimization to reduce memory allocation and deallocation. * The way "git fast-import" handles paths described in its input has been tightened up and more clearly documented. * The cvsimport tests required that the platform understands traditional timezone notations like CST6CDT, which has been updated to work on those systems as long as they understand POSIX notation with explicit tz transition dates. * The code to format trailers have been cleaned up. Fixes since v2.44 ----------------- * "git apply" on a filesystem without filemode support have learned to take a hint from what is in the index for the path, even when not working with the "--index" or "--cached" option, when checking the executable bit match what is required by the preimage in the patch. (merge 45b625142d cp/apply-core-filemode later to maint). * "git column" has been taught to reject negative padding value, as it would lead to nonsense behaviour including division by zero. (merge 76fb807faa kh/column-reject-negative-padding later to maint). * "git am --help" now tells readers what actions are available in "git am --whitespace=", in addition to saying that the option is passed through to the underlying "git apply". (merge a171dac734 jc/am-whitespace-doc later to maint). * "git tag --column" failed to check the exit status of its "git column" invocation, which has been corrected. (merge 92e66478fc rj/tag-column-fix later to maint). * Credential helper based on libsecret (in contrib/) has been updated to handle an empty password correctly. (merge 8f1f2023b7 mh/libsecret-empty-password-fix later to maint). * "git difftool --dir-diff" learned to honor the "--trust-exit-code" option; it used to always exit with 0 and signalled success. (merge eb84c8b6ce ps/difftool-dir-diff-exit-code later to maint). * The code incorrectly attempted to use textconv cache when asked, even when we are not running in a repository, which has been corrected. (merge affe355fe7 jk/textconv-cache-outside-repo-fix later to maint). * Remove an empty file that shouldn't have been added in the first place. (merge 4f66942215 js/remove-cruft-files later to maint). * The logic to access reflog entries by date and number had ugly corner cases at the boundaries, which have been cleaned up. (merge 5edd126720 jk/reflog-special-cases-fix later to maint). * An error message from "git upload-pack", which responds to "git fetch" requests, had a trailing NUL in it, which has been corrected. (merge 3f4c7a0805 sg/upload-pack-error-message-fix later to maint). * Clarify wording in the CodingGuidelines that requires to be the first header file. (merge 4e89f0e07c jc/doc-compat-util later to maint). * "git commit -v --cleanup=scissors" used to add the scissors line twice in the log message buffer, which has been corrected. (merge e90cc075cc jt/commit-redundant-scissors-fix later to maint). * A custom remote helper no longer cannot access the newly created repository during "git clone", which is a regression in Git 2.44. This has been corrected. (merge 199f44cb2e ps/remote-helper-repo-initialization-fix later to maint). * Various parts of upload-pack have been updated to bound the resource consumption relative to the size of the repository to protect from abusive clients. (merge 6cd05e768b jk/upload-pack-bounded-resources later to maint). * The upload-pack program, when talking over v2, accepted the packfile-uris protocol extension from the client, even if it did not advertise the capability, which has been corrected. (merge a922bfa3b5 jk/upload-pack-v2-capability-cleanup later to maint). * Make sure failure return from merge_bases_many() is properly caught. (merge 25fd20eb44 js/merge-base-with-missing-commit later to maint). * FSMonitor client code was confused when FSEvents were given in a different case on a case-insensitive filesystem, which has been corrected. (merge 29c139ce78 jh/fsmonitor-icase-corner-case-fix later to maint). * The "core.commentChar" configuration variable only allows an ASCII character, which was not clearly documented, which has been corrected. (merge fb7c556f58 kh/doc-commentchar-is-a-byte later to maint). * With release 2.44 we got rid of all uses of test_i18ngrep and there is no in-flight topic that adds a new use of it. Make a call to test_i18ngrep a hard failure, so that we can remove it at the end of this release cycle. (merge 381a83dfa3 jc/test-i18ngrep later to maint). * The command line completion script (in contrib/) learned to complete "git reflog" better. (merge 1284f9cc11 rj/complete-reflog later to maint). * The logic to complete the command line arguments to "git worktree" subcommand (in contrib/) has been updated to correctly honor things like "git -C dir" etc. (merge 3574816d98 rj/complete-worktree-paths-fix later to maint). * When git refuses to create a branch because the proposed branch name is not a valid refname, an advice message is given to refer the user to exact naming rules. (merge 8fbd903e58 kh/branch-ref-syntax-advice later to maint). * Code simplification by getting rid of code that sets an environment variable that is no longer used. (merge 72a8d3f027 pw/rebase-i-ignore-cherry-pick-help-environment later to maint). * The code to find the effective end of log messages can fall into an endless loop, which has been corrected. (merge 2541cba2d6 fs/find-end-of-log-message-fix later to maint). * Mark-up used in the documentation has been improved for consistency. (merge 45d5ed3e50 ja/doc-markup-fixes later to maint). * The status.showUntrackedFiles configuration variable was incorrectly documented to accept "false", which has been corrected. * Leaks from "git restore" have been plugged. (merge 2f64da0790 rj/restore-plug-leaks later to maint). * "git bugreport --no-suffix" was not supported and instead segfaulted, which has been corrected. (merge b3b57c69da js/bugreport-no-suffix-fix later to maint). * The documentation for "%(trailers[:options])" placeholder in the "--pretty" option of commands in the "git log" family has been updated. (merge bff85a338c bl/doc-key-val-sep-fix later to maint). * "git checkout --conflict=bad" reported a bad conflictStyle as if it were given to a configuration variable; it has been corrected to report that the command line option is bad. (merge 5a99c1ac1a pw/checkout-conflict-errorfix later to maint). * Code clean-up in the "git log" machinery that implements custom log message formatting. (merge 1c10b8e5b0 jk/pretty-subject-cleanup later to maint). * "git config" corrupted literal HT characters written in the configuration file as part of a value, which has been corrected. (merge e6895c3f97 ds/config-internal-whitespace-fix later to maint). * A unit test for reftable code tried to enumerate all files in a directory after reftable operations and expected to see nothing but the files it wanted to leave there, but was fooled by .nfs* cruft files left, which has been corrected. (merge 0068aa7946 ps/reftable-unit-test-nfs-workaround later to maint). * The implementation and documentation of "object-format" option exchange between the Git itself and its remote helpers did not quite match, which has been corrected. * The "--pretty=" option of the commands in the "git log" family, defined as "[pretty] shortHand = " should have been looked up case insensitively, but was not, which has been corrected. (merge f999d5188b bl/pretty-shorthand-config-fix later to maint). * "git apply" failed to extract the filename the patch applied to, when the change was about an empty file created in or deleted from a directory whose name ends with a SP, which has been corrected. (merge 776ffd1a30 jc/apply-parse-diff-git-header-names-fix later to maint). * Update a more recent tutorial doc. (merge 95ab557b4b dg/myfirstobjectwalk-updates later to maint). * The test script had an incomplete and ineffective attempt to avoid clobbering the testing user's real crontab (and its equivalents), which has been completed. (merge 73cb87773b es/test-cron-safety later to maint). * Use advice_if_enabled() API to rewrite a simple pattern to call advise() after checking advice_enabled(). (merge 6412d01527 rj/use-adv-if-enabled later to maint). * Another "set -u" fix for the bash prompt (in contrib/) script. (merge d7805bc743 vs/complete-with-set-u-fix later to maint). * "git checkout/switch --detach foo", after switching to the detached HEAD state, gave the tracking information for the 'foo' branch, which was pointless. * "git apply" has been updated to lift the hardcoded pathname length limit, which in turn allowed a mksnpath() function that is no longer used. (merge 708f7e0590 rs/apply-lift-path-length-limit later to maint). * A file descriptor leak in an error codepath, used when "git apply --reject" fails to create the *.rej file, has been corrected. (merge 2b1f456adf rs/apply-reject-fd-leakfix later to maint). * A config parser callback function fell through instead of returning after recognising and processing a variable, wasting cycles, which has been corrected. (merge a816ccd642 ds/fetch-config-parse-microfix later to maint). * Fix was added to work around a regression in libcURL 8.7.0 (which has already been fixed in their tip of the tree). (merge 92a209bf24 jk/libcurl-8.7-regression-workaround later to maint). * The variable that holds the value read from the core.excludefile configuration variable used to leak, which has been corrected. (merge 0e0fefb29f jc/unleak-core-excludesfile later to maint). * vreportf(), which is used by error() and friends, has been taught to give the error message printf-format string when its vsnprintf() call fails, instead of showing nothing useful to identify the nature of the error. (merge c63adab961 rs/usage-fallback-to-show-message-format later to maint). * Adjust to an upcoming changes to GNU make that breaks our Makefiles. (merge 227b8fd902 tb/make-indent-conditional-with-non-spaces later to maint). * Git 2.44 introduced a regression that makes the updated code to barf in repositories with multi-pack index written by older versions of Git, which has been corrected. * When .git/rr-cache/ rerere database gets corrupted or rerere is fed to work on a file with conflicted hunks resolved incompletely, the rerere machinery got confused and segfaulted, which has been corrected. (merge 167395bb47 mr/rerere-crash-fix later to maint). * The "receive-pack" program (which responds to "git push") was not converted to run "git maintenance --auto" when other codepaths that used to run "git gc --auto" were updated, which has been corrected. (merge 7bf3057d9c ps/run-auto-maintenance-in-receive-pack later to maint). * Other code cleanup, docfix, build fix, etc. (merge f0e578c69c rs/use-xstrncmpz later to maint). (merge 83e6eb7d7a ba/credential-test-clean-fix later to maint). (merge 64562d784d jb/doc-interactive-singlekey-do-not-need-perl later to maint). (merge c431a235e2 cp/t9146-use-test-path-helpers later to maint). (merge 82d75402d5 ds/doc-send-email-capitalization later to maint). (merge 41bff66e35 jc/doc-add-placeholder-fix later to maint). (merge 6835f0efe9 jw/remote-doc-typofix later to maint). (merge 244001aa20 hs/rebase-not-in-progress later to maint). (merge 2ca6c07db2 jc/no-include-of-compat-util-from-headers later to maint). (merge 87bd7fbb9c rs/fetch-simplify-with-starts-with later to maint). (merge f39addd0d9 rs/name-rev-with-mempool later to maint). (merge 9a97b43e03 rs/submodule-prefix-simplify later to maint). (merge 40b8076462 ak/rebase-autosquash later to maint). (merge 3223204456 eg/add-uflags later to maint). (merge 5f78d52dce es/config-doc-sort-sections later to maint). (merge 781fb7b4c2 as/option-names-in-messages later to maint). (merge 51d41dc243 jk/doc-remote-helpers-markup-fix later to maint). (merge e1aaf309db pb/ci-win-artifact-names-fix later to maint). (merge ad538c61da jc/index-pack-fsck-levels later to maint). (merge 67471bc704 ja/doc-formatting-fix later to maint). (merge 86f9ce7dd6 bl/doc-config-fixes later to maint). (merge 0d527842b7 az/grep-group-error-message-update later to maint). (merge 7c43bdf07b rs/strbuf-expand-bad-format later to maint). (merge 8b68b48d5c ds/typofix-core-config-doc later to maint). (merge 39bb692152 rs/imap-send-use-xsnprintf later to maint). (merge 8d320cec60 jc/t2104-style-fixes later to maint). (merge b4454d5a7b pw/t3428-cleanup later to maint). (merge 84a7c33a4b pf/commitish-committish later to maint). (merge 8882ee9d68 la/mailmap-entry later to maint). (merge 44bdba2fa6 rs/no-openssl-compilation-fix-on-macos later to maint). (merge f412d72c19 yb/replay-doc-linkfix later to maint). (merge 5da40be8d7 xx/rfc2822-date-format-in-doc later to maint). --- Module Name: pkgsrc Committed By: adam Date: Tue May 14 18:59:32 UTC 2024 Modified Files: pkgsrc/devel/git: Makefile.version pkgsrc/devel/git-base: distinfo Log Message: git: updated to 2.45.1 Git v2.45.1 Release Notes ========================= This release merges up the fix that appears in v2.39.4, v2.40.2, v2.41.1, v2.42.2, v2.43.4 and v2.44.1 to address the security issues CVE-2024-32002, CVE-2024-32004, CVE-2024-32020, CVE-2024-32021 and CVE-2024-32465; see the release notes for these versions for details. @ text @d1 1 a1 1 $NetBSD$ d6 1 a6 1 --- git-gui/Makefile.orig 2024-04-29 16:19:22.000000000 +0000 d41 1 a41 1 ifeq ($(shell test -d $(TKFRAMEWORK) && echo y),y) d44 1 a44 1 endif @ 1.1 log @git: updated to 2.24.0 Git 2.24 Release Notes ====================== Updates since v2.23 ------------------- Backward compatibility note * "filter-branch" is showing its age and alternatives are available. From this release, we started to discourage its use and hint people about filter-repo. UI, Workflows & Features * We now have an active interim maintainer for the Git-Gui part of the system. Praise and thank Pratyush Yadav for volunteering. * The command line parser learned "--end-of-options" notation; the standard convention for scripters to have hardcoded set of options first on the command line, and force the command to treat end-user input as non-options, has been to use "--" as the delimiter, but that would not work for commands that use "--" as a delimiter between revs and pathspec. * A mechanism to affect the default setting for a (related) group of configuration variables is introduced. * "git fetch" learned "--set-upstream" option to help those who first clone from their private fork they intend to push to, add the true upstream via "git remote add" and then "git fetch" from it. * Device-tree files learned their own userdiff patterns. (merge 3c81760bc6 sb/userdiff-dts later to maint). * "git rebase --rebase-merges" learned to drive different merge strategies and pass strategy specific options to them. * A new "pre-merge-commit" hook has been introduced. * Command line completion updates for "git -c var.name=val" have been added. * The lazy clone machinery has been taught that there can be more than one promisor remote and consult them in order when downloading missing objects on demand. * The list-objects-filter API (used to create a sparse/lazy clone) learned to take a combined filter specification. * The documentation and tests for "git format-patch" have been cleaned up. * On Windows, the root level of UNC share is now allowed to be used just like any other directory. * The command line completion support (in contrib/) learned about the "--skip" option of "git revert" and "git cherry-pick". * "git rebase --keep-base " tries to find the original base of the topic being rebased and rebase on top of that same base, which is useful when running the "git rebase -i" (and its limited variant "git rebase -x"). The command also has learned to fast-forward in more cases where it can instead of replaying to recreate identical commits. * A configuration variable tells "git fetch" to write the commit graph after finishing. * "git add -i" has been taught to show the total number of hunks and the hunks that has been processed so far when showing prompts. * "git fetch --jobs=" allowed parallel jobs when fetching submodules, but this did not apply to "git fetch --multiple" that fetches from multiple remote repositories. It now does. * The installation instruction for zsh completion script (in contrib/) has been a bit improved. Performance, Internal Implementation, Development Support etc. * The code to write commit-graph over given commit object names has been made a bit more robust. * The first line of verbose output from each test piece now carries the test name and number to help scanning with eyeballs. * Further clean-up of the initialization code. * xmalloc() used to have a mechanism to ditch memory and address space resources as the last resort upon seeing an allocation failure from the underlying malloc(), which made the code complex and thread-unsafe with dubious benefit, as major memory resource users already do limit their uses with various other mechanisms. It has been simplified away. * Unnecessary full-tree diff in "git log -L" machinery has been optimized away. * The http transport lacked some optimization the native transports learned to avoid unnecessary ref advertisement, which has been corrected. * Preparation for SHA-256 upgrade continues in the test department. (merge 0c37c41d13 bc/hash-independent-tests-part-5 later to maint). * The memory ownership model of the "git fast-import" got straightened out. * Output from trace2 subsystem is formatted more prettily now. * The internal code originally invented for ".gitignore" processing got reshuffled and renamed to make it less tied to "excluding" and stress more that it is about "matching", as it has been reused for things like sparse checkout specification that want to check if a path is "included". * "git stash" learned to write refreshed index back to disk. * Coccinelle checks are done on more source files than before now. * The cache-tree code has been taught to be less aggressive in attempting to see if a tree object it computed already exists in the repository. * The code to parse and use the commit-graph file has been made more robust against corrupted input. * The hg-to-git script (in contrib/) has been updated to work with Python 3. * Update the way build artifacts in t/helper/ directory are ignored. * Preparation for SHA-256 upgrade continues. * "git log --graph" for an octopus merge is sometimes colored incorrectly, which is demonstrated and documented but not yet fixed. * The trace2 output, when sending them to files in a designated directory, can populate the directory with too many files; a mechanism is introduced to set the maximum number of files and discard further logs when the maximum is reached. * We have adopted a Code-of-conduct document. (merge 3f9ef874a7 jk/coc later to maint). Fixes since v2.23 ----------------- * "git grep --recurse-submodules" that looks at the working tree files looked at the contents in the index in submodules, instead of files in the working tree. (merge 6a289d45c0 mt/grep-submodules-working-tree later to maint). * Codepaths to walk tree objects have been audited for integer overflows and hardened. (merge 5aa02f9868 jk/tree-walk-overflow later to maint). * "git pack-refs" can lose refs that are created while running, which is getting corrected. (merge a613d4f817 sc/pack-refs-deletion-racefix later to maint). * "git checkout" and "git restore" to re-populate the index from a tree-ish (typically HEAD) did not work correctly for a path that was removed and then added again with the intent-to-add bit, when the corresponding working tree file was empty. This has been corrected. * Compilation fix. (merge 70597e8386 rs/nedalloc-fixlets later to maint). * "git gui" learned to call the clean-up procedure before exiting. (merge 0d88f3d2c5 py/git-gui-do-quit later to maint). * We promoted the "indent heuristics" that decides where to split diff hunks from experimental to the default a few years ago, but some stale documentation still marked it as experimental, which has been corrected. (merge 64e5e1fba1 sg/diff-indent-heuristic-non-experimental later to maint). * Fix a mismerge that happened in 2.22 timeframe. (merge acb7da05ac en/checkout-mismerge-fix later to maint). * "git archive" recorded incorrect length in extended pax header in some corner cases, which has been corrected. (merge 71d41ff651 rs/pax-extended-header-length-fix later to maint). * On-demand object fetching in lazy clone incorrectly tried to fetch commits from submodule projects, while still working in the superproject, which has been corrected. (merge a63694f523 jt/diff-lazy-fetch-submodule-fix later to maint). * Prepare get_short_oid() codepath to be thread-safe. (merge 7cfcb16b0e rs/sort-oid-array-thread-safe later to maint). * "for-each-ref" and friends that show refs did not protect themselves against ancient tags that did not record tagger names when asked to show "%(taggername)", which have been corrected. (merge 8b3f33ef11 mp/for-each-ref-missing-name-or-email later to maint). * The "git am" based backend of "git rebase" ignored the result of updating ".gitattributes" done in one step when replaying subsequent steps. (merge 2c65d90f75 bc/reread-attributes-during-rebase later to maint). * Tell cURL library to use the same malloc() implementation, with the xmalloc() wrapper, as the rest of the system, for consistency. (merge 93b980e58f cb/curl-use-xmalloc later to maint). * Build fix to adjust .gitignore to unignore a path that we started to track. (merge aac6ff7b5b js/visual-studio later to maint). * A few implementation fixes in the notes API. (merge 60fe477a0b mh/notes-duplicate-entries later to maint). * Fix an earlier regression to "git push --all" which should have been forbidden when the target remote repository is set to be a mirror. (merge 8e4c8af058 tg/push-all-in-mirror-forbidden later to maint). * Fix an earlier regression in the test suite, which mistakenly stopped running HTTPD tests. (merge 3960290675 sg/git-test-boolean later to maint). * "git rebase --autostash ", when is different from the current branch, incorrectly moved the tip of the current branch, which has been corrected. (merge bf1e28e0ad bw/rebase-autostash-keep-current-branch later to maint). * Update support for Asciidoctor documentation toolchain. (merge 83b0b8953e ma/asciidoctor-refmiscinfo later to maint). * Start using DocBook 5 (instead of DocBook 4.5) as Asciidoctor 2.0 no longer works with the older one. (merge f6461b82b9 bc/doc-use-docbook-5 later to maint). * The markup used in user-manual has been updated to work better with asciidoctor. (merge c4d2f6143a ma/user-manual-markup-update later to maint). * Make sure the grep machinery does not abort when seeing a payload that is not UTF-8 even when JIT is not in use with PCRE1. (merge ad7c543e3b cb/skip-utf8-check-with-pcre1 later to maint). * The name of the blob object that stores the filter specification for sparse cloning/fetching was interpreted in a wrong place in the code, causing Git to abort. * "git log --decorate-refs-exclude=" was incorrectly overruled when the "--simplify-by-decoration" option is used, which has been corrected. (merge 0cc7380d88 rs/simplify-by-deco-with-deco-refs-exclude later to maint). * The "upload-pack" (the counterpart of "git fetch") needs to disable commit-graph when responding to a shallow clone/fetch request, but the way this was done made Git panic, which has been corrected. * The object traversal machinery has been optimized not to load tree objects when we are only interested in commit history. (merge 72ed80c784 jk/list-objects-optim-wo-trees later to maint). * The object name parser for "Nth parent" syntax has been made more robust against integer overflows. (merge 59fa5f5a25 rs/nth-parent-parse later to maint). * The code used in following tags in "git fetch" has been optimized. (merge b7e2d8bca5 ms/fetch-follow-tag-optim later to maint). * Regression fix for progress output. (merge 2bb74b53a4 sg/progress-fix later to maint). * A bug in merge-recursive code that triggers when a branch with a symbolic link is merged with a branch that replaces it with a directory has been fixed. (merge 83e3ad3b12 jt/merge-recursive-symlink-is-not-a-dir-in-way later to maint). * The rename detection logic sorts a list of rename source candidates by similarity to pick the best candidate, which means that a tie between sources with the same similarity is broken by the original location in the original candidate list (which is sorted by path). Force the sorting by similarity done with a stable sort, which is not promised by system supplied qsort(3), to ensure consistent results across platforms. (merge 2049b8dc65 js/diff-rename-force-stable-sort later to maint). * The code to skip "UTF" and "UTF-" prefix, when computing an advice message, did not work correctly when the prefix was "UTF", which has been fixed. (merge b181676ce9 rs/convert-fix-utf-without-dash later to maint). * The author names taken from SVN repositories may have extra leading or trailing whitespaces, which are now munged away. (merge 4ddd4bddb1 tk/git-svn-trim-author-name later to maint). * "git rebase -i" showed a wrong HEAD while "reword" open the editor. (merge b0a3186140 pw/rebase-i-show-HEAD-to-reword later to maint). * A few simplification and bugfixes to PCRE interface. (merge c581e4a749 ab/pcre-jit-fixes later to maint). * PCRE fixes. (merge ff61681b46 cb/pcre1-cleanup later to maint). * "git range-diff" segfaulted when diff.noprefix configuration was used, as it blindly expected the patch it internally generates to have the standard a/ and b/ prefixes. The command now forces the internal patch to be built without any prefix, not to be affected by any end-user configuration. (merge 937b76ed49 js/range-diff-noprefix later to maint). * "git stash apply" in a subdirectory of a secondary worktree failed to access the worktree correctly, which has been corrected. (merge dfd557c978 js/stash-apply-in-secondary-worktree later to maint). * The merge-recursive machinery is one of the most complex parts of the system that accumulated cruft over time. This large series cleans up the implementation quite a bit. (merge b657047719 en/merge-recursive-cleanup later to maint). * Pretty-printed command line formatter (used in e.g. reporting the command being run by the tracing API) had a bug that lost an argument that is an empty string, which has been corrected. (merge ce2d7ed2fd gs/sq-quote-buf-pretty later to maint). * "git range-diff" failed to handle mode-only change, which has been corrected. (merge 2b6a9b13ca tg/range-diff-output-update later to maint). * Dev support update. (merge 4f3c1dc5d6 dl/allow-running-cocci-verbosely later to maint). * "git format-patch -o " did an equivalent of "mkdir " not "mkdir -p ", which was corrected. * "git stash save" lost local changes to submodules, which has been corrected. (merge 556895d0c8 jj/stash-reset-only-toplevel later to maint). * The atomic push over smart HTTP transport did not work, which has been corrected. (merge 6f1194246a bc/smart-http-atomic-push later to maint). * Other code cleanup, docfix, build fix, etc. @ text @d1 1 a1 1 $NetBSD$ d6 1 a6 1 --- git-gui/Makefile.orig 2019-11-04 05:07:07.000000000 +0000 d8 1 a8 1 @@@@ -48,11 +48,11 @@@@ endif d23 1 a23 1 @@@@ -76,11 +76,11 @@@@ ifndef V d38 2 a39 2 @@@@ -157,7 +157,7 @@@@ else endif @