Merge branch 'nd/apply-doc'
[alt-git.git] / Documentation / RelNotes / 2.9.0.txt
blob0a8b3ea601e7068f0963e921ea20272ec3d7cfed
1 Git 2.9 Release Notes
2 =====================
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.
12 Updates since v2.8
13 ------------------
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
29    names.
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
47    array of strings.
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
64    parallel.
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.
77 Fixes since v2.8
78 ----------------
80 Unless otherwise noted, all the fixes since v2.8 in the maintenance
81 track are contained in this release (see the maintenance releases'
82 notes for details).
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
102    code.
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
110    deleted.
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).