]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/RelNotes/2.29.0.txt
Sixth batch
[thirdparty/git.git] / Documentation / RelNotes / 2.29.0.txt
CommitLineData
79bcaf00
JH
1Git 2.29 Release Notes
2======================
3
4Updates since v2.28
5-------------------
6
7UI, Workflows & Features
8
9 * "git help log" has been enhanced by sharing more material from the
10 documentation for the underlying "git rev-list" command.
11
12 * "git for-each-ref --format=<>" learned %(contents:size).
13
85b4e0a6
JH
14 * "git merge" learned to selectively omit " into <branch>" at the end
15 of the title of default merge message with merge.suppressDest
16 configuration.
17
7814e8a0
JH
18 * The component to respond to "git fetch" request is made more
19 configurable to selectively allow or reject object filtering
20 specification used for partial cloning.
21
79bcaf00
JH
22
23Performance, Internal Implementation, Development Support etc.
24
25 * The changed-path Bloom filter is improved using ideas from an
26 independent implementation.
27
28 * Updates to the changed-paths bloom filter.
29
30 * The test framework has been updated so that most tests will run
31 with predictable (artificial) timestamps.
32
33 * Preliminary clean-up of the refs API in preparation for adding a
34 new refs backend "reftable".
35
36 * Dev support to limit the use of test_must_fail to only git commands.
37
dc04167d
JH
38 * While packing many objects in a repository with a promissor remote,
39 lazily fetching missing objects from the promissor remote one by
40 one may be inefficient---the code now attempts to fetch all the
41 missing objects in batch (obviously this won't work for a lazy
42 clone that lazily fetches tree objects as you cannot even enumerate
43 what blobs are missing until you learn which trees are missing).
44
45 * The pretend-object mechanism checks if the given object already
46 exists in the object store before deciding to keep the data
47 in-core, but the check would have triggered lazy fetching of such
48 an object from a promissor remote.
49
4f0a8be7
JH
50 * The argv_array API is useful for not just managing argv but any
51 "vector" (NULL-terminated array) of strings, and has seen adoption
52 to a certain degree. It has been renamed to "strvec" to reduce the
53 barrier to adoption.
54
7814e8a0
JH
55 * The final leg of SHA-256 transition.
56
57 * CMake support to build with MSVC for Windows bypassing the Makefile.
58
79bcaf00
JH
59
60Fixes since v2.28
61-----------------
62
63 * "git clone --separate-git-dir=$elsewhere" used to stomp on the
64 contents of the existing directory $elsewhere, which has been
65 taught to fail when $elsewhere is not an empty directory.
66 (merge dfaa209a79 bw/fail-cloning-into-non-empty later to maint).
67
79bcaf00
JH
68 * With the base fix to 2.27 regresion, any new extensions in a v0
69 repository would still be silently honored, which is not quite
70 right. Instead, complain and die loudly.
71 (merge ec91ffca04 jk/reject-newer-extensions-in-v0 later to maint).
72
73 * Fetching from a lazily cloned repository resulted at the server
74 side in attempts to lazy fetch objects that the client side has,
75 many of which will not be available from the third-party anyway.
76 (merge 77aa0941ce jt/avoid-lazy-fetching-upon-have-check later to maint).
77
78 * Fix to an ancient bug caused by an over-eager attempt for
79 optimization.
80 (merge a98f7fb366 rs/add-index-entry-optim-fix later to maint).
81
82 * Pushing a ref whose name contains non-ASCII character with the
83 "--force-with-lease" option did not work over smart HTTP protocol,
84 which has been corrected.
85 (merge cd85b447bf bc/push-cas-cquoted-refname later to maint).
86
87 * "git mv src dst", when src is an unmerged path, errored out
88 correctly but with an incorrect error message to claim that src is
89 not tracked, which has been clarified.
90 (merge 9b906af657 ct/mv-unmerged-path-error later to maint).
91
92 * Fix to a regression introduced during 2.27 cycle.
93 (merge cada7308ad en/fill-directory-exponential later to maint).
94
dc04167d
JH
95 * Command line completion (in contrib/) update.
96 (merge 688b87c81b mp/complete-show-color-moved later to maint).
97
4f0a8be7
JH
98 * All "mergy" operations that internally use the merge-recursive
99 machinery should honor the merge.renormalize configuration, but
100 many of them didn't.
101
7814e8a0
JH
102 * Doc cleanup around "worktree".
103 (merge dc9c144be5 es/worktree-doc-cleanups later to maint).
104
79bcaf00 105 * Other code cleanup, docfix, build fix, etc.
e8ab941b
JH
106 (merge 84544f2ea3 sk/typofixes later to maint).
107 (merge b17f411ab5 ar/help-guides-doc later to maint).
108 (merge 98c6871fad rs/grep-simpler-parse-object-or-die-call later to maint).
109 (merge 861c4ce141 en/typofixes later to maint).
110 (merge 60e47f6773 sg/ci-git-path-fix-with-pyenv later to maint).
111 (merge e2bfa50ac3 jb/doc-packfile-name later to maint).
4f0a8be7
JH
112 (merge 918d8ff780 es/worktree-cleanup later to maint).
113 (merge dc156bc31f ma/t1450-quotefix later to maint).
114 (merge 56e743426b en/merge-recursive-comment-fixes later to maint).
115 (merge 7d23ff818f rs/bisect-oid-to-hex-fix later to maint).
116 (merge de20baf2c9 ny/notes-doc-sample-update later to maint).
117 (merge f649aaaf82 so/rev-parser-errormessage-fix later to maint).