head 1.43; access; symbols pkgsrc-2023Q4:1.42.0.6 pkgsrc-2023Q4-base:1.42 pkgsrc-2023Q3:1.42.0.4 pkgsrc-2023Q3-base:1.42 pkgsrc-2023Q2:1.42.0.2 pkgsrc-2023Q2-base:1.42 pkgsrc-2023Q1:1.40.0.2 pkgsrc-2023Q1-base:1.40 pkgsrc-2022Q4:1.39.0.2 pkgsrc-2022Q4-base:1.39 pkgsrc-2022Q3:1.37.0.4 pkgsrc-2022Q3-base:1.37 pkgsrc-2022Q2:1.37.0.2 pkgsrc-2022Q2-base:1.37 pkgsrc-2022Q1:1.36.0.4 pkgsrc-2022Q1-base:1.36 pkgsrc-2021Q4:1.36.0.2 pkgsrc-2021Q4-base:1.36 pkgsrc-2021Q3:1.35.0.4 pkgsrc-2021Q3-base:1.35 pkgsrc-2021Q2:1.35.0.2 pkgsrc-2021Q2-base:1.35 pkgsrc-2021Q1:1.33.0.2 pkgsrc-2021Q1-base:1.33 pkgsrc-2020Q4:1.31.0.2 pkgsrc-2020Q4-base:1.31 pkgsrc-2020Q3:1.30.0.4 pkgsrc-2020Q3-base:1.30 pkgsrc-2020Q2:1.30.0.2 pkgsrc-2020Q2-base:1.30 pkgsrc-2020Q1:1.28.0.2 pkgsrc-2020Q1-base:1.28 pkgsrc-2019Q4:1.27.0.4 pkgsrc-2019Q4-base:1.27 pkgsrc-2019Q3:1.26.0.2 pkgsrc-2019Q3-base:1.26 pkgsrc-2019Q2:1.25.0.2 pkgsrc-2019Q2-base:1.25 pkgsrc-2019Q1:1.24.0.2 pkgsrc-2019Q1-base:1.24 pkgsrc-2018Q4:1.23.0.2 pkgsrc-2018Q4-base:1.23 pkgsrc-2018Q3:1.22.0.2 pkgsrc-2018Q3-base:1.22 pkgsrc-2018Q2:1.21.0.2 pkgsrc-2018Q2-base:1.21 pkgsrc-2018Q1:1.18.0.2 pkgsrc-2018Q1-base:1.18 pkgsrc-2017Q4:1.17.0.2 pkgsrc-2017Q4-base:1.17 pkgsrc-2017Q3:1.16.0.6 pkgsrc-2017Q3-base:1.16 pkgsrc-2017Q2:1.16.0.2 pkgsrc-2017Q2-base:1.16 pkgsrc-2017Q1:1.15.0.2 pkgsrc-2017Q1-base:1.15 pkgsrc-2016Q4:1.14.0.4 pkgsrc-2016Q4-base:1.14 pkgsrc-2016Q3:1.14.0.2 pkgsrc-2016Q3-base:1.14 pkgsrc-2016Q2:1.13.0.2 pkgsrc-2016Q2-base:1.13 pkgsrc-2016Q1:1.12.0.2 pkgsrc-2016Q1-base:1.12 pkgsrc-2015Q4:1.10.0.4 pkgsrc-2015Q4-base:1.10 pkgsrc-2015Q3:1.10.0.2 pkgsrc-2015Q3-base:1.10 pkgsrc-2015Q2:1.9.0.2 pkgsrc-2015Q2-base:1.9 pkgsrc-2015Q1:1.8.0.4 pkgsrc-2015Q1-base:1.8 pkgsrc-2014Q4:1.8.0.2 pkgsrc-2014Q4-base:1.8 pkgsrc-2014Q3:1.6.0.2 pkgsrc-2014Q3-base:1.6 pkgsrc-2014Q2:1.5.0.2 pkgsrc-2014Q2-base:1.5 pkgsrc-2014Q1:1.4.0.2 pkgsrc-2014Q1-base:1.4 pkgsrc-2013Q4:1.2.0.2 pkgsrc-2013Q4-base:1.2 pkgsrc-2013Q3:1.1.0.2 pkgsrc-2013Q3-base:1.1; locks; strict; comment @# @; 1.43 date 2024.02.25.22.24.13; author adam; state Exp; branches; next 1.42; commitid gRFRJg8omSVsHRZE; 1.42 date 2023.06.09.12.05.14; author riastradh; state Exp; branches; next 1.41; commitid dzUOmJRXKHsmFgsE; 1.41 date 2023.06.05.19.23.47; author adam; state Exp; branches; next 1.40; commitid CD5kL56PsvuJdNrE; 1.40 date 2023.03.14.08.03.35; author adam; state Exp; branches; next 1.39; commitid WlKrjHqqpCBJ74hE; 1.39 date 2022.10.21.17.31.18; author schmonz; state Exp; branches; next 1.38; commitid hYKGBqqVVNfBTBYD; 1.38 date 2022.10.07.10.10.05; author adam; state Exp; branches; next 1.37; commitid 9VZHZ9O5iMoWTLWD; 1.37 date 2022.05.03.01.26.55; author gutteridge; state Exp; branches; next 1.36; commitid PwfVvxJlbcAd3yCD; 1.36 date 2021.11.17.09.01.40; author adam; state Exp; branches; next 1.35; commitid B42tL1obPdfeW7hD; 1.35 date 2021.06.13.18.36.31; author adam; state Exp; branches; next 1.34; commitid zcGQ3mzWhibma0XC; 1.34 date 2021.03.31.08.04.21; author adam; state Exp; branches; next 1.33; commitid 3ymYC2UQvZeP2rNC; 1.33 date 2021.03.10.16.58.05; author jperkin; state Exp; branches; next 1.32; commitid oyztY6Oo3QXVFMKC; 1.32 date 2021.01.11.10.20.16; author adam; state Exp; branches; next 1.31; commitid kpNs3pUjKLTTkiDC; 1.31 date 2020.10.31.21.10.01; author adam; state Exp; branches; next 1.30; commitid rIBpUGeevKpef6uC; 1.30 date 2020.06.03.14.06.47; author adam; state Exp; branches; next 1.29; commitid MeUBPUiC9vjZIMaC; 1.29 date 2020.04.02.07.46.42; author adam; state Exp; branches; next 1.28; commitid vhRJbbIs201eCM2C; 1.28 date 2020.01.20.20.07.40; author adam; state Exp; branches; next 1.27; commitid ekKm8A8WH2fM3tTB; 1.27 date 2019.11.08.12.24.31; author adam; state Exp; branches; next 1.26; commitid Ly0t2n562yZzQ2KB; 1.26 date 2019.08.20.13.00.02; author adam; state Exp; branches; next 1.25; commitid APMFuezBieB3CLzB; 1.25 date 2019.06.09.16.15.32; author ryoon; state Exp; branches; next 1.24; commitid GmDw1D7KLhdQ0xqB; 1.24 date 2019.02.26.11.36.59; author adam; state Exp; branches; next 1.23; commitid XcqFWqwO9QHkMgdB; 1.23 date 2018.12.09.20.29.13; author adam; state Exp; branches; next 1.22; commitid t0k15jsNNDb1ga3B; 1.22 date 2018.09.13.10.56.42; author adam; state Exp; branches; next 1.21; commitid biu96XabqTReTVRA; 1.21 date 2018.06.22.08.57.17; author adam; state Exp; branches; next 1.20; commitid SE6ry3yDfxzUTfHA; 1.20 date 2018.04.14.06.18.24; author adam; state Exp; branches; next 1.19; commitid FNGB7eTso2u1fnyA; 1.19 date 2018.04.11.19.39.34; author adam; state Exp; branches; next 1.18; commitid ew2PTY7ygeBdL3yA; 1.18 date 2018.01.22.14.17.24; author adam; state Exp; branches; next 1.17; commitid fc8BHGU3xRVywSnA; 1.17 date 2017.11.02.06.18.11; author adam; state Exp; branches; next 1.16; commitid ztnglUqhYUsGtqdA; 1.16 date 2017.05.10.18.09.25; author adam; state Exp; branches; next 1.15; commitid GF9rZYrYblmg4SQz; 1.15 date 2017.02.25.08.32.57; author adam; state Exp; branches; next 1.14; commitid mPFSTbukbViegjHz; 1.14 date 2016.09.07.08.56.33; author adam; state Exp; branches; next 1.13; commitid 8XMXZxqgTcUYSklz; 1.13 date 2016.06.14.16.50.04; author adam; state Exp; branches; next 1.12; commitid FgPYP8mq1GKLesaz; 1.12 date 2016.02.07.10.27.23; author adam; state Exp; branches; next 1.11; commitid Z8CcASAoqGLJeYTy; 1.11 date 2016.01.08.17.37.20; author adam; state Exp; branches; next 1.10; commitid FoxZUYgXeJyTz9Qy; 1.10 date 2015.07.31.12.57.23; author adam; state Exp; branches 1.10.4.1; next 1.9; commitid 5f1VZiEVgp1Mcrvy; 1.9 date 2015.05.18.12.51.37; author adam; state Exp; branches; next 1.8; commitid 4IGnZDKu6TkhyVly; 1.8 date 2014.11.30.18.43.41; author adam; state Exp; branches; next 1.7; commitid 5q7GPQwCaoEyVe0y; 1.7 date 2014.10.01.12.08.24; author adam; state Exp; branches; next 1.6; commitid jvDYUOTejY1RFuSx; 1.6 date 2014.08.25.07.49.08; author adam; state Exp; branches; next 1.5; commitid J9VwaTRObrzoqINx; 1.5 date 2014.05.28.12.08.53; author obache; state Exp; branches; next 1.4; commitid 81mBogmLYv5GIiCx; 1.4 date 2014.02.23.10.00.27; author adam; state Exp; branches; next 1.3; commitid 1ed3W9KEM2gl2dqx; 1.3 date 2014.01.03.17.31.25; author richard; state Exp; branches; next 1.2; commitid kmZubGlpf2DfaHjx; 1.2 date 2013.12.04.12.51.06; author adam; state Exp; branches; next 1.1; commitid SNMnLkSOvZplAOfx; 1.1 date 2013.09.09.13.54.44; author wiz; state Exp; branches; next ; commitid NIXymrV4eUYEHL4x; 1.10.4.1 date 2016.03.22.18.55.23; author bsiegert; state Exp; branches; next ; commitid f7xPTFuXztRmDFZy; desc @@ 1.43 log @git: updated to 2.44.0 Git v2.44 Release Notes ======================= Backward Compatibility Notes * "git checkout -B " used to allow switching to a branch that is in use on another worktree, but this was by mistake. The users need to use "--ignore-other-worktrees" option. UI, Workflows & Features * "git add" and "git stash" learned to support the ":(attr:...)" magic pathspec. * "git rebase --autosquash" is now enabled for non-interactive rebase, but it is still incompatible with the apply backend. * Introduce "git replay", a tool meant on the server side without working tree to recreate a history. * "git merge-file" learned to take the "--diff-algorithm" option to use algorithm different from the default "myers" diff. * Command line completion (in contrib/) learned to complete path arguments to the "add/set" subcommands of "git sparse-checkout" better. * "git checkout -B []" allowed a branch that is in use in another worktree to be updated and checked out, which might be a bit unexpected. The rule has been tightened, which is a breaking change. "--ignore-other-worktrees" option is required to unbreak you, if you are used to the current behaviour that "-B" overrides the safety. * The builtin_objectmode attribute is populated for each path without adding anything in .gitattributes files, which would be useful in magic pathspec, e.g., ":(attr:builtin_objectmode=100755)" to limit to executables. * "git fetch" learned to pay attention to "fetch.all" configuration variable, which pretends as if "--all" was passed from the command line when no remote parameter was given. * In addition to (rather cryptic) Security Identifiers, show username and domain in the error message when we barf on mismatch between the Git directory and the current user on Windows. * The error message given when "git branch -d branch" fails due to commits unique to the branch has been split into an error and a new conditional advice message. * When given an existing but unreadable file as a configuration file, gitweb behaved as if the file did not exist at all, but now it errors out. This is a change that may break backward compatibility. * When $HOME/.gitconfig is missing but XDG config file is available, we should write into the latter, not former. "git gc" and "git maintenance" wrote into a wrong "global config" file, which have been corrected. * Define "special ref" as a very narrow set that consists of FETCH_HEAD and MERGE_HEAD, and clarify everything else that used to be classified as such are actually just pseudorefs. * All conditional "advice" messages show how to turn them off, which becomes repetitive. Setting advice.* configuration explicitly on now omits the instruction part. * The "disable repository discovery of a bare repository" check, triggered by setting safe.bareRepository configuration variable to 'explicit', has been loosened to exclude the ".git/" directory inside a non-bare repository from the check. So you can do "cd .git && git cmd" to run a Git command that works on a bare repository without explicitly specifying $GIT_DIR now. * The completion script (in contrib/) learned more options that can be used with "git log". * The labels on conflict markers for the common ancestor, our version, and the other version are available to custom 3-way merge driver via %S, %X, and %Y placeholders. * The write codepath for the reftable data learned to honor core.fsync configuration. * The "--fsck-objects" option of "git index-pack" now can take the optional parameter to tweak severity of different fsck errors. * The wincred credential backend has been taught to support oauth refresh token the same way as credential-cache and credential-libsecret backends. * Command line completion support (in contrib/) has been updated for "git bisect". * "git branch" and friends learned to use the formatted text as sorting key, not the underlying timestamp value, when the --sort option is used with author or committer timestamp with a format specifier (e.g., "--sort=creatordate:format:%H:%M:%S"). * The command line completion script (in contrib/) learned to complete configuration variable names better. Performance, Internal Implementation, Development Support etc. * Process to add some form of low-level unit tests has started. * Add support for GitLab CI. * "git for-each-ref --no-sort" still sorted the refs alphabetically which paid non-trivial cost. It has been redefined to show output in an unspecified order, to allow certain optimizations to take advantage of. * Simplify API implementation to delete references by eliminating duplication. * Subject approxidate() and show_date() machinery to OSS-Fuzz. * A new helper to let us pretend that we called lstat() when we know our cache_entry is up-to-date via fsmonitor. * The optimization based on fsmonitor in the "diff --cached" codepath is resurrected with the "fake-lstat" introduced earlier. * Test balloon to use C99 "bool" type from has been added. * "git clone" has been prepared to allow cloning a repository with non-default hash function into a repository that uses the reftable backend. * Streaming spans of packfile data used to be done only from a single, primary, pack in a repository with multiple packfiles. It has been extended to allow reuse from other packfiles, too. * Comment updates to help developers not to attempt to modify messages from plumbing commands that must stay constant. It might make sense to reassess the plumbing needs every few years, but that should be done as a separate effort. * Move test-ctype helper to the unit-test framework. * Instead of manually creating refs/ hierarchy on disk upon a creation of a secondary worktree, which is only usable via the files backend, use the refs API to populate it. * CI for GitLab learned to drive macOS jobs. * A few tests to "git commit -o " and "git commit -i " has been added. * Tests on ref API are moved around to prepare for reftable. * The Makefile often had to say "-L$(path) -R$(path)" that repeats the path to the same library directory for link time and runtime. A Makefile template is used to reduce such repetition. * The priority queue test has been migrated to the unit testing framework. * Setting `feature.experimental` opts the user into multi-pack reuse experiment * Squelch node.js 16 deprecation warnings from GitHub Actions CI by updating actions/github-script and actions/checkout that use node.js 20. * The mechanism to report the filename in the source code, used by the unit-test machinery, assumed that the compiler expanded __FILE__ to the path to the source given to the $(CC), but some compilers give full path, breaking the output. This has been corrected. Fixes since v2.43 ----------------- * The way CI testing used "prove" could lead to running the test suite twice needlessly, which has been corrected. * Update ref-related tests. * "git format-patch --encode-email-headers" ignored the option when preparing the cover letter, which has been corrected. * Newer versions of Getopt::Long started giving warnings against our (ab)use of it in "git send-email". Bump the minimum version requirement for Perl to 5.8.1 (from September 2002) to allow simplifying our implementation. * Earlier we stopped relying on commit-graph that (still) records information about commits that are lost from the object store, which has negative performance implications. The default has been flipped to disable this pessimization. * Stale URLs have been updated to their current counterparts (or archive.org) and HTTP links are replaced with working HTTPS links. * trace2 streams used to record the URLs that potentially embed authentication material, which has been corrected. * The sample pre-commit hook that tries to catch introduction of new paths that use potentially non-portable characters did not notice an existing path getting renamed to such a problematic path, when rename detection was enabled. * The command line parser for the "log" family of commands was too loose when parsing certain numbers, e.g., silently ignoring the extra 'q' in "git log -n 1q" without complaining, which has been tightened up. * "git $cmd --end-of-options --rev -- --path" for some $cmd failed to interpret "--rev" as a rev, and "--path" as a path. This was fixed for many programs like "reset" and "checkout". * "git bisect reset" has been taught to clean up state files and refs even when BISECT_START file is gone. * Some codepaths did not correctly parse configuration variables specified with valueless "true", which has been corrected. * Code clean-up for sanity checking of command line options for "git show-ref". * The code to parse the From e-mail header has been updated to avoid recursion. * "git fetch --atomic" issued an unnecessary empty error message, which has been corrected. * Command line completion script (in contrib/) learned to work better with the reftable backend. * "git status" is taught to show both the branch being bisected and being rebased when both are in effect at the same time. * "git archive --list extra garbage" silently ignored excess command line parameters, which has been corrected. * "git sparse-checkout set" added default patterns even when the patterns are being fed from the standard input, which has been corrected. * "git sparse-checkout (add|set) --[no-]cone --end-of-options" did not handle "--end-of-options" correctly after a recent update. * Unlike other environment variables that took the usual true/false/yes/no as well as 0/1, GIT_FLUSH only understood 0/1, which has been corrected. * Clearing in-core repository (happens during e.g., "git fetch --recurse-submodules" with commit graph enabled) made in-core commit object in an inconsistent state by discarding the necessary data from commit-graph too early, which has been corrected. * Update to a new feature recently added, "git show-ref --exists". * oss-fuzz tests are built and run in CI. (merge c4a9cf1df3 js/oss-fuzz-build-in-ci later to maint). * Rename detection logic ignored the final line of a file if it is an incomplete line. * GitHub CI update. (merge 0188b2c8e0 pb/ci-github-skip-logs-for-broken-tests later to maint). * "git diff --no-rename A B" did not disable rename detection but did not trigger an error from the command line parser. * "git archive --remote=" learned to talk over the smart http (aka stateless) transport. (merge 176cd68634 jx/remote-archive-over-smart-http later to maint). * Fetching via protocol v0 over Smart HTTP transport sometimes failed to correctly auto-follow tags. (merge fba732c462 jk/fetch-auto-tag-following-fix later to maint). * The documentation for the --exclude-per-directory option marked it as deprecated, which confused readers into thinking there may be a plan to remove it in the future, which was not our intention. (merge 0009542cab jc/ls-files-doc-update later to maint). * "git diff --no-index file1 file2" segfaulted while invoking the external diff driver, which has been corrected. * Rewrite //-comments to /* comments */ in files whose comments prevalently use the latter. * Cirrus CI jobs started breaking because we specified version of FreeBSD that is no longer available, which has been corrected. (merge 81fffb66d3 cb/use-freebsd-13-2-at-cirrus-ci later to maint). * A caller called index_file_exists() that takes a string expressed as with a wrong length, which has been corrected. (merge 156e28b36d jh/sparse-index-expand-to-path-fix later to maint). * A failed "git tag -s" did not necessarily result in an error depending on the crypto backend, which has been corrected. * "git stash" sometimes was silent even when it failed due to unwritable index file, which has been corrected. * "git show-ref --verify" did not show things like "CHERRY_PICK_HEAD", which has been corrected. * Recent conversion to allow more than 0/1 in GIT_FLUSH broke the mechanism by flipping what yes/no means by mistake, which has been corrected. * The sequencer machinery does not use the ref API and instead records names of certain objects it needs for its correct operation in temporary files, which makes these objects susceptible to loss by garbage collection. These temporary files have been added as starting points for reachability analysis to fix this. (merge bc7f5db896 pw/gc-during-rebase later to maint). * "git cherry-pick" invoked during "git rebase -i" session lost the authorship information, which has been corrected. (merge e4301f73ff vn/rebase-with-cherry-pick-authorship later to maint). * The code paths that call repo_read_object_file() have been tightened to react to errors. (merge 568459bf5e js/check-null-from-read-object-file later to maint). * Other code cleanup, docfix, build fix, etc. (merge 5aea3955bc rj/clarify-branch-doc-m later to maint). (merge 9cce3be2df bk/bisect-doc-fix later to maint). (merge 8430b438f6 vd/fsck-submodule-url-test later to maint). (merge 3cb4384683 jc/t0091-with-unknown-git later to maint). (merge 020456cb74 rs/receive-pack-remove-find-header later to maint). (merge bc47139f4f la/trailer-cleanups later to maint). @ text @@@comment $NetBSD: PLIST,v 1.42 2023/06/09 12:05:14 riastradh Exp $ bin/git bin/git-cvsserver bin/git-receive-pack bin/git-shell bin/git-upload-archive bin/git-upload-pack bin/scalar libexec/git-core/git libexec/git-core/git-add libexec/git-core/git-am libexec/git-core/git-annotate libexec/git-core/git-apply libexec/git-core/git-archive libexec/git-core/git-bisect libexec/git-core/git-blame libexec/git-core/git-branch libexec/git-core/git-bugreport libexec/git-core/git-bundle libexec/git-core/git-cat-file libexec/git-core/git-check-attr libexec/git-core/git-check-ignore libexec/git-core/git-check-mailmap libexec/git-core/git-check-ref-format libexec/git-core/git-checkout libexec/git-core/git-checkout--worker libexec/git-core/git-checkout-index libexec/git-core/git-cherry libexec/git-core/git-cherry-pick libexec/git-core/git-clean libexec/git-core/git-clone libexec/git-core/git-column libexec/git-core/git-commit libexec/git-core/git-commit-graph libexec/git-core/git-commit-tree libexec/git-core/git-config libexec/git-core/git-count-objects libexec/git-core/git-credential libexec/git-core/git-credential-cache libexec/git-core/git-credential-cache--daemon libexec/git-core/git-credential-store libexec/git-core/git-daemon libexec/git-core/git-describe libexec/git-core/git-diagnose libexec/git-core/git-diff libexec/git-core/git-diff-files libexec/git-core/git-diff-index libexec/git-core/git-diff-tree libexec/git-core/git-difftool libexec/git-core/git-difftool--helper libexec/git-core/git-fast-export libexec/git-core/git-fast-import libexec/git-core/git-fetch libexec/git-core/git-fetch-pack libexec/git-core/git-filter-branch libexec/git-core/git-fmt-merge-msg libexec/git-core/git-for-each-ref libexec/git-core/git-for-each-repo libexec/git-core/git-format-patch libexec/git-core/git-fsck libexec/git-core/git-fsck-objects libexec/git-core/git-fsmonitor--daemon libexec/git-core/git-gc libexec/git-core/git-get-tar-commit-id libexec/git-core/git-grep libexec/git-core/git-hash-object libexec/git-core/git-help libexec/git-core/git-hook libexec/git-core/git-http-backend libexec/git-core/git-http-fetch libexec/git-core/git-http-push libexec/git-core/git-imap-send libexec/git-core/git-index-pack libexec/git-core/git-init libexec/git-core/git-init-db libexec/git-core/git-interpret-trailers libexec/git-core/git-log libexec/git-core/git-ls-files libexec/git-core/git-ls-remote libexec/git-core/git-ls-tree libexec/git-core/git-mailinfo libexec/git-core/git-mailsplit libexec/git-core/git-maintenance libexec/git-core/git-merge libexec/git-core/git-merge-base libexec/git-core/git-merge-file libexec/git-core/git-merge-index libexec/git-core/git-merge-octopus libexec/git-core/git-merge-one-file libexec/git-core/git-merge-ours libexec/git-core/git-merge-recursive libexec/git-core/git-merge-resolve libexec/git-core/git-merge-subtree libexec/git-core/git-merge-tree libexec/git-core/git-mergetool libexec/git-core/git-mergetool--lib libexec/git-core/git-mktag libexec/git-core/git-mktree libexec/git-core/git-multi-pack-index libexec/git-core/git-mv libexec/git-core/git-name-rev libexec/git-core/git-notes libexec/git-core/git-pack-objects libexec/git-core/git-pack-redundant libexec/git-core/git-pack-refs libexec/git-core/git-patch-id libexec/git-core/git-prune libexec/git-core/git-prune-packed libexec/git-core/git-pull libexec/git-core/git-push libexec/git-core/git-quiltimport libexec/git-core/git-range-diff libexec/git-core/git-read-tree libexec/git-core/git-rebase libexec/git-core/git-receive-pack libexec/git-core/git-reflog libexec/git-core/git-remote libexec/git-core/git-remote-ext libexec/git-core/git-remote-fd libexec/git-core/git-remote-ftp libexec/git-core/git-remote-ftps libexec/git-core/git-remote-http libexec/git-core/git-remote-https libexec/git-core/git-repack libexec/git-core/git-replace libexec/git-core/git-replay libexec/git-core/git-rerere libexec/git-core/git-reset libexec/git-core/git-restore libexec/git-core/git-rev-list libexec/git-core/git-rev-parse libexec/git-core/git-revert libexec/git-core/git-rm libexec/git-core/git-send-pack libexec/git-core/git-sh-i18n libexec/git-core/git-sh-i18n--envsubst libexec/git-core/git-sh-setup libexec/git-core/git-shell libexec/git-core/git-shortlog libexec/git-core/git-show libexec/git-core/git-show-branch libexec/git-core/git-show-index libexec/git-core/git-show-ref libexec/git-core/git-sparse-checkout libexec/git-core/git-stage libexec/git-core/git-stash libexec/git-core/git-status libexec/git-core/git-stripspace libexec/git-core/git-submodule libexec/git-core/git-submodule--helper libexec/git-core/git-switch libexec/git-core/git-symbolic-ref libexec/git-core/git-tag libexec/git-core/git-unpack-file libexec/git-core/git-unpack-objects libexec/git-core/git-update-index libexec/git-core/git-update-ref libexec/git-core/git-update-server-info libexec/git-core/git-upload-archive libexec/git-core/git-upload-pack libexec/git-core/git-var libexec/git-core/git-verify-commit libexec/git-core/git-verify-pack libexec/git-core/git-verify-tag libexec/git-core/git-version libexec/git-core/git-web--browse libexec/git-core/git-whatchanged libexec/git-core/git-worktree libexec/git-core/git-write-tree libexec/git-core/mergetools/araxis libexec/git-core/mergetools/bc libexec/git-core/mergetools/codecompare libexec/git-core/mergetools/deltawalker libexec/git-core/mergetools/diffmerge libexec/git-core/mergetools/diffuse libexec/git-core/mergetools/ecmerge libexec/git-core/mergetools/emerge libexec/git-core/mergetools/examdiff libexec/git-core/mergetools/guiffy libexec/git-core/mergetools/gvimdiff libexec/git-core/mergetools/kdiff3 libexec/git-core/mergetools/kompare libexec/git-core/mergetools/meld libexec/git-core/mergetools/nvimdiff libexec/git-core/mergetools/opendiff libexec/git-core/mergetools/p4merge libexec/git-core/mergetools/smerge libexec/git-core/mergetools/tkdiff libexec/git-core/mergetools/tortoisemerge libexec/git-core/mergetools/vimdiff libexec/git-core/mergetools/winmerge libexec/git-core/mergetools/xxdiff libexec/git-core/scalar share/bash-completion/completions/git share/examples/git/git-prompt.sh share/examples/git/templates/description share/examples/git/templates/hooks/applypatch-msg.sample share/examples/git/templates/hooks/commit-msg.sample share/examples/git/templates/hooks/fsmonitor-watchman.sample share/examples/git/templates/hooks/post-update.sample share/examples/git/templates/hooks/pre-applypatch.sample share/examples/git/templates/hooks/pre-commit.sample share/examples/git/templates/hooks/pre-merge-commit.sample share/examples/git/templates/hooks/pre-push.sample share/examples/git/templates/hooks/pre-rebase.sample share/examples/git/templates/hooks/pre-receive.sample share/examples/git/templates/hooks/prepare-commit-msg.sample share/examples/git/templates/hooks/push-to-checkout.sample share/examples/git/templates/hooks/sendemail-validate.sample share/examples/git/templates/hooks/update.sample share/examples/git/templates/info/exclude share/locale/bg/LC_MESSAGES/git.mo share/locale/ca/LC_MESSAGES/git.mo share/locale/de/LC_MESSAGES/git.mo share/locale/el/LC_MESSAGES/git.mo share/locale/es/LC_MESSAGES/git.mo share/locale/fr/LC_MESSAGES/git.mo share/locale/id/LC_MESSAGES/git.mo share/locale/is/LC_MESSAGES/git.mo share/locale/it/LC_MESSAGES/git.mo share/locale/ko/LC_MESSAGES/git.mo share/locale/pl/LC_MESSAGES/git.mo share/locale/pt_PT/LC_MESSAGES/git.mo share/locale/ru/LC_MESSAGES/git.mo share/locale/sv/LC_MESSAGES/git.mo share/locale/tr/LC_MESSAGES/git.mo share/locale/uk/LC_MESSAGES/git.mo share/locale/vi/LC_MESSAGES/git.mo share/locale/zh_CN/LC_MESSAGES/git.mo share/locale/zh_TW/LC_MESSAGES/git.mo share/zsh/site-functions/_git @ 1.42 log @git: Split Perl-dependent scripts into new git-perlscripts package. This way: - devel/git still installs everything it used to. - devel/git-base can be built without Perl. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.41 2023/06/05 19:23:47 adam Exp $ d126 1 @ 1.41 log @git: updated to 2.41.0 Git v2.41 Release Notes ======================= UI, Workflows & Features * Allow information carried on the WWW-Authenticate header to be passed to the credential helpers. * A new "fetch.hideRefs" option can be used to exclude specified refs from "rev-list --objects --stdin --not --all" traversal for checking object connectivity, most useful when there are many unrelated histories in a single repository. * "git push" has been taught to allow deletion of refs with one-level names to help repairing a repository who acquired such a ref by mistake. In general, we don't encourage use of such a ref, and creation or update to such a ref is rejected as before. * Allow "git bisect reset" to check out the original branch when the branch is already checked out in a different worktree linked to the same repository. * A few subcommands have been taught to stop users from working on a branch that is being used in another worktree linked to the same repository. * "git format-patch" learned to write a log-message only output file for empty commits. * "git format-patch" honors the src/dst prefixes set to nonstandard values with configuration variables like "diff.noprefix", causing receiving end of the patch that expects the standard -p1 format to break. "format-patch" has been taught to ignore end-user configuration and always use the standard prefixes. This is a backward compatibility breaking change. * Lift the limitation that colored prompts can only be used with PROMPT_COMMAND mode. * "git blame --contents= -- " used to be forbidden, but now it finds the origins of lines starting at contents through the history that leads to . * "git pack-redundant" gave a warning when run, as the command has outlived its usefulness long ago and is nominated for future removal. Now we escalate to give an error. * "git clone" from an empty repository learned to propagate the choice of the hash algorithm from the source repository to the newly created repository over any one of the v0/v1/v2 protocol. * "git mergetool" and "git difftool" learns a new configuration guiDefault to optionally favor configured guitool over non-gui-tool automatically when $DISPLAY is set. * "git branch -d origin/master" would say "no such branch", but it is likely a missed "-r" if refs/remotes/origin/master exists. The command has been taught to give such a hint in its error message. * Clean-up of the code path that deals with merge strategy option handling in "git rebase". * "git clone --local" stops copying from an original repository that has symbolic links inside its $GIT_DIR; an error message when that happens has been updated. * The "--format=..." option of "git for-each-ref", "git branch", and "git tag" commands learn "--omit-empty" to hide refs whose formatting results in an empty string from the output. * The sendemail-validate validate hook learned to pass the total number of input files and where in the sequence each invocation is via environment variables. * When "gc" needs to retain unreachable objects, packing them into cruft packs (instead of exploding them into loose object files) has been offered as a more efficient option for some time. Now the use of cruft packs has been made the default and no longer considered an experimental feature. * The output given by "git blame" that attributes a line to contents taken from the file specified by the "--contents" option shows it differently from a line attributed to the working tree file. * "git send-email" learned to give the e-mail headers to the validate hook by passing an extra argument from the command line. * The credential subsystem learns to help OAuth framework. * The titles of manual pages used to be chomped at an unreasonably short limit, which has been removed. * Error messages given when working on an unborn branch that is checked out in another worktree have been improved. * The documentation was misleading about the interaction between GIT_DEFAULT_HASH and "git clone", which has been clarified to stress that the variable is to be ignored by the command. * "git send-email" learned "--header-cmd=" that can inject arbitrary e-mail header lines to the outgoing messages. * "git fsck" learned to detect bit-flip breakages in the reachability bitmap files. * The "--stdin" option of "git name-rev" has been replaced with the "--annotate-stdin" option more than a year ago. We stop advertising it in the "git name-rev -h" output. * "git push --all" gained an alias "git push --branches". * "git fetch" learned the "--porcelain" option that emits what it did in a machine-parseable format. * "git --attr-source= cmd $args" is a new way to have any command to read attributes not from the working tree but from the given tree object. Performance, Internal Implementation, Development Support etc. * Code clean-up to clarify directory traversal API. * Code clean-up to clarify the rule that "git-compat-util.h" must be the first to be included. * More work towards -Wunused. * Instead of forcing each command to choose to honor GPG related configuration variables, make the subsystem lazily initialize itself. * Remove workaround for ancient versions of DocBook to make it work correctly with groff, which has not been necessary since docbook 1.76 from 2010. * Code clean-up to include and/or uninclude parse-options.h file as needed. * The code path that reports what "git fetch" did to each ref has been cleaned up. * Assorted config API updates. * A few configuration variables to tell the cURL library that different types of ssl-cert and ssl-key are in use have been added. * Split key function and data structure definitions out of cache.h to new header files and adjust the users. * "git fetch --all" does not have to download and handle the same bundleURI over and over, which has been corrected. * "git sparse-checkout" command learns a debugging aid for the sparse rule definitions. * "git write-tree" learns to work better with sparse-index. * The on-disk reverse index that allows mapping from the pack offset to the object name for the object stored at the offset has been enabled by default. * "git fsck" learned to validate the on-disk pack reverse index files. * strtok() and strtok_r() are banned in this codebase. * The detect-compilers script to help auto-tweaking the build system had trouble working with compilers whose version number has extra suffixes. The script has been taught that certain suffixes (like "-win32" in "gcc 10-win32") can be safely stripped as they share the same features and bugs with the version without the suffix. * ctype tests have been taught to test EOF, too. * The implementation of credential helpers used fgets() over fixed size buffers to read protocol messages, causing the remainder of the folded long line to trigger unexpected behaviour, which has been corrected. * The implementation of the default "negotiator", used to find common ancestor over the network for object tranfer, used to be recursive; it was updated to be iterative to conserve stackspace usage. * Our custom callout formatter is no longer used in the documentation formatting toolchain, as the upstream default ones give better output these days. * The tracing mechanism learned to notice and report when auto-discovered bare repositories are being used, as allowing so without explicitly stating the user intends to do so (with setting GIT_DIR for example) can be used with social engineering as an attack vector. * "git diff-files" learned not to expand sparse-index unless needed. Fixes since v2.40 ----------------- * "git fsck" learned to check the index files in other worktrees, just like "git gc" honors them as anchoring points. (merge 8d3e7eac52 jk/fsck-indices-in-worktrees later to maint). * Fix a segfaulting loop. The function and its caller may need further clean-up. (merge c5773dc078 ew/commit-reach-clean-up-flags-fix later to maint). * "git restore" supports options like "--ours" that are only meaningful during a conflicted merge, but these options are only meaningful when updating the working tree files. These options are marked to be incompatible when both "--staged" and "--worktree" are in effect. (merge ee8a88826a ak/restore-both-incompatible-with-conflicts later to maint). * Simplify UI to control progress meter given by "git bundle" command. (merge 8b95521edb jk/bundle-progress later to maint). * "git bundle" learned that "-" is a common way to say that the input comes from the standard input and/or the output goes to the standard output. It used to work only for output and only from the root level of the working tree. (merge 0bbe10313e jk/bundle-use-dash-for-stdfiles later to maint). * Once we start running, we assumed that the list of alternate object databases would never change. Hook into the machinery used to update the list of packfiles during runtime to update this list as well. (merge e2d003dbed ds/reprepare-alternates-when-repreparing-packfiles later to maint). * The code to parse "git rebase -X" was not prepared to see an unparsable option string, which has been corrected. (merge 15a4cc912e ab/fix-strategy-opts-parsing later to maint). * "git add -p" while the index is unmerged sometimes failed to parse the diff output it internally produces and died, which has been corrected. (merge 28d1122f9c jk/add-p-unmerged-fix later to maint). * Fix for a "ls-files --format="%(path)" that produced nonsense output, which was a bug in 2.38. (merge cfb62dd006 aj/ls-files-format-fix later to maint). * "git receive-pack" that responds to "git push" requests failed to clean a stale lockfile when killed in the middle, which has been corrected. (merge c55c30669c ps/receive-pack-unlock-before-die later to maint). * "git rev-parse --quiet foo@@{u}", or anything that asks @@{u} to be parsed with GET_OID_QUIETLY option, did not quietly fail, which has been corrected. (merge dfbfdc521d fc/oid-quietly-parse-upstream later to maint). * Transports that do not support protocol v2 did not correctly fall back to protocol v0 under certain conditions, which has been corrected. (merge eaa0fd6584 jk/fix-proto-downgrade-to-v0 later to maint). * time(2) on glib 2.31+, especially on Linux, goes out of sync with higher resolution timers used for gettimeofday(2) and by the filesystem. Replace all calls to it with a git_time() wrapper and (merge 370ddcbc89 pe/time-use-gettimeofday later to maint). * Code clean-up to use designated initializers in parse-options API. (merge 353e6d4554 sg/parse-options-h-initializers later to maint). * A recent-ish change to allow unicode character classes to be used with "grep -P" triggered a JIT bug in older pcre2 libraries. The problematic change in Git built with these older libraries has been disabled to work around the bug. (merge 14b9a04479 mk/workaround-pcre-jit-ucp-bug later to maint). * The wildmatch library code unlearns exponential behaviour it acquired some time ago since it was borrowed from rsync. (merge 3dc0b7f0dc pw/wildmatch-fixes later to maint). * The index files can become corrupt under certain conditions when the split-index feature is in use, especially together with fsmonitor, which have been corrected. (merge 061dd722dc js/split-index-fixes later to maint). * Document what the pathname-looking strings in "rev-list --object" output are for and what they mean. (merge 15364d2a3c jk/document-rev-list-object-name later to maint). * Fix unnecessary truncation of generation numbers used in-core. (merge d3af1c193d ps/ahead-behind-truncation-fix later to maint). * Code clean-up around the use of the_repository. (merge 4a93b899c1 ab/remove-implicit-use-of-the-repository later to maint). * Consistently spell "Message-ID" as such, not "Message-Id". (merge ba4324c4e1 jc/spell-id-in-both-caps-in-message-id later to maint). * Correct use of an uninitialized structure member. (merge dc12ee77ab jx/cap-object-info-uninitialized-fix later to maint). * Tests had a few places where we ignored PERL_PATH and blindly used /usr/bin/perl, which have been corrected. (merge c1917156a0 jk/use-perl-path-consistently later to maint). * Documentation mark-up fix. (merge 78b6369e67 la/mfc-markup-fix later to maint). * Doc toolchain update to remove old workaround for AsciiDoc. (merge 8806120de6 fc/remove-header-workarounds-for-asciidoc later to maint). * The userdiff regexp patterns for various filetypes that are built into the system have been updated to avoid triggering regexp errors from UTF-8 aware regex engines. (merge be39144954 rs/userdiff-multibyte-regex later to maint). * The approxidate() API has been simplified by losing an extra function that did the same thing as another one. (merge 8a7f0b666f rs/remove-approxidate-relative later to maint). * Code clean-up to replace a hardcoded constant with a CPP macro. (merge c870de6502 rs/get-tar-commit-id-use-defined-const later to maint). * Doc build simplification. (merge 9a09ed3229 fc/doc-stop-using-manversion later to maint). * "git archive" run from a subdirectory mishandled attributes and paths outside the current directory. (merge 92b1dd1b9e rs/archive-from-subdirectory-fixes later to maint). * The code to parse capability list for v0 on-wire protocol fell into an infinite loop when a capability appears multiple times, which has been corrected. * Geometric repacking ("git repack --geometric=") in a repository that borrows from an alternate object database had various corner case bugs, which have been corrected. (merge d85cd18777 ps/fix-geom-repack-with-alternates later to maint). * The "%GT" placeholder for the "--format" option of "git log" and friends caused BUG() to trigger on a commit signed with an unknown key, which has been corrected. (merge 7891e46585 jk/gpg-trust-level-fix later to maint). * The completion script used to use bare "read" without the "-r" option to read the contents of various state files, which risked getting confused with backslashes in them. This has been corrected. (merge 197152098a ek/completion-use-read-r-to-read-literally later to maint). * A small API fix to the ort merge strategy backend. (merge 000c4ceca7 en/ort-finalize-after-0-merges-fix later to maint). * The commit object parser has been taught to be a bit more lenient to parse timestamps on the author/committer line with a malformed author/committer ident. (merge 90ef0f14eb jk/parse-commit-with-malformed-ident later to maint). * Retitle a test script with an overly narrow name. (merge 8bb19c14fb ob/t3501-retitle later to maint). * Doc update to clarify how text and eol attributes interact to specify the end-of-line conversion. (merge 6696077ace ah/doc-attributes-text later to maint). * Gitk updates from GfW project. (merge 99e70f3077 js/gitk-fixes-from-gfw later to maint). * "git diff --dirstat" leaked memory, which has been plugged. (merge 83973981eb jc/dirstat-plug-leaks later to maint). * "git merge-tree" reads the basic configuration, which can be used by git forges to disable replace-refs feature. (merge b6551feadf ds/merge-tree-use-config later to maint). * A few bugs in the sequencer machinery that results in miscounting the steps have been corrected. (merge 170eea9750 js/rebase-count-fixes later to maint). * Other code cleanup, docfix, build fix, etc. (merge f7111175df as/doc-markup-fix later to maint). (merge 90ff7c9898 fc/test-aggregation-clean-up later to maint). (merge 9b0c7f308a jc/am-doc-refer-to-format-patch later to maint). (merge b10cbdac4c bb/unicode-width-table-15 later to maint). (merge 3457b50e8c ab/retire-scripted-add-p later to maint). (merge d52fcf493b ds/p2000-fix-grep-sparse later to maint). (merge ec063d2591 ss/hashmap-typofix later to maint). (merge 1aaed69d11 rs/archive-mtime later to maint). (merge 2da2cc9b28 ob/rollback-after-commit-lock-failure later to maint). (merge 54dbd0933b ob/sequencer-save-head-simplify later to maint). (merge a93cbe8d78 ar/test-cleanup-unused-file-creation later to maint). (merge cc48ddd937 jk/chainlint-fixes later to maint). (merge 4833b08426 ow/ref-format-remove-unused-member later to maint). (merge d0ea2ca1cf dw/doc-submittingpatches-grammofix later to maint). (merge fd72637423 ar/t2024-checkout-output-fix later to maint). (merge d45cbe3fe0 ob/sequencer-i18n-fix later to maint). (merge b734fe49fd ob/messages-capitalize-exception later to maint). (merge ad353d7e77 ma/gittutorial-fixes later to maint). (merge a5855fd8d4 ar/test-cleanup-unused-file-creation-part2 later to maint). (merge 0c5308af30 sd/doc-gitignore-and-rm-cached later to maint). (merge cbb83daeaf kh/doc-interpret-trailers-updates later to maint). (merge 3d77fbb664 ar/config-count-tests-updates later to maint). (merge b7cf25c8f4 jc/t9800-fix-use-of-show-s-raw later to maint). @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.40 2023/03/14 08:03:35 adam Exp $ a8 19 ${PERL5_SUB_INSTALLVENDORLIB}/FromCPAN/Error.pm ${PERL5_SUB_INSTALLVENDORLIB}/FromCPAN/Mail/Address.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/I18N.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/IndexInfo.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/LoadCPAN.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/LoadCPAN/Error.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/LoadCPAN/Mail/Address.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/Packet.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/SVN.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/SVN/Editor.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/SVN/Fetcher.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/SVN/GlobSpec.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/SVN/Log.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/SVN/Memoize/YAML.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/SVN/Migration.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/SVN/Prompt.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/SVN/Ra.pm ${PERL5_SUB_INSTALLVENDORLIB}/Git/SVN/Utils.pm a13 1 libexec/git-core/git-archimport a41 3 libexec/git-core/git-cvsexportcommit libexec/git-core/git-cvsimport libexec/git-core/git-cvsserver a75 1 libexec/git-core/git-instaweb a125 1 libexec/git-core/git-request-pull a132 1 libexec/git-core/git-send-email a149 1 libexec/git-core/git-svn @ 1.40 log @git: updated to 2.40.0 Git v2.40 Release Notes ======================= UI, Workflows & Features * "merge-tree" learns a new `--merge-base` option. * "git jump" (in contrib/) learned to present the "quickfix list" to its standard output (instead of letting it consumed by the editor it invokes), and learned to also drive emacs/emacsclient. * "git var UNKNOWN_VARIABLE" and "git var VARIABLE" with the variable given an empty value used to behave identically. Now the latter just gives an empty output, while the former still gives an error message. * Introduce a case insensitive mode to the Bash completion helpers. * The advice message given by "git status" when it takes long time to enumerate untracked paths has been updated. * Just like "git var GIT_EDITOR" abstracts the complex logic to choose which editor gets used behind it, "git var" now give support to GIT_SEQUENCE_EDITOR. * "git format-patch" learned to honor format.mboxrd even when sending patches to the standard output stream, * 'cat-file' gains mailmap support for its '--batch-check' and '-s' options. * Conditionally skip the pre-applypatch and applypatch-msg hooks when applying patches with 'git am'. * Introduce an optional configuration to allow the trailing hash that protects the index file from bit flipping. * "git check-attr" learned to take an optional tree-ish to read the .gitattributes file from. * "scalar" learned to give progress bar. * "grep -P" learned to use Unicode Character Property to grok character classes when processing \b and \w etc. * "git rebase" often ignored incompatible options instead of complaining, which has been corrected. * "scalar" warns but continues when its periodic maintenance feature cannot be enabled. * The bundle-URI subsystem adds support for creation-token heuristics to help incremental fetches. * Userdiff regexp update for Java language. * "git fetch --jobs=0" used to hit a BUG(), which has been corrected to use the available CPUs. * An invalid label or ref in the "rebase -i" todo file used to trigger an runtime error. SUch an error is now diagnosed while the todo file is parsed. * The "diff" drivers specified by the "diff" attribute attached to paths can now specify which algorithm (e.g. histogram) to use. * "git range-diff" learned --abbrev= option. * "git archive HEAD^{tree}" records the paths with the current timestamp in the archive, making it harder to obtain a stable output. The command learned the --mtime option to specify an arbitrary timestamp (e.g. --mtime="@@0 +0000" for the epoch). * The credential subsystem learned that a password may have an explicit expiration. * The format.attach configuration variable lacked a way to override a value defined in a lower-priority configuration file (e.g. the system one) by redefining it in a higher-priority configuration file. Now, setting format.attach to an empty string means show the patch inline in the e-mail message, without using MIME attachment. This is a backward incompatible change. Performance, Internal Implementation, Development Support etc. * `git bisect` becomes a builtin. * The pack-bitmap machinery is taught to log the paths of redundant bitmap(s) to trace2 instead of stderr. * Use the SHA1DC implementation on macOS, just like other platforms, by default. * Even in a repository with promisor remote, it is useless to attempt to lazily attempt fetching an object that is expected to be commit, because no "filter" mode omits commit objects. Take advantage of this assumption to fail fast on errors. * Stop using "git --super-prefix" and narrow the scope of its use to the submodule--helper. * Stop running win+VS build by default. * CI updates. We probably want a clean-up to move the long shell script embedded in yaml file into a separate file, but that can come later. * Use `git diff --no-index` as a test_cmp on Windows. We'd probably need to revisit "do we really want to, and have to, lose CRLF vs LF?" later, at which time we may be able to further clean this up by replacing "git diff --no-index" with "diff -u". * Avoid unnecessary builds in CI, with settings configured in ci-config. * Plug leaks in sequencer subsystem and its users. * In-tree .gitattributes update to match the way we recommend our users to mark a file as text. (merge 1f34e0cd3d po/attributes-text later to maint). * Finally retire the scripted "git add -p/-i" implementation and have everybody use the one reimplemented in C. Fixes since v2.39 ----------------- * Various leak fixes. * Fix a bug where `pack-objects` would not respect multiple `--filter` arguments when invoked directly. (merge d4f7036887 rs/multi-filter-args later to maint). * Make fsmonitor more robust to avoid the flakiness seen in t7527. (merge 6692d45477 jh/t7527-unflake-by-forcing-cookie later to maint). * Stop using deprecated macOS API in fsmonitor. (merge b0226007f0 jh/fsmonitor-darwin-modernize later to maint). * Redefining system functions for a few functions did not follow our usual "implement git_foo() and #define foo(args) git_foo(args)" pattern, which has broken build for some folks. * The way the diff machinery prepares the options array for the parse_options API has been refactored to avoid resource leaks. (merge 189e97bc4b rs/diff-parseopts later to maint). * Correct pthread API usage. (merge 786e67611d sx/pthread-error-check-fix later to maint). * The code to auto-correct a misspelt subcommand unnecessarily called into git_default_config() from the early config codepath, which was a no-no. This has bee corrected. (merge 0918d08887 sg/help-autocorrect-config-fix later to maint). * "git http-fetch" (which is rarely used) forgot to identify itself in the trace2 output. (merge 7abb43cbc8 jt/http-fetch-trace2-report-name later to maint). * The output from "git diff --stat" on an unmerged path lost the terminating LF in Git 2.39, which has been corrected. (merge 209d9cb011 pg/diff-stat-unmerged-regression-fix later to maint). * "git pull -v --recurse-submodules" attempted to pass "-v" down to underlying "git submodule update", which did not understand the request and barfed, which has been corrected. (merge 6f65f84766 ss/pull-v-recurse-fix later to maint). * When given a pattern that matches an empty string at the end of a line, the code to parse the "git diff" line-ranges fell into an infinite loop, which has been corrected. * Fix the sequence to fsync $GIT_DIR/packed-refs file that forgot to flush its output to the disk.. * Fix to a small regression in 2.38 days. * "git diff --relative" did not mix well with "git diff --ext-diff", which has been corrected. * The logic to see if we are using the "cone" mode by checking the sparsity patterns has been tightened to avoid mistaking a pattern that names a single file as specifying a cone. * Deal with a few deprecation warning from cURL library. * Doc update for environment variables set when hooks are invoked. * Document ORIG_HEAD a bit more. * "git ls-tree --format='%(path) %(path)' $tree $path" showed the path three times, which has been corrected. * Remove "git env--helper" and demote it to a test-tool subcommand. (merge 4a1baacd46 ab/test-env-helper later to maint). * Newer regex library macOS stopped enabling GNU-like enhanced BRE, where '\(A\|B\)' works as alternation, unless explicitly asked with the REG_ENHANCED flag. "git grep" now can be compiled to do so, to retain the old behaviour. * Pthread emulation on Win32 leaked thread handle when a thread is joined. (merge 238a9dfe86 sk/win32-close-handle-upon-pthread-join later to maint). * "git send-email -v 3" used to be expanded to "git send-email --validate 3" when the user meant to pass them down to "format-patch", which has been corrected. (merge 8774aa56ad km/send-email-with-v-reroll-count later to maint). * Document that "branch -f " disables only the safety to avoid recreating an existing branch. * "git fetch ", when "" of remotes lists the same remote twice, unnecessarily failed when parallel fetching was enabled, which has been corrected. (merge 06a668cb90 cw/fetch-remote-group-with-duplication later to maint). * Clarify how "checkout -b/-B" and "git branch [-f]" are similar but different in the documentation. * "git hash-object" now checks that the resulting object is well formed with the same code as "git fsck". (merge 8e4309038f jk/hash-object-fsck later to maint). * Improve the error message given when private key is not loaded in the ssh agent in the codepath to sign with an ssh key. (merge dce7b31126 as/ssh-signing-improve-key-missing-error later to maint). * Adjust "git request-pull" to strip embedded signature from signed tags to notice non-PGP signatures. (merge a9cad02538 gm/request-pull-with-non-pgp-signed-tags later to maint). * Remove support for MSys, which now lags way behind MSys2. (merge 2987407f3c hj/remove-msys-support later to maint). * Fix use of CreateThread() API call made early in the windows start-up code. (merge 592bcab61b sk/winansi-createthread-fix later to maint). * "git pack-objects" learned to release delta-island bitmap data when it is done using it, saving peak heap memory usage. (merge 647982bb71 ew/free-island-marks later to maint). * In an environment where dynamically generated code is prohibited to run (e.g. SELinux), failure to JIT pcre patterns is expected. Fall back to interpreted execution in such a case. (merge 50b6ad55b0 cb/grep-fallback-failing-jit later to maint). * "git name-rev" heuristics update. (merge b2182a8730 en/name-rev-make-taggerdate-much-less-important later to maint). * Remove more remaining uses of macros that relies on the_index singleton instance without explicitly spelling it out. * Remove unnecessary explicit sizing of strbuf. (merge 93ea118bed rs/cache-tree-strbuf-growth-fix later to maint). * Doc update. (merge d9ec3b0dc0 jk/doc-ls-remote-matching later to maint). * Error messages given upon a signature verification failure used to discard the errors from underlying gpg program, which has been corrected. (merge ad6b320756 js/gpg-errors later to maint). * Update --date=default documentation. (merge 9deef088ae rd/doc-default-date-format later to maint). * A test helper had a single write(2) of 256kB, which was too big for some platforms (e.g. NonStop), which has been corrected by using xwrite() wrapper appropriately. (merge 58eab6ff13 jc/genzeros-avoid-raw-write later to maint). * sscanf(3) used in "git symbolic-ref --short" implementation found to be not working reliably on macOS in UTF-8 locales. Rewrite the code to avoid sscanf() altogether to work it around. (merge 613bef56b8 jk/shorten-unambiguous-ref-wo-sscanf later to maint). * Various fix-ups on HTTP tests. (merge 8f2146dbf1 jk/http-test-fixes later to maint). * Fixes to code that parses the todo file used in "rebase -i". (merge 666b6e1135 pw/rebase-i-parse-fix later to maint). * Test library clean-up. (merge c600a91c94 ar/test-lib-remove-stale-comment later to maint). * Other code cleanup, docfix, build fix, etc. (merge 4eb1ccecd4 dh/mingw-ownership-check-typofix later to maint). (merge f95526419b ar/typofix-gitattributes-doc later to maint). (merge 27875aeec9 km/doc-branch-start-point later to maint). (merge 35c194dc57 es/t1509-root-fixes later to maint). (merge 7b341645e3 pw/ci-print-failure-name-fix later to maint). (merge bcb71d45bf jx/t1301-updates later to maint). (merge ebdc46c242 jc/doc-diff-patch.txt later to maint). (merge a87a20cbb4 ar/test-cleanup later to maint). (merge f5156f1885 ar/bisect-doc-update later to maint). (merge fca2d86c97 jk/interop-error later to maint). (merge cf4936ed74 tl/ls-tree-code-clean-up later to maint). (merge dcb47e52b0 en/t6426-todo-cleanup later to maint). (merge 5b8db44bdd jc/format-patch-v-unleak later to maint). (merge 590b636737 jk/hash-object-literally-fd-leak later to maint). (merge 5458ba0a4d tb/t0003-invoke-dd-more-portably later to maint). (merge 70661d288b ar/markup-em-dash later to maint). (merge e750951e74 en/ls-files-doc-update later to maint). (merge 4f542975d1 mh/doc-credential-cache-only-in-core later to maint). (merge 3a2ebaebc7 gc/index-format-doc later to maint). (merge b08edf709d jk/httpd-test-updates later to maint). (merge d85e9448dd wl/new-command-doc later to maint). (merge d912a603ed kf/t5000-modernise later to maint). (merge e65b868d07 rs/size-t-fixes later to maint). (merge 3eb1e1ca9a ab/config-h-remove-unused later to maint). (merge d390e08076 cw/doc-pushurl-vs-url later to maint). (merge 567342fc77 rs/ctype-test later to maint). (merge d35d8f2e7a ap/t2015-style-update later to maint). @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.39 2022/10/21 17:31:18 schmonz Exp $ d235 1 d253 1 @ 1.39 log @Install the zsh completion to site-functions. Bump PKGREVISION. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.38 2022/10/07 10:10:05 adam Exp $ a29 1 libexec/git-core/git-add--interactive a35 1 libexec/git-core/git-bisect--helper a73 1 libexec/git-core/git-env--helper @ 1.38 log @git: updated to 2.38.0 Git v2.38 Release Notes ======================= UI, Workflows & Features * "git remote show [-n] frotz" now pays attention to negative pathspec. * "git push" sometimes performs poorly when reachability bitmaps are used, even in a repository where other operations are helped by bitmaps. The push.useBitmaps configuration variable is introduced to allow disabling use of reachability bitmaps only for "git push". * "git grep -m" is a way to limit the hits shown per file. * "git merge-tree" learned a new mode where it takes two commits and computes a tree that would result in the merge commit, if the histories leading to these two commits were to be merged. * "git mv A B" in a sparsely populated working tree can be asked to move a path between directories that are "in cone" (i.e. expected to be materialized in the working tree) and "out of cone" (i.e. expected to be hidden). The handling of such cases has been improved. * Earlier, HTTP transport clients learned to tell the server side what locale they are in by sending Accept-Language HTTP header, but this was done only for some requests but not others. * Introduce a safe.barerepository configuration variable that allows users to forbid discovery of bare repositories. * Various messages that come from the pack-bitmap codepaths have been tweaked. * "git rebase -i" learns to update branches whose tip appear in the rebased range with "--update-refs" option. * "git ls-files" learns the "--format" option to tweak its output. * "git cat-file" learned an option to use the mailmap when showing commit and tag objects. * When "git merge" finds that it cannot perform a merge, it should restore the working tree to the state before the command was initiated, but in some corner cases it didn't. * Operating modes like "--batch" of "git cat-file" command learned to take NUL-terminated input, instead of one-item-per-line. * "git rm" has become more aware of the sparse-index feature. * "git rev-list --disk-usage" learned to take an optional value "human" to show the reported value in human-readable format, like "3.40MiB". * The "diagnose" feature to create a zip archive for diagnostic material has been lifted from "scalar" and made into a feature of "git bugreport". * The namespaces used by "log --decorate" from "refs/" hierarchy by default has been tightened. * "git rev-list --ancestry-path=C A..B" is a natural extension of "git rev-list A..B"; instead of choosing a subset of A..B to those that have ancestry relationship with A, it lets a subset with ancestry relationship with C. * "scalar" now enables built-in fsmonitor on enlisted repositories, when able. * The bash prompt (in contrib/) learned to optionally indicate when the index is unmerged. * "git clone" command learned the "--bundle-uri" option to coordinate with hosting sites the use of pre-prepared bundle files. * "git range-diff" learned to honor pathspec argument if given. * "git format-patch --from=" can be told to add an in-body "From:" line even for commits that are authored by the given with "--force-in-body-from" option. * The built-in fsmonitor refuses to work on a network mounted repositories; a configuration knob for users to override this has been introduced. * The "scalar" addition from Microsoft is now part of the core Git installation. Performance, Internal Implementation, Development Support etc. * Collection of what is referenced by objects in promisor packs have been optimized to inspect these objects in the in-pack order. * Introduce a helper to see if a branch is already being worked on (hence should not be newly checked out in a working tree), which performs much better than the existing find_shared_symref() to replace many uses of the latter. * Teach "git archive" to (optionally and then by default) avoid spawning an external "gzip" process when creating ".tar.gz" (and ".tgz") archives. * Allow large objects read from a packstream to be streamed into a loose object file straight, without having to keep it in-core as a whole. * Further preparation to turn git-submodule.sh into a builtin continues. * Apply Coccinelle rule to turn raw memmove() into MOVE_ARRAY() cpp macro, which would improve maintainability and readability. * Teach "make all" to build gitweb as well. * Tweak tests so that they still work when the "git init" template did not create .git/info directory. * Add Coccinelle rules to detect the pattern of initializing and then finalizing a structure without using it in between at all, which happens after code restructuring and the compilers fail to recognize as an unused variable. * The code to convert between GPG trust level strings and internal constants we use to represent them have been cleaned up. * Support for libnettle as SHA256 implementation has been added. * The way "git multi-pack" uses parse-options API has been improved. * A Coccinelle rule (in contrib/) to encourage use of COPY_ARRAY macro has been improved. * API tweak to make it easier to run fuzz testing on commit-graph parser. * Omit fsync-related trace2 entries when their values are all zero. * The codepath to write multi-pack index has been taught to release a large chunk of memory that holds an array of objects in the packs, as soon as it is done with the array, to reduce memory consumption. * Add a level of redirection to array allocation API in xdiff part, to make it easier to share with the libgit2 project. * "git fetch" client logs the partial clone filter used in the trace2 output. * The "bundle URI" design gets documented. * The common ancestor negotiation exchange during a "git fetch" session now leaves trace log. * Test portability improvements. (merge 4d1d843be7 mt/rot13-in-c later to maint). * The "subcommand" mode is introduced to parse-options API and update the command line parser of Git commands with subcommands. * The pack bitmap file gained a bitmap-lookup table to speed up locating the necessary bitmap for a given commit. * The assembly version of SHA-1 implementation for PPC has been removed. * The server side that responds to "git fetch" and "git clone" request has been optimized by allowing it to send objects in its object store without recomputing and validating the object names. * Annotate function parameters that are not used (but cannot be removed for structural reasons), to prepare us to later compile with -Wunused warning turned on. * Share the text used to explain configuration variables used by "git " in "git help " with the text from "git help config". * "git mv A B" in a sparsely populated working tree can be asked to move a path from a directory that is "in cone" to another directory that is "out of cone". Handling of such a case has been improved. * The chainlint script for our tests has been revamped. Fixes since v2.37 ----------------- * Rewrite of "git add -i" in C that appeared in Git 2.25 didn't correctly record a removed file to the index, which was fixed. * Certain diff options are currently ignored when combined-diff is shown; mark them as incompatible with the feature. * Adjust technical/bitmap-format to be formatted by AsciiDoc, and add some missing information to the documentation. * Fixes for tests when the source directory has unusual characters in its path, e.g. whitespaces, double-quotes, etc. * "git mktree --missing" lazily fetched objects that are missing from the local object store, which was totally unnecessary for the purpose of creating the tree object(s) from its input. * Give _() markings to fatal/warning/usage: labels that are shown in front of these messages. * References to commands-to-be-typed-literally in "git rebase" documentation mark-up have been corrected. * In a non-bare repository, the behavior of Git when the core.worktree configuration variable points at a directory that has a repository as its subdirectory, regressed in Git 2.27 days. * Recent update to vimdiff layout code has been made more robust against different end-user vim settings. * Plug various memory leaks, both in the main code and in test-tool commands. * Fixes a long-standing corner case bug around directory renames in the merge-ort strategy. * The resolve-undo information in the index was not protected against GC, which has been corrected. * A corner case bug where lazily fetching objects from a promisor remote resulted in infinite recursion has been corrected. * "git clone" from a repository with some ref whose HEAD is unborn did not set the HEAD in the resulting repository correctly, which has been corrected. * An earlier attempt to plug leaks placed a clean-up label to jump to at a bogus place, which as been corrected. * Variable quoting fix in the vimdiff driver of "git mergetool" * "git shortlog -n" relied on the underlying qsort() to be stable, which shouldn't have. Fixed. * A fix for a regression in test framework. * mkstemp() emulation on Windows has been improved. * Add missing documentation for "include" and "includeIf" features in "git config" file format, which incidentally teaches the command line completion to include them in its offerings. * Avoid "white/black-list" in documentation and code comments. * Workaround for a compiler warning against use of die() in osx-keychain (in contrib/). * Workaround for a false positive compiler warning. * "git p4" working on UTF-16 files on Windows did not implement CRLF-to-LF conversion correctly, which has been corrected. * "git p4" did not handle non-ASCII client name well, which has been corrected. * "rerere-train" script (in contrib/) used to honor commit.gpgSign while recreating the throw-away merges. * "git checkout" miscounted the paths it updated, which has been corrected. * Fix for a bug that makes write-tree to fail to write out a non-existent index as a tree, introduced in 2.37. * There was a bug in the codepath to upgrade generation information in commit-graph from v1 to v2 format, which has been corrected. * Gitweb had legacy URL shortener that is specific to the way projects hosted on kernel.org used to (but no longer) work, which has been removed. * Fix build procedure for Windows that uses CMake so that it can pick up the shell interpreter from local installation location. * Conditionally allow building Python interpreter on Windows * Fix to lstat() emulation on Windows. * Older gcc with -Wall complains about the universal zero initializer "struct s = { 0 };" idiom, which makes developers' lives inconvenient (as -Werror is enabled by DEVELOPER=YesPlease). The build procedure has been tweaked to help these compilers. * Plug memory leaks in the failure code path in the "merge-ort" merge strategy backend. * "git symbolic-ref symref non..sen..se" is now diagnosed as an error. * A follow-up fix to a fix for a regression in 2.36 around hooks. * Avoid repeatedly running getconf to ask libc version in the test suite, and instead just as it once per script. * Platform-specific code that determines if a directory is OK to use as a repository has been taught to report more details, especially on Windows. * "vimdiff3" regression fix. * "git fsck" reads mode from tree objects but canonicalizes the mode before passing it to the logic to check object sanity, which has hid broken tree objects from the checking logic. This has been corrected, but to help existing projects with broken tree objects that they cannot fix retroactively, the severity of anomalies this code detects has been demoted to "info" for now. * Fixes to sparse index compatibility work for "reset" and "checkout" commands. * An earlier optimization discarded a tree-object buffer that is still in use, which has been corrected. * Fix deadlocks between main Git process and subprocess spawned via the pipe_command() API, that can kill "git add -p" that was reimplemented in C recently. * The sequencer machinery translated messages left in the reflog by mistake, which has been corrected. * xcalloc(), imitating calloc(), takes "number of elements of the array", and "size of a single element", in this order. A call that does not follow this ordering has been corrected. * The preload-index codepath made copies of pathspec to give to multiple threads, which were left leaked. * Update the version of Ubuntu used for GitHub Actions CI from 18.04 to 22.04. * The auto-stashed local changes created by "git merge --autostash" was mixed into a conflicted state left in the working tree, which has been corrected. * Multi-pack index got corrupted when preferred pack changed from one pack to another in a certain way, which has been corrected. (merge 99e4d084ff tb/midx-with-changing-preferred-pack-fix later to maint). * The clean-up of temporary files created via mks_tempfile_dt() was racy and attempted to unlink() the leading directory when signals are involved, which has been corrected. (merge babe2e0559 rs/tempfile-cleanup-race-fix later to maint). * FreeBSD portability fix for "git maintenance" that spawns "crontab" to schedule tasks. (merge ee69e7884e bc/gc-crontab-fix later to maint). * Those who use diff-so-fancy as the diff-filter noticed a regression or two in the code that parses the diff output in the built-in version of "add -p", which has been corrected. (merge 0a101676e5 js/add-p-diff-parsing-fix later to maint). * Segfault fix-up to an earlier fix to the topic to teach "git reset" and "git checkout" work better in a sparse checkout. (merge 037f8ea6d9 vd/sparse-reset-checkout-fixes later to maint). * "git diff --no-index A B" managed its the pathnames of its two input files rather haphazardly, sometimes leaking them. The command line argument processing has been straightened out to clean it up. (merge 2b43dd0eb5 rs/diff-no-index-cleanup later to maint). * "git rev-list --verify-objects" ought to inspect the contents of objects and notice corrupted ones, but it didn't when the commit graph is in use, which has been corrected. (merge b27ccae34b jk/rev-list-verify-objects-fix later to maint). * More fixes to "add -p" (merge 64ec8efb83 js/builtin-add-p-portability-fix later to maint). * The parser in the script interface to parse-options in "git rev-parse" has been updated to diagnose a bogus input correctly. (merge f20b9c36d0 ow/rev-parse-parseopt-fix later to maint). * The code that manages list-object-filter structure, used in partial clones, leaked the instances, which has been plugged. (merge 66eede4a37 jk/plug-list-object-filter-leaks later to maint). * Fix another UI regression in the reimplemented "add -p". (merge f6f0ee247f rs/add-p-worktree-mode-prompt-fix later to maint). * "git fetch" over protocol v2 sent an incorrect ref prefix request to the server and made "git pull" with configured fetch refspec that does not cover the remote branch to merge with fail, which has been corrected. (merge 49ca2fba39 jk/proto-v2-ref-prefix-fix later to maint). * A result from opendir() was leaking in the commit-graph expiration codepath, which has been plugged. (merge 12f1ae5324 ml/commit-graph-expire-dir-leak-fix later to maint). * Just like we have coding guidelines, we now have guidelines for reviewers. (merge e01b851923 vd/doc-reviewing-guidelines later to maint). * Other code cleanup, docfix, build fix, etc. (merge 77b9e85c0f vd/fix-perf-tests later to maint). (merge 0682bc43f5 jk/test-crontab-fixes later to maint). (merge b46dd1726c cc/doc-trailer-whitespace-rules later to maint). @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.37 2022/05/03 01:26:55 gutteridge Exp $ d258 1 @ 1.37 log @git: update to 2.36.0 Git 2.36 Release Notes ====================== Updates since Git 2.35 ---------------------- Backward compatibility warts * "git name-rev --stdin" has been deprecated and issues a warning when used; use "git name-rev --annotate-stdin" instead. * "git clone --filter=... --recurse-submodules" only makes the top-level a partial clone, while submodules are fully cloned. This behaviour is changed to pass the same filter down to the submodules. * With the fixes for CVE-2022-24765 that are common with versions of Git 2.30.4, 2.31.3, 2.32.2, 2.33.3, 2.34.3, and 2.35.3, Git has been taught not to recognise repositories owned by other users, in order to avoid getting affected by their config files and hooks. You can list the path to the safe/trusted repositories that may be owned by others on a multi-valued configuration variable `safe.directory` to override this behaviour, or use '*' to declare that you trust anything. Note to those who build from the source * Since Git 2.31, our source assumed that the compiler you use to build Git supports variadic macros, with an easy-to-use escape hatch to allow compilation without variadic macros with an request to report that you had to use the escape hatch to the list. Because we haven't heard from anybody who actually needed to use the escape hatch, it has been removed, making support of variadic macros a hard requirement. UI, Workflows & Features * Assorted updates to "git cat-file", especially "-h". * The command line completion (in contrib/) learns to complete arguments to give to "git sparse-checkout" command. * "git log --remerge-diff" shows the difference from mechanical merge result and the result that is actually recorded in a merge commit. * "git log" and friends learned an option --exclude-first-parent-only to propagate UNINTERESTING bit down only along the first-parent chain, just like --first-parent option shows commits that lack the UNINTERESTING bit only along the first-parent chain. * The command line completion script (in contrib/) learned to complete all Git subcommands, including the ones that are normally hidden, when GIT_COMPLETION_SHOW_ALL_COMMANDS is used. * "git branch" learned the "--recurse-submodules" option. * A user can forget to make a script file executable before giving it to "git bisect run". In such a case, all tests will exit with 126 or 127 error codes, even on revisions that are marked as good. Try to recognize this situation and stop iteration early. * When "index-pack" dies due to incoming data exceeding the maximum allowed input size, include the value of the limit in the error message. * The error message given by "git switch HEAD~4" has been clarified to suggest the "--detach" option that is required. * In sparse-checkouts, files mis-marked as missing from the working tree could lead to later problems. Such files were hard to discover, and harder to correct. Automatically detecting and correcting the marking of such files has been added to avoid these problems. * "git cat-file" learns "--batch-command" mode, which is a more flexible interface than the existing "--batch" or "--batch-check" modes, to allow different kinds of inquiries made. * The level of verbose output from the ort backend during inner merge has been aligned to that of the recursive backend. * "git remote rename A B", depending on the number of remote-tracking refs involved, takes long time renaming them. The command has been taught to show progress bar while making the user wait. * Bundle file format gets extended to allow a partial bundle, filtered by similar criteria you would give when making a partial/lazy clone. * A new built-in userdiff driver for kotlin has been added. * "git repack" learned a new configuration to disable triggering of age-old "update-server-info" command, which is rarely useful these days. * "git stash" does not allow subcommands it internally runs as its implementation detail, except for "git reset", to emit messages; now "git reset" part has also been squelched. * "git ls-tree" learns "--oid-only" option, similar to "--name-only", and more generalized "--format" option. * "git fetch --refetch" learned to fetch everything without telling the other side what we already have, which is useful when you cannot trust what you have in the local object store. * "git branch" gives hint when branch tracking cannot be established because fetch refspecs from multiple remote repositories overlap. * "git worktree list --porcelain" did not c-quote pathnames and lock reasons with unsafe bytes correctly, which is worked around by introducing NUL terminated output format with "-z". Performance, Internal Implementation, Development Support etc. * "git apply" (ab)used the util pointer of the string-list to keep track of how each symbolic link needs to be handled, which has been simplified by using strset. * Fix a hand-rolled alloca() imitation that may have violated alignment requirement of data being sorted in compatibility implementation of qsort_s() and stable qsort(). * Use the parse-options API in "git reflog" command. * The conditional inclusion mechanism of configuration files using "[includeIf ]" learns to base its decision on the URL of the remote repository the repository interacts with. (merge 399b198489 jt/conditional-config-on-remote-url later to maint). * "git name-rev --stdin" does not behave like usual "--stdin" at all. Start the process of renaming it to "--annotate-stdin". (merge a2585719b3 jc/name-rev-stdin later to maint). * "git update-index", "git checkout-index", and "git clean" are taught to work better with the sparse checkout feature. * Use an internal call to reset_head() helper function instead of spawning "git checkout" in "rebase", and update code paths that are involved in the change. * Messages "ort" merge backend prepares while dealing with conflicted paths were unnecessarily confusing since it did not differentiate inner merges and outer merges. * Small modernization of the rerere-train script (in contrib/). * Use designated initializers we started using in mid 2017 in more parts of the codebase that are relatively quiescent. * Improve failure case behaviour of xdiff library when memory allocation fails. * General clean-up in reftable implementation, including clarification of the API documentation, tightening the code to honor documented length limit, etc. * Remove the escape hatch we added when we introduced the weather balloon to use variadic macros unconditionally, to make it official that we now have a hard dependency on the feature. * Makefile refactoring with a bit of suffixes rule stripping to optimize the runtime overhead. * "git stash drop" is reimplemented as an internal call to reflog_delete() function, instead of invoking "git reflog delete" via run_command() API. * Count string_list items in size_t, not "unsigned int". * The single-key interactive operation used by "git add -p" has been made more robust. * Remove unneeded from gitweb output. * "git name-rev" learned to use the generation numbers when setting the lower bound of searching commits used to explain the revision, when available, instead of committer time. * Replace core.fsyncObjectFiles with two new configuration variables, core.fsync and core.fsyncMethod. * Updates to refs traditionally weren't fsync'ed, but we can configure using core.fsync variable to do so. * "git reflog" command now uses parse-options API to parse its command line options. Fixes since v2.35 ----------------- * "rebase" and "stash" in secondary worktrees are broken in Git 2.35.0, which has been corrected. * "git pull --rebase" ignored the rebase.autostash configuration variable when the remote history is a descendant of our history, which has been corrected. (merge 3013d98d7a pb/pull-rebase-autostash-fix later to maint). * "git update-index --refresh" has been taught to deal better with racy timestamps (just like "git status" already does). (merge 2ede073fd2 ms/update-index-racy later to maint). * Avoid tests that are run under GIT_TRACE2 set from failing unnecessarily. (merge 944d808e42 js/test-unset-trace2-parents later to maint). * The merge-ort misbehaved when merge.renameLimit configuration is set too low and failed to find all renames. (merge 9ae39fef7f en/merge-ort-restart-optim-fix later to maint). * We explain that revs come first before the pathspec among command line arguments, but did not spell out that dashed options come before other args, which has been corrected. (merge c11f95010c tl/doc-cli-options-first later to maint). * "git add -p" rewritten in C regressed hunk splitting in some cases, which has been corrected. (merge 7008ddc645 pw/add-p-hunk-split-fix later to maint). * "git fetch --negotiate-only" is an internal command used by "git push" to figure out which part of our history is missing from the other side. It should never recurse into submodules even when fetch.recursesubmodules configuration variable is set, nor it should trigger "gc". The code has been tightened up to ensure it only does common ancestry discovery and nothing else. (merge de4eaae63a gc/fetch-negotiate-only-early-return later to maint). * The code path that verifies signatures made with ssh were made to work better on a system with CRLF line endings. (merge caeef01ea7 fs/ssh-signing-crlf later to maint). * "git sparse-checkout init" failed to write into $GIT_DIR/info directory when the repository was created without one, which has been corrected to auto-create it. (merge 7f44842ac1 jt/sparse-checkout-leading-dir-fix later to maint). * Cloning from a repository that does not yet have any branches or tags but has other refs resulted in a "remote transport reported error", which has been corrected. (merge dccea605b6 jt/clone-not-quite-empty later to maint). * Mark in various places in the code that the sparse index and the split index features are mutually incompatible. (merge 451b66c533 js/sparse-vs-split-index later to maint). * Update the logic to compute alignment requirement for our mem-pool. (merge e38bcc66d8 jc/mem-pool-alignment later to maint). * Pick a better random number generator and use it when we prepare temporary filenames. (merge 47efda967c bc/csprng-mktemps later to maint). * Update the contributor-facing documents on proposed log messages. (merge cdba0295b0 jc/doc-log-messages later to maint). * When "git fetch --prune" failed to prune the refs it wanted to prune, the command issued error messages but exited with exit status 0, which has been corrected. (merge c9e04d905e tg/fetch-prune-exit-code-fix later to maint). * Problems identified by Coverity in the reftable code have been corrected. (merge 01033de49f hn/reftable-coverity-fixes later to maint). * A bug that made multi-pack bitmap and the object order out-of-sync, making the .midx data corrupt, has been fixed. (merge f8b60cf99b tb/midx-bitmap-corruption-fix later to maint). * The build procedure has been taught to notice older version of zlib and enable our replacement uncompress2() automatically. (merge 07564773c2 ab/auto-detect-zlib-compress2 later to maint). * Interaction between fetch.negotiationAlgorithm and feature.experimental configuration variables has been corrected. (merge 714edc620c en/fetch-negotiation-default-fix later to maint). * "git diff --diff-filter=aR" is now parsed correctly. (merge 75408ca949 js/diff-filter-negation-fix later to maint). * When "git subtree" wants to create a merge, it used "git merge" and let it be affected by end-user's "merge.ff" configuration, which has been corrected. (merge 9158a3564a tk/subtree-merge-not-ff-only later to maint). * Unlike "git apply", "git patch-id" did not handle patches with hunks that has only 1 line in either preimage or postimage, which has been corrected. (merge 757e75c81e jz/patch-id-hunk-header-parsing-fix later to maint). * "receive-pack" checks if it will do any ref updates (various conditions could reject a push) before received objects are taken out of the temporary directory used for quarantine purposes, so that a push that is known-to-fail will not leave crufts that a future "gc" needs to clean up. (merge 5407764069 cb/clear-quarantine-early-on-all-ref-update-errors later to maint). * When there is no object to write .bitmap file for, "git multi-pack-index" triggered an error, instead of just skipping, which has been corrected. (merge eb57277ba3 tb/midx-no-bitmap-for-no-objects later to maint). * "git cmd -h" outside a repository should error out cleanly for many commands, but instead it hit a BUG(), which has been corrected. (merge 87ad07d735 js/short-help-outside-repo-fix later to maint). * "working tree" and "per-worktree ref" were in glossary, but "worktree" itself wasn't, which has been corrected. (merge 2df5387ed0 jc/glossary-worktree later to maint). * L10n support for a few error messages. (merge 3d3c23b3a7 bs/forbid-i18n-of-protocol-token-in-fetch-pack later to maint). * Test modernization. (merge d4fe066e4b sy/t0001-use-path-is-helper later to maint). * "git log --graph --graph" used to leak a graph structure, and there was no way to countermand "--graph" that appear earlier on the command line. A "--no-graph" option has been added and resource leakage has been plugged. * Error output given in response to an ambiguous object name has been improved. (merge 3a73c1dfaf ab/ambiguous-object-name later to maint). * "git sparse-checkout" wants to work with per-worktree configuration, but did not work well in a worktree attached to a bare repository. (merge 3ce1138272 ds/sparse-checkout-requires-per-worktree-config later to maint). * Setting core.untrackedCache to true failed to add the untracked cache extension to the index. * Workaround we have for versions of PCRE2 before their version 10.36 were in effect only for their versions newer than 10.36 by mistake, which has been corrected. (merge 97169fc361 rs/pcre-invalid-utf8-fix-fix later to maint). * Document Taylor as a new member of Git PLC at SFC. Welcome. (merge e8d56ca863 tb/coc-plc-update later to maint). * "git checkout -b branch/with/multi/level/name && git stash" only recorded the last level component of the branch name, which has been corrected. * Check the return value from parse_tree_indirect() to turn segfaults into calls to die(). (merge 8d2eaf649a gc/parse-tree-indirect-errors later to maint). * Newer version of GPGSM changed its output in a backward incompatible way to break our code that parses its output. It also added more processes our tests need to kill when cleaning up. Adjustments have been made to accommodate these changes. (merge b0b70d54c4 fs/gpgsm-update later to maint). * The untracked cache newly computed weren't written back to the on-disk index file when there is no other change to the index, which has been corrected. * "git config -h" did not describe the "--type" option correctly. (merge 5445124fad mf/fix-type-in-config-h later to maint). * The way generation number v2 in the commit-graph files are (not) handled has been corrected. (merge 6dbf4b8172 ds/commit-graph-gen-v2-fixes later to maint). * The method to trigger malloc check used in our tests no longer work with newer versions of glibc. (merge baedc59543 ep/test-malloc-check-with-glibc-2.34 later to maint). * When "git fetch --recurse-submodules" grabbed submodule commits that would be needed to recursively check out newly fetched commits in the superproject, it only paid attention to submodules that are in the current checkout of the superproject. We now do so for all submodules that have been run "git submodule init" on. * "git rebase $base $non_branch_commit", when $base is an ancestor or the $non_branch_commit, modified the current branch, which has been corrected. * When "shallow" information is updated, we forgot to update the in-core equivalent, which has been corrected. * When creating a loose object file, we didn't report the exact filename of the file we failed to fsync, even though the information was readily available, which has been corrected. * "git am" can read from the standard input when no mailbox is given on the command line, but the end-user gets no indication when it happens, making Git appear stuck. (merge 7b20af6a06 jc/mailsplit-warn-on-tty later to maint). * "git mv" failed to refresh the cached stat information for the entry it moved. (merge b7f9130a06 vd/mv-refresh-stat later to maint). @ text @d1 1 a1 1 @@comment $NetBSD$ d8 1 d69 1 d194 1 d222 1 @ 1.36 log @git: updated to 2.34.0 Git 2.34 Release Notes ====================== Updates since Git 2.33 ---------------------- Backward compatibility notes * The "--preserve-merges" option of "git rebase" has been removed. UI, Workflows & Features * Pathname expansion (like "~username/") learned a way to specify a location relative to Git installation (e.g. its $sharedir which is $(prefix)/share), with "%(prefix)". * The `ort` strategy is used instead of `recursive` as the default merge strategy. * The userdiff pattern for "java" language has been updated. * "git rebase" by default skips changes that are equivalent to commits that are already in the history the branch is rebased onto; give messages when this happens to let the users be aware of skipped commits, and also teach them how to tell "rebase" to keep duplicated changes. * The advice message that "git cherry-pick" gives when it asks conflicted replay of a commit to be resolved by the end user has been updated. * After "git clone --recurse-submodules", all submodules are cloned but they are not by default recursed into by other commands. With submodule.stickyRecursiveClone configuration set, submodule.recurse configuration is set to true in a repository created by "clone" with "--recurse-submodules" option. * The logic for auto-correction of misspelt subcommands learned to go interactive when the help.autocorrect configuration variable is set to 'prompt'. * "git maintenance" scheduler learned to use systemd timers as a possible backend. * "git diff --submodule=diff" showed failure from run_command() when trying to run diff inside a submodule, when the user manually removes the submodule directory. * "git bundle unbundle" learned to show progress display. * In cone mode, the sparse-index code path learned to remove ignored files (like build artifacts) outside the sparse cone, allowing the entire directory outside the sparse cone to be removed, which is especially useful when the sparse patterns change. * Taking advantage of the CGI interface, http-backend has been updated to enable protocol v2 automatically when the other side asks for it. * The credential-cache helper has been adjusted to Windows. * The error in "git help no-such-git-command" is handled better. * The unicode character width table (used for output alignment) has been updated. * The ref iteration code used to optionally allow dangling refs to be shown, which has been tightened up. * "git add", "git mv", and "git rm" have been adjusted to avoid updating paths outside of the sparse-checkout definition unless the user specifies a "--sparse" option. * "git repack" has been taught to generate multi-pack reachability bitmaps. * "git fsck" has been taught to report mismatch between expected and actual types of an object better. * In addition to GnuPG, ssh public crypto can be used for object and push-cert signing. Note that this feature cannot be used with ssh-keygen from OpenSSH 8.7, whose support for it is broken. Avoid using it unless you update to OpenSSH 8.8. * "git log --grep=string --author=name" learns to highlight hits just like "git grep string" does. Performance, Internal Implementation, Development Support etc. * "git bisect" spawned "git show-branch" only to pretty-print the title of the commit after checking out the next version to be tested; this has been rewritten in C. * "git add" can work better with the sparse index. * Support for ancient versions of cURL library (pre 7.19.4) has been dropped. * A handful of tests that assumed implementation details of files backend for refs have been cleaned up. * trace2 logs learned to show parent process name to see in what context Git was invoked. * Loading of ref tips to prepare for common ancestry negotiation in "git fetch-pack" has been optimized by taking advantage of the commit graph when available. * Remind developers that the userdiff patterns should be kept simple and permissive, assuming that the contents they apply are always syntactically correct. * The current implementation of GIT_TEST_FAIL_PREREQS is broken in that checking for the lack of a prerequisite would not work. Avoid the use of "if ! test_have_prereq X" in a test script. * The revision traversal API has been optimized by taking advantage of the commit-graph, when available, to determine if a commit is reachable from any of the existing refs. * "git fetch --quiet" optimization to avoid useless computation of info that will never be displayed. * Callers from older advice_config[] based API has been updated to use the newer advice_if_enabled() and advice_enabled() API. * Teach "test_pause" and "debug" helpers to allow using the HOME and TERM environment variables the user usually uses. * "make INSTALL_STRIP=-s install" allows the installation step to use "install -s" to strip the binaries as they get installed. * Code that handles large number of refs in the "git fetch" code path has been optimized. * The reachability bitmap file used to be generated only for a single pack, but now we've learned to generate bitmaps for history that span across multiple packfiles. * The code to make "git grep" recurse into submodules has been updated to migrate away from the "add submodule's object store as an alternate object store" mechanism (which is suboptimal). * The tracing of process ancestry information has been enhanced. * Reduce number of write(2) system calls while sending the ref advertisement. * Update the build procedure to use the "-pedantic" build when DEVELOPER makefile macro is in effect. * Large part of "git submodule add" gets rewritten in C. * The run-command API has been updated so that the callers can easily ask the file descriptors open for packfiles to be closed immediately before spawning commands that may trigger auto-gc. * An oddball OPTION_ARGUMENT feature has been removed from the parse-options API. * The mergesort implementation used to sort linked list has been optimized. * Remove external declaration of functions that no longer exist. * "git multi-pack-index write --bitmap" learns to propagate the hashcache from original bitmap to resulting bitmap. * CI learns to run the leak sanitizer builds. * "git grep --recurse-submodules" takes trees and blobs from the submodule repository, but the textconv settings when processing a blob from the submodule is not taken from the submodule repository. A test is added to demonstrate the issue, without fixing it. * Teach "git help -c" into helping the command line completion of configuration variables. * When "git cmd -h" shows more than one line of usage text (e.g. the cmd subcommand may take sub-sub-command), parse-options API learned to align these lines, even across i18n/l10n. * Prevent "make sparse" from running for the source files that haven't been modified. * The code path to write a new version of .midx multi-pack index files has learned to release the mmaped memory holding the current version of .midx before removing them from the disk, as some platforms do not allow removal of a file that still has mapping. * A new feature has been added to abort early in the test framework. Fixes since v2.33 ----------------- * Input validation of "git pack-objects --stdin-packs" has been corrected. * Bugfix for common ancestor negotiation recently introduced in "git push" code path. * "git pull" had various corner cases that were not well thought out around its --rebase backend, e.g. "git pull --ff-only" did not stop but went ahead and rebased when the history on other side is not a descendant of our history. The series tries to fix them up. * "git apply" miscounted the bytes and failed to read to the end of binary hunks. * "git range-diff" code clean-up. * "git commit --fixup" now works with "--edit" again, after it was broken in v2.32. * Use upload-artifacts v1 (instead of v2) for 32-bit linux, as the new version has a blocker bug for that architecture. * Checking out all the paths from HEAD during the last conflicted step in "git rebase" and continuing would cause the step to be skipped (which is expected), but leaves MERGE_MSG file behind in $GIT_DIR and confuses the next "git commit", which has been corrected. * Various bugs in "git rebase -r" have been fixed. * mmap() imitation used to call xmalloc() that dies upon malloc() failure, which has been corrected to just return an error to the caller to be handled. * "git diff --relative" segfaulted and/or produced incorrect result when there are unmerged paths. * The delayed checkout code path in "git checkout" etc. were chatty even when --quiet and/or --no-progress options were given. * "git branch -D " used to refuse to remove a broken branch ref that points at a missing commit, which has been corrected. * Build update for Apple clang. * The parser for the "--nl" option of "git column" has been corrected. * "git upload-pack" which runs on the other side of "git fetch" forgot to take the ref namespaces into account when handling want-ref requests. * The sparse-index support can corrupt the index structure by storing a stale and/or uninitialized data, which has been corrected. * Buggy tests could damage repositories outside the throw-away test area we created. We now by default export GIT_CEILING_DIRECTORIES to limit the damage from such a stray test. * Even when running "git send-email" without its own threaded discussion support, a threading related header in one message is carried over to the subsequent message to result in an unwanted threading, which has been corrected. * The output from "git fast-export", when its anonymization feature is in use, showed an annotated tag incorrectly. * Recent "diff -m" changes broke "gitk", which has been corrected. * The "git apply -3" code path learned not to bother the lower level merge machinery when the three-way merge can be trivially resolved without the content level merge. This fixes a regression caused by recent "-3way first and fall back to direct application" change. * The code that optionally creates the *.rev reverse index file has been optimized to avoid needless computation when it is not writing the file out. * "git range-diff -I... " segfaulted, which has been corrected. * The order in which various files that make up a single (conceptual) packfile has been reevaluated and straightened up. This matters in correctness, as an incomplete set of files must not be shown to a running Git. * The "mode" word is useless in a call to open(2) that does not create a new file. Such a call in the files backend of the ref subsystem has been cleaned up. * "git update-ref --stdin" failed to flush its output as needed, which potentially led the conversation to a deadlock. * When "git am --abort" fails to abort correctly, it still exited with exit status of 0, which has been corrected. * Correct nr and alloc members of strvec struct to be of type size_t. * "git stash", where the tentative change involves changing a directory to a file (or vice versa), was confused, which has been corrected. * "git clone" from a repository whose HEAD is unborn into a bare repository didn't follow the branch name the other side used, which is corrected. * "git cvsserver" had a long-standing bug in its authentication code, which has finally been corrected (it is unclear and is a separate question if anybody is seriously using it, though). * "git difftool --dir-diff" mishandled symbolic links. * Sensitive data in the HTTP trace were supposed to be redacted, but we failed to do so in HTTP/2 requests. * "make clean" has been updated to remove leftover .depend/ directories, even when it is not told to use them to compute header dependencies. * Protocol v0 clients can get stuck parsing a malformed feature line. * A few kinds of changes "git status" can show were not documented. (merge d2a534c515 ja/doc-status-types-and-copies later to maint). * The mergesort implementation used to sort linked list has been optimized. (merge c90cfc225b rs/mergesort later to maint). * An editor session launched during a Git operation (e.g. during 'git commit') can leave the terminal in a funny state. The code path has updated to save the terminal state before, and restore it after, it spawns an editor. (merge 3d411afabc cm/save-restore-terminal later to maint). * "git cat-file --batch" with the "--batch-all-objects" option is supposed to iterate over all the objects found in a repository, but it used to translate these object names using the replace mechanism, which defeats the point of enumerating all objects in the repository. This has been corrected. (merge bf972896d7 jk/cat-file-batch-all-wo-replace later to maint). * Recent sparse-index work broke safety against attempts to add paths with trailing slashes to the index, which has been corrected. (merge c8ad9d04c6 rs/make-verify-path-really-verify-again later to maint). * The "--color-lines" and "--color-by-age" options of "git blame" have been missing, which are now documented. (merge 8c32856133 bs/doc-blame-color-lines later to maint). * The PATH used in CI job may be too wide and let incompatible dlls to be grabbed, which can cause the build&test to fail. Tighten it. (merge 7491ef6198 js/windows-ci-path-fix later to maint). * Avoid performance measurements from getting ruined by gc and other housekeeping pauses interfering in the middle. (merge be79131a53 rs/disable-gc-during-perf-tests later to maint). * Stop "git add --dry-run" from creating new blob and tree objects. (merge e578d0311d rs/add-dry-run-without-objects later to maint). * "git commit" gave duplicated error message when the object store was unwritable, which has been corrected. (merge 4ef91a2d79 ab/fix-commit-error-message-upon-unwritable-object-store later to maint). * Recent sparse-index addition, namely any use of index_name_pos(), can expand sparse index entries and breaks any code that walks cache-tree or existing index entries. One such instance of such a breakage has been corrected. * The xxdiff difftool backend can exit with status 128, which the difftool-helper that launches the backend takes as a significant failure, when it is not significant at all. Work it around. (merge 571f4348dd da/mergetools-special-case-xxdiff-exit-128 later to maint). * Improve test framework around unwritable directories. (merge 5d22e18965 ab/test-cleanly-recreate-trash-directory later to maint). * "git push" client talking to an HTTP server did not diagnose the lack of the final status report from the other side correctly, which has been corrected. (merge c5c3486f38 jk/http-push-status-fix later to maint). * Update "git archive" documentation and give explicit mention on the compression level for both zip and tar.gz format. (merge c4b208c309 bs/archive-doc-compression-level later to maint). * Drop "git sparse-checkout" from the list of common commands. (merge 6a9a50a8af sg/sparse-index-not-that-common-a-command later to maint). * "git branch -c/-m new old" was not described to copy config, which has been corrected. (merge 8252ec300e jc/branch-copy-doc later to maint). * Squelch over-eager warning message added during this cycle. * Fix long-standing shell syntax error in the completion script. (merge 46b0585286 re/completion-fix-test-equality later to maint). * Teach "git commit-graph" command not to allow using replace objects at all, as we do not use the commit-graph at runtime when we see object replacement. (merge 095d112f8c ab/ignore-replace-while-working-on-commit-graph later to maint). * "git pull --no-verify" did not affect the underlying "git merge". (merge 47bfdfb3fd ar/fix-git-pull-no-verify later to maint). * One CI task based on Fedora image noticed a not-quite-kosher construct recently, which has been corrected. * "git pull --ff-only" and "git pull --rebase --ff-only" should make it a no-op to attempt pulling from a remote that is behind us, but instead the command errored out by saying it was impossible to fast-forward, which may technically be true, but not a useful thing to diagnose as an error. This has been corrected. (merge 361cb52383 jc/fix-pull-ff-only-when-already-up-to-date later to maint). * The way Cygwin emulates a unix-domain socket, on top of which the simple-ipc mechanism is implemented, can race with the program on the other side that wants to use the socket, and briefly make it appear as a regular file before lstat(2) starts reporting it as a socket. We now have a workaround on the side that connects to a unix domain socket. * Other code cleanup, docfix, build fix, etc. (merge f188160be9 ab/bundle-remove-verbose-option later to maint). (merge 8c6b4332b4 rs/close-pack-leakfix later to maint). (merge 51b04c05b7 bs/difftool-msg-tweak later to maint). (merge dd20e4a6db ab/make-compdb-fix later to maint). (merge 6ffb990dc4 os/status-docfix later to maint). (merge 100c2da2d3 rs/p3400-lose-tac later to maint). (merge 76f3b69896 tb/aggregate-ignore-leading-whitespaces later to maint). (merge 6e4fd8bfcd tz/doc-link-to-bundle-format-fix later to maint). (merge f6c013dfa1 jc/doc-commit-header-continuation-line later to maint). (merge ec9a37d69b ab/pkt-line-cleanup later to maint). (merge 8650c6298c ab/fix-make-lint-docs later to maint). (merge 1c720357ce ab/test-lib-diff-cleanup later to maint). (merge 6b615dbece ks/submodule-add-message-fix later to maint). (merge 203eb8381a jc/doc-format-patch-clarify-auto-base later to maint). (merge 559664c792 ab/test-lib later to maint). @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.35 2021/06/13 18:36:31 adam Exp $ d86 1 d92 1 @ 1.35 log @git: updated to 2.32.0 Git 2.32 Release Notes ====================== Backward compatibility notes ---------------------------- * ".gitattributes", ".gitignore", and ".mailmap" files that are symbolic links are ignored. * "git apply --3way" used to first attempt a straight application, and only fell back to the 3-way merge algorithm when the stright application failed. Starting with this version, the command will first try the 3-way merge algorithm and only when it fails (either resulting with conflict or the base versions of blobs are missing), falls back to the usual patch application. Updates since v2.31 ------------------- UI, Workflows & Features * It does not make sense to make ".gitattributes", ".gitignore" and ".mailmap" symlinks, as they are supposed to be usable from the object store (think: bare repositories where HEAD:.mailmap etc. are used). When these files are symbolic links, we used to read the contents of the files pointed by them by mistake, which has been corrected. * "git stash show" learned to optionally show untracked part of the stash. * "git log --format='...'" learned "%(describe)" placeholder. * "git repack" so far has been only capable of repacking everything under the sun into a single pack (or split by size). A cleverer strategy to reduce the cost of repacking a repository has been introduced. * The http codepath learned to let the credential layer to cache the password used to unlock a certificate that has successfully been used. * "git commit --fixup=", which was to tweak the changes made to the contents while keeping the original log message intact, learned "--fixup=(amend|reword):", that can be used to tweak both the message and the contents, and only the message, respectively. * "git send-email" learned to honor the core.hooksPath configuration. * "git format-patch -v" learned to allow a reroll count that is not an integer. * "git commit" learned "--trailer [=]" option; together with the interpret-trailers command, this will make it easier to support custom trailers. * "git clone --reject-shallow" option fails the clone as soon as we notice that we are cloning from a shallow repository. * A configuration variable has been added to force tips of certain refs to be given a reachability bitmap. * "gitweb" learned "e-mail privacy" feature to redact strings that look like e-mail addresses on various pages. * "git apply --3way" has always been "to fall back to 3-way merge only when straight application fails". Swap the order of falling back so that 3-way is always attempted first (only when the option is given, of course) and then straight patch application is used as a fallback when it fails. * "git apply" now takes "--3way" and "--cached" at the same time, and work and record results only in the index. * The command line completion (in contrib/) has learned that CHERRY_PICK_HEAD is a possible pseudo-ref. * Userdiff patterns for "Scheme" has been added. * "git log" learned "--diff-merges=