./devel/git-gitk, GIT Tree History Storage Tool (gitk)

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 2.51.1, Package name: git-gitk-2.51.1, Maintainer: pkgsrc-users

gitk is a Tk-based graphical tool for viewing git repository history,
including a commit diff viewer.


Required to run:
[x11/tk] [devel/git-base]

Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 7680.875 KB

Version history: (Expand)


CVS history: (Expand)


   2025-10-16 10:45:32 by Adam Ciarcinski | Files touched by this commit (4) | Package updated
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-08-20 10:47:19 by Thomas Klausner | Files touched by this commit (2)
Log message:
git-gitk: switch to tk 9.x

Bump PKGREVISION.
   2025-08-18 21:36:36 by Adam Ciarcinski | Files touched by this commit (6) | Package updated
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-06-30 21:10:21 by Adam Ciarcinski | Files touched by this commit (7) | Package updated
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).
   2025-01-13 15:24:44 by Adam Ciarcinski | Files touched by this commit (10) | Package updated
Log message:
git: updated to 2.48.0

Git v2.48 Release Notes
=======================

UI, Workflows & Features
------------------------

 * A new configuration variable remote.<name>.serverOption makes the
   transport layer act as if the --serverOption=<value> option is
   given from the command line.

 * "git rebase --rebase-merges" now uses branch names as labels when
   able.

 * Describe the policy to introduce breaking changes.

 * Teach 'git notes add' and 'git notes append' a new '-e' flag,
   instructing them to open the note in $GIT_EDITOR before saving.

 * Documentation for "git bundle" saw improvements to more prominently
   call out the use of '--all' when creating bundles.

 * Drop support for older libcURL and Perl.

 * End-user experience of "git mergetool" when the command errors out
   has been improved.

 * "git bundle --unbundle" and "git clone" running on a \ 
bundle file
   both learned to trigger fsck over the new objects with configurable
   fck check levels.

 * When "git fetch $remote" notices that refs/remotes/$remote/HEAD is
   missing and discovers what branch the other side points with its
   HEAD, refs/remotes/$remote/HEAD is updated to point to it.

 * "git fetch" honors \ 
"remote.<remote>.followRemoteHEAD" settings to
   tweak the remote-tracking HEAD in "refs/remotes/<remote>/HEAD".

 * "git range-diff" learned to optionally show and compare merge
   commits in the ranges being compared, with the --diff-merges
   option.

Performance, Internal Implementation, Development Support etc.
--------------------------------------------------------------

 * Document "amlog" notes.

 * The way AsciiDoc is used for SYNOPSIS part of the manual pages has
   been revamped.  The sources, at least for the simple cases, got
   vastly more pleasant to work with.

 * The reftable library is now prepared to expect that the memory
   allocation function given to it may fail to allocate and to deal
   with such an error.

 * An extra worktree attached to a repository points at each other to
   allow finding the repository from the worktree (and vice versa)
   possible.  Use relative paths for this linkage.

 * Enable Windows-based CI in GitLab.

 * Commands that can also work outside Git have learned to take the
   repository instance "repo" when we know we are in a repository, and
   NULL when we are not, in a parameter.  The uses of the_repository
   variable in a few of them have been removed using the new calling
   convention.

 * The reftable sub-system grew a new reftable-specific strbuf
   replacement to reduce its dependency on Git-specific data
   structures.

 * The ref-filter machinery learns to recognize and avoid cases where
   sorting would be redundant.

 * Various platform compatibility fixes split out of the larger effort
   to use Meson as the primary build tool.

 * Treat ECONNABORTED the same as ECONNRESET in 'git credential-cache'
   to work around a possible Cygwin regression. This resolves a race
   condition caused by changes in Cygwin's handling of socket
   closures, allowing the client to exit cleanly when encountering
   ECONNABORTED.

 * Demonstrate an assertion failure in 'git mv'.

 * Documentation update to clarify that 'uploadpack.allowAnySHA1InWant'
   implies both 'allowTipSHA1InWant' and 'allowReachableSHA1InWant'.

 * Replace various calls to atoi() with strtol_i() and strtoul_ui(),
   and add improved error handling.

 * Documentation updates to 'git-update-ref(1)'.

 * Update the project's CodingGuidelines to discourage naming functions
   with a "_1()" suffix.

 * Update '.clang-format' to match project conventions.

 * Centralize documentation for repository extensions into a single place.

 * Buildfix and upgrade of Clar to a newer version.

 * Documentation mark-up updates.

 * Renaming a handful of variables and structure fields.

 * Fix for clar unit tests to support CMake build.

 * C23 compatibility updates.

 * GCC 15 compatibility updates.

 * We now ensure "index-pack" is used with the "--promisor" \ 
