1Git 2.9 Release Notes 2===================== 3 4Backward compatibility note 5--------------------------- 6 7The end-user facing Porcelain level commands in the "git diff" and 8"git log" by default enables the rename detection; you can still use 9"diff.renames" configuration variable to disable this. 10 11 12Updates since v2.8 13------------------ 14 15UI, Workflows & Features 16 17 * The end-user facing Porcelain level commands like "diff" and "log" 18 now enables the rename detection by default. 19 20 * The credential.helper configuration variable is cumulative and 21 there is no good way to override it from the command line. As 22 a special case, giving an empty string as its value now serves 23 as the signal to clear the values specified in various files. 24 25 * A new "interactive.diffFilter" configuration can be used to 26 customize the diff shown in "git add -i" session. 27 28 * "git p4" now allows P4 author names to be mapped to Git author 29 names. 30 31 * "git rebase -x" can be used without passing "-i" option. 32 33 * "git -c credential.<var>=<value> submodule" can now be used to 34 propagate configuration variables related to credential helper 35 down to the submodules. 36 37 * "git tag" can create an annotated tag without explicitly given an 38 "-a" (or "-s") option (i.e. when a tag message is given). A new 39 configuration variable, tag.forceSignAnnotated, can be used to tell 40 the command to create signed tag in such a situation. 41 42 43Performance, Internal Implementation, Development Support etc. 44 45 * The embedded args argv-array in the child process is used to build 46 the command line to run pack-objects instead of using a separate 47 array of strings. 48 (merge 65a3629 mp/upload-pack-use-embedded-args later to maint). 49 50 * A test for tags has been restructured so that more parts of it can 51 easily be run on a platform without a working GnuPG. 52 53 * The startup_info data, which records if we are working inside a 54 repository (among other things), are now uniformly available to Git 55 subcommand implementations, and Git avoids attempting to touch 56 references when we are not in a repository. 57 (merge 11e6b3f jk/startup-info later to maint). 58 59 * The command line argument parser for "receive-pack" has been 60 rewritten to use parse-options. 61 62 * A major part of "git submodule update" has been ported to C to take 63 advantage of the recently added framework to run download tasks in 64 parallel. 65 66 * Rename bunch of tests on "git clone" for better organization. 67 (merge 8fbb03a sb/clone-t57-t56 later to maint). 68 69 * The tests that involve running httpd leaked the system-wide 70 configuration in /etc/gitconfig to the tested environment. 71 (merge 1fad503 jk/test-httpd-config-nosystem later to maint). 72 73 74Also contains various documentation updates and code clean-ups. 75 76 77Fixes since v2.8 78---------------- 79 80Unless otherwise noted, all the fixes since v2.8 in the maintenance 81track are contained in this release (see the maintenance releases' 82notes for details). 83 84 * "git config --get-urlmatch", unlike other variants of the "git 85 config --get" family, did not signal error with its exit status 86 when there was no matching configuration. 87 (merge 24990b2 jk/config-get-urlmatch later to maint). 88 89 * The "--local-env-vars" and "--resolve-git-dir" options of "git 90 rev-parse" failed to work outside a repository when the command's 91 option parsing was rewritten in 1.8.5 era. 92 (merge fc7d47f jk/rev-parse-local-env-vars later to maint). 93 94 * "git index-pack --keep[=<msg>] pack-$name.pack" simply did not work. 95 (merge 0e94242 jc/maint-index-pack-keep later to maint). 96 97 * Fetching of history by naming a commit object name directly didn't 98 work across remote-curl transport. 99 (merge 754ecb1 gf/fetch-pack-direct-object-fetch later to maint). 100 101 * A small memory leak in an error codepath has been plugged in xdiff 102 code. 103 (merge 87f1625 rj/xdiff-prepare-plug-leak-on-error-codepath later to maint). 104 105 * strbuf_getwholeline() did not NUL-terminate the buffer on certain 106 corner cases in its error codepath. 107 (merge b709043 jk/getwholeline-getdelim-empty later to maint). 108 109 * "git mergetool" did not work well with conflicts that both sides 110 deleted. 111 (merge a298604 da/mergetool-delete-delete-conflict later to maint). 112 113 * "git send-email" had trouble parsing alias file in mailrc format 114 when lines in it had trailing whitespaces on them. 115 (merge a277d1e jk/send-email-rtrim-mailrc-alias later to maint). 116 117 * When "git merge --squash" stopped due to conflict, the concluding 118 "git commit" failed to read in the SQUASH_MSG that shows the log 119 messages from all the squashed commits. 120 (merge b64c1e0 ss/commit-squash-msg later to maint). 121 122 * "git merge FETCH_HEAD" dereferenced NULL pointer when merging 123 nothing into an unborn history (which is arguably unusual usage, 124 which perhaps was the reason why nobody noticed it). 125 (merge b84e65d jv/merge-nothing-into-void later to maint). 126 127 * Other minor clean-ups and documentation updates 128 (merge aed7480 mm/lockfile-error-message later to maint). 129 (merge bfee614 jc/index-pack later to maint). 130 (merge f870899 ss/exc-flag-is-a-collection-of-bits later to maint). 131 (merge dde7891 pb/t7502-drop-dup later to maint). 132 (merge 3bd1b51 cc/doc-recommend-performance-trace-to-file later to maint). 133 (merge 7d5e9c9 jk/credential-cache-comment-exit later to maint).