| Git 2.26 Release Notes |
| ====================== |
| |
| Updates since v2.25 |
| ------------------- |
| |
| UI, Workflows & Features |
| |
| * Sample credential helper for using .netrc has been updated to work |
| out of the box. |
| |
| * gpg.minTrustLevel configuration variable has been introduced to |
| tell various signature verification codepaths the required minimum |
| trust level. |
| |
| * The command line completion (in contrib/) learned to complete |
| subcommands and arguments to "git worktree". |
| |
| * Disambiguation logic to tell revisions and pathspec apart has been |
| tweaked so that backslash-escaped glob special characters do not |
| count in the "wildcards are pathspec" rule. |
| |
| * One effect of specifying where the GIT_DIR is (either with the |
| environment variable, or with the "git --git-dir=<where> cmd" |
| option) is to disable the repository discovery. This has been |
| placed a bit more stress in the documentation, as new users often |
| get confused. |
| |
| * Two help messages given when "git add" notices the user gave it |
| nothing to add have been updated to use advise() API. |
| |
| * A new version of fsmonitor-watchman hook has been introduced, to |
| avoid races. |
| |
| * "git config" learned to show in which "scope", in addition to in |
| which file, each config setting comes from. |
| |
| |
| Performance, Internal Implementation, Development Support etc. |
| |
| * Tell .editorconfig that in this project, *.txt files are indented |
| with tabs. |
| |
| * The test-lint machinery knew to check "VAR=VAL shell_function" |
| construct, but did not check "VAR= shell_funciton", which has been |
| corrected. |
| |
| * Replace "git config --bool" calls with "git config --type=bool" in |
| sample templates. |
| |
| * The effort to move "git-add--interactive" to C continues. |
| |
| * Improve error message generation for "git submodule add". |
| |
| * Preparation of test scripts for the day when the object names will |
| use SHA-256 continues. |
| |
| * Warn programmers about pretend_object_file() that allows the code |
| to tentatively use in-core objects. |
| |
| * The way "git pack-objects" reuses objects stored in existing pack |
| to generate its result has been improved. |
| |
| * The transport protocol version 2 becomes the default one. |
| |
| * Traditionally, we avoided threaded grep while searching in objects |
| (as opposed to files in the working tree) as accesses to the object |
| layer is not thread-safe. This limitation is getting lifted. |
| |
| * "git rebase -i" (and friends) used to unnecessarily check out the |
| tip of the branch to be rebased, which has been corrected. |
| |
| * A low-level API function get_oid(), that accepts various ways to |
| name an object, used to issue end-user facing error messages |
| without l10n, which has been updated to be translatable. |
| |
| * Unneeded connectivity check is now disabled in a partial clone when |
| fetching into it. |
| |
| * Some rough edges in the sparse-checkout feature, especially around |
| the cone mode, have been cleaned up. |
| |
| * The diff-* plumbing family of subcommands now pay attention to the |
| diff.wsErrorHighlight configuration, which has been ignored before; |
| this allows "git add -p" to also show the whitespace problems to |
| the end user. |
| |
| * Some codepaths were given a repository instance as a parameter to |
| work in the repository, but passed the_repository instance to its |
| callees, which has been cleaned up (somewhat). |
| |
| * Memory footprint and performance of "git name-rev" has been |
| improved. |
| |
| |
| Fixes since v2.25 |
| ----------------- |
| |
| * "git commit" gives output similar to "git status" when there is |
| nothing to commit, but without honoring the advise.statusHints |
| configuration variable, which has been corrected. |
| |
| * has_object_file() said "no" given an object registered to the |
| system via pretend_object_file(), making it inconsistent with |
| read_object_file(), causing lazy fetch to attempt fetching an |
| empty tree from promisor remotes. |
| |
| * Complete an update to tutorial that encourages "git switch" over |
| "git checkout" that was done only half-way. |
| |
| * C pedantry ;-) fix. |
| |
| * The code that tries to skip over the entries for the paths in a |
| single directory using the cache-tree was not careful enough |
| against corrupt index file. |
| |
| * Reduce unnecessary round-trip when running "ls-remote" over the |
| stateless RPC mechanism. |
| |
| * "git restore --staged" did not correctly update the cache-tree |
| structure, resulting in bogus trees to be written afterwards, which |
| has been corrected. |
| |
| * The code recently added to move to the entry beyond the ones in the |
| same directory in the index in the sparse-cone mode did not count |
| the number of entries to skip over incorrectly, which has been |
| corrected. |
| |
| * Rendering by "git log --graph" of ancestry lines leading to a merge |
| commit were made suboptimal to waste vertical space a bit with a |
| recent update, which has been corrected. |
| |
| * Work around test breakages caused by custom regex engine used in |
| libasan, when address sanitizer is used with more recent versions |
| of gcc and clang. |
| |
| * Minor bugfixes to "git add -i" that has recently been rewritten in C. |
| (merge 849e43cc18 js/builtin-add-i-cmds later to maint). |
| |
| * "git fetch --refmap=" option has got a better documentation. |
| |
| * "git checkout X" did not correctly fail when X is not a local |
| branch but could name more than one remote-tracking branches |
| (i.e. to be dwimmed as the starting point to create a corresponding |
| local branch), which has been corrected. |
| (merge fa74180d08 am/checkout-file-and-ref-ref-ambiguity later to maint). |
| |
| * Corner case bugs in "git clean" that stems from a (necessarily for |
| performance reasons) awkward calling convention in the directory |
| enumeration API has been corrected. |
| |
| * A fetch that is told to recursively fetch updates in submodules |
| inevitably produces reams of output, and it becomes hard to spot |
| error messages. The command has been taught to enumerate |
| submodules that had errors at the end of the operation. |
| (merge 0222540827 es/fetch-show-failed-submodules-atend later to maint). |
| |
| * The "--recurse-submodules" option of various subcommands did not |
| work well when run in an alternate worktree, which has been |
| corrected. |
| (merge a9472afb63 pb/recurse-submodule-in-worktree-fix later to maint). |
| |
| * Futureproofing a test not to depend on the current implementation |
| detail. |
| |
| * Running "git rm" on a submodule failed unnecessarily when |
| .gitmodules is only cache-dirty, which has been corrected. |
| (merge 7edee32985 dt/submodule-rm-with-stale-cache later to maint). |
| |
| * C pedantry ;-) fix. |
| (merge cf82bff73f jk/clang-sanitizer-fixes later to maint). |
| |
| * "git grep --no-index" should not get affected by the contents of |
| the .gitmodules file but when "--recurse-submodules" is given or |
| the "submodule.recurse" variable is set, it did. Now these |
| settings are ignored in the "--no-index" mode. |
| |
| * Technical details of the bundle format has been documented. |
| |
| * Unhelpful warning messages during documentation build have been squelched. |
| |
| * "git rebase -i" identifies existing commits in its todo file with |
| their abbreviated object name, which could become ambigous as it |
| goes to create new commits, and has a mechanism to avoid ambiguity |
| in the main part of its execution. A few other cases however were |
| not covered by the protection against ambiguity, which has been |
| corrected. |
| (merge 26027625dd js/rebase-i-with-colliding-hash later to maint). |
| |
| * Allow the rebase.missingCommitsCheck configuration to kick in when |
| "rebase --edit-todo" and "rebase --continue" restarts the procedure. |
| (merge 5a5445d878 ag/edit-todo-drop-check later to maint). |
| |
| * The way "git submodule status" reports an initialized but not yet |
| populated submodule has not been reimplemented correctly when a |
| part of the "git submodule" command was rewritten in C, which has |
| been corrected. |
| (merge f38c92452d pk/status-of-uncloned-submodule later to maint). |
| |
| * The code to automatically shrink the fan-out in the notes tree had |
| an off-by-one bug, which has been killed. |
| (merge dbc27477ff jh/notes-fanout-fix later to maint). |
| |
| * The index-pack code now diagnoses a bad input packstream that |
| records the same object twice when it is used as delta base; the |
| code used to declare a software bug when encountering such an |
| input, but it is an input error. |
| (merge a21781011f jk/index-pack-dupfix later to maint). |
| |
| * The code to compute the commit-graph has been taught to use a more |
| robust way to tell if two object directories refer to the same |
| thing. |
| (merge a7df60cac8 tb/commit-graph-object-dir later to maint). |
| |
| * Other code cleanup, docfix, build fix, etc. |
| (merge 26f924d50e en/simplify-check-updates-in-unpack-trees later to maint). |
| (merge d0d0a357a1 am/update-pathspec-f-f-tests later to maint). |
| (merge f94f7bd00d am/test-pathspec-f-f-error-cases later to maint). |
| (merge c513a958b6 ss/t6025-modernize later to maint). |
| (merge b441717256 dl/test-must-fail-fixes later to maint). |
| (merge d031049da3 mt/sparse-checkout-doc-update later to maint). |
| (merge 145136a95a jc/skip-prefix later to maint). |
| (merge 5290d45134 jk/alloc-cleanups later to maint). |
| (merge 7a9f8ca805 rs/parse-options-concat-dup later to maint). |
| (merge 517b60564e rs/strbuf-insertstr later to maint). |
| (merge f696a2b1c8 jk/mailinfo-cleanup later to maint). |
| (merge 076ee3e8a2 js/test-write-junit-xml-fix later to maint). |
| (merge de26f02db1 js/test-avoid-pipe later to maint). |
| (merge bfe2bbb47f js/test-unc-fetch later to maint). |
| (merge 08809c09aa js/mingw-open-in-gdb later to maint). |
| (merge cc4f2eb828 jk/doc-credential-helper later to maint). |
| (merge e0020b2f82 es/outside-repo-errmsg-hints later to maint). |