Package Release Info

git-2.53.0-160100.2.1

Update Info: Base Release
Available in Package Hub : 16.1

platforms

AArch64
ppc64le
s390x
x86-64

subpackages

git-cvs
git-svn

Change Logs

* Fri Jul 31 2026 antonio.teixeira@suse.com
- Remove dependency on update-desktop-files, use translate-suse-desktop
  (jsc#PED-15206)
* Mon Feb 09 2026 antonio.teixeira@suse.com
- git-daemon: Create /srv/git using systemd-tmpfiles (jsc#PED-14738)
* Mon Feb 02 2026 mrueckert@suse.de
- Update to 2.53.0:
  - UI, Workflows & Features
  - "git maintenance" command learned "is-needed" subcommand to
    tell if it is necessary to perform various maintenance tasks.
  - "git replay" (experimental) learned to perform ref updates
    itself in a transaction by default, instead of emitting where
    each refs should point at and leaving the actual update to
    another command.
  - "git blame" learns "--diff-algorithm=<algo>" option.
  - "git repo info" learned "--all" option.
  - Both "git apply" and "git diff" learn a new whitespace error
    class, "incomplete-line".
  - Add a new manual that describes the data model.
  - "git fast-import" learns "--signed-commits=strip-if-invalid"
    option to drop invalid cryptographic signature from objects.
  - The use of "revision" (a connected set of commits) has been
    clarified in the "git replay" documentation.
  - A help message from "git branch" now mentions "git help"
    instead of "man" when suggesting to read some documentation.
  - "git repo struct" learned to take "-z" as a synonym to
    "--format=nul".
  - More object database related information are shown in "git
    repo structure" output.
  - Improve the error message when a bad argument is given to the
    `--onto` option of "git replay".  Test coverage of "git
    replay" has been improved.
  - The iconv library on macOS fails to correctly handle stateful
    ISO/IEC 2022:1994 encoded strings.  Work it around instead of
    replacing it wholesale from homebrew.
  - Upstream symbolic link support on Windows from
    Git-for-Windows.
  - Performance, Internal Implementation, Development Support etc.
  - The list of packfiles used in a running Git process is moved
    from the packed_git structure into the packfile store.
  - Some ref backend storage can hold not just the object name of
    an annotated tag, but the object name of the object the tag
    points at. The code to handle this information has been
    streamlined.
  - As "git diff --quiet" only cares about the existence of any
    changes, disable rename/copy detection to skip more expensive
    processing whose result will be discarded anyway.
  - A part of code paths that deals with loose objects has been
    cleaned up.
  - "make strip" has been taught to strip "scalar" as well as
    "git".
  - Dockerized jobs at the GitHub Actions CI have been taught to
    show more details of failed tests.
  - Code refactoring around object database sources.
  - Halve the memory consumed by artificial filepairs created
    during "git diff --find-copies-harder", also making the
    operation run faster.
  - The "git_istream" abstraction has been revamped to make it
    easier to interface with pluggable object database design.
  - Rewrite the only use of "mktemp()" that is subject to TOCTOU
    race and Stop using the insecure "mktemp()" function. (merge
    10bba537c4 rs/ban-mktemp later to maint).
  - In-code comment update to clarify that single-letter options
    are outside of the scope of command line completion script.
    (merge dc8a00fafe jc/completion-no-single-letter-options
    later to maint).
  - MEMZERO_ARRAY() helper is introduced to avoid clearing only
    the first N bytes of an N-element array whose elements are
    larger than a byte.
  - "git diff-files -R --find-copies-harder" has been taught to
    use the potential copy sources from the index correctly.
  - Require C99 style flexible array member support from all
    platforms.
  - The code path that enumerates promisor objects have been
    optimized to skip pointlessly parsing blob objects.
  - Prepare test suite for Git for Windows that supports symbolic
    links.
  - Import newer version of "clar", unit testing framework.
    (merge 84071a6dea ps/clar-integers later to maint).
  - The packfile_store data structure is moved from object store
    to odb source.
  - The object-info API has been cleaned up.
  - Further preparation to upstream symbolic link support on
    Windows.
  - Remove implicit reliance on the_repository global in the APIs
    around tree objects and make it explicit which repository to
    work in.
  - "git bugreport" and "git version --build-options" learned to
    include use of 'gettext' feature, to make it easier to
    diagnose problems around l10n.
  - Dscho observed that SVN tests are taking too much time in CI
    leak checking tasks, but most time is spent not in our code
    but in libsvn code (which happen to be written in Perl),
    whose leaks have little value to discover for us.  Skip SVN,
    P4, and CVS tests in the leak checking tasks. (merge
    047bd7dfe3 js/ci-leak-skip-svn later to maint).
  - Fixes since v2.52
  - Ever since we added whitespace rules for this project, we
    misspelt an entry, which has been corrected. (merge
    358e94dc70 jc/gitattributes-whitespace-no-indent-fix later to
    maint).
  - The code to expand attribute macros has been rewritten to
    avoid recursion to avoid running out of stack space in an
    uncontrolled way. (merge 42ed046866
    jk/attr-macroexpand-wo-recursion later to maint).
  - Adding a repository that uses a different hash function is a
    no-no, but "git submodule add" did not prevent it, which has
    been corrected. (merge 6fe288bfbc
    bc/submodule-force-same-hash later to maint).
  - An earlier check added to osx keychain credential helper to
    avoid storing the credential itself supplied was overeager
    and rejected credential material supplied by other helper
    backends that it would have wanted to store, which has been
    corrected. (merge 4580bcd235
    kn/osxkeychain-idempotent-store-fix later to maint).
  - The "git repo structure" subcommand tried to align its output
    but mixed up byte count and display column width, which has
    been corrected. (merge 7a03a10a3a
    jx/repo-struct-utf8width-fix later to maint).
  - Yet another corner case fix around renames in the "ort" merge
    strategy. (merge a562d90a35 en/ort-rename-another-fix later
    to maint).
  - Test leakfix. (merge 14b561e768 jk/test-mktemp-leakfix later
    to maint).
  - Update a version of action used at the GitHub Actions CI.
    (merge cd99203f86 js/ci-github-setup-go-update later to
    maint).
  - The "return errno = EFOO, -1" construct, which is heavily
    used in compat/mingw.c and triggers warnings under "-Wcomma",
    has been rewritten to avoid the warnings. (merge af3919816f
    js/mingw-assign-comma-fix later to maint).
  - Makefile based build have recently been updated to build a
    libgit.a that also has reftable and xdiff objects; CMake
    based build procedure has been updated to match. (merge
    b0d5c88cca js/cmake-libgit-fix later to maint).
  - Under-allocation fix. (merge d22a488482
    js/wincred-get-credential-alloc-fix later to maint).
  - "git worktree list" attempts to show paths to worktrees while
    aligning them, but miscounted display columns for the paths
    when non-ASCII characters were involved, which has been
    corrected. (merge 08dfa59835
    pw/worktree-list-display-width-fix later to maint).
  - "Windows+meson" job at the GitHub Actions CI was hard to
    debug, as it did not show and save failed test artifacts,
    which has been corrected. (merge 17bd1108ea
    jk/ci-windows-meson-test-fix later to maint).
  - Emulation code clean-up. (merge 2367c6bcd6
    gf/win32-pthread-cond-wait-err later to maint).
  - Various issues detected by Asan have been corrected. (merge
    a031b6181a jk/asan-bonanza later to maint).
  - "git config get --path" segfaulted on an ":(optional)path"
    that does not exist, which has been corrected. (merge
    0bd16856ff jc/optional-path later to maint).
  - The "--committer-date-is-author-date" option of "git
    am/rebase" is a misguided one.  The documentation is updated
    to discourage its use. (merge fbf3d0669f
    kh/doc-committer-date-is-author-date later to maint).
  - The option help text given by "git config unset -h" described
    the "--all" option to "replace", not "unset", multiple
    variables, which has been corrected. (merge 18bf67b753
    rs/config-unset-opthelp-fix later to maint).
  - The error message given by "git config set", when the
    variable being updated has more than one values defined, used
    old style "git config" syntax with an incorrect option in its
    hint, both of which have been corrected. (merge df963f0df4
    rs/config-set-multi-error-message-fix later to maint).
  - "git replay" forgot to omit the "gpgsig-sha256" extended
    header from the resulting commit the same way it omits
    "gpgsig", which has been corrected. (merge 9f3a115087
    pw/replay-exclude-gpgsig-fix later to maint).
  - A few tests have been updated to work under the shell
    compatible mode of zsh. (merge a92f243a94 bc/zsh-testsuite
    later to maint).
  - The way patience diff finds LCS has been optimized. (merge
    c7e3b8085b yc/xdiff-patience-optim later to maint).
  - Recent optimization to "last-modified" command introduced use
    of uninitialized block of memory, which has been corrected.
    (merge fe4e60759b tc/last-modified-active-paths-optimization
    later to maint).
  - "git last-modified" used to mishandle "--" to mark the
    beginning of pathspec, which has been corrected. (merge
    05491b90ce js/last-modified-with-sparse-checkouts later to
    maint).
  - Emulation code clean-up. (merge 42aa7603aa
    gf/win32-pthread-cond-init later to maint).
  - "git submodule add" to add a submodule under <name>
    segfaulted, when a submodule.<name>.something is already in
    .gitmodules file without defining where its
    submodule.<name>.path is, which has been corrected. (merge
    dd8e8c786e jc/submodule-add later to maint).
  - "git fetch" that involves fetching tags, when a tag being
    fetched needs to overwrite existing one, failed to fetch
    other tags, which has been corrected. (merge b7b17ec8a6
    kn/fix-fetch-backfill-tag-with-batched-ref-updates later to
    maint).
  - Document "rev-list --filter-provided-objects" better. (merge
    6d8dc99478 jt/doc-rev-list-filter-provided-objects later to
    maint).
  - Even when there is no changes in the packfile and no need to
    recompute bitmaps, "git repack" recomputed and updated the
    MIDX file, which has been corrected. (merge 6ce9d558ce
    ps/repack-avoid-noop-midx-rewrite later to maint).
  - Update HTTP tests to adjust for changes in curl 8.18.0 (merge
    17f4b01da7 jk/test-curl-updates later to maint).
  - Workaround the "iconv" shipped as part of macOS, which is
    broken handling stateful ISO/IEC 2022 encoded strings. (merge
    cee341e9dd rs/macos-iconv-workaround later to maint).
  - Running "git diff" with "--name-only" and other options that
    allows us not to look at the blob contents, while objects
    that are lazily fetched from a promisor remote, caused
    use-after-free, which has been corrected.
  - The ort merge machinery hit an assertion failure in a history
    with criss-cross merges renamed a directory and a
    non-directory, which has been corrected. (merge 979ee83e8a
    en/ort-recursive-d-f-conflict-fix later to maint).
  - Diagnose invalid bundle-URI that lack the URI entry, instead
    of crashing. (merge 7796c14a1a sb/bundle-uri-without-uri
    later to maint).
  - Mailmap update for Karsten (merge e97678c4ef
    js/mailmap-karsten-blees later to maint).
  - Perf-test fixes. (merge 79d301c767 jk/t-perf-fixes later to
    maint).
  - Fix for a performance regression in "git cat-file". (merge
    9e8b448dd8 jk/cat-file-avoid-bitmap-when-unneeded later to
    maint).
  - Update a FAQ entry on synching two separate repositories
    using the "git stash export/import" recently introduced.
    (merge 02fc44a989 bc/doc-stash-import-export later to maint).
  - "git fsck" used inconsistent set of refs to show a confused
    warning, which has been corrected.
  - Some error messages from the http transport layer lacked the
    terminating newline, which has been corrected. (merge
    a8227ae8d5 kt/http-backend-errors later to maint).
  - "git repack --geometric" did not work with promisor packs,
    which has been corrected.
  - The logic that avoids reusing MIDX files with a wrong
    checksum was broken, which has been corrected.
- Refreshed patches:
  CVE-2024-24577.patch
  completion-wordbreaks.diff
  setup-don-t-fail-if-commondir-reference-is-deleted.patch
* Mon Nov 17 2025 mrueckert@suse.de
- Update to 2.52.0:
  - 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".
  - 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.
  - "git describe" has been optimized by using better data
    structure.
  - "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.
  - "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.
  - The above caused regressions, which has been corrected.
  - Documentation for "git rebase" has been updated.
  - 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.
  - 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.
  - 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.
  - 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.
  - 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.
  - "git send-email --compose --reply-to=<address>" used to add
    duplicated Reply-To: header, which made mailservers unhappy.
    This 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.
  - 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.
  - 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.
  - 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.
  - A lot of code clean-up of xdiff. Split out of a larger topic.
  - "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.
  - 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.
  - 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.
  - "git shortlog" knows "--committer" and "--author" options,
    which the command line completion (in contrib/) did not
    handle well, which has been corrected.
  - "git bisect" command did not react correctly to "git bisect
    help" and "git bisect unknown", which has been corrected.
  - 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.
  - 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.
  - The patterns used in the .gitignore files use backslash in
    the way documented for fnmatch(3); document as such to reduce
    confusion.
- drop
  0001-t7528-work-around-ETOOMANY-in-OpenSSH-10.1-and-newer.patch
- refreshed CVE-2024-24577.patch
* Fri Oct 31 2025 alarrosa@suse.com
- Add patch from upstream to fix a test that fails with
  openssh 10.1:
  * 0001-t7528-work-around-ETOOMANY-in-OpenSSH-10.1-and-newer.patch
* Thu Oct 16 2025 antonio.teixeira@suse.com
- Update to 2.51.1:
  - 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.
Version: 2.51.0-160000.1.2
* Wed Aug 20 2025 antonio.teixeira@suse.com
- Use zlib instead of zlib-ng for SLES16
* Mon Aug 18 2025 mrueckert@suse.de
- Update to 2.51.0
  - 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.
- drop patches included in update:
  0001-git-gui-Replace-null_sha1-with-nullid.patch
  0001-gitk-Add-support-of-SHA256-repo.patch
  0002-git-gui-Add-support-of-SHA256-repo.patch
- refreshed patches:
  CVE-2024-24577.patch
  completion-wordbreaks.diff
  git-tcsh-completion-fixes.diff
  setup-don-t-fail-if-commondir-reference-is-deleted.patch
- contrib/workdir is dropped. remove references for it.
* Tue Jul 15 2025 tiwai@suse.com
- update git-gui sha256 patches after the upstream review:
  0001-git-gui-Replace-null_sha1-with-nullid.patch
  0002-git-gui-Add-support-of-SHA256-repo.patch
* Wed Jul 09 2025 mrueckert@suse.de
- refreshed gitk sha256 patches:
  0001-gitk-Add-support-of-SHA256-repo.patch
  0002-git-gui-Add-support-of-SHA256-repo.patch
* Wed Jul 09 2025 mrueckert@suse.de
- refreshed gitk sha256 patches:
  0001-gitk-Add-support-of-SHA256-repo.patch
  0002-git-gui-Add-support-of-SHA256-repo.patch
* Thu Jun 26 2025 tiwai@suse.com
- Fix git-gui citool SHA256 repo handling:
  refreshed 0002-git-gui-Add-support-of-SHA256-repo.patch
* Tue Jun 17 2025 mrueckert@suse.de
- update to 2.50.0
  https://about.gitlab.com/blog/what-s-new-in-git-2-50-0/
  https://raw.githubusercontent.com/git/git/refs/tags/v2.50.0/Documentation/RelNotes/2.50.0.adoc
* Fri Jun 13 2025 tiwai@suse.com
- Refresh gitk SHA256 patch and add SHA256 support to git-gui (bsc#1239989):
  0001-gitk-Add-support-of-SHA256-repo.patch
  0002-git-gui-Add-support-of-SHA256-repo.patch
  The previous patches are dropped:
  0001-gitk-Add-a-basic-support-of-SHA256-repositories-into.patch
  0002-gitk-Add-auto-select-length-preference-for-SHA256.patch
* Mon Mar 24 2025 tiwai@suse.com
- Add support of SHA256 git repo for gitk (bsc#1239989):
  0001-gitk-Add-a-basic-support-of-SHA256-repositories-into.patch
  0002-gitk-Add-auto-select-length-preference-for-SHA256.patch
* Fri Mar 14 2025 mrueckert@suse.de
- update to 2.49.0
  https://about.gitlab.com/blog/2025/03/14/whats-new-in-git-2-49-0/
  https://raw.githubusercontent.com/git/git/refs/tags/v2.49.0/Documentation/RelNotes/2.49.0.adoc
- switch to zlib-ng for code 16
- docs switched to asciidoc