@@ -26,9 +26,19 @@ UI, Workflows & Features
26
26
* "git am" learned "--message-id" option to copy the message ID of
27
27
the incoming e-mail to the log message of resulting commit.
28
28
29
+ * "git clone --reference=<over there>" learned the "--dissociate"
30
+ option to go with it; it borrows objects from the reference object
31
+ store while cloning only to reduce network traffic and then
32
+ dissociates the resulting clone from the reference by performing
33
+ local copies of borrowed objects.
34
+
29
35
* "git send-email" learned "--transfer-encoding" option to force a
30
36
non-fault Content-Transfer-Encoding header (e.g. base64).
31
37
38
+ * "git send-email" normally identifies itself via X-Mailer: header in
39
+ the message it sends out. A new command line flag --no-xmailer
40
+ allows the user to squelch the header.
41
+
32
42
* "git push" into a repository with a working tree normally refuses
33
43
to modify the branch that is checked out. The command learned to
34
44
optionally do an equivalent of "git reset --hard" only when there
@@ -53,9 +63,22 @@ UI, Workflows & Features
53
63
* "diff-highlight" filter (in contrib/) allows its color output to be
54
64
customized via configuration variables.
55
65
66
+ * "git imap-send" learned to take "-v" (verbose) and "-q" (quiet)
67
+ command line options.
68
+
69
+ * "git imap-send" now can be built to use cURL library to talk to
70
+ IMAP servers (if the library is recent enough, of course).
71
+ This allows you to use authenticate method other than CRAM-MD5,
72
+ among other things.
73
+
56
74
57
75
Performance, Internal Implementation, Development Support etc.
58
76
77
+ * Squelched useless compiler warnings on Mac OS X regarding the
78
+ crypto API.
79
+
80
+ * The procedure to generate unicode table has been simplified.
81
+
59
82
* Some filesystems assign filemodes in a strange way, fooling then
60
83
automatic "filemode trustability" check done during a new
61
84
repository creation. The initialization codepath has been hardened
@@ -64,6 +87,9 @@ Performance, Internal Implementation, Development Support etc.
64
87
* The codepath in "git remote update --prune" to drop many refs has
65
88
been optimized.
66
89
90
+ * The API into get_merge_bases*() family of functions was easy to
91
+ misuse, which has been corrected to make it harder to do so.
92
+
67
93
* Long overdue departure from the assumption that S_IFMT is shared by
68
94
everybody made in 2005, which was necessary to port to z/OS.
69
95
@@ -87,10 +113,41 @@ Unless otherwise noted, all the fixes since v2.2 in the maintenance
87
113
track are contained in this release (see the maintenance releases'
88
114
notes for details).
89
115
116
+ * The report from "git checkout" on a branch that builds on another
117
+ local branch by setting its branch.*.merge to branch name (not a
118
+ full refname) incorrectly said that the upstream is gone.
119
+ (merge 05e7368 jc/checkout-local-track-report later to maint).
120
+
121
+ * With The git-prompt support (in contrib/), using the exit status of
122
+ the last command in the prompt, e.g. PS1='$(__git_ps1) $? ', did
123
+ not work well, because the helper function stomped on the exit
124
+ status.
125
+ (merge eb443e3 tf/prompt-preserve-exit-status later to maint).
126
+
127
+
90
128
* Recent update to "git commit" broke amending an existing commit
91
129
with bogus author/committer lines without a valid e-mail address.
92
130
(merge c83a509 jk/commit-date-approxidate later to maint).
93
131
132
+ * The lockfile API used to get confused which file to clean up when
133
+ the process moved the $cwd after creating a lockfile.
134
+ (merge fa137f6 nd/lockfile-absolute later to maint).
135
+
136
+ * Traditionally we tried to avoid interpreting date strings given by
137
+ the user as future dates, e.g. GIT_COMMITTER_DATE=2014-12-10 when
138
+ used early November 2014 was taken as "October 12, 2014" because it
139
+ is likely that a date in the future, December 10, is a mistake.
140
+ This heuristics has been loosened to allow people to express future
141
+ dates (most notably, --until=<date> may want to be far in the
142
+ future) and we no longer tiebreak by future-ness of the date when
143
+
144
+ (1) ISO-like format is used, and
145
+ (2) the string can make sense interpreted as both y-m-d and y-d-m.
146
+
147
+ Git may still have to use the heuristics to tiebreak between dd/mm/yy
148
+ and mm/dd/yy, though.
149
+ (merge d372395 jk/approxidate-avoid-y-d-m-over-future-dates later to maint).
150
+
94
151
* Git did not correctly read an overlong refname from a packed refs
95
152
file.
96
153
(merge ea41783 jk/read-packed-refs-without-path-max later to maint).
@@ -99,6 +156,14 @@ notes for details).
99
156
option, which it does not.
100
157
(merge 0cef4e7 rw/apply-does-not-take-ignore-date later to maint).
101
158
159
+ * "git add -i" did not notice when the interactive command input
160
+ stream went away and kept asking the same question.
161
+ (merge a8bec7a jk/add-i-read-error later to maint).
162
+
163
+ * "git send-email" did not handle RFC 2047 encoded headers quite
164
+ right.
165
+ (merge ab47e2a rd/send-email-2047-fix later to maint).
166
+
102
167
* New tag object format validation added in 2.2 showed garbage after
103
168
a tagname it reported in its error message.
104
169
(merge a1e920a js/fsck-tag-validation later to maint).
@@ -108,6 +173,23 @@ notes for details).
108
173
read them correctly.
109
174
(merge 69216bf jk/for-each-reflog-ent-reverse later to maint).
110
175
176
+ * "git diff -B -M" after making a new copy B out of an existing file
177
+ A and then editing A extensively ought to report that B was created
178
+ by copying A and A was modified, which is what "git diff -C"
179
+ reports, but it instead said A was renamed to B and A was edited
180
+ heavily in place. This was not just incoherent but also failed to
181
+ apply with "git apply". The report has been corrected to match what
182
+ "git diff -C" produces for this case.
183
+ (merge 6936b58 jc/diff-b-m later to maint).
184
+
185
+ * In files we pre-populate for the user to edit with commented hints,
186
+ a line of hint that is indented with a tab used to show as '#' (or
187
+ any comment char), ' ' (space), and then the hint text that began
188
+ with the tab, which some editors flag as an indentation error (tab
189
+ following space). We now omit the space after the comment char in
190
+ such a case.
191
+ (merge d55aeb7 jc/strbuf-add-lines-avoid-sp-ht-sequence later to maint).
192
+
111
193
* "git ls-tree" does not support path selection based on negative
112
194
pathspecs, but did not error out when negative pathspecs are given.
113
195
(merge f1f6224 nd/ls-tree-pathspec later to maint).
0 commit comments