@@ -29,6 +29,30 @@ UI, Workflows & Features
29
29
* Tweak the sample "store" backend of the credential helper to honor
30
30
XDG configuration file locations when specified.
31
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
+
32
56
33
57
Performance, Internal Implementation, Development Support etc.
34
58
@@ -60,6 +84,13 @@ Performance, Internal Implementation, Development Support etc.
60
84
to read packed-refs file revealed that the former is unacceptably
61
85
inefficient.
62
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
+
63
94
* Many long-running operations show progress eye-candy, even when
64
95
they are later backgrounded. Hide the eye-candy when the process
65
96
is sent to the background instead.
@@ -156,6 +187,55 @@ notes for details).
156
187
directory, instead of refusing to run.
157
188
(merge 0615173 jc/diff-no-index-d-f later to maint).
158
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
+
159
239
* Code cleanups and documentation updates.
160
240
(merge 0269f96 mm/usage-log-l-can-take-regex later to maint).
161
241
(merge 64f2589 nd/t1509-chroot-test later to maint).
@@ -164,3 +244,4 @@ notes for details).
164
244
(merge 846e5df pt/xdg-config-path later to maint).
165
245
(merge 1154aa4 jc/plug-fmt-merge-msg-leak later to maint).
166
246
(merge 319b678 jk/sha1-file-reduce-useless-warnings later to maint).
247
+ (merge 9a35c14 fg/document-commit-message-stripping later to maint).
0 commit comments