The 5th batch
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano committed
Jul 19, 2026 at 10:42 UTC
48bbf81c29ca9a4479ec7850fe206518682cdb2f
1 file changed
+83
Documentation/RelNotes/2.56.0.adoc
+83
@@ -43,6 +43,11 @@ UI, Workflows & Features
43
output has been optimized to reserve a column for marks (caret,
44
question mark, or asterisk) only when such marks are actually shown.
45
46
+ * Option parsing with 'git rev-parse --parseopt' and in most 'git'
47
+ subcommands has been updated to exit with 0 (instead of 129) when the
48
+ help option ('-h' or '--help') is requested directly by the user,
49
+ aligning with standard Unix convention.
50
+
51
52
Performance, Internal Implementation, Development Support etc.
53
--------------------------------------------------------------
@@ -108,6 +113,56 @@ Performance, Internal Implementation, Development Support etc.
113
the generated header file 'hook-list.h' is built before compiling
114
files in 'builtin_sources' that depend on it.
115
116
+ * The repository discovery and repository configuration phases, which
117
+ were previously intertwined in 'setup.c', have been split. Repository
118
+ discovery has been updated to populate a 'struct repo_discovery'
119
+ without modifying the repository state, which is then taken by
120
+ repository configuration to initialize the repository, paving the way
121
+ for clean unification of repository configuration.
122
+
123
+ * The 'SubmittingPatches' document has been updated to explicitly
124
+ describe the expectation for contributors to retract or abandon their
125
+ patch series when they are no longer pursuing it.
126
+
127
+ * The contributor guide has been updated to advise new contributors to
128
+ trim irrelevant quoted text when replying to review comments, matching
129
+ the existing advice given to reviewers.
130
+
131
+ * The build system has been updated to support building universal macOS
132
+ binaries when 'Rust' is enabled, by compiling separate static archives
133
+ for each target triple listed in 'RUST_TARGETS' and combining them
134
+ using the macOS 'lipo' tool. The 'git-credential-osxkeychain' helper
135
+ has been updated to link against '$(RUST_LIB)' when 'Rust' is enabled.
136
+
137
+ * The test suite has been updated to use the 'test_grep' helper instead
138
+ of bare 'grep' for test assertions, allowing file contents to be
139
+ printed on failure for easier debugging. A new 'greplint' linter has
140
+ been introduced to detect and prevent new bare 'grep' assertions from
141
+ being added to the test suite.
142
+
143
+ * The pipelines in 't1410-reflog.sh' have been replaced with the
144
+ 'test_stdout_line_count' helper to avoid suppressing the exit code of
145
+ 'git' commands, ensuring failures are not hidden from the test suite.
146
+
147
+ * The cache-scanning loop in 'next_cache_entry()' has been optimized
148
+ to avoid rescanning already-unpacked index entries, preventing a
149
+ quadratic performance slow-down when diffing the working tree
150
+ against a commit with a pathspec matching early index entries.
151
+
152
+ * The global configuration variable 'ignore_case' (representing the
153
+ 'core.ignorecase' configuration) has been migrated into 'struct
154
+ repo_config_values' to tie it to a specific repository instance.
155
+
156
+ * The performance of ref updates and reads using the 'reftable' backend
157
+ in the presence of many deletion tombstone records has been optimized
158
+ by removing the tombstone suppression flag from the merged iterator
159
+ and instead skipping tombstones at higher-level call sites where
160
+ iteration bounds are known.
161
+
162
+ * Various code paths have been hardened against potential NULL-pointer
163
+ dereferences and invalid file descriptor accesses flagged by
164
+ Coverity.
165
+
166
167
Fixes since v2.55
168
-----------------
@@ -215,3 +270,31 @@ Fixes since v2.55
270
escape sequences that use colon-separated subfields (e.g., for
271
256-color or true-color codes).
272
(merge 3792b2aea4 mm/sideband-ansi-sgr-colon-fix later to maint).
273
+
274
+ * The 'reftable' code has been hardened against corrupted tables by
275
+ fixing out-of-bounds writes, out-of-bounds reads, and abort calls
276
+ during parsing.
277
+ (merge ca93c27328 ps/reftable-hardening later to maint).
278
+
279
+ * A description in the release notes for Git 2.55.0 has been
280
+ retroactively updated to clarify that Rust support is enabled by
281
+ default, but still optional, and will become mandatory in Git 3.0.
282
+ (merge 18b2009d14 jc/relnotes-2.55-rust-fix later to maint).
283
+
284
+ * The early-exit optimization in 'paint_down_to_common()' has been
285
+ gated on the queue being generation-ordered, fixing a bug where
286
+ 'git merge-base' (without '--all') could return incorrect results
287
+ on repositories with v1 commit graphs and clock skew.
288
+ (merge ae68032a8d kk/commit-reach-find-all-fix later to maint).
289
+
290
+ * The client-side parser of the server-advertised bundle-URI list has
291
+ been updated to drain the remaining response in order to avoid
292
+ protocol desynchronization when the server sends a misconfigured list.
293
+ Also, the server-side has been taught to omit empty configuration
294
+ values instead of sending invalid key-value lines.
295
+ (merge 50de1169e4 tc/bundle-uri-empty-fix later to maint).
296
+
297
+ * The 'topo_levels' slab was propagated only to the topmost layer of a
298
+ split commit-graph chain, causing topological levels for commits in
299
+ base layers to be recomputed during incremental writes. This has been
300
+ corrected.