| Git 2.29 Release Notes |
| ====================== |
| |
| Updates since v2.28 |
| ------------------- |
| |
| UI, Workflows & Features |
| |
| * "git help log" has been enhanced by sharing more material from the |
| documentation for the underlying "git rev-list" command. |
| |
| * "git for-each-ref --format=<>" learned %(contents:size). |
| |
| * "git merge" learned to selectively omit " into <branch>" at the end |
| of the title of default merge message with merge.suppressDest |
| configuration. |
| |
| * The component to respond to "git fetch" request is made more |
| configurable to selectively allow or reject object filtering |
| specification used for partial cloning. |
| |
| |
| Performance, Internal Implementation, Development Support etc. |
| |
| * The changed-path Bloom filter is improved using ideas from an |
| independent implementation. |
| |
| * Updates to the changed-paths bloom filter. |
| |
| * The test framework has been updated so that most tests will run |
| with predictable (artificial) timestamps. |
| |
| * Preliminary clean-up of the refs API in preparation for adding a |
| new refs backend "reftable". |
| |
| * Dev support to limit the use of test_must_fail to only git commands. |
| |
| * While packing many objects in a repository with a promissor remote, |
| lazily fetching missing objects from the promissor remote one by |
| one may be inefficient---the code now attempts to fetch all the |
| missing objects in batch (obviously this won't work for a lazy |
| clone that lazily fetches tree objects as you cannot even enumerate |
| what blobs are missing until you learn which trees are missing). |
| |
| * The pretend-object mechanism checks if the given object already |
| exists in the object store before deciding to keep the data |
| in-core, but the check would have triggered lazy fetching of such |
| an object from a promissor remote. |
| |
| * The argv_array API is useful for not just managing argv but any |
| "vector" (NULL-terminated array) of strings, and has seen adoption |
| to a certain degree. It has been renamed to "strvec" to reduce the |
| barrier to adoption. |
| |
| * The final leg of SHA-256 transition. |
| |
| * CMake support to build with MSVC for Windows bypassing the Makefile. |
| |
| |
| Fixes since v2.28 |
| ----------------- |
| |
| * "git clone --separate-git-dir=$elsewhere" used to stomp on the |
| contents of the existing directory $elsewhere, which has been |
| taught to fail when $elsewhere is not an empty directory. |
| (merge dfaa209a79 bw/fail-cloning-into-non-empty later to maint). |
| |
| * With the base fix to 2.27 regresion, any new extensions in a v0 |
| repository would still be silently honored, which is not quite |
| right. Instead, complain and die loudly. |
| (merge ec91ffca04 jk/reject-newer-extensions-in-v0 later to maint). |
| |
| * Fetching from a lazily cloned repository resulted at the server |
| side in attempts to lazy fetch objects that the client side has, |
| many of which will not be available from the third-party anyway. |
| (merge 77aa0941ce jt/avoid-lazy-fetching-upon-have-check later to maint). |
| |
| * Fix to an ancient bug caused by an over-eager attempt for |
| optimization. |
| (merge a98f7fb366 rs/add-index-entry-optim-fix later to maint). |
| |
| * Pushing a ref whose name contains non-ASCII character with the |
| "--force-with-lease" option did not work over smart HTTP protocol, |
| which has been corrected. |
| (merge cd85b447bf bc/push-cas-cquoted-refname later to maint). |
| |
| * "git mv src dst", when src is an unmerged path, errored out |
| correctly but with an incorrect error message to claim that src is |
| not tracked, which has been clarified. |
| (merge 9b906af657 ct/mv-unmerged-path-error later to maint). |
| |
| * Fix to a regression introduced during 2.27 cycle. |
| (merge cada7308ad en/fill-directory-exponential later to maint). |
| |
| * Command line completion (in contrib/) update. |
| (merge 688b87c81b mp/complete-show-color-moved later to maint). |
| |
| * All "mergy" operations that internally use the merge-recursive |
| machinery should honor the merge.renormalize configuration, but |
| many of them didn't. |
| |
| * Doc cleanup around "worktree". |
| (merge dc9c144be5 es/worktree-doc-cleanups later to maint). |
| |
| * Other code cleanup, docfix, build fix, etc. |
| (merge 84544f2ea3 sk/typofixes later to maint). |
| (merge b17f411ab5 ar/help-guides-doc later to maint). |
| (merge 98c6871fad rs/grep-simpler-parse-object-or-die-call later to maint). |
| (merge 861c4ce141 en/typofixes later to maint). |
| (merge 60e47f6773 sg/ci-git-path-fix-with-pyenv later to maint). |
| (merge e2bfa50ac3 jb/doc-packfile-name later to maint). |
| (merge 918d8ff780 es/worktree-cleanup later to maint). |
| (merge dc156bc31f ma/t1450-quotefix later to maint). |
| (merge 56e743426b en/merge-recursive-comment-fixes later to maint). |
| (merge 7d23ff818f rs/bisect-oid-to-hex-fix later to maint). |
| (merge de20baf2c9 ny/notes-doc-sample-update later to maint). |
| (merge f649aaaf82 so/rev-parser-errormessage-fix later to maint). |