| CARVIEW |
Select Language
HTTP/2 200
expires: Thu, 19 Nov 1981 08:52:00 GMT
cache-control: no-store, no-cache, must-revalidate
pragma: no-cache
set-cookie: PHPSESSID=7k5kn7cv3rtiarpvfqh161mig9; path=/
content-type: text/html; charset=UTF-8
date: Sun, 28 Dec 2025 08:21:50 GMT
server: Apache
pkgsrc.se | The NetBSD package collection
archivers
audio
benchmarks
biology
cad
chat
comms
converters
cross
crosspkgtools
databases
devel
git
doc
editors
emulators
filesystems
finance
fonts
games
geography
graphics
ham
inputmethod
lang
mail
math
mbone
meta-pkgs
misc
multimedia
net
news
parallel
pkgtools
print
regress
security
shells
sysutils
textproc
time
wip
wm
www
x11
* = Virtual Category
Path to this page:
./devel/git, GIT version control suite meta-package
[
Branch: CURRENT, Version: 2.52.0, Package name: git-2.52.0, Maintainer: pkgsrc-users
This package is a meta package, collecting the components that are
widely expected to be installed for the GIT distributed version
control suite, i.e., the tool itself, the man pages, and contrib scripts.
See git-base for a minimal installation of the command-line tools.
See git-gitk for the tk-based browser gitk, no longer included in the
git meta-package.
Required to run:
[devel/git-base] [devel/git-docs] [devel/git-contrib]
Required to build:
[pkgtools/cwrappers]
Navigation:
-
Browse pkgsrc
(this page)
archivers
audio
benchmarks
biology
cad
chat
comms
converters
cross
crosspkgtools
databases
devel
gitdoc
editors
emulators
filesystems
finance
fonts
games
geography
graphics
ham
inputmethod
lang
math
mbone
meta-pkgs
misc
multimedia
net
news
parallel
pkgtools
regress
security
shells
sysutils
textproc
time
wip
wm
www
x11
* = Virtual Category
Path to this page:
./devel/git, GIT version control suite meta-package
[
CVSweb ] [
Homepage ] [
RSS ] [
Required by ] [
Add to tracker ]
Branch: CURRENT, Version: 2.52.0, Package name: git-2.52.0, Maintainer: pkgsrc-users
This package is a meta package, collecting the components that are
widely expected to be installed for the GIT distributed version
control suite, i.e., the tool itself, the man pages, and contrib scripts.
See git-base for a minimal installation of the command-line tools.
See git-gitk for the tk-based browser gitk, no longer included in the
git meta-package.
Required to run:
[devel/git-base] [devel/git-docs] [devel/git-contrib]
Required to build:
[pkgtools/cwrappers]
Master sites:
Version history: (Expand)
- (2025-11-18) Updated to version: git-2.52.0
- (2025-10-28) Updated to version: git-2.51.2
- (2025-10-24) Package has been reborn
- (2025-10-24) Package deleted from pkgsrc
- (2025-10-16) Updated to version: git-2.51.1
- (2025-08-18) Updated to version: git-2.51.0
CVS history: (Expand)
| 2025-11-18 17:24:48 by Adam Ciarcinski | Files touched by this commit (5) | |
Log message: git: updated to 2.52.0 Git v2.52 Release Notes ======================= UI, Workflows & Features ------------------------ * The "list" subcommand of "git refs" acts as a front-end for "git for-each-ref". * "git cmd --help-all" now works outside repositories. * "git diff-tree" learned "--max-depth" option. * A new subcommand "git repo" gives users a way to grab various repository characteristics. * A new command "git last-modified" has been added to show the closest ancestor commit that touched each path. * The "git refs exists" command that works like "git show-ref \ --exists" has been added. * "git repo info" learns the short-hand option "-z" that is \ the same as "--format=nul", and learns to report the objects format used in the repository. * "core.commentChar=auto" that attempts to dynamically pick a suitable comment character is non-workable, as it is too much trouble to support for little benefit, and is marked as deprecated. * "git send-email" learned to drive "git imap-send" to \ store already sent e-mails in an IMAP folder. * The "promisor-remote" capability mechanism has been updated to allow the "partialCloneFilter" settings and the "token" \ value to be communicated from the server side. * Declare that "git init" that is not otherwise configured uses 'main' as the initial branch, not 'master', starting Git 3.0. * Keep giving hint about the default initial branch name for users who may be surprised after Git 3.0 switch-over. * The stash.index configuration variable can be set to make "git stash pop/apply" pretend that it was invoked with "--index". * "git fast-import" learned that \ "--signed-commits=<how>" option that corresponds to that of "git fast-export". * Marking a hunk 'selected' in "git add -p" and then splitting made all the split pieces 'selected'; this has been changed to make them all 'undecided', which gives better end-user experience. * Configuration variables that take a pathname as a value (e.g. blame.ignorerevsfile) can be marked as optional by prefixing ":(optional)" before its value. * Show 'P'ipe command in "git add -p". * "git sparse-checkout" subcommand learned a new "clean" \ action to prune otherwise unused working-tree files that are outside the areas of interest. * "git fast-import" is taught to handle signed tags, just like it recently learned to handle signed commits, in different ways. * A new configuration variable commitGraph.changedPaths allows to turn "--changed-paths" on by default for "git commit-graph". * "Symlink symref" has been added to the list of things that will disappear at Git 3.0 boundary. * "git maintenance" command learns the "geometric" strategy \ where it avoids doing maintenance tasks that rebuilds everything from scratch. * "git repo structure", a new command. * The help text and manual page of "git bisect" command have been made consistent with each other. Performance, Internal Implementation, Development Support etc. -------------------------------------------------------------- * string_list_split*() family of functions have been extended to simplify common use cases. * Arrays of strbuf is often a wrong data structure to use, and strbuf_split*() family of functions that create them often have better alternatives. Update several code paths and replace strbuf_split*(). * Revision traversal limited with pathspec, like "git log dir/*", used to ignore changed-paths Bloom filter when the pathspec contained wildcards; now they take advantage of the filter when they can. * Doc lint updates to encourage the newer and easier-to-use `synopsis` format, with fixes to a handful of existing uses. * Remove dependency on the_repository and other globals from the commit-graph code, and other changes unrelated to de-globaling. * Discord has been added to the first contribution documentation as another way to ask for help. * Inspired by Ezekiel's recent effort to showcase Rust interface, the hash function implementation used to hash lines have been updated to the one used for ELF symbol lookup by Glibc. * Instead of scanning for the remaining items to see if there are still commits to be explored in the queue, use khash to remember which items are still on the queue (an unacceptable alternative is to reserve one object flag bits). * The bulk-checkin code used to depend on a file-scope static singleton variable, which has been updated to pass an instance throughout the callchain. * The work to build on the bulk-checkin infrastructure to create many objects at once in a transaction and to abstract it into the generic object layer continues. * CodingGuidelines now spells out how bitfields are to be written. * Adjust to the way newer versions of cURL selectively enable tracing options, so that our tests can continue to work. * The clear_alloc_state() API function was not fully clearing the structure for reuse, but since nobody reuses it, replace it with a variant that frees the structure as well, making the callers simpler. * "git range-diff" learned a way to limit the memory consumed by O(N*N) cost matrix. * Some places in the code confused a variable that is *not* a boolean to enable color but is an enum that records what the user requested to do about color. A couple of bugs of this sort have been fixed, while the code has been cleaned up to prevent similar bugs in the future. * The build procedure based on meson learned a target to only build documentation, similar to "make doc". (merge ff4ec8ded0 ps/meson-build-docs later to maint). * Dip our toes a bit to (optionally) use Rust implemented helper called from our C code. * Documentation for "git log --pretty" options has been updated to make it easier to translate. * Instead of three library archives (one for git, one for reftable, and one for xdiff), roll everything into a single libgit.a archive. This would help later effort to FFI into Rust. * The beginning of SHA1-SHA256 interoperability work. * Build procedure for a few credential helpers (in contrib/) have been updated. * CI improvements to handle the recent Rust integration better. * The code in "git repack" machinery has been cleaned up to prepare for incremental update of midx files. * Two slightly different ways to get at "all the packfiles" in API has been cleaned up. * The code to walk revision graph to compute merge base has been optimized. * AI guidelines has been added to our documentation set. * Contributed credential helpers (obviously in contrib/) now have "cd $there && make install" target. * The "MyFirstContribution" tutorial tells the reader how to send out their patches; the section gained a hint to verify the message reached the mailing list. * The "debug" ref-backend was missing a method implementation, which has been corrected. * Build procedure for Wincred credential helper has been updated. * The build procedure based on meson learned to allow builders to specify the directory to install HTML documents. * Building "git contacts" script (in contrib/) left the resulting file unexecutable, which has been corrected. Fixes since v2.51 ----------------- Unless otherwise noted, all the changes in 2.51.X maintenance track, including security updates, are included in this release. * During interactive rebase, using 'drop' on a merge commit lead to an error, which was incorrect. * "git refs migrate" to migrate the reflog entries from a refs backend to another had a handful of bugs squashed. * "git remote rename origin upstream" failed to move origin/HEAD to upstream/HEAD when origin/HEAD is unborn and performed other renames extremely inefficiently, which has been corrected. (merge 16c4fa26b9 ps/remote-rename-fix later to maint). * "git describe" has been optimized by using better data structure. (merge 08bb69d70f rs/describe-with-prio-queue later to maint). * "git push" had a code path that led to BUG() but it should have been a die(), as it is a response to a usual but invalid end-user action to attempt pushing an object that does not exist. * Various bugs about rename handling in "ort" merge strategy have been fixed. * "git jump" (in contrib/) fails to parse the diff header correctly when a file has a space in its name, which has been corrected. (merge 621ce9c1c6 gh/git-jump-pathname-with-sp later to maint). * "git diff --no-index" run inside a subdirectory under control of a Git repository operated at the top of the working tree and stripped the prefix from the output, and oddballs like "-" (stdin) did not work correctly because of it. Correct the set-up by undoing what the set-up sequence did to cwd and prefix. * Various options to "git diff" that makes comparison ignore certain aspects of the differences (like "space changes are ignored", "differences in lines that match these regular expressions are ignored") did not work well with "--name-only" and friends. (merge b55e6d36eb ly/diff-name-only-with-diff-from-content later to maint). * The above caused regressions, which has been corrected. * Documentation for "git rebase" has been updated. (merge 3f7f2b0359 je/doc-rebase later to maint). * The start_delayed_progress() function in the progress eye-candy API did not clear its internal state, making an initial delay value larger than 1 second ineffective, which has been corrected. * The compatObjectFormat extension is used to hide an incomplete feature that is not yet usable for any purpose other than developing the feature further. Document it as such to discourage its use by mere mortals. * "git log -L..." compared trees of multiple parents with the tree of the merge result in an unnecessarily inefficient way. (merge 0a15bb634c sg/line-log-merge-optim later to maint). * Under a race against another process that is repacking the repository, especially a partially cloned one, "git fetch" may mistakenly think some objects we do have are missing, which has been corrected. * "git fetch" can clobber a symref that is dangling when the remote-tracking HEAD is set to auto update, which has been corrected. * "git describe <blob>" misbehaves and/or crashes in some corner cases, which has been taught to exit with failure gracefully. (merge 7c10e48e81 jk/describe-blob later to maint). * Manual page for "gitk" is updated with the current maintainer's name. * Update the instructions for using GGG in the MyFirstContribution document to say that a GitHub PR could be made against `git/git` instead of `gitgitgadget/git`. * Makefile tried to run multiple "cargo build" which would not work very well; serialize their execution to work around this problem. * "git repack --path-walk" lost objects in some corner cases, which has been corrected. * "git ls-files <pathspec>..." should not necessarily have to expand the index fully if a sparsified directory is excluded by the pathspec; the code is taught to expand the index on demand to avoid this. (merge 681f26bccc ds/ls-files-lazy-unsparse later to maint). * Windows "real-time monitoring" interferes with the execution of tests and affects negatively in both correctness and performance, which has been disabled in Gitlab CI. * A broken or malicious "git fetch" can say that it has the same object for many many times, and the upload-pack serving it can exhaust memory storing them redundantly, which has been corrected. * A corner case bug in "git log -L..." has been corrected. * "git rev-parse --short" and friends failed to disambiguate two objects with object names that share common prefix longer than 32 characters, which has been fixed. (merge 8655908b9e jc/longer-disambiguation-fix later to maint). * Some among "git add -p" and friends ignored color.diff and/or color.ui configuration variables, which is an old regression, which has been corrected. * "git subtree" (in contrib/) did not work correctly when splitting squashed subtrees, which has been improved. * Import a newer version of the clar unit testing framework. (merge 93dbb6b3c5 ps/clar-updates later to maint). * "git send-email --compose --reply-to=<address>" used to add duplicated Reply-To: header, which made mailservers unhappy. This has been corrected. (merge f448f65719 nb/send-email-no-dup-reply-to later to maint). * "git rebase -i" failed to clean-up the commit log message when the command commits the final one in a chain of "fixup" commands, which has been corrected. * There are double frees and leaks around setup_revisions() API used in "git stash show", which has been fixed, and setup_revisions() API gained a wrapper to make it more ergonomic when using it with strvec-manged argc/argv pairs. (merge a04bc71725 jk/setup-revisions-freefix later to maint). * Deal more gracefully with directory / file conflicts when the files backend is used for ref storage, by failing only the ones that are involved in the conflict while allowing others. * "git last-modified" operating in non-recursive mode used to trigger a BUG(), which has been corrected. * The use of "git config get" command to learn how ANSI color sequence is for a particular type, e.g., "git config get --type=color --default=reset no.such.thing", isn't very ergonomic. (merge e4dabf4fd6 ps/config-get-color-fixes later to maint). * The "do you still use it?" message given by a command that is deeply deprecated and allow us to suggest alternatives has been updated. * Clang-format update to let our control macros be formatted the way we had them traditionally, e.g., "for_each_string_list_item()" without space before the parentheses. * A few places where a size_t value was cast to curl_off_t without checking has been updated to use the existing helper function. * "git reflog write" did not honor the configured user.name/email which has been corrected. * Handling of an empty subdirectory of .git/refs/ in the ref-files backend has been corrected. * Our CI script requires "sudo" that can be told to preserve environment, but Ubuntu replaced with "sudo" with an implementation that lacks the feature. Work this around by reinstalling the original version. * The reftable backend learned to sanity check its on-disk data more carefully. (merge 466a3a1afd kn/reftable-consistency-checks later to maint). * A lot of code clean-up of xdiff. Split out of a larger topic. (merge 8b9c5d2e3a en/xdiff-cleanup later to maint). * "git format-patch --range-diff=... --notes=..." did not drive the underlying range-diff with correct --notes parameter, ending up comparing with different set of notes from its main patch output you would get from "git format-patch --notes=..." for a singleton patch. * The code in "git add -p" and friends to iterate over hunks was riddled with bugs, which has been corrected. * A few more things that patch authors can do to help maintainer to keep track of their topics better. (merge 1a41698841 tb/doc-submitting-patches later to maint). * An earlier addition to "git diff --no-index A B" to limit the output with pathspec after the two directories misbehaved when these directories were given with a trailing slash, which has been corrected. * The "--short" option of "git status" that meant output \ for humans and "-z" option to show NUL delimited output format did not mix well, and colored some but not all things. The command has been updated to color all elements consistently in such a case. * Unicode width table update. * GPG signing test set-up has been broken for a year, which has been corrected. (merge 516bf45749 jc/t1016-setup-fix later to maint). * Recent OpenSSH creates the Unix domain socket to communicate with ssh-agent under $HOME instead of /tmp, which causes our test to fail doe to overly long pathname in our test environment, which has been worked around by using "ssh-agent -T". * strbuf_split*() to split a string into multiple strbufs is often a wrong API to use. A few uses of it have been removed by simplifying the code. (merge 2ab72a16d9 ob/gpg-interface-cleanup later to maint). * "git shortlog" knows "--committer" and \ "--author" options, which the command line completion (in contrib/) did not handle well, which has been corrected. (merge c568fa8e1c kf/log-shortlog-completion-fix later to maint). * "git bisect" command did not react correctly to "git bisect \ help" and "git bisect unknown", which has been corrected. (merge 2bb3a012f3 rz/bisect-help-unknown later to maint). * The 'q'(uit) command in "git add -p" has been improved to quit without doing any meaningless work before leaving, and giving EOF (typically control-D) to the prompt is made to behave the same way. * The wildmatch code had a corner case bug that mistakenly makes "foo**/bar" match with "foobar", which has been corrected. (merge 1940a02dc1 jk/match-pathname-fix later to maint). * Tests did not set up GNUPGHOME correctly, which is fixed but some flaky tests are exposed in t1016, which needs to be addressed before this topic can move forward. (merge 6cd8369ef3 tz/test-prepare-gnupghome later to maint). * The patterns used in the .gitignore files use backslash in the way documented for fnmatch(3); document as such to reduce confusion. (merge 8a6d158a1d jk/doc-backslash-in-exclude later to maint). * The version of macos image used in GitHub CI has been updated to macos-14, as the macos-13 that we have been using got deprecated. Perforce binary used there has been changed to arm64 version to match. (merge 73b9cdb7c4 jc/ci-use-macos-14 later to maint). (merge ffff0bb0da jc/ci-use-arm64-p4-on-macos later to maint). * Other code cleanup, docfix, build fix, etc. |
| 2025-10-28 09:00:19 by Adam Ciarcinski | Files touched by this commit (3) | |
Log message: git: updated to 2.51.2 Git 2.51.2 Release Notes ======================== In addition to fixes for an unfortunate regression introduced in Git 2.51.1 that caused "git diff --quiet -w" to be not so quiet when there are additions, deletions and conflicts, this maintenance release merges more fixes/improvements that have landed on the master front, primarily to make the CI part of the system a bit more robust. Fixes since Git 2.51.1 ---------------------- * Recently we attempted to improve "git diff -w --quiet" and friends to handle cases where patch output would be suppressed, but it introduced a bug that emits unnecessary output, which has been corrected. * The code to squelch output from "git diff -w --name-status" etc. for paths that "git diff -w -p" would have stayed silent leaked output from dry-run patch generation, which has been corrected. * Windows "real-time monitoring" interferes with the execution of tests and affects negatively in both correctness and performance, which has been disabled in Gitlab CI. * An earlier addition to "git diff --no-index A B" to limit the output with pathspec after the two directories misbehaved when these directories were given with a trailing slash, which has been corrected. * The "--short" option of "git status" that meant output \ for humans and "-z" option to show NUL delimited output format did not mix well, and colored some but not all things. The command has been updated to color all elements consistently in such a case. * Unicode width table update. * Recent OpenSSH creates the Unix domain socket to communicate with ssh-agent under $HOME instead of /tmp, which causes our test to fail doe to overly long pathname in our test environment, which has been worked around by using "ssh-agent -T". Also contains various documentation updates, code cleanups and minor fixups. |
| 2025-10-16 10:45:32 by Adam Ciarcinski | Files touched by this commit (4) | |
Log message: git: updated to 2.51.1 Git 2.51.1 Release Notes ======================== There shouldn't be anything exciting to see here. This is primarily to flush the "do you still use it?" improvements that has landed on the master front, together with a handful of low-hanging, low-impact fixes that should be safe. Fixes since Git 2.51.0 ---------------------- * The "do you still use it?" message given by a command that is deeply deprecated and allow us to suggest alternatives has been updated. * The compatObjectFormat extension is used to hide an incomplete feature that is not yet usable for any purpose other than developing the feature further. Document it as such to discourage its use by mere mortals. * Manual page for "gitk" is updated with the current maintainer's name. * Update the instructions for using GGG in the MyFirstContribution document to say that a GitHub PR could be made against `git/git` instead of `gitgitgadget/git`. * Clang-format update to let our control macros be formatted the way we had them traditionally, e.g., "for_each_string_list_item()" without space before the parentheses. * A few places where a size_t value was cast to curl_off_t without checking has been updated to use the existing helper function. * The start_delayed_progress() function in the progress eye-candy API did not clear its internal state, making an initial delay value larger than 1 second ineffective, which has been corrected. * Makefile tried to run multiple "cargo build" which would not work very well; serialize their execution to work around this problem. * Adjust to the way newer versions of cURL selectively enable tracing options, so that our tests can continue to work. * During interactive rebase, using 'drop' on a merge commit led to an error, which has been corrected. * "git refs migrate" to migrate the reflog entries from a refs backend to another had a handful of bugs squashed. * "git push" had a code path that led to BUG() but it should have been a die(), as it is a response to a usual but invalid end-user action to attempt pushing an object that does not exist. * Various bugs about rename handling in "ort" merge strategy have been fixed. * "git diff --no-index" run inside a subdirectory under control of a Git repository operated at the top of the working tree and stripped the prefix from the output, and oddballs like "-" (stdin) did not work correctly because of it. Correct the set-up by undoing what the set-up sequence did to cwd and prefix. * Various options to "git diff" that make comparison ignore certain aspects of the differences (like "space changes are ignored", "differences in lines that match these regular expressions are ignored") did not work well with "--name-only" and friends. * Under a race against another process that is repacking the repository, especially a partially cloned one, "git fetch" may mistakenly think some objects we do have are missing, which has been corrected. * "git repack --path-walk" lost objects in some corner cases, which has been corrected. cf. <CABPp-BHFxxGrqKc0m==TjQNjDGdO=H5Rf6EFsf2nfE1=TuraOQ@mail.gmail.com> * Fixes multiple crashes around midx write-out codepaths. * A broken or malicious "git fetch" can say that it has the same object for many many times, and the upload-pack serving it can exhaust memory storing them redundantly, which has been corrected. * A corner case bug in "git log -L..." has been corrected. * Some among "git add -p" and friends ignored color.diff and/or color.ui configuration variables, which is an old regression, which has been corrected. * "git rebase -i" failed to clean-up the commit log message when the command commits the final one in a chain of "fixup" commands, which has been corrected. * Deal more gracefully with directory / file conflicts when the files backend is used for ref storage, by failing only the ones that are involved in the conflict while allowing others. Also contains various documentation updates, code cleanups and minor fixups. |
| 2025-10-08 01:11:59 by Jonathan Schleifer | Files touched by this commit (2) |
Log message: Make devel/git-base work on QNX |
| 2025-10-05 21:28:06 by Jonathan Schleifer | Files touched by this commit (1) |
Log message: git: revbump for openssl option |
| 2025-08-18 21:36:36 by Adam Ciarcinski | Files touched by this commit (6) | |
Log message: 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 \ <fmt>" 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 <pathspec>" 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 <sane-ctype.h> header file relied on that the system-supplied <ctype.h> header is not later included, which would override our macro definitions, but "amazon linux" broke this assumption. Fix this by preemptively including <ctype.h> near the beginning of <sane-ctype.h> 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<n> 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. |
| 2025-07-08 22:49:03 by Thomas Klausner | Files touched by this commit (3) | |
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. |
| 2025-06-30 21:10:21 by Adam Ciarcinski | Files touched by this commit (7) | |
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 [<remote>]" with only the configured fetch refspec
should be the only thing to update refs/remotes/<remote>/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).
|
