]>
Commit | Line | Data |
---|---|---|
54219a4d JH |
1 | Git v1.8.4 Release Notes |
2 | ======================== | |
3 | ||
911011aa JH |
4 | Backward compatibility notes (for Git 2.0) |
5 | ------------------------------------------ | |
6 | ||
7 | When "git push [$there]" does not say what to push, we have used the | |
8 | traditional "matching" semantics so far (all your branches were sent | |
9 | to the remote as long as there already are branches of the same name | |
10 | over there). In Git 2.0, the default will change to the "simple" | |
11 | semantics that pushes: | |
12 | ||
13 | - only the current branch to the branch with the same name, and only | |
14 | when the current branch is set to integrate with that remote | |
15 | branch, if you are pushing to the same remote as you fetch from; or | |
16 | ||
17 | - only the current branch to the branch with the same name, if you | |
18 | are pushing to a remote that is not where you usually fetch from. | |
19 | ||
20 | Use the user preference configuration variable "push.default" to | |
21 | change this. If you are an old-timer who is used to the "matching" | |
22 | semantics, you can set the variable to "matching" to keep the | |
23 | traditional behaviour. If you want to live in the future early, you | |
24 | can set it to "simple" today without waiting for Git 2.0. | |
25 | ||
26 | When "git add -u" (and "git add -A") is run inside a subdirectory and | |
27 | does not specify which paths to add on the command line, it | |
28 | will operate on the entire tree in Git 2.0 for consistency | |
29 | with "git commit -a" and other commands. There will be no | |
30 | mechanism to make plain "git add -u" behave like "git add -u .". | |
31 | Current users of "git add -u" (without a pathspec) should start | |
32 | training their fingers to explicitly say "git add -u ." | |
33 | before Git 2.0 comes. A warning is issued when these commands are | |
34 | run without a pathspec and when you have local changes outside the | |
35 | current directory, because the behaviour in Git 2.0 will be different | |
36 | from today's version in such a situation. | |
37 | ||
38 | In Git 2.0, "git add <path>" will behave as "git add -A <path>", so | |
39 | that "git add dir/" will notice paths you removed from the directory | |
40 | and record the removal. Versions before Git 2.0, including this | |
41 | release, will keep ignoring removals, but the users who rely on this | |
42 | behaviour are encouraged to start using "git add --ignore-removal <path>" | |
43 | now before 2.0 is released. | |
44 | ||
45 | ||
54219a4d JH |
46 | Updates since v1.8.3 |
47 | -------------------- | |
48 | ||
21ff9151 JH |
49 | Foreign interfaces, subsystems and ports. |
50 | ||
c490a607 JH |
51 | * Cygwin port has been updated for more recent Cygwin 1.7. |
52 | ||
911011aa JH |
53 | * "git rebase -i" now honors --strategy and -X options. |
54 | ||
21ff9151 | 55 | * Git-gui has been updated to its 0.18.0 version. |
879070e6 | 56 | |
0dbd8125 JH |
57 | * MediaWiki remote helper (in contrib/) has been updated to use the |
58 | credential helper interface from Git.pm. | |
59 | ||
879070e6 | 60 | * Update build for Cygwin 1.[57]. Torsten Bögershausen reports that |
d23f9c8e | 61 | this is fine with Cygwin 1.7 (cf. <51A606A0.5060101@web.de>) so let's try moving it |
879070e6 JH |
62 | ahead. |
63 | ||
64 | * The credential helper to talk to keychain on OS X (in contrib/) has | |
65 | been updated to kick in not just when talking http/https but also | |
66 | imap(s) and smtp. | |
54219a4d JH |
67 | |
68 | * Remote transport helper has been updated to report errors and | |
69 | maintain ref hierarchy used to keep track of its own state better. | |
70 | ||
882e78c7 JH |
71 | * With "export" remote-helper protocol, (1) a push that tries to |
72 | update a remote ref whose name is different from the pushing side | |
73 | does not work yet, and (2) the helper may not know how to do | |
74 | --dry-run; these problematic cases are disabled for now. | |
54219a4d | 75 | |
879070e6 JH |
76 | * git-remote-hg/bzr (in contrib/) updates. |
77 | ||
78 | * git-remote-mw (in contrib/) hints users to check the certificate, | |
79 | when https:// connection failed. | |
80 | ||
b72c6161 JH |
81 | * git-remote-mw (in contrib/) adds a command to allow previewing the |
82 | contents locally before pushing it out, when working with a | |
83 | MediaWiki remote. | |
84 | ||
879070e6 | 85 | |
54219a4d JH |
86 | UI, Workflows & Features |
87 | ||
c490a607 JH |
88 | * Sample "post-receive-email" hook script got an enhanced replacement |
89 | "multimail" (in contrib/). | |
90 | ||
91 | * Also in contrib/ is a new "contacts" script that runs "git blame" | |
92 | to find out the people who may be interested in a set of changes. | |
93 | ||
9c559d5b JH |
94 | * "git clean" command learned an interactive mode. |
95 | ||
96 | * The "--head" option to "git show-ref" was only to add "HEAD" to the | |
97 | list of candidate refs to be filtered by the usual rules | |
98 | (e.g. "--heads" that only show refs under refs/heads). The meaning | |
99 | of the option has been changed to always show "HEAD" regardless of | |
100 | what filtering will be applied to any other ref. | |
101 | ||
102 | This is a backward incompatible change and might cause breakages to | |
103 | people's existing scripts. | |
104 | ||
105 | * "git show -s" was less discoverable than it should have been. It | |
106 | now has a natural synonym "git show --no-patch". | |
107 | ||
108 | * "git check-mailmap" is a new command that lets you map usernames | |
109 | and e-mail addresses through the mailmap mechanism, just like many | |
110 | built-in commands do. | |
111 | ||
112 | * "git name-rev" learned to name an annotated tag object back to its | |
113 | tagname; "git name-rev $(git rev-parse v1.0.0)" gives "tags/v1.0.0", | |
114 | for example. | |
115 | ||
b72c6161 JH |
116 | * "git cat-file --batch-check=<format>" is added, primarily to allow |
117 | on-disk footprint of objects in packfiles (often they are a lot | |
118 | smaller than their true size, when expressed as deltas) to be | |
119 | reported. | |
120 | ||
121 | * "git rebase [-i]" used to leave just "rebase" as its reflog messages | |
122 | for some operations. They have been reworded to be more informative. | |
123 | ||
9c3c367b JH |
124 | * In addition to the choice from "rebase, merge, or checkout-detach", |
125 | "submodule update" can allow a custom command to be used in to | |
126 | update the working tree of submodules via the "submodule.*.update" | |
127 | configuration variable. | |
128 | ||
129 | * "git submodule update" can optionally clone the submodule | |
130 | repositories shallowly. | |
131 | ||
132 | * "git format-patch" learned "--from[=whom]" option, which sets the | |
133 | "From: " header to the specified person (or the person who runs the | |
134 | command, if "=whom" part is missing) and move the original author | |
135 | information to an in-body From: header as necessary. | |
136 | ||
137 | * The configuration variable "merge.ff" was cleary a tri-state to | |
138 | choose one from "favor fast-forward when possible", "always create | |
139 | a merge even when the history could fast-forward" and "do not | |
140 | create any merge, only update when the history fast-forwards", but | |
141 | the command line parser did not implement the usual convention of | |
142 | "last one wins, and command line overrides the configuration" | |
143 | correctly. | |
144 | ||
0da7a53a JH |
145 | * "gitweb" learned to optionally place extra links that point at the |
146 | levels higher than the Gitweb pages themselves in the breadcrumbs, | |
147 | so that it can be used as part of a larger installation. | |
148 | ||
149 | * "git log --format=" now honors i18n.logoutputencoding configuration | |
150 | variable. | |
151 | ||
911011aa JH |
152 | * The "push.default=simple" mode of "git push" has been updated to |
153 | behave like "current" without requiring a remote tracking | |
154 | information, when you push to a remote that is different from where | |
155 | you fetch from (i.e. a triangular workflow). | |
156 | ||
51f11d69 JH |
157 | * Having multiple "fixup!" on a line in the rebase instruction sheet |
158 | did not work very well with "git rebase -i --autosquash". | |
159 | ||
160 | * "git log" learned the "--author-date-order" option, with which the | |
161 | output is topologically sorted and commits in parallel histories | |
162 | are shown intermixed together based on the author timestamp. | |
163 | ||
c1182d92 JH |
164 | * Various subcommands of "git submodule" refused to run from anywhere |
165 | other than the top of the working tree of the superproject, but | |
166 | they have been taught to let you run from a subdirectory. | |
167 | ||
168 | * "git diff" learned a mode that ignores hunks whose change consists | |
169 | only of additions and removals of blank lines, which is the same as | |
170 | "diff -B" (ignore blank lines) of GNU diff. | |
171 | ||
9832cb9d JH |
172 | * "git rm" gives a single message followed by list of paths to report |
173 | multiple paths that cannot be removed. | |
174 | ||
175 | * "git rebase" can be told with ":/look for this string" syntax commits | |
176 | to replay the changes onto and where the work to be replayed begins. | |
177 | ||
21ff9151 JH |
178 | * Many tutorials teach users to set "color.ui" to "auto" as the first |
179 | thing after you set "user.name/email" to introduce yourselves to | |
180 | Git. Now the variable defaults to "auto". | |
181 | ||
85318f52 JH |
182 | * On Cygwin, "cygstart" is now recognised as a possible way to start |
183 | a web browser (used in "help -w" and "instaweb" among others). | |
184 | ||
911011aa JH |
185 | * "git status" learned status.branch and status.short configuration |
186 | variables to use --branch and --short options by default (override | |
187 | with --no-branch and --no-short options from the command line). | |
1f3a412d | 188 | |
879070e6 JH |
189 | * "git cmd <name>", when <name> happens to be a 40-hex string, |
190 | directly uses the 40-hex string as an object name, even if a ref | |
191 | "refs/<some hierarchy>/<name>" exists. This disambiguation order | |
192 | is unlikely to change, but we should warn about the ambiguity just | |
c490a607 | 193 | like we warn when more than one refs/ hierarchies share the same |
879070e6 JH |
194 | name. |
195 | ||
196 | * "git rebase" learned "--[no-]autostash" option to save local | |
197 | changes instead of refusing to run (to which people's normal | |
9832cb9d JH |
198 | response was to stash them and re-run). This introduced a corner |
199 | case breakage to "git am --abort" but it has been fixed. | |
879070e6 | 200 | |
54219a4d JH |
201 | * "check-ignore" (new feature since 1.8.2) has been updated to work |
202 | more like "check-attr" over bidi-pipes. | |
203 | ||
b2edae0a | 204 | * "git describe" learned "--first-parent" option to limit its closest |
ecb9f3e7 | 205 | tagged commit search to the first-parent chain. |
b2edae0a JH |
206 | |
207 | * "git merge foo" that might have meant "git merge origin/foo" is | |
208 | diagnosed with a more informative error message. | |
209 | ||
210 | * "git log -L<line>,<range>:<filename>" has been added. This may | |
211 | still have leaks and rough edges, though. | |
212 | ||
54219a4d JH |
213 | * We used the approxidate() parser for "--expire=<timestamp>" options |
214 | of various commands, but it is better to treat --expire=all and | |
215 | --expire=now a bit more specially than using the current timestamp. | |
216 | "git gc" and "git reflog" have been updated with a new parsing | |
217 | function for expiry dates. | |
218 | ||
b2edae0a JH |
219 | * Updates to completion (both bash and zsh) helpers. |
220 | ||
ecb9f3e7 JH |
221 | * The behaviour of the "--chain-reply-to" option of "git send-email" |
222 | have changed at 1.7.0, and we added a warning/advice message to | |
223 | help users adjust to the new behaviour back then, but we kept it | |
224 | around for too long. The message has finally been removed. | |
225 | ||
b2edae0a JH |
226 | * "git fetch origin master" unlike "git fetch origin" or "git fetch" |
227 | did not update "refs/remotes/origin/master"; this was an early | |
228 | design decision to keep the update of remote tracking branches | |
229 | predictable, but in practice it turns out that people find it more | |
ecb9f3e7 | 230 | convenient to opportunistically update them whenever we have a |
b2edae0a JH |
231 | chance, and we have been updating them when we run "git push" which |
232 | already breaks the original "predictability" anyway. | |
233 | ||
ecb9f3e7 JH |
234 | * The configuration variable core.checkstat was advertised in the |
235 | documentation but the code expected core.statinfo instead. | |
236 | For now, we accept both core.checkstat and core.statinfo, but the | |
237 | latter will be removed in the longer term. | |
238 | ||
54219a4d JH |
239 | |
240 | Performance, Internal Implementation, etc. | |
241 | ||
64948ad7 JH |
242 | * On Cygwin, we used to use our own lstat(2) emulation that is |
243 | allegedly faster than the platform one in codepaths where some of | |
244 | the information it returns did not matter, but it started to bite | |
245 | us in a few codepaths where the trick it uses to cheat does show | |
246 | breakages. This emulation has been removed and we use the native | |
247 | lstat(2) emulation supplied by Cygwin now. | |
248 | ||
9c559d5b JH |
249 | * The function attributes extensions are used to catch mistakes in |
250 | use of our own variadic functions that use NULL sentinel at the end | |
251 | (i.e. like execl(3)) and format strings (i.e. like printf(3)). | |
252 | ||
253 | * The code to allow configuration data to be read from in-tree blob | |
254 | objects is in. This may help working in a bare repository and | |
255 | submodule updates. | |
256 | ||
9c3c367b JH |
257 | * Fetching between repositories with many refs employed O(n^2) |
258 | algorithm to match up the common objects, which has been corrected. | |
259 | ||
51f11d69 JH |
260 | * The original way to specify remote repository using .git/branches/ |
261 | used to have a nifty feature. The code to support the feature was | |
262 | still in a function but the caller was changed not to call it 5 | |
263 | years ago, breaking that feature and leaving the supporting code | |
264 | unreachable. The dead code has been removed. | |
265 | ||
c1182d92 JH |
266 | * "git pack-refs" that races with new ref creation or deletion have |
267 | been susceptible to lossage of refs under right conditions, which | |
268 | has been tightened up. | |
269 | ||
0d8beaa5 | 270 | * We read loose and packed references in two steps, but after |
c1182d92 JH |
271 | deciding to read a loose ref but before actually opening it to read |
272 | it, another process racing with us can unlink it, which would cause | |
273 | us to barf. The codepath has been updated to retry when such a | |
274 | race is detected, instead of outright failing. | |
275 | ||
21ff9151 JH |
276 | * Uses of the platform fnmatch(3) function (many places in the code, |
277 | matching pathspec, .gitignore and .gitattributes to name a few) | |
278 | have been replaced with wildmatch, allowing "foo/**/bar" that would | |
279 | match foo/bar, foo/a/bar, foo/a/b/bar, etc. | |
280 | ||
0dbd8125 JH |
281 | * Memory ownership and lifetime rules for what for-each-ref feeds to |
282 | its callbacks have been clarified (in short, "you do not own it, so | |
283 | make a copy if you want to keep it"). | |
284 | ||
285 | * The revision traversal logic to improve culling of irrelevant | |
286 | parents while traversing a mergy history has been updated. | |
287 | ||
879070e6 JH |
288 | * Some leaks in unpack-trees (used in merge, cherry-pick and other |
289 | codepaths) have been plugged. | |
290 | ||
b2edae0a JH |
291 | * The codepath to read from marks files in fast-import/export did not |
292 | have to accept anything but 40-hex representation of the object | |
293 | name. Further, fast-export did not need full in-core object | |
294 | representation to have parsed wen reading from them. These | |
295 | codepaths have been optimized by taking advantage of these access | |
296 | patterns. | |
297 | ||
54219a4d JH |
298 | * Object lookup logic, when the object hashtable starts to become |
299 | crowded, has been optimized. | |
300 | ||
301 | * When TEST_OUTPUT_DIRECTORY setting is used, it was handled somewhat | |
302 | inconsistently between the test framework and t/Makefile, and logic | |
303 | to summarize the results looked at a wrong place. | |
304 | ||
882e78c7 JH |
305 | * "git clone" uses a lighter-weight implementation when making sure |
306 | that the history behind refs are complete. | |
307 | ||
54219a4d JH |
308 | * Many warnings from sparse source checker in compat/ area has been |
309 | squelched. | |
310 | ||
311 | * The code to reading and updating packed-refs file has been updated, | |
312 | correcting corner case bugs. | |
313 | ||
314 | ||
315 | Also contains various documentation updates and code clean-ups. | |
316 | ||
317 | ||
318 | Fixes since v1.8.3 | |
319 | ------------------ | |
320 | ||
321 | Unless otherwise noted, all the fixes since v1.8.3 in the maintenance | |
322 | track are contained in this release (see release notes to them for | |
323 | details). | |
324 | ||
9c559d5b JH |
325 | * Newer Net::SMTP::SSL module does not want the user programs to use |
326 | the default behaviour to let server certificate go without | |
327 | verification, so by default enable the verification with a | |
328 | mechanism to turn it off if needed. | |
329 | (merge 35035bb rr/send-email-ssl-verify later to maint). | |
330 | ||
331 | * When "git" is spawned in such a way that any of the low 3 file | |
332 | descriptors is closed, our first open() may yield file descriptor 2, | |
333 | and writing error message to it would screw things up in a big way. | |
334 | (merge a11c396 tr/protect-low-3-fds later to maint). | |
335 | ||
336 | * The mailmap mechanism unnecessarily downcased the e-mail addresses | |
337 | in the output, and also ignored the human name when it is a single | |
338 | character name. | |
339 | (merge bd23794 jc/mailmap-case-insensitivity later to maint). | |
340 | ||
341 | * In two places we did not check return value (expected to be a file | |
342 | descriptor) correctly. | |
343 | (merge a77f106 tr/fd-gotcha-fixes later to maint). | |
344 | ||
b72c6161 JH |
345 | * Logic to auto-detect character encodings in the commit log message |
346 | did not reject overlong and invalid UTF-8 characters. | |
347 | (merge 81050ac bc/commit-invalid-utf8 later to maint). | |
348 | ||
9c3c367b JH |
349 | * Pass port number as a separate argument when "send-email" initializes |
350 | Net::SMTP, instead of as a part of the hostname, i.e. host:port. | |
351 | This allows GSSAPI codepath to match with the hostname given. | |
352 | (merge 1a741bf bc/send-email-use-port-as-separate-param later to maint). | |
353 | ||
911011aa JH |
354 | * "git diff" refused to even show difference when core.safecrlf is |
355 | set to true (i.e. error out) and there are offending lines in the | |
356 | working tree files. | |
357 | (merge 5430bb2 jc/maint-diff-core-safecrlf later to maint). | |
358 | ||
359 | * A test that should have failed but didn't revealed a bug that needs | |
360 | to be corrected. | |
361 | (merge 94d75d1 jc/t1512-fix later to maint). | |
362 | ||
363 | * An overlong path to a .git directory may have overflown the | |
364 | temporary path buffer used to create a name for lockfiles. | |
365 | (merge 2fbd4f9 mh/maint-lockfile-overflow later to maint). | |
366 | ||
367 | * Invocations of "git checkout" used internally by "git rebase" were | |
368 | counted as "checkout", and affected later "git checkout -" to the | |
369 | the user to an unexpected place. | |
370 | (merge 3bed291 rr/rebase-checkout-reflog later to maint). | |
371 | ||
51f11d69 JH |
372 | * The configuration variable column.ui was poorly documented. |
373 | (merge 5e62cc1 rr/column-doc later to maint). | |
374 | ||
c1182d92 JH |
375 | * "git name-rev --refs=tags/v*" were forbidden, which was a bit |
376 | inconvenient (you had to give a pattern to match refs fully, like | |
377 | --refs=refs/tags/v*). | |
378 | (merge 98c5c4a nk/name-rev-abbreviated-refs later to maint). | |
379 | ||
85318f52 JH |
380 | * "git apply" parsed patches that add new files, generated by |
381 | programs other than Git, incorrectly. This is an old breakage in | |
0d8beaa5 | 382 | v1.7.11 and will need to be merged down to the maintenance tracks. |
85318f52 | 383 | |
a75f9f05 JH |
384 | * Older cURL wanted piece of memory we call it with to be stable, but |
385 | we updated the auth material after handing it to a call. | |
a75f9f05 JH |
386 | |
387 | * "git pull" into nothing trashed "local changes" that were in the | |
388 | index, and this avoids it. | |
a75f9f05 | 389 | |
85318f52 JH |
390 | * Many "git submodule" operations do not work on a submodule at a |
391 | path whose name is not in ASCII. | |
85318f52 | 392 | |
9832cb9d | 393 | * "cherry-pick" had a small leak in an error codepath. |
9832cb9d | 394 | |
0dbd8125 JH |
395 | * Logic used by git-send-email to suppress cc mishandled names like |
396 | "A U. Thor" <author@example.xz>, where the human readable part | |
397 | needs to be quoted (the user input may not have the double quotes | |
398 | around the name, and comparison was done between quoted and | |
a75f9f05 JH |
399 | unquoted strings). It also mishandled names that need RFC2047 |
400 | quoting. | |
0dbd8125 | 401 | |
21ff9151 JH |
402 | * Call to discard_cache/discard_index (used when we use different |
403 | contents of the index in-core, in many operations like commit, | |
404 | apply, and merge) used to leak memory that held the array of index | |
405 | entries, which has been plugged. | |
406 | (merge a0fc4db rs/discard-index-discard-array later to maint). | |
407 | ||
879070e6 JH |
408 | * "gitweb" forgot to clear a global variable $search_regexp upon each |
409 | request, mistakenly carrying over the previous search to a new one | |
410 | when used as a persistent CGI. | |
879070e6 JH |
411 | |
412 | * The wildmatch engine did not honor WM_CASEFOLD option correctly. | |
879070e6 JH |
413 | |
414 | * "git log -c --follow $path" segfaulted upon hitting the commit that | |
415 | renamed the $path being followed. | |
879070e6 JH |
416 | |
417 | * When a reflog notation is used for implicit "current branch", we | |
418 | did not say which branch and worse said "branch ''". | |
879070e6 | 419 | |
882e78c7 JH |
420 | * "difftool --dir-diff" did not copy back changes made by the |
421 | end-user in the diff tool backend to the working tree in some | |
422 | cases. | |
882e78c7 JH |
423 | |
424 | * "git push $there HEAD:branch" did not resolve HEAD early enough, so | |
425 | it was easy to flip it around while push is still going on and push | |
426 | out a branch that the user did not originally intended when the | |
427 | command was started. | |
882e78c7 JH |
428 | |
429 | * The bash prompt code (in contrib/) displayed the name of the branch | |
430 | being rebased when "rebase -i/-m/-p" modes are in use, but not the | |
431 | plain vanilla "rebase". | |
882e78c7 | 432 | |
ecb9f3e7 JH |
433 | * Handling of negative exclude pattern for directories "!dir" was |
434 | broken in the update to v1.8.3. | |
ecb9f3e7 JH |
435 | |
436 | * zsh prompt script that borrowed from bash prompt script did not | |
437 | work due to slight differences in array variable notation between | |
438 | these two shells. | |
ecb9f3e7 JH |
439 | |
440 | * An entry for "file://" scheme in the enumeration of URL types Git | |
441 | can take in the HTML documentation was made into a clickable link | |
442 | by mistake. | |
ecb9f3e7 JH |
443 | |
444 | * "git push --[no-]verify" was not documented. | |
ecb9f3e7 JH |
445 | |
446 | * Stop installing the git-remote-testpy script that is only used for | |
447 | testing. | |
ecb9f3e7 JH |
448 | |
449 | * "git commit --allow-empty-message -m ''" should not start an | |
450 | editor. | |
ecb9f3e7 | 451 | |
b2edae0a JH |
452 | * "git merge @{-1}~22" was rewritten to "git merge frotz@{1}~22" |
453 | incorrectly when your previous branch was "frotz" (it should be | |
454 | rewritten to "git merge frotz~22" instead). | |
b2edae0a JH |
455 | |
456 | * "git diff -c -p" was not showing a deleted line from a hunk when | |
457 | another hunk immediately begins where the earlier one ends. | |
b2edae0a JH |
458 | |
459 | * "git log --ancestry-path A...B" did not work as expected, as it did | |
460 | not pay attention to the fact that the merge base between A and B | |
461 | was the bottom of the range being specified. | |
b2edae0a JH |
462 | |
463 | * Mac OS X does not like to write(2) more than INT_MAX number of | |
464 | bytes; work it around by chopping write(2) into smaller pieces. | |
b2edae0a JH |
465 | |
466 | * Newer MacOS X encourages the programs to compile and link with | |
467 | their CommonCrypto, not with OpenSSL. | |
b2edae0a JH |
468 | |
469 | * "git clone foo/bar:baz" cannot be a request to clone from a remote | |
470 | over git-over-ssh specified in the scp style. This case is now | |
471 | detected and clones from a local repository at "foo/bar:baz". | |
b2edae0a | 472 | |
54219a4d JH |
473 | * When $HOME is misconfigured to point at an unreadable directory, we |
474 | used to complain and die. Loosen the check. | |
54219a4d JH |
475 | |
476 | * "git subtree" (in contrib/) had one codepath with loose error | |
477 | checks to lose data at the remote side. | |
54219a4d JH |
478 | |
479 | * "git fetch" into a shallow repository from a repository that does | |
480 | not know about the shallow boundary commits (e.g. a different fork | |
481 | from the repository the current shallow repository was cloned from) | |
482 | did not work correctly. | |
54219a4d JH |
483 | |
484 | * "git checkout foo" DWIMs the intended "upstream" and turns it into | |
485 | "git checkout -t -b foo remotes/origin/foo". This codepath has been | |
486 | updated to correctly take existing remote definitions into account. |