1 Git v2.48 Release Notes
2 =======================
4 UI, Workflows & Features
5 ------------------------
7 * A new configuration variable remote.<name>.serverOption makes the
8 transport layer act as if the --serverOption=<value> option is
9 given from the command line.
11 * "git rebase --rebase-merges" now uses branch names as labels when
14 * Describe the policy to introduce breaking changes.
16 * Teach 'git notes add' and 'git notes append' a new '-e' flag,
17 instructing them to open the note in $GIT_EDITOR before saving.
20 Performance, Internal Implementation, Development Support etc.
21 --------------------------------------------------------------
23 * Document "amlog" notes.
24 (merge ddfb5bcfc6 tb/notes-amlog-doc later to maint).
26 * The way AsciiDoc is used for SYNOPSIS part of the manual pages has
27 been revamped. The sources, at least for the simple cases, got
28 vastly pleasant to work with.
30 * The reftable library is now prepared to expect that the memory
31 allocation function given to it may fail to allocate and to deal
34 * An extra worktree attached to a repository points at each other to
35 allow finding the repository from the worktree and vice versa
36 possible. Turn this linkage to relative paths.
38 * Enable Windows-based CI in GitLab.
40 * Commands that can also work outside Git have learned to take the
41 repository instance "repo" when we know we are in a repository, and
42 NULL when we are not, in a parameter. The uses of the_repository
43 variable in a few of them have been removed using the new calling
46 * The reftable sub-system grew a new reftable-specific strbuf
47 replacement to reduce its dependency on Git-specific data
50 * The ref-filter machinery learns to recognize and avoid cases where
51 sorting would be redundant.
53 * Various platform compatibility fixes split out of the larger effort
54 to use Meson as the primary build tool.
56 * Treat ECONNABORTED the same as ECONNRESET in 'git credential-cache'
57 to work around a possible Cygwin regression. This resolves a race
58 condition caused by changes in Cygwin's handling of socket
59 closures, allowing the client to exit cleanly when encountering
62 * Demonstrate an assertion failure in 'git mv'.
64 * Documentation update to clarify that 'uploadpack.allowAnySHA1InWant'
65 implies both 'allowTipSHA1InWant' and 'allowReachableSHA1InWant'.
67 * Replace various calls to atoi() with strtol_i() and strtoul_ui(),
68 and add improved error handling.
70 * Documentation updates to 'git-update-ref(1)'.
72 * Update the project's CodingGuidelines to discourage naming functions
75 * Updates the '.clang-format' to match project conventions.
77 * Centralize documentation for repository extensions into a single place.
79 * Buildfix and upgrade of Clar to a newer version.
81 * Documentation mark-up updates.
83 * Renaming a handful of variables and structure fields.
89 * Doc update to clarify how periodical maintenance are scheduled,
90 spread across time to avoid thundering hurds.
91 (merge 3d6ab4177d sk/doc-maintenance-schedule later to maint).
93 * Use after free and double freeing at the end in "git log -L... -p"
94 had been identified and fixed.
96 * On macOS, fsmonitor can fall into a race condition that results in
97 a client waiting forever to be notified for an event that have
98 already happened. This problem has been corrected.
100 * "git maintenance start" crashed due to an uninitialized variable
101 reference, which has been corrected.
103 * Fail gracefully instead of crashing when attempting to write the
104 contents of a corrupt in-core index as a tree object.
106 * A "git fetch" from the superproject going down to a submodule used
107 a wrong remote when the default remote names are set differently
110 * Fixes compile time warnings with 64-bit MSVC.
112 * Teaches 'shortlog' to explicitly use SHA-1 when operating outside
115 * Fix 'git grep' regression on macOS by disabling lookahead when
116 encountering invalid UTF-8 byte sequences.
118 * The dumb-http code regressed when the result of re-indexing a pack
119 yielded an *.idx file that differs in content from the *.idx file
120 it downloaded from the remote. This has been corrected by no longer
121 relying on: the *.idx file we got from the remote.
123 * When called with '--left-right' and '--use-bitmap-index', 'rev-list'
124 will produce output without any left/right markers, which has been
129 * Test modernization.
131 * The "--shallow-exclude=<ref>" option to various history transfer
132 commands takes a ref, not an arbitrary revision.
134 * A regression where commit objects missing from a commit-graph can
135 cause an infinite loop when doing a fetch in a partial clone has
138 * The MinGW compatibility layer has been taught to support POSIX
139 semantics for atomic renames when other process(es) have a file
140 opened at the destination path.
142 * "git gc" discards any objects that are outside promisor packs that
143 are referred to by an object in a promisor pack, and we do not
144 refetch them from the promisor at runtime, resulting an unusable
145 repository. Work it around by including these objects in the
146 referring promisor pack at the receiving end of the fetch.
148 * Other code cleanup, docfix, build fix, etc.
149 (merge 1164e270b5 jk/output-prefix-cleanup later to maint).
150 (merge f36b8cbaef jh/config-unset-doc-fix later to maint).
151 (merge 4154ed4108 js/doc-platform-support-link-fix later to maint).
152 (merge 77af53f56f aa/t7300-modernize later to maint).
153 (merge 8ead1bba3e jc/doc-refspec-syntax later to maint).
154 (merge 432f666aa6 kn/loose-object-layer-wo-global-hash later to maint).
155 (merge c4b8fb6ef2 kh/merge-tree-doc later to maint).
156 (merge b8139c8f4e kh/checkout-ignore-other-docfix later to maint).
157 (merge 6dab49b9fb tc/bundle-uri-leakfix later to maint).
158 (merge f1ed39987b xx/protocol-v2-doc-markup-fix later to maint).
159 (merge 41869f7447 ak/typofixes later to maint).
160 (merge dcd590a39d bf/t-readme-mention-reftable later to maint).