4 Backward compatibility note
5 ---------------------------
7 The 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.
15 UI, Workflows & Features
17 * The end-user facing Porcelain level commands like "diff" and "log"
18 now enables the rename detection by default.
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.
25 * A new "interactive.diffFilter" configuration can be used to
26 customize the diff shown in "git add -i" session.
28 * "git p4" now allows P4 author names to be mapped to Git author
31 * "git rebase -x" can be used without passing "-i" option.
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.
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.
43 Performance, Internal Implementation, Development Support etc.
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
48 (merge 65a3629 mp/upload-pack-use-embedded-args later to maint).
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.
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).
59 * The command line argument parser for "receive-pack" has been
60 rewritten to use parse-options.
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
66 * Rename bunch of tests on "git clone" for better organization.
67 (merge 8fbb03a sb/clone-t57-t56 later to maint).
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).
74 Also contains various documentation updates and code clean-ups.
80 Unless otherwise noted, all the fixes since v2.8 in the maintenance
81 track are contained in this release (see the maintenance releases'
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).
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).
94 * "git index-pack --keep[=<msg>] pack-$name.pack" simply did not work.
95 (merge 0e94242 jc/maint-index-pack-keep later to maint).
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).
101 * A small memory leak in an error codepath has been plugged in xdiff
103 (merge 87f1625 rj/xdiff-prepare-plug-leak-on-error-codepath later to maint).
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).
109 * "git mergetool" did not work well with conflicts that both sides
111 (merge a298604 da/mergetool-delete-delete-conflict later to maint).
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).
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).
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).
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).