option
   only during a "git fetch".

 * The migration procedure between two ref backends has been optimized.

 * "git fsck" learned to issue warnings on "curiously \ 
formatted" ref
   contents that have always been treated as valid but that Git
   wouldn't have written itself (e.g., missing terminating end-of-line
   after the full object name).

 * Work around Coverity warning that would not trigger in practice.

 * Built-in Git subcommands are supplied the repository object to work
   with; they learned to do the same when they invoke sub-subcommands.

 * Drop support for ancient environments in various CI jobs.

 * Isolate the reftable subsystem from the rest of Git's codebase by
   using fewer pieces of Git's infrastructure.

 * Optimize reading random references out of the reftable backend by
   allowing reuse of iterator objects.

 * Backport oss-fuzz tests to our codebase.

 * Introduce a new repository extension to prevent older Git versions
   from mis-interpreting worktrees created with relative paths.

 * Yet another "pass the repository through the callchain" topic.

 * "git describe" learned to stop digging the history needlessly
   deeper.

 * Build procedure update plus introduction of Meson based builds.

 * Recent reftable updates mistook a NULL return from a request for
   0-byte allocation as OOM and died unnecessarily, which has been
   corrected.

 * Reftable backend adds check for upper limit of log's update_index.

 * Start working to make the codebase buildable with -Wsign-compare.

 * Regression fix for 'show-index' when run outside of a repository.

 * The meson-build procedure is integrated into CI to catch and
   prevent bitrotting.

 * "git refs migrate" learned to also migrate the reflog data across
   backends.

 * The developer documentation has been updated to give the latest
   info on gitk and git-gui maintainer.

 * CI jobs that run threaded programs under LSan has been giving false
   positives from time to time, which has been worked around.

Fixes since v2.47
-----------------

 * Doc update to clarify how periodical maintenance are scheduled,
   spread across time to avoid thundering herds.

 * Use after free and double freeing at the end in "git log -L... -p"
   had been identified and fixed.

 * On macOS, fsmonitor can fall into a race condition that results in
   a client waiting forever to be notified about an event that has
   already happened.  This problem has been corrected.

 * "git maintenance start" crashed due to an uninitialized variable
   reference, which has been corrected.

 * Fail gracefully instead of crashing when attempting to write the
   contents of a corrupt in-core index as a tree object.

 * A "git fetch" from the superproject going down to a submodule used
   a wrong remote when the default remote names are set differently
   between them.

 * Fixes compile time warnings with 64-bit MSVC.

 * Teaches 'shortlog' to explicitly use SHA-1 when operating outside
   of a repository.

 * Fix 'git grep' regression on macOS by disabling lookahead when
   encountering invalid UTF-8 byte sequences.

 * The dumb-http code regressed when the result of re-indexing a pack
   yielded an *.idx file that differs in content from the *.idx file
   it downloaded from the remote. This has been corrected by no longer
   relying on the *.idx file we got from the remote.

 * When called with '--left-right' and '--use-bitmap-index', 'rev-list'
   will produce output without any left/right markers, which has been
   corrected.

 * More leakfixes.

 * Test modernization.

 * The "--shallow-exclude=<ref>" option to various history transfer
   commands takes a ref, not an arbitrary revision.

 * A regression where commit objects missing from a commit-graph can
   cause an infinite loop when doing a fetch in a partial clone has
   been fixed.

 * The MinGW compatibility layer has been taught to support POSIX
   semantics for atomic renames when other process(es) have a file
   opened at the destination path.

 * "git gc" discards any objects that are outside promisor packs that
   are referred to by an object in a promisor pack, and we do not
   refetch them from the promisor at runtime, resulting an unusable
   repository.  Work around it by including these objects in the
   referring promisor pack at the receiving end of the fetch.

 * Avoid build/test breakage on a system without working malloc debug
   support dynamic library.
   (merge 72ad6dc368 jk/test-malloc-debug-check later to maint).

 * Double-free fix.
   (merge fe17a25905 jk/fetch-prefetch-double-free-fix later to maint).

 * Use of some uninitialized variables in "git difftool" has been
   corrected.

 * Object reuse code based on multi-pack-index sent an unwanted copy
   of object.
   (merge e199290592 tb/multi-pack-reuse-dupfix later to maint).

 * "git fast-import" can be tricked into a replace ref that maps an
   object to itself, which is a useless thing to do.
   (merge 5e904f1a4a en/fast-import-avoid-self-replace later to maint).

 * The ref-transaction hook triggered for reflog updates, which has
   been corrected.
   (merge b886db48c6 kn/ref-transaction-hook-with-reflog later to maint).

 * Give a bit of advice/hint message when "git maintenance" stops finding a
   lock file left by another instance that still is potentially running.
   (merge ba874d1dac ps/gc-stale-lock-warning later to maint).

 * Use the right helper program to measure file size in performance tests.
   (merge 3f97f1bce6 tb/use-test-file-size-more later to maint).

 * A double-free that may not trigger in practice by luck has been
   corrected in the reference resolution code.
   (merge b6318cf23a sj/refs-symref-referent-fix later to maint).

 * The sequencer failed to honor core.commentString in some places.

 * Describe a case where an option value needs to be spelled as a
   separate argument, i.e. "--opt val", not "--opt=val".
   (merge 1bc1e94091 jc/doc-opt-tilde-expand later to maint).

 * Loosen overly strict ownership check introduced in the recent past,
   to keep the promise "cloning a suspicious repository is a safe
   first step to inspect it".
   (merge 0ffb5a6bf1 bc/allow-upload-pack-from-other-people later to maint).

 * "git fast-import" learned to reject paths with ".."  and \ 
"." as
   their components to avoid creating invalid tree objects.
   (merge 8cb4c6e62f en/fast-import-verify-path later to maint).

 * The --ancestry-path option is designed to be given a commit that is
   on the path, which was not documented, which has been corrected.
   (merge bc1a980759 kk/doc-ancestry-path later to maint).

 * "git tag" has been taught to refuse to create refs/tags/HEAD
   since such a tag will be confusing in the context of the UI provided by
   the Git Porcelain commands.
   (merge bbd445d5ef jc/forbid-head-as-tagname later to maint).

 * The advice messages now tell the newer 'git config set' command to
   set the advice.token configuration variable to squelch a message.
   (merge 6c397d0104 bf/explicit-config-set-in-advice-messages later to maint).

 * The syntax ":/<text>" to name the latest commit with the matching
   text was broken with a recent change, which has been corrected.
   (merge 0ff919e87a ps/commit-with-message-syntax-fix later to maint).

 * Fix performance regression of a recent "fatten promisor pack with
   local objects" protection against an unwanted gc.

 * "git log -p --remerge-diff --reverse" was completely broken.
   (merge f94bfa1516 js/log-remerge-keep-ancestry later to maint).

 * "git bundle create" with an annotated tag on the positive end of
   the revision range had a workaround code for older limitation in
   the revision walker, which has become unnecessary.
   (merge dd1072dfa8 tc/bundle-with-tag-remove-workaround later to maint).

 * GitLab CI updates.
   (merge c6b43f663e ps/ci-gitlab-update later to maint).

 * Code to reuse objects based on bitmap contents have been tightened
   to avoid race condition even when multiple packs are involved.
   (merge 62b3ec8a3f tb/bitmap-fix-pack-reuse later to maint).

 * An earlier "csum-file checksum does not have to be computed with
   sha1dc" topic had a few code paths that had initialized an
   implementation of a hash function to be used by an unmatching hash
   by mistake, which have been corrected.
   (merge 599a63409b ps/weak-sha1-for-tail-sum-fix later to maint).

 * Other code cleanup, docfix, build fix, etc.
   (merge 77af53f56f aa/t7300-modernize later to maint).
   (merge dcd590a39d bf/t-readme-mention-reftable later to maint).
   (merge 68e3c69efa kh/trailer-in-glossary later to maint).
   (merge 91f88f76e6 tb/boundary-traversal-fix later to maint).
   (merge 168ebb7159 jc/doc-error-message-guidelines later to maint).
   (merge 18693d7d65 kh/doc-bundle-typofix later to maint).
   (merge e2f5d3b491 kh/doc-update-ref-grammofix later to maint).
   (merge 8525e92886 mh/doc-windows-home-env later to maint).
   2024-12-27 12:15:54 by Thomas Klausner | Files touched by this commit (1)
Log message:
git-gitk: do previously differently and for more binaries

Ride bump.
   2024-12-27 12:09:01 by Taylor R Campbell | Files touched by this commit (1)
Log message:
devel/git-gitk: Fix interpreter for bin/gitk.

This is not a #! interpreter directly -- for some reason it uses:

	#!/bin/sh
	# single-line sh comment, multi-line tcl comment \
	exec wish "$0" -- ${1+"$@"}

So we have to do some more work than REPLACE_INTERPRETER to fix the
path to wish.

PR pkg/58940: devel/git-gitk assumes wish is in PATH
   2023-06-14 12:30:11 by Taylor R Campbell | Files touched by this commit (1)
Log message:
devel/git-gitk: Set gitexecdir when cross-compiling.

Also predetermine some configure results that are detected by
run-time tests.

XXX This path relative to PREFIX, libexec/git-core, should perhaps be
named somewhere more central for git stuff.