1Git 2.10 Release Notes 2====================== 3 4Backward compatibility notes 5---------------------------- 6 7Updates since v2.9 8------------------ 9 10UI, 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 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. 30 31Performance, Internal Implementation, Development Support etc. 32 33 * "git fast-import" learned the same performance trick to avoid 34 creating too small a packfile as "git fetch" and "git push" have, 35 using *.unpackLimit configuration. 36 37 * When "git daemon" is run without --[init-]timeout specified, a 38 connection from a client that silently goes offline can hang around 39 for a long time, wasting resources. The socket-level KEEPALIVE has 40 been enabled to allow the OS to notice such failed connections. 41 (merge a43b68a ew/daemon-socket-keepalive later to maint). 42 43 * "git upload-pack" command has been updated to use the parse-options 44 API. 45 46 * The "git apply" standalone program is being libified; this is the 47 first step to move many state variables into a structure that can 48 be explicitly (re)initialized to make the machinery callable more 49 than once. 50 51 52Also contains various documentation updates and code clean-ups. 53 54 55Fixes since v2.9 56---------------- 57 58Unless otherwise noted, all the fixes since v2.8 in the maintenance 59track are contained in this release (see the maintenance releases' 60notes for details). 61 62 * The commands in `git log` family take %C(auto) in a custom format 63 string. This unconditionally turned the color on, ignoring 64 --no-color or with --color=auto when the output is not connected to 65 a tty; this was corrected to make the format truly behave as 66 "auto". 67 (merge b15a3e0 et/pretty-format-c-auto later to maint). 68 69 * "git rev-list --count" whose walk-length is limited with "-n" 70 option did not work well with the counting optimized to look at the 71 bitmap index. 72 (merge fb85db8 jk/rev-list-count-with-bitmap later to maint). 73 74 * "git show -W" (extend hunks to cover the entire function, delimited 75 by lines that match the "funcname" pattern) used to show the entire 76 file when a change added an entire function at the end of the file, 77 which has been fixed. 78 (merge 6f8d9bc rs/xdiff-hunk-with-func-line later to maint). 79 80 * The documentation set has been updated so that literal commands, 81 configuration variables and environment variables are consistently 82 typeset in fixed-width font and bold in manpages. 83 (merge ae9f631 tr/doc-tt later to maint). 84 85 * "git svn propset" subcommand that was added in 2.3 days is 86 documented now. 87 (merge 19a7f24 ap/git-svn-propset-doc later to maint). 88 89 * The documentation tries to consistently spell "GPG"; when 90 referring to the specific program name, "gpg" is used. 91 (merge bc91316 dn/gpg-doc later to maint). 92 93 * "git reflog" stopped upon seeing an entry that denotes a branch 94 creation event (aka "unborn"), which made it appear as if the 95 reflog was truncated. 96 (merge 71abeb7 sg/reflog-past-root later to maint). 97 98 * The git-prompt scriptlet (in contrib/) was not friendly with those 99 who uses "set -u", which has been fixed. 100 (merge 34d8f5a vs/prompt-avoid-unset-variable later to maint). 101 102 * compat/regex code did not cleanly compile. 103 (merge bd8f005 rj/compat-regex-size-max-fix later to maint). 104 105 * A codepath that used alloca(3) to place an unbounded amount of data 106 on the stack has been updated to avoid doing so. 107 (merge b8ba412 jk/avoid-unbounded-alloca later to maint). 108 109 * "git update-index --add --chmod=+x file" may be usable as an escape 110 hatch, but not a friendly thing to force for people who do need to 111 use it regularly. "git add --chmod=+x file" can be used instead. 112 (merge 4e55ed3 et/add-chmod-x later to maint). 113 114 * Build improvements for gnome-keyring (in contrib/) 115 (merge 3cddb00 nb/gnome-keyring-build later to maint). 116 117 * "git status" used to say "working directory" when it meant "working 118 tree". 119 (merge 2a0e6cd lv/status-say-working-tree-not-directory later to maint). 120 121 * Comments about misbehaving FreeBSD shells have been clarified with 122 the version number (9.x and before are broken, newer ones are OK). 123 (merge 9b35cad em/newer-freebsd-shells-are-fine-with-returns later to maint). 124 125 * "git cherry-pick A" worked on an unborn branch, but "git 126 cherry-pick A..B" didn't. 127 (merge 0f974e2 mg/cherry-pick-multi-on-unborn later to maint). 128 129 * Other minor clean-ups and documentation updates 130 (merge 3a39f61 pc/occurred later to maint). 131 (merge 9e70233 jk/fetch-prune-doc later to maint). 132 (merge ed008d7 pb/strbuf-read-file-doc later to maint). 133 (merge 31da121 jc/deref-tag later to maint).