]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/RelNotes/2.26.0.txt
Merge branch 'rs/micro-cleanups'
[thirdparty/git.git] / Documentation / RelNotes / 2.26.0.txt
CommitLineData
bc7a3d4d
JH
1Git 2.26 Release Notes
2======================
3
4Updates since v2.25
5-------------------
6
7UI, Workflows & Features
8
9 * Sample credential helper for using .netrc has been updated to work
10 out of the box.
11
344ee187
JH
12 * gpg.minTrustLevel configuration variable has been introduced to
13 tell various signature verification codepaths the required minimum
14 trust level.
15
16 * The command line completion (in contrib/) learned to complete
17 subcommands and arguments to "git worktree".
18
d8437c57
JH
19 * Disambiguation logic to tell revisions and pathspec apart has been
20 tweaked so that backslash-escaped glob special characters do not
21 count in the "wildcards are pathspec" rule.
22
23 * One effect of specifying where the GIT_DIR is (either with the
24 environment variable, or with the "git --git-dir=<where> cmd"
25 option) is to disable the repository discovery. This has been
26 placed a bit more stress in the documentation, as new users often
27 get confused.
28
7ae7e234
JH
29 * Two help messages given when "git add" notices the user gave it
30 nothing to add have been updated to use advise() API.
31
32 * A new version of fsmonitor-watchman hook has been introduced, to
33 avoid races.
34
51ebf55b
JH
35 * "git config" learned to show in which "scope", in addition to in
36 which file, each config setting comes from.
37
2d2118b8
JH
38 * The basic 7 colors learned the brighter counterparts
39 (e.g. "brightred").
40
bc7a3d4d
JH
41
42Performance, Internal Implementation, Development Support etc.
43
344ee187
JH
44 * Tell .editorconfig that in this project, *.txt files are indented
45 with tabs.
46
47 * The test-lint machinery knew to check "VAR=VAL shell_function"
48 construct, but did not check "VAR= shell_funciton", which has been
49 corrected.
50
51 * Replace "git config --bool" calls with "git config --type=bool" in
52 sample templates.
53
de93cc14
JH
54 * The effort to move "git-add--interactive" to C continues.
55
56 * Improve error message generation for "git submodule add".
57
58 * Preparation of test scripts for the day when the object names will
59 use SHA-256 continues.
60
d8437c57
JH
61 * Warn programmers about pretend_object_file() that allows the code
62 to tentatively use in-core objects.
63
7ae7e234
JH
64 * The way "git pack-objects" reuses objects stored in existing pack
65 to generate its result has been improved.
66
67 * The transport protocol version 2 becomes the default one.
68
69 * Traditionally, we avoided threaded grep while searching in objects
70 (as opposed to files in the working tree) as accesses to the object
71 layer is not thread-safe. This limitation is getting lifted.
72
73 * "git rebase -i" (and friends) used to unnecessarily check out the
74 tip of the branch to be rebased, which has been corrected.
75
76 * A low-level API function get_oid(), that accepts various ways to
77 name an object, used to issue end-user facing error messages
78 without l10n, which has been updated to be translatable.
79
80 * Unneeded connectivity check is now disabled in a partial clone when
81 fetching into it.
82
83 * Some rough edges in the sparse-checkout feature, especially around
84 the cone mode, have been cleaned up.
85
86 * The diff-* plumbing family of subcommands now pay attention to the
87 diff.wsErrorHighlight configuration, which has been ignored before;
88 this allows "git add -p" to also show the whitespace problems to
89 the end user.
90
91 * Some codepaths were given a repository instance as a parameter to
92 work in the repository, but passed the_repository instance to its
93 callees, which has been cleaned up (somewhat).
94
51ebf55b
JH
95 * Memory footprint and performance of "git name-rev" has been
96 improved.
97
bc7a3d4d
JH
98
99Fixes since v2.25
100-----------------
101
102 * "git commit" gives output similar to "git status" when there is
103 nothing to commit, but without honoring the advise.statusHints
104 configuration variable, which has been corrected.
bc7a3d4d
JH
105
106 * has_object_file() said "no" given an object registered to the
107 system via pretend_object_file(), making it inconsistent with
108 read_object_file(), causing lazy fetch to attempt fetching an
109 empty tree from promisor remotes.
bc7a3d4d
JH
110
111 * Complete an update to tutorial that encourages "git switch" over
112 "git checkout" that was done only half-way.
bc7a3d4d
JH
113
114 * C pedantry ;-) fix.
bc7a3d4d
JH
115
116 * The code that tries to skip over the entries for the paths in a
117 single directory using the cache-tree was not careful enough
118 against corrupt index file.
bc7a3d4d
JH
119
120 * Reduce unnecessary round-trip when running "ls-remote" over the
121 stateless RPC mechanism.
bc7a3d4d
JH
122
123 * "git restore --staged" did not correctly update the cache-tree
124 structure, resulting in bogus trees to be written afterwards, which
125 has been corrected.
bc7a3d4d 126
344ee187
JH
127 * The code recently added to move to the entry beyond the ones in the
128 same directory in the index in the sparse-cone mode did not count
129 the number of entries to skip over incorrectly, which has been
130 corrected.
344ee187
JH
131
132 * Rendering by "git log --graph" of ancestry lines leading to a merge
133 commit were made suboptimal to waste vertical space a bit with a
134 recent update, which has been corrected.
344ee187
JH
135
136 * Work around test breakages caused by custom regex engine used in
137 libasan, when address sanitizer is used with more recent versions
138 of gcc and clang.
344ee187
JH
139
140 * Minor bugfixes to "git add -i" that has recently been rewritten in C.
141 (merge 849e43cc18 js/builtin-add-i-cmds later to maint).
142
143 * "git fetch --refmap=" option has got a better documentation.
344ee187 144
de93cc14
JH
145 * "git checkout X" did not correctly fail when X is not a local
146 branch but could name more than one remote-tracking branches
147 (i.e. to be dwimmed as the starting point to create a corresponding
148 local branch), which has been corrected.
149 (merge fa74180d08 am/checkout-file-and-ref-ref-ambiguity later to maint).
150
151 * Corner case bugs in "git clean" that stems from a (necessarily for
152 performance reasons) awkward calling convention in the directory
153 enumeration API has been corrected.
de93cc14
JH
154
155 * A fetch that is told to recursively fetch updates in submodules
156 inevitably produces reams of output, and it becomes hard to spot
157 error messages. The command has been taught to enumerate
158 submodules that had errors at the end of the operation.
159 (merge 0222540827 es/fetch-show-failed-submodules-atend later to maint).
160
161 * The "--recurse-submodules" option of various subcommands did not
162 work well when run in an alternate worktree, which has been
163 corrected.
164 (merge a9472afb63 pb/recurse-submodule-in-worktree-fix later to maint).
165
d8437c57
JH
166 * Futureproofing a test not to depend on the current implementation
167 detail.
d8437c57
JH
168
169 * Running "git rm" on a submodule failed unnecessarily when
170 .gitmodules is only cache-dirty, which has been corrected.
171 (merge 7edee32985 dt/submodule-rm-with-stale-cache later to maint).
172
173 * C pedantry ;-) fix.
174 (merge cf82bff73f jk/clang-sanitizer-fixes later to maint).
175
176 * "git grep --no-index" should not get affected by the contents of
177 the .gitmodules file but when "--recurse-submodules" is given or
178 the "submodule.recurse" variable is set, it did. Now these
179 settings are ignored in the "--no-index" mode.
d8437c57
JH
180
181 * Technical details of the bundle format has been documented.
d8437c57
JH
182
183 * Unhelpful warning messages during documentation build have been squelched.
d8437c57 184
7ae7e234
JH
185 * "git rebase -i" identifies existing commits in its todo file with
186 their abbreviated object name, which could become ambigous as it
187 goes to create new commits, and has a mechanism to avoid ambiguity
188 in the main part of its execution. A few other cases however were
189 not covered by the protection against ambiguity, which has been
190 corrected.
191 (merge 26027625dd js/rebase-i-with-colliding-hash later to maint).
192
193 * Allow the rebase.missingCommitsCheck configuration to kick in when
194 "rebase --edit-todo" and "rebase --continue" restarts the procedure.
195 (merge 5a5445d878 ag/edit-todo-drop-check later to maint).
196
197 * The way "git submodule status" reports an initialized but not yet
198 populated submodule has not been reimplemented correctly when a
199 part of the "git submodule" command was rewritten in C, which has
200 been corrected.
201 (merge f38c92452d pk/status-of-uncloned-submodule later to maint).
202
203 * The code to automatically shrink the fan-out in the notes tree had
204 an off-by-one bug, which has been killed.
205 (merge dbc27477ff jh/notes-fanout-fix later to maint).
206
207 * The index-pack code now diagnoses a bad input packstream that
208 records the same object twice when it is used as delta base; the
209 code used to declare a software bug when encountering such an
210 input, but it is an input error.
211 (merge a21781011f jk/index-pack-dupfix later to maint).
212
213 * The code to compute the commit-graph has been taught to use a more
214 robust way to tell if two object directories refer to the same
215 thing.
216 (merge a7df60cac8 tb/commit-graph-object-dir later to maint).
217
2d2118b8
JH
218 * "git remote rename X Y" needs to adjust configuration variables
219 (e.g. branch.<name>.remote) whose value used to be X to Y.
220 branch.<name>.pushRemote is now also updated.
221
bc7a3d4d
JH
222 * Other code cleanup, docfix, build fix, etc.
223 (merge 26f924d50e en/simplify-check-updates-in-unpack-trees later to maint).
344ee187
JH
224 (merge d0d0a357a1 am/update-pathspec-f-f-tests later to maint).
225 (merge f94f7bd00d am/test-pathspec-f-f-error-cases later to maint).
344ee187 226 (merge c513a958b6 ss/t6025-modernize later to maint).
de93cc14
JH
227 (merge b441717256 dl/test-must-fail-fixes later to maint).
228 (merge d031049da3 mt/sparse-checkout-doc-update later to maint).
d8437c57 229 (merge 145136a95a jc/skip-prefix later to maint).
7ae7e234 230 (merge 5290d45134 jk/alloc-cleanups later to maint).
51ebf55b
JH
231 (merge 7a9f8ca805 rs/parse-options-concat-dup later to maint).
232 (merge 517b60564e rs/strbuf-insertstr later to maint).
233 (merge f696a2b1c8 jk/mailinfo-cleanup later to maint).
234 (merge 076ee3e8a2 js/test-write-junit-xml-fix later to maint).
235 (merge de26f02db1 js/test-avoid-pipe later to maint).
236 (merge bfe2bbb47f js/test-unc-fetch later to maint).
237 (merge 08809c09aa js/mingw-open-in-gdb later to maint).
238 (merge cc4f2eb828 jk/doc-credential-helper later to maint).
239 (merge e0020b2f82 es/outside-repo-errmsg-hints later to maint).
2d2118b8 240 (merge a2dc43414c es/doc-mentoring later to maint).