Third batch for 2.5 cycle

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

Junio C Hamano committed May 19, 2015 at 13:24 UTC 6c1249c503f39ca45ca5b183527b22192cdaf7a7
1 file changed +81
Documentation/RelNotes/2.5.0.txt
+81
@@ -29,6 +29,30 @@ UI, Workflows & Features
29 * Tweak the sample "store" backend of the credential helper to honor
30 XDG configuration file locations when specified.
31
32 + * A heuristic to help the "git <cmd> <revs> <pathspec>" command line
33 + convention to catch mistyped paths is to make sure all the non-rev
34 + parameters in the later part of the command line are names of the
35 + files in the working tree, but that means "git grep $str -- \*.c"
36 + must always be disambiguated with "--", because nobody sane will
37 + create a file whose name literally is asterisk-dot-see. Loosen the
38 + heuristic to declare that with a wildcard string the user likely
39 + meant to give us a pathspec.
40 +
41 + * "git merge FETCH_HEAD" learned that the previous "git fetch" could
42 + be to create an Octopus merge, i.e. recording multiple branches
43 + that are not marked as "not-for-merge"; this allows us to lose an
44 + old style invocation "git merge <msg> HEAD $commits..." in the
45 + implementation of "git pull" script; the old style syntax can now
46 + be deprecated.
47 +
48 + * Help us to find broken test script that splits the body part of the
49 + test by mistaken use of wrong kind of quotes.
50 + (merge d93d5d5 jc/test-prereq-validate later to maint).
51 +
52 + * Developer support to automatically detect broken &&-chain in the
53 + test scripts is now turned on by default.
54 + (merge 92b269f jk/test-chain-lint later to maint).
55 +
56
57 Performance, Internal Implementation, Development Support etc.
58
@@ -60,6 +84,13 @@ Performance, Internal Implementation, Development Support etc.
84 to read packed-refs file revealed that the former is unacceptably
85 inefficient.
86
87 + * The refs API uses ref_lock struct which had its own "int fd", even
88 + though the same file descriptor was in the lock struct it contains.
89 + Clean-up the code to lose this redundant field.
90 +
91 + * Add the "--allow-unknown-type" option to "cat-file" to allow
92 + inspecting loose objects of an experimental or a broken type.
93 +
94 * Many long-running operations show progress eye-candy, even when
95 they are later backgrounded. Hide the eye-candy when the process
96 is sent to the background instead.
@@ -156,6 +187,55 @@ notes for details).
187 directory, instead of refusing to run.
188 (merge 0615173 jc/diff-no-index-d-f later to maint).
189
190 + * "git rebase -i" moved the "current" command from "todo" to "done" a
191 + bit too prematurely, losing a step when a "pick" did not even start.
192 + (merge 8cbc57c ph/rebase-i-redo later to maint).
193 +
194 + * The connection initiation code for "ssh" transport tried to absorb
195 + differences between the stock "ssh" and Putty-supplied "plink" and
196 + its derivatives, but the logic to tell that we are using "plink"
197 + variants were too loose and falsely triggered when "plink" appeared
198 + anywhere in the path (e.g. "/home/me/bin/uplink/ssh").
199 + (merge baaf233 bc/connect-plink later to maint).
200 +
201 + * "git stash pop/apply" forgot to make sure that not just the working
202 + tree is clean but also the index is clean. The latter is important
203 + as a stash application can conflict and the index will be used for
204 + conflict resolution.
205 + (merge ed178ef jk/stash-require-clean-index later to maint).
206 +
207 + * We have prepended $GIT_EXEC_PATH and the path "git" is installed in
208 + (typically "/usr/bin") to $PATH when invoking subprograms and hooks
209 + for almost eternity, but the original use case the latter tried to
210 + support was semi-bogus (i.e. install git to /opt/foo/git and run it
211 + without having /opt/foo on $PATH), and more importantly it has
212 + become less and less relevant as Git grew more mainstream (i.e. the
213 + users would _want_ to have it on their $PATH). Stop prepending the
214 + path in which "git" is installed to users' $PATH, as that would
215 + interfere the command search order people depend on (e.g. they may
216 + not like versions of programs that are unrelated to Git in /usr/bin
217 + and want to override them by having different ones in /usr/local/bin
218 + and have the latter directory earlier in their $PATH).
219 + (merge a0b4507 jk/git-no-more-argv0-path-munging later to maint).
220 +
221 + * core.excludesfile (defaulting to $XDG_HOME/git/ignore) is supposed
222 + to be overridden by repository-specific .git/info/exclude file, but
223 + the order was swapped from the beginning. This belatedly fixes it.
224 + (merge 099d2d8 jc/gitignore-precedence later to maint).
225 +
226 + * After "git add -N", the path appeared in output of "git diff HEAD"
227 + and "git diff --cached HEAD", leading "git status" to classify it
228 + as "Changes to be committed". Such a path, however, is not yet to
229 + be scheduled to be committed. "git diff" showed the change to the
230 + path as modification, not as a "new file", in the header of its
231 + output.
232 +
233 + Treat such paths as "yet to be added to the index but Git already
234 + know about them"; "git diff HEAD" and "git diff --cached HEAD"
235 + should not talk about them, and "git diff" should show them as new
236 + files yet to be added to the index.
237 + (merge d95d728 nd/diff-i-t-a later to maint).
238 +
239 * Code cleanups and documentation updates.
240 (merge 0269f96 mm/usage-log-l-can-take-regex later to maint).
241 (merge 64f2589 nd/t1509-chroot-test later to maint).
@@ -164,3 +244,4 @@ notes for details).
244 (merge 846e5df pt/xdg-config-path later to maint).
245 (merge 1154aa4 jc/plug-fmt-merge-msg-leak later to maint).
246 (merge 319b678 jk/sha1-file-reduce-useless-warnings later to maint).
247 + (merge 9a35c14 fg/document-commit-message-stripping later to maint).