| Git v2.49 Release Notes |
| ======================= |
| |
| UI, Workflows & Features |
| ------------------------ |
| |
| * Completion script updates for zsh |
| |
| * "git pack-objects" and its wrapper "git repack" learned an option |
| to use an alternative path-hash function to improve delta-base |
| selection to produce a packfile with deeper history than window |
| size. |
| |
| * "git gc" learned the "--expire-to" option and passes it down to |
| underlying "git repack". |
| |
| * "[help] autocorrect = 1" used to be a way to say "please wait for |
| 0.1 second after suggesting a typofix of the command name before |
| running that command"; now it means "yes, if there is a plausible |
| typofix for the command name, please run it immediately". |
| |
| * "git clone" learned to make a shallow clone for a single commit |
| that is not necessarily be at the tip of any branch. |
| |
| * Lazy-loading missing files in a blobless clone on demand is costly |
| as it tends to be one-blob-at-a-time. "git backfill" is introduced |
| to help bulk-download necessary files beforehand. |
| |
| * "git push --atomic --porcelain" used to ignore failures from the |
| other side, losing the error status from the child process, which |
| has been corrected. |
| |
| * "git rev-list --missing=" learned to accept "print-info" that gives |
| known details expected of the missing objects, like path and type. |
| |
| * Comes with an updated "gitk". |
| |
| * The documentation of "git commit" and "git rebase" now refer to |
| commit titles as such, not "subject". |
| |
| * The value of "uname -s" is by default sent over the wire as a part |
| of the "version" capability. |
| |
| * "git refs migrate" can optionally be told not to migrate the reflog. |
| |
| * The netrc support (via the cURL library) for the HTTP transport has |
| been re-enabled. |
| |
| * Removal of ".git/branches" and ".git/remotes" support in the |
| BreakingChanges document has been further clarified. |
| |
| * What happens to submodules during merge has been documented in a |
| bit more detail. |
| |
| |
| Performance, Internal Implementation, Development Support etc. |
| -------------------------------------------------------------- |
| |
| * More -Wsign-compare fixes. |
| |
| * meson-based build now supports the unsafe-sha1 build knob. |
| |
| * The meson-based build procedure covers contrib/ and other places as |
| well. |
| |
| * The code to check LSan results has been simplified and made more |
| robust. |
| (merge 164a2516eb jk/lsan-race-ignore-false-positive later to maint). |
| |
| * More code paths have a repository passed through the callchain, |
| instead of assuming the primary the_repository object. |
| |
| * Move a few more unit tests to the clar test framework. |
| |
| * Introduce a new API to visit objects in batches based on a common |
| path, or by type. |
| |
| * Following the procedure we established to introduce breaking |
| changes for Git 3.0, allow an early opt-in for removing support of |
| $GIT_DIR/branches/ and $GIT_DIR/remotes/ directories to configure |
| remotes. |
| |
| * The code paths to interact with zlib has been cleaned up in |
| preparation for building with zlib-ng. |
| |
| * Foreign language interface for Rust into our code base has been added. |
| |
| * All the documentation .txt files have been renamed to .adoc to help |
| content aware editors. |
| |
| * "git difftool" code clean-up. |
| |
| * Rename processing in the recursive merge backend has seen a micro |
| optimization. |
| |
| * The path.[ch] API takes an explicit repository parameter passed |
| throughout the callchain, instead of relying on the_repository |
| singleton instance. |
| |
| * Large-object promisor protocol extension has been introduced. |
| |
| * The editorconfig file is updated to tell us that bash scripts are |
| similar to general Bourne shell scripts. |
| |
| * Meson-based build procedure forgot to build some docs, which has |
| been corrected. |
| |
| |
| Fixes since v2.48 |
| ----------------- |
| |
| * "git submodule" learned various ways to spell the same option, |
| e.g. "--branch=B" can be spelled "--branch B" or "-bB". |
| (merge b86f0f9071 re/submodule-parse-opt later to maint). |
| |
| * Tweak the help text used for the option value placeholders by |
| parse-options API so that translations can customize the "<>" |
| placeholder signal (e.g. "--option=<value>"). |
| (merge 5b34dd08d0 as/long-option-help-i18n later to maint). |
| |
| * CI jobs gave sporadic failures, which turns out that that the |
| object finalization code was giving an error when it did not have |
| to. |
| (merge d7fcbe2c56 ps/object-collision-check later to maint). |
| |
| * The code to compute "unique" name used git_rand() which can fail or |
| get stuck; the callsite does not require cryptographic security. |
| Introduce the "insecure" mode and use it appropriately. |
| (merge 0b4f8afef6 ps/reftable-get-random-fix later to maint). |
| |
| * A misconfigured "fsck.skiplist" configuration variable was not |
| diagnosed as an error, which has been corrected. |
| (merge ca7158076f jt/fsck-skiplist-parse-fix later to maint). |
| |
| * Extended SHA-1 expression parser did not work well when a branch |
| with an unusual name (e.g. "foo{bar") is involved. |
| (merge 191f0c8db2 en/object-name-with-funny-refname-fix later to maint). |
| |
| * The meson build procedure looked for the 'version-def.h' file in a |
| wrong directory, which has been corrected. |
| (merge 4771501c0a tc/meson-use-our-version-def-h later to maint). |
| |
| * The meson build procedure for Documentation/technical/ hierarchy was |
| missing necessary dependencies, which has been corrected. |
| (merge 1dca492edd sj/meson-doc-technical-dependency-fix later to maint). |
| |
| * The "instaweb" bound only to local IP address without "--local" and |
| to all addresses with "--local", which was the other way around, when |
| using Python's http.server class, which has been corrected. |
| (merge 76baf97fa1 ak/instaweb-python-port-binding-fix later to maint). |
| |
| * Document that it is insecure to use Personal Access Tokens, which |
| some hosting providers take as username/password, embedded in URLs. |
| (merge a90ff409f0 mh/doc-credential-helpers-with-pat later to maint). |
| |
| * The help text from "git $cmd -h" appear on the standard output for |
| some $cmd and the standard error for others. The built-in commands |
| have been fixed to show them on the standard output consistently. |
| (merge f66d1423f5 jc/show-usage-help later to maint). |
| |
| * The meson-driven build is now aware of "git-subtree" housed in |
| contrib/subtree hierarchy. |
| (merge 8454b42f94 ps/build-meson-subtree later to maint). |
| |
| * It was possible for "git unpack-objects" and "git index-pack" to |
| make an unaligned access, which has been corrected. |
| (merge 98046591b9 jk/pack-header-parse-alignment-fix later to maint). |
| |
| * The "cache" credential back-end did not handle authtype correctly, |
| which has been corrected. |
| (merge 0b43274850 mh/credential-cache-authtype-request-fix later to maint). |
| |
| * "git branch --sort=..." and "git for-each-ref --format=... --sort=..." |
| did not work as expected with some atoms, which has been corrected. |
| (merge c5490ce9d1 rs/ref-fitler-used-atoms-value-fix later to maint). |
| |
| * reflog entries for symbolic ref updates were broken, which has been |
| corrected. |
| (merge 3519492430 kn/reflog-symref-fix later to maint). |
| |
| * The trace2 code was not prepared to show a configuration variable |
| that is set to true using the valueless true syntax, which has been |
| corrected. |
| (merge 2fd367cf63 am/trace2-with-valueless-true later to maint). |
| |
| * The "git refs migrate" command did not migrate the reflog for |
| refs/stash, which is the contents of the stashes, which has been |
| corrected. |
| (merge a0bea0978f ps/reflog-migration-with-logall-fix later to maint). |
| |
| * Doc and short-help text for "show-index" has been clarified to |
| stress that the command reads its data from the standard input. |
| (merge 49edce4ff9 jc/show-index-h-update later to maint). |
| |
| * The API around choosing to use unsafe variant of SHA-1 |
| implementation has been updated in an attempt to make it harder to |
| abuse. |
| (merge 04292c3796 tb/unsafe-hash-cleanup later to maint). |
| |
| * Fix bugs in an earlier attempt to fix "git refs migration". |
| (merge f11f0a5a2d kn/reflog-migration-fix-fix later to maint). |
| |
| * The code path used when "git fetch" fetches from a bundle file |
| closed the same file descriptor twice, which sometimes broke things |
| unexpectedly when the file descriptor was reused, which has been |
| corrected. |
| (merge 9a84794ad8 js/bundle-unbundle-fd-reuse-fix later to maint). |
| |
| * "git init" to reinitialize a repository that already exists cannot |
| change the hash function and ref backends; such a request is |
| silently ignored now. |
| (merge 7e88640cd1 ps/setup-reinit-fixes later to maint). |
| |
| * "git apply" internally uses unsigned long for line numbers and uses |
| strtoul() to parse numbers on the hunk headers. It however forgot |
| to check parse errors. |
| (merge a206058fda pw/apply-ulong-overflow-check later to maint). |
| |
| * Two CI tasks, whitespace check and style check, work on the |
| difference from the base version and the version being checked, but |
| the base was computed incorrectly in GitLab CI in some cases, which |
| has been corrected. |
| (merge acc4fb302b jt/gitlab-ci-base-fix later to maint). |
| |
| * "git repack --keep-unreachable" to send unreachable objects to the |
| main pack "git repack -ad" produces did not work when there is no |
| existing packs, which has been corrected. |
| (merge 414c82300a ps/repack-keep-unreachable-in-unpacked-repo later to maint). |
| |
| * Going into a secondary worktree and asking "is the main worktree |
| bare?" did not work correctly when per-worktree configuration |
| option was in use, which has been corrected. |
| |
| * Fetching into a bare repository incorrectly assumed it always used |
| a mirror layout when deciding to update remote-tracking HEAD, which |
| has been corrected. |
| (merge 93dc16483a bf/fetch-set-head-fix later to maint). |
| |
| * A thunderbird helper script lost its bashism. |
| (merge 59d26bd961 bc/contrib-thunderbird-patch-inline-fix later to maint). |
| |
| * The -G/-S options to the "diff" family of commands caused us to hit |
| a BUG() when they get no values; they have been corrected. |
| (merge a620046b29 bc/diff-reject-empty-arg-to-pickaxe later to maint). |
| |
| * "git merge-tree --stdin" has been improved (including a workaround |
| for a deadlock). |
| (merge 6a9ae81015 pw/merge-tree-stdin-deadlock-fix later to maint). |
| |
| * Correct the default target in Documentation/Makefile, and |
| future-proof all Makefiles from similar breakages by declaring the |
| default target (which happens to be "all") upfront. |
| (merge 5309c1e9fb ad/set-default-target-in-makefiles later to maint). |
| |
| * "git check-mailmap" used to segfault when queried without human |
| readable name. |
| (merge bb60c52131 jk/check-mailmap-wo-name-fix later to maint). |
| |
| * Support for renaming of symbolic links on Windows has been improved. |
| |
| * "git rebase -i" failed to allow rewording an empty commit that has |
| been fast-forwarded. |
| (merge af8fc7be10 pw/rebase-i-ff-empty-commit later to maint). |
| |
| * The use of "paste" command for aggregating the test results have |
| been corrected. |
| (merge ce98863204 dk/test-aggregate-results-paste-fix later to maint). |
| |
| * Other code cleanup, docfix, build fix, etc. |
| (merge ddb5287894 jk/t7407-use-test-grep later to maint). |
| (merge 21e1b44865 aj/difftool-config-doc-fix later to maint). |
| (merge 6a63995335 mh/gitattr-doc-markup-fix later to maint). |
| (merge 43850dcf9c sk/unit-test-hash later to maint). |
| (merge 4ad47d2de3 jc/cli-doc-option-and-config later to maint). |
| (merge 2d0ff147e5 jp/t8002-printf-fix later to maint). |
| (merge 69666e6746 ja/doc-restore-markup-update later to maint). |
| (merge d11d003ba5 sk/strlen-returns-size_t later to maint). |
| (merge 77b2d29e91 ja/doc-notes-markup-updates later to maint). |
| (merge 6979bf6f8f jk/combine-diff-cleanup later to maint). |
| (merge 8705c9bd13 kn/pack-write-with-reduced-globals later to maint). |
| (merge 087740d65a ps/leakfixes-0129 later to maint). |
| (merge 6bba6f604b jp/doc-trailer-config later to maint). |
| (merge f1cc562b77 lo/t7603-path-is-file-update later to maint). |
| (merge 45761988ac en/doc-renormalize later to maint). |
| (merge 832f56f06a jc/doc-boolean-synonyms later to maint). |
| (merge 3eeed876a9 ac/doc-http-ssl-type-config later to maint). |
| (merge c268e3285d jc/breaking-changes-early-adopter-option later to maint). |