1Git 2.12 Release Notes 2====================== 3 4Backward compatibility notes. 5 6 * Use of an empty string that is used for 'everything matches' is 7 still warned and Git asks users to use a more explicit '.' for that 8 instead. The hope is that existing users will not mind this 9 change, and eventually the warning can be turned into a hard error, 10 upgrading the deprecation into removal of this (mis)feature. That 11 is not scheduled to happen in the upcoming release (yet). 12 13 * The historical argument order "git merge <msg> HEAD <commit>..." 14 has been deprecated for quite some time, and will be removed in the 15 upcoming release. 16 17 18Updates since v2.11 19------------------- 20 21UI, Workflows & Features 22 23 * Various updates to "git p4". 24 25 26Performance, Internal Implementation, Development Support etc. 27 28 * 29 30 31Also contains various documentation updates and code clean-ups. 32 33 * 34 35 36Fixes since v2.10 37----------------- 38 39Unless otherwise noted, all the fixes since v2.9 in the maintenance 40track are contained in this release (see the maintenance releases' 41notes for details). 42 43 * We often decide if a session is interactive by checking if the 44 standard I/O streams are connected to a TTY, but isatty() that 45 comes with Windows incorrectly returned true if it is used on NUL 46 (i.e. an equivalent to /dev/null). This has been fixed. 47 (merge cbb3f3c9b1 js/mingw-isatty later to maint). 48 49 * "git svn" did not work well with path components that are "0", and 50 some configuration variable it uses were not documented. 51 (merge ea9a93dcc2 ew/svn-fixes later to maint). 52 53 * "git rev-parse --symbolic" failed with a more recent notation like 54 "HEAD^-1" and "HEAD^!". 55 (merge a2e7b04c44 jk/rev-parse-symbolic-parents-fix later to maint). 56 57 * An empty directory in a working tree that can simply be nuked used 58 to interfere while merging or cherry-picking a change to create a 59 submodule directory there, which has been fixed.. 60 (merge 5423d2e700 dt/empty-submodule-in-merge later to maint). 61 62 * The code in "git push" to compute if any commit being pushed in the 63 superproject binds a commit in a submodule that hasn't been pushed 64 out was overly inefficient, making it unusable even for a small 65 project that does not have any submodule but have a reasonable 66 number of refs. 67 (merge 250ab24ab3 hv/submodule-not-yet-pushed-fix later to maint). 68 69 * "git push --dry-run --recurse-submodule=on-demand" wasn't 70 "--dry-run" in the submodules. 71 (merge 0301c821c5 bw/push-dry-run later to maint). 72 73 * The output from "git worktree list" was made in readdir() order, 74 and was unstable. 75 (merge 4df1d4d466 nd/worktree-list-fixup later to maint). 76 77 * mergetool.<tool>.trustExitCode configuration variable did not apply 78 to built-in tools, but now it does. 79 (merge 2967284456 da/mergetool-trust-exit-code later to maint). 80 81 * "git p4" LFS support was broken when LFS stores an empty blob. 82 (merge d5eb3cf5e7 ls/p4-empty-file-on-lfs later to maint). 83 84 * Other minor doc, test and build updates and code cleanups. 85 (merge fa6ca11105 nd/qsort-in-merge-recursive later to maint). 86 (merge fa3142c919 ak/lazy-prereq-mktemp later to maint).