]>
Commit | Line | Data |
---|---|---|
ab7797db JH |
1 | Git 2.10 Release Notes |
2 | ====================== | |
3 | ||
4 | Backward compatibility notes | |
5 | ---------------------------- | |
6 | ||
7 | Updates since v2.9 | |
8 | ------------------ | |
9 | ||
10 | UI, Workflows & Features | |
11 | ||
12 | * "git pull --rebase --verify-signature" learned to warn the user | |
13 | that "--verify-signature" is a no-op when rebasing. | |
14 | ||
15 | * An upstream project can make a recommendation to shallowly clone | |
16 | some submodules in the .gitmodules file it ships. | |
17 | ||
18 | * "git worktree add" learned that '-' can be used as a short-hand for | |
19 | "@{-1}", the previous branch. | |
20 | ||
21 | * Update the funcname definition to support css files. | |
22 | ||
cf4c2cfe JH |
23 | * The completion script (in contrib/) learned to complete "git |
24 | status" options. | |
25 | ||
26 | * Messages that are generated by auto gc during "git push" on the | |
27 | receiving end are now passed back to the sending end in such a way | |
28 | that they are shown with "remote: " prefix to avoid confusing the | |
29 | users. | |
ab7797db | 30 | |
5c589a73 JH |
31 | * "git add -i/-p" learned to honor diff.compactionHeuristic |
32 | experimental knob, so that the user can work on the same hunk split | |
33 | as "git diff" output. | |
5c589a73 JH |
34 | |
35 | * "upload-pack" allows a custom "git pack-objects" replacement when | |
36 | responding to "fetch/clone" via the uploadpack.packObjectsHook. | |
37 | (merge 20b20a2 jk/upload-pack-hook later to maint). | |
38 | ||
39 | * Teach format-patch and mailsplit (hence "am") how a line that | |
40 | happens to begin with "From " in the e-mail message is quoted with | |
41 | ">", so that these lines can be restored to their original shape. | |
42 | (merge d9925d1 ew/mboxrd-format-am later to maint). | |
43 | ||
44 | * "git repack" learned the "--keep-unreachable" option, which sends | |
45 | loose unreachable objects to a pack instead of leaving them loose. | |
46 | This helps heuristics based on the number of loose objects | |
47 | (e.g. "gc --auto"). | |
48 | (merge e26a8c4 jk/repack-keep-unreachable later to maint). | |
49 | ||
50 | * "log --graph --format=" learned that "%>|(N)" specifies the width | |
51 | relative to the terminal's left edge, not relative to the area to | |
52 | draw text that is to the right of the ancestry-graph section. It | |
53 | also now accepts negative N that means the column limit is relative | |
54 | to the right border. | |
5c589a73 | 55 | |
d0ccc82a JH |
56 | * A careless invocation of "git send-email directory/" after editing |
57 | 0001-change.patch with an editor often ends up sending both | |
58 | 0001-change.patch and its backup file, 0001-change.patch~, causing | |
59 | embarrassment and a minor confusion. Detect such an input and | |
60 | offer to skip the backup files when sending the patches out. | |
61 | (merge 531220b jc/send-email-skip-backup later to maint). | |
62 | ||
63 | * "git submodule update" that drives many "git clone" could | |
64 | eventually hit flaky servers/network conditions on one of the | |
65 | submodules; the command learned to retry the attempt. | |
66 | ||
67 | * The output coloring scheme learned two new attributes, italic and | |
68 | strike, in addition to existing bold, reverse, etc. | |
69 | ||
70 | * "git log" learns log.showSignature configuration variable, and a | |
71 | command line option "--no-show-signature" to countermand it. | |
72 | (merge fce04c3 mj/log-show-signature-conf later to maint). | |
73 | ||
74 | * A couple of "git svn" updates. | |
75 | ||
79ed43c2 JH |
76 | * More markings of messages for i18n, with updates to various tests |
77 | to pass GETTEXT_POISON tests. | |
78 | ||
79 | * "git archive" learned to handle files that are larger than 8GB and | |
80 | commits far in the future than expressible by the traditional US-TAR | |
81 | format. | |
82 | (merge 5caeeb8 jk/big-and-future-archive-tar later to maint). | |
83 | ||
5c589a73 | 84 | |
ab7797db JH |
85 | Performance, Internal Implementation, Development Support etc. |
86 | ||
87 | * "git fast-import" learned the same performance trick to avoid | |
88 | creating too small a packfile as "git fetch" and "git push" have, | |
89 | using *.unpackLimit configuration. | |
90 | ||
91 | * When "git daemon" is run without --[init-]timeout specified, a | |
92 | connection from a client that silently goes offline can hang around | |
93 | for a long time, wasting resources. The socket-level KEEPALIVE has | |
94 | been enabled to allow the OS to notice such failed connections. | |
ab7797db JH |
95 | |
96 | * "git upload-pack" command has been updated to use the parse-options | |
97 | API. | |
98 | ||
cf4c2cfe JH |
99 | * The "git apply" standalone program is being libified; this is the |
100 | first step to move many state variables into a structure that can | |
101 | be explicitly (re)initialized to make the machinery callable more | |
102 | than once. | |
103 | ||
5c589a73 JH |
104 | * HTTP transport gained an option to produce more detailed debugging |
105 | trace. | |
106 | (merge 73e57aa ep/http-curl-trace later to maint). | |
107 | ||
108 | * Instead of taking advantage of a struct string_list that is | |
109 | allocated with all NULs happens to be STRING_LIST_INIT_NODUP kind, | |
110 | initialize them explicitly as such, to document their behaviour | |
111 | better. | |
112 | (merge 2721ce2 jk/string-list-static-init later to maint). | |
113 | ||
114 | * HTTPd tests learned to show the server error log to help diagnosing | |
115 | a failing tests. | |
116 | (merge 44f243d nd/test-lib-httpd-show-error-log-in-verbose later to maint). | |
117 | ||
118 | * The ownership rule for the piece of memory that hold references to | |
119 | be fetched in "git fetch" was screwy, which has been cleaned up. | |
5c589a73 JH |
120 | |
121 | * "git bisect" makes an internal call to "git diff-tree" when | |
122 | bisection finds the culprit, but this call did not initialize the | |
123 | data structure to pass to the diff-tree API correctly. | |
5c589a73 JH |
124 | |
125 | * Further preparatory clean-up for "worktree" feature continues. | |
126 | (merge 0409e0b nd/worktree-cleanup-post-head-protection later to maint). | |
127 | ||
128 | * Formats of the various data (and how to validate them) where we use | |
129 | GPG signature have been documented. | |
5c589a73 JH |
130 | |
131 | * A new run-command API function pipe_command() is introduced to | |
132 | sanely feed data to the standard input while capturing data from | |
133 | the standard output and the standard error of an external process, | |
134 | which is cumbersome to hand-roll correctly without deadlocking. | |
135 | ||
136 | The codepath to sign data in a prepared buffer with GPG has been | |
137 | updated to use this API to read from the status-fd to check for | |
138 | errors (instead of relying on GPG's exit status). | |
139 | (merge efee955 jk/gpg-interface-cleanup later to maint). | |
140 | ||
d0ccc82a JH |
141 | * Allow t/perf framework to use the features from the most recent |
142 | version of Git even when testing an older installed version. | |
143 | ||
ab7797db JH |
144 | |
145 | Also contains various documentation updates and code clean-ups. | |
146 | ||
147 | ||
148 | Fixes since v2.9 | |
149 | ---------------- | |
150 | ||
151 | Unless otherwise noted, all the fixes since v2.8 in the maintenance | |
152 | track are contained in this release (see the maintenance releases' | |
153 | notes for details). | |
154 | ||
155 | * The commands in `git log` family take %C(auto) in a custom format | |
156 | string. This unconditionally turned the color on, ignoring | |
157 | --no-color or with --color=auto when the output is not connected to | |
158 | a tty; this was corrected to make the format truly behave as | |
159 | "auto". | |
ab7797db JH |
160 | |
161 | * "git rev-list --count" whose walk-length is limited with "-n" | |
162 | option did not work well with the counting optimized to look at the | |
163 | bitmap index. | |
ab7797db JH |
164 | |
165 | * "git show -W" (extend hunks to cover the entire function, delimited | |
166 | by lines that match the "funcname" pattern) used to show the entire | |
167 | file when a change added an entire function at the end of the file, | |
168 | which has been fixed. | |
ab7797db | 169 | |
cf4c2cfe JH |
170 | * The documentation set has been updated so that literal commands, |
171 | configuration variables and environment variables are consistently | |
172 | typeset in fixed-width font and bold in manpages. | |
cf4c2cfe JH |
173 | |
174 | * "git svn propset" subcommand that was added in 2.3 days is | |
175 | documented now. | |
cf4c2cfe JH |
176 | |
177 | * The documentation tries to consistently spell "GPG"; when | |
178 | referring to the specific program name, "gpg" is used. | |
cf4c2cfe JH |
179 | |
180 | * "git reflog" stopped upon seeing an entry that denotes a branch | |
181 | creation event (aka "unborn"), which made it appear as if the | |
182 | reflog was truncated. | |
cf4c2cfe JH |
183 | |
184 | * The git-prompt scriptlet (in contrib/) was not friendly with those | |
185 | who uses "set -u", which has been fixed. | |
cf4c2cfe JH |
186 | |
187 | * compat/regex code did not cleanly compile. | |
cf4c2cfe JH |
188 | |
189 | * A codepath that used alloca(3) to place an unbounded amount of data | |
190 | on the stack has been updated to avoid doing so. | |
cf4c2cfe JH |
191 | |
192 | * "git update-index --add --chmod=+x file" may be usable as an escape | |
193 | hatch, but not a friendly thing to force for people who do need to | |
194 | use it regularly. "git add --chmod=+x file" can be used instead. | |
cf4c2cfe JH |
195 | |
196 | * Build improvements for gnome-keyring (in contrib/) | |
cf4c2cfe JH |
197 | |
198 | * "git status" used to say "working directory" when it meant "working | |
199 | tree". | |
cf4c2cfe JH |
200 | |
201 | * Comments about misbehaving FreeBSD shells have been clarified with | |
202 | the version number (9.x and before are broken, newer ones are OK). | |
cf4c2cfe JH |
203 | |
204 | * "git cherry-pick A" worked on an unborn branch, but "git | |
205 | cherry-pick A..B" didn't. | |
5c589a73 JH |
206 | |
207 | * Fix an unintended regression in v2.9 that breaks "clone --depth" | |
208 | that recurses down to submodules by forcing the submodules to also | |
209 | be cloned shallowly, which many server instances that host upstream | |
210 | of the submodules are not prepared for. | |
5c589a73 JH |
211 | |
212 | * Fix unnecessarily waste in the idiomatic use of ': ${VAR=default}' | |
213 | to set the default value, without enclosing it in double quotes. | |
5c589a73 JH |
214 | |
215 | * Some platform-specific code had non-ANSI strict declarations of C | |
216 | functions that do not take any parameters, which has been | |
217 | corrected. | |
5c589a73 JH |
218 | |
219 | * The internal code used to show local timezone offset is not | |
220 | prepared to handle timestamps beyond year 2100, and gave a | |
221 | bogus offset value to the caller. Use a more benign looking | |
222 | +0000 instead and let "git log" going in such a case, instead | |
223 | of aborting. | |
224 | (merge bab7483 jk/tzoffset-fix later to maint). | |
225 | ||
226 | * One among four invocations of readlink(1) in our test suite has | |
227 | been rewritten so that the test can run on systems without the | |
228 | command (others are in valgrind test framework and t9802). | |
5c589a73 JH |
229 | |
230 | * t/perf needs /usr/bin/time with GNU extension; the invocation of it | |
231 | is updated to "gtime" on Darwin. | |
5c589a73 JH |
232 | |
233 | * A bug, which caused "git p4" while running under verbose mode to | |
234 | report paths that are omitted due to branch prefix incorrectly, has | |
235 | been fixed; the command said "Ignoring file outside of prefix" for | |
236 | paths that are _inside_. | |
cf4c2cfe | 237 | |
d0ccc82a JH |
238 | * The top level documentation "git help git" still pointed at the |
239 | documentation set hosted at now-defunct google-code repository. | |
240 | Update it to point to https://git.github.io/htmldocs/git.html | |
241 | instead. | |
d0ccc82a JH |
242 | |
243 | * A helper function that takes the contents of a commit object and | |
244 | finds its subject line did not ignore leading blank lines, as is | |
245 | commonly done by other codepaths. Make it ignore leading blank | |
246 | lines to match. | |
247 | (merge 054a5ae js/find-commit-subject-ignore-leading-blanks later to maint). | |
248 | ||
249 | * For a long time, we carried an in-code comment that said our | |
250 | colored output would work only when we use fprintf/fputs on | |
251 | Windows, which no longer is the case for the past few years. | |
252 | (merge 3d0a833 js/color-on-windows-comment later to maint). | |
253 | ||
79ed43c2 JH |
254 | * "gc.autoPackLimit" when set to 1 should not trigger a repacking |
255 | when there is only one pack, but the code counted poorly and did | |
256 | so. | |
257 | (merge 5f4e3bf ew/gc-auto-pack-limit-fix later to maint). | |
258 | ||
259 | * Add a test to specify the desired behaviour that currently is not | |
260 | available in "git rebase -Xsubtree=...". | |
261 | (merge 5f35900 dg/subtree-rebase-test later to maint). | |
262 | ||
263 | * More mark-up updates to typeset strings that are expected to | |
264 | literally typed by the end user in fixed-width font. | |
265 | (merge 661c3e9 mm/doc-tt later to maint). | |
266 | ||
267 | * "git commit --amend --allow-empty-message -S" for a commit without | |
268 | any message body could have misidentified where the header of the | |
269 | commit object ends. | |
270 | (merge 3324dd8 js/sign-empty-commit-fix later to maint). | |
271 | ||
272 | * "git rebase -i --autostash" did not restore the auto-stashed change | |
273 | when the operation was aborted. | |
274 | (merge 33ba9c6 ps/rebase-i-auto-unstash-upon-abort later to maint). | |
275 | ||
276 | * Git does not know what the contents in the index should be for a | |
277 | path added with "git add -N" yet, so "git grep --cached" should not | |
278 | show hits (or show lack of hits, with -L) in such a path, but that | |
279 | logic does not apply to "git grep", i.e. searching in the working | |
280 | tree files. But we did so by mistake, which has been corrected. | |
281 | (merge b8e47d1 nd/ita-cleanup later to maint). | |
282 | ||
ab7797db | 283 | * Other minor clean-ups and documentation updates |
5c589a73 JH |
284 | (merge e51b0df pb/commit-editmsg-path later to maint). |
285 | (merge b333d0d jk/send-pack-stdio later to maint). | |
286 | (merge fcf0fe9 lf/sideband-returns-void later to maint). | |
79ed43c2 JH |
287 | (merge c2691e2 ah/unpack-trees-advice-messages later to maint). |
288 | (merge 82f6178 nd/doc-new-command later to maint). | |
289 | (merge fa90ab4 js/t3404-grammo-fix later to maint). |