Fourth batch for 2.3 cycle

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Junio C Hamano committed Jan 7, 2015 at 13:12 UTC 1e6f5b22ad318446500fbd3b94b733eddd5b6414
1 file changed +82
Documentation/RelNotes/2.3.0.txt
+82
@@ -26,9 +26,19 @@ UI, Workflows & Features
26 * "git am" learned "--message-id" option to copy the message ID of
27 the incoming e-mail to the log message of resulting commit.
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 +
35 * "git send-email" learned "--transfer-encoding" option to force a
36 non-fault Content-Transfer-Encoding header (e.g. base64).
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 +
42 * "git push" into a repository with a working tree normally refuses
43 to modify the branch that is checked out. The command learned to
44 optionally do an equivalent of "git reset --hard" only when there
@@ -53,9 +63,22 @@ UI, Workflows & Features
63 * "diff-highlight" filter (in contrib/) allows its color output to be
64 customized via configuration variables.
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 +
74
75 Performance, Internal Implementation, Development Support etc.
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 +
82 * Some filesystems assign filemodes in a strange way, fooling then
83 automatic "filemode trustability" check done during a new
84 repository creation. The initialization codepath has been hardened
@@ -64,6 +87,9 @@ Performance, Internal Implementation, Development Support etc.
87 * The codepath in "git remote update --prune" to drop many refs has
88 been optimized.
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 +
93 * Long overdue departure from the assumption that S_IFMT is shared by
94 everybody made in 2005, which was necessary to port to z/OS.
95
@@ -87,10 +113,41 @@ Unless otherwise noted, all the fixes since v2.2 in the maintenance
113 track are contained in this release (see the maintenance releases'
114 notes for details).
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 +
128 * Recent update to "git commit" broke amending an existing commit
129 with bogus author/committer lines without a valid e-mail address.
130 (merge c83a509 jk/commit-date-approxidate later to maint).
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 +
151 * Git did not correctly read an overlong refname from a packed refs
152 file.
153 (merge ea41783 jk/read-packed-refs-without-path-max later to maint).
@@ -99,6 +156,14 @@ notes for details).
156 option, which it does not.
157 (merge 0cef4e7 rw/apply-does-not-take-ignore-date later to maint).
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 +
167 * New tag object format validation added in 2.2 showed garbage after
168 a tagname it reported in its error message.
169 (merge a1e920a js/fsck-tag-validation later to maint).
@@ -108,6 +173,23 @@ notes for details).
173 read them correctly.
174 (merge 69216bf jk/for-each-reflog-ent-reverse later to maint).
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 +
193 * "git ls-tree" does not support path selection based on negative
194 pathspecs, but did not error out when negative pathspecs are given.
195 (merge f1f6224 nd/ls-tree-pathspec later to maint).