aboutsummaryrefslogtreecommitdiff
path: root/Documentation/RelNotes/2.10.0.txt
blob: 63499b7c0efab71a5f16dfa65e850743cb54fd5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
Git 2.10 Release Notes
======================

Backward compatibility notes
----------------------------

Updates since v2.9
------------------

UI, Workflows & Features

 * "git pull --rebase --verify-signature" learned to warn the user
   that "--verify-signature" is a no-op when rebasing.

 * An upstream project can make a recommendation to shallowly clone
   some submodules in the .gitmodules file it ships.

 * "git worktree add" learned that '-' can be used as a short-hand for
   "@{-1}", the previous branch.

 * Update the funcname definition to support css files.

 * The completion script (in contrib/) learned to complete "git
   status" options.

 * Messages that are generated by auto gc during "git push" on the
   receiving end are now passed back to the sending end in such a way
   that they are shown with "remote: " prefix to avoid confusing the
   users.

Performance, Internal Implementation, Development Support etc.

 * "git fast-import" learned the same performance trick to avoid
   creating too small a packfile as "git fetch" and "git push" have,
   using *.unpackLimit configuration.

 * When "git daemon" is run without --[init-]timeout specified, a
   connection from a client that silently goes offline can hang around
   for a long time, wasting resources.  The socket-level KEEPALIVE has
   been enabled to allow the OS to notice such failed connections.
   (merge a43b68a ew/daemon-socket-keepalive later to maint).

 * "git upload-pack" command has been updated to use the parse-options
   API.

 * The "git apply" standalone program is being libified; this is the
   first step to move many state variables into a structure that can
   be explicitly (re)initialized to make the machinery callable more
   than once.


Also contains various documentation updates and code clean-ups.


Fixes since v2.9
----------------

Unless otherwise noted, all the fixes since v2.8 in the maintenance
track are contained in this release (see the maintenance releases'
notes for details).

 * The commands in `git log` family take %C(auto) in a custom format
   string.  This unconditionally turned the color on, ignoring
   --no-color or with --color=auto when the output is not connected to
   a tty; this was corrected to make the format truly behave as
   "auto".
   (merge b15a3e0 et/pretty-format-c-auto later to maint).

 * "git rev-list --count" whose walk-length is limited with "-n"
   option did not work well with the counting optimized to look at the
   bitmap index.
   (merge fb85db8 jk/rev-list-count-with-bitmap later to maint).

 * "git show -W" (extend hunks to cover the entire function, delimited
   by lines that match the "funcname" pattern) used to show the entire
   file when a change added an entire function at the end of the file,
   which has been fixed.
   (merge 6f8d9bc rs/xdiff-hunk-with-func-line later to maint).

 * The documentation set has been updated so that literal commands,
   configuration variables and environment variables are consistently
   typeset in fixed-width font and bold in manpages.
   (merge ae9f631 tr/doc-tt later to maint).

 * "git svn propset" subcommand that was added in 2.3 days is
   documented now.
   (merge 19a7f24 ap/git-svn-propset-doc later to maint).

 * The documentation tries to consistently spell "GPG"; when
   referring to the specific program name, "gpg" is used.
   (merge bc91316 dn/gpg-doc later to maint).

 * "git reflog" stopped upon seeing an entry that denotes a branch
   creation event (aka "unborn"), which made it appear as if the
   reflog was truncated.
   (merge 71abeb7 sg/reflog-past-root later to maint).

 * The git-prompt scriptlet (in contrib/) was not friendly with those
   who uses "set -u", which has been fixed.
   (merge 34d8f5a vs/prompt-avoid-unset-variable later to maint).

 * compat/regex code did not cleanly compile.
   (merge bd8f005 rj/compat-regex-size-max-fix later to maint).

 * A codepath that used alloca(3) to place an unbounded amount of data
   on the stack has been updated to avoid doing so.
   (merge b8ba412 jk/avoid-unbounded-alloca later to maint).

 * "git update-index --add --chmod=+x file" may be usable as an escape
   hatch, but not a friendly thing to force for people who do need to
   use it regularly.  "git add --chmod=+x file" can be used instead.
   (merge 4e55ed3 et/add-chmod-x later to maint).

 * Build improvements for gnome-keyring (in contrib/)
   (merge 3cddb00 nb/gnome-keyring-build later to maint).

 * "git status" used to say "working directory" when it meant "working
   tree".
   (merge 2a0e6cd lv/status-say-working-tree-not-directory later to maint).

 * Comments about misbehaving FreeBSD shells have been clarified with
   the version number (9.x and before are broken, newer ones are OK).
   (merge 9b35cad em/newer-freebsd-shells-are-fine-with-returns later to maint).

 * "git cherry-pick A" worked on an unborn branch, but "git
   cherry-pick A..B" didn't.
   (merge 0f974e2 mg/cherry-pick-multi-on-unborn later to maint).

 * Other minor clean-ups and documentation updates
   (merge 3a39f61 pc/occurred later to maint).
   (merge 9e70233 jk/fetch-prune-doc later to maint).
   (merge ed008d7 pb/strbuf-read-file-doc later to maint).
   (merge 31da121 jc/deref-tag later to maint).