@@ -8,23 +8,22 @@ When "git push [$there]" does not say what to push, we have used the
8
8
traditional "matching" semantics so far (all your branches were sent
9
9
to the remote as long as there already are branches of the same name
10
10
over there). In Git 2.0, the default will change to the "simple"
11
- semantics that pushes the current branch to the branch with the same
12
- name, only when the current branch is set to integrate with that
13
- remote branch. There is a user preference configuration variable
11
+ semantics that pushes only the current branch to the branch with the same
12
+ name, and only when the current branch is set to integrate with that
13
+ remote branch. Use the user preference configuration variable
14
14
"push.default" to change this. If you are an old-timer who is used
15
- to the "matching" semantics, you can set it to "matching" to keep the
16
- traditional behaviour. If you want to live in the future early,
17
- you can set it to "simple" today without waiting for Git 2.0.
18
-
19
- When "git add -u" and "git add -A", that does not specify what paths
20
- to add on the command line is run from inside a subdirectory, these
21
- commands will operate on the entire tree in Git 2.0 for consistency
22
- with "git commit -a" and other commands. Because there will be no
23
- mechanism to make "git add -u" behave as if "git add -u .", it is
24
- important for those who are used to "git add -u" (without pathspec)
25
- updating the index only for paths in the current subdirectory to start
26
- training their fingers to explicitly say "git add -u ." when they mean
27
- it before Git 2.0 comes. A warning is issued when these commands are
15
+ to the "matching" semantics, you can set the variable to "matching"
16
+ to keep the traditional behaviour. If you want to live in the future
17
+ early, you can set it to "simple" today without waiting for Git 2.0.
18
+
19
+ When "git add -u" (and "git add -A") is run inside a subdirectory and
20
+ does not specify which paths to add on the command line, it
21
+ will operate on the entire tree in Git 2.0 for consistency
22
+ with "git commit -a" and other commands. There will be no
23
+ mechanism to make plain "git add -u" behave like "git add -u .".
24
+ Current users of "git add -u" (without a pathspec) should start
25
+ training their fingers to explicitly say "git add -u ."
26
+ before Git 2.0 comes. A warning is issued when these commands are
28
27
run without a pathspec and when you have local changes outside the
29
28
current directory, because the behaviour in Git 2.0 will be different
30
29
from today's version in such a situation.
@@ -33,8 +32,8 @@ In Git 2.0, "git add <path>" will behave as "git add -A <path>", so
33
32
that "git add dir/" will notice paths you removed from the directory
34
33
and record the removal. Versions before Git 2.0, including this
35
34
release, will keep ignoring removals, but the users who rely on this
36
- behaviour is encouraged to use "git add --ignore-removal <path>" and
37
- get used to it .
35
+ behaviour are encouraged to start using "git add --ignore-removal <path>"
36
+ now before 2.0 is released .
38
37
39
38
40
39
Updates since v1.8.2
@@ -114,7 +113,7 @@ UI, Workflows & Features
114
113
* "git status" suggests users to look into using --untracked=no option
115
114
when it takes too long.
116
115
117
- * "git status" shows a bit more information to "git status" during a
116
+ * "git status" shows a bit more information during a
118
117
rebase/bisect session.
119
118
120
119
* "git fetch" learned to fetch a commit at the tip of an unadvertised
@@ -148,8 +147,8 @@ UI, Workflows & Features
148
147
149
148
* "git mergetool" now feeds files to the "p4merge" backend in the
150
149
order that matches the p4 convention, where "theirs" is usually
151
- shown on the left side, which is the opposite from other backend
152
- expects .
150
+ shown on the left side, which is the opposite from what other backends
151
+ expect .
153
152
154
153
* "show/log" now honors gpg.program configuration just like other
155
154
parts of the code that use GnuPG.
@@ -173,7 +172,7 @@ Performance, Internal Implementation, etc.
173
172
174
173
* Updates for building under msvc.
175
174
176
- * A handful of issues in the code to traverse working tree to find
175
+ * A handful of issues in the code that traverses the working tree to find
177
176
untracked and/or ignored files have been fixed, and the general
178
177
codepath involved in "status -u" and "clean" have been cleaned up
179
178
and optimized.
@@ -182,15 +181,15 @@ Performance, Internal Implementation, etc.
182
181
pack has been shrunk.
183
182
184
183
* The logic to coalesce the same lines removed from the parents in
185
- the output from "diff -c/--cc" has been updated, but with an O(n^2)
184
+ the output from "diff -c/--cc" has been updated, but with O(n^2)
186
185
complexity, so this might turn out to be undesirable.
187
186
188
187
* The code to enforce permission bits on files in $GIT_DIR/ for
189
- shared repositories have been simplified.
188
+ shared repositories has been simplified.
190
189
191
- * A few codepaths knew how much data they need to put in the
192
- hashtables they use upfront , but still started from a small table
193
- repeatedly growing and rehashing .
190
+ * A few codepaths know how much data they need to put in the
191
+ hashtables they use when they start , but still began with small tables
192
+ and repeatedly grew and rehashed them .
194
193
195
194
* The API to walk reflog entries from the latest to older, which was
196
195
necessary for operations such as "git checkout -", was cumbersome
@@ -202,9 +201,9 @@ Performance, Internal Implementation, etc.
202
201
* The pkt-line API, implementation and its callers have been cleaned
203
202
up to make them more robust.
204
203
205
- * Cygwin port has a faster-but-lying lstat(2) emulation whose
204
+ * The Cygwin port has a faster-but-lying lstat(2) emulation whose
206
205
incorrectness does not matter in practice except for a few
207
- codepaths, and setting permission bits to directories is a codepath
206
+ codepaths, and setting permission bits on directories is a codepath
208
207
that needs to use a more correct one.
209
208
210
209
* "git checkout" had repeated pathspec matches on the same paths,
@@ -225,60 +224,60 @@ Unless otherwise noted, all the fixes since v1.8.2 in the maintenance
225
224
track are contained in this release (see release notes to them for
226
225
details).
227
226
228
- * When receive-pack detects error in the pack header it received in
227
+ * When receive-pack detects an error in the pack header it received in
229
228
order to decide which of unpack-objects or index-pack to run, it
230
- returned without closing the error stream, which led to a hang
229
+ returned without closing the error stream, which led to a hung
231
230
sideband thread.
232
231
233
- * Zsh completion forgot that '%' character used to signal untracked
232
+ * Zsh completion forgot that the '%' character used to signal untracked
234
233
files needs to be escaped with another '%'.
235
234
236
235
* A commit object whose author or committer ident are malformed
237
- crashed some code that trusted that a name, an email and an
236
+ crashed some code that trusted that a name, an email and a
238
237
timestamp can always be found in it.
239
238
240
239
* When "upload-pack" fails while generating a pack in response to
241
- "git fetch" (or "git clone"), the receiving side mistakenly said
242
- there was a programming error to trigger the die handler
240
+ "git fetch" (or "git clone"), the receiving side had
241
+ a programming error that triggered the die handler
243
242
recursively.
244
243
245
- * "rev-list --stdin" and friends kept bogus pointers into input
246
- buffer around as human readble object names. This was not a huge
244
+ * "rev-list --stdin" and friends kept bogus pointers into the input
245
+ buffer around as human readable object names. This was not a huge
247
246
problem but was exposed by a new change that uses these names in
248
247
error output.
249
248
(merge 70d26c6 tr/copy-revisions-from-stdin later to maint).
250
249
251
250
* Smart-capable HTTP servers were not restricted via the
252
- GIT_NAMESPACE mechanism when talking with commit-walker clients,
253
- like they do when talking with smart HTTP clients.
251
+ GIT_NAMESPACE mechanism when talking with commit-walking clients,
252
+ like they are when talking with smart HTTP clients.
254
253
(merge 6130f86 jk/http-dumb-namespaces later to maint).
255
254
256
255
* "git merge-tree" did not omit a merge result that is identical to
257
- "our" side in certain cases.
256
+ the "our" side in certain cases.
258
257
(merge aacecc3 jk/merge-tree-added-identically later to maint).
259
258
260
- * Perl scripts like "git-svn" closed (not redirecting to /dev/null)
259
+ * Perl scripts like "git-svn" closed (instead of redirecting to /dev/null)
261
260
the standard error stream, which is not a very smart thing to do.
262
- Later open may return file descriptor #2 for unrelated purpose, and
263
- error reporting code may write into them .
261
+ A later open may return file descriptor #2 for an unrelated purpose, and
262
+ error reporting code may write into it .
264
263
265
264
* "git show-branch" was not prepared to show a very long run of
266
265
ancestor operators e.g. foobar^2~2^2^2^2...^2~4 correctly.
267
266
268
267
* "git diff --diff-algorithm algo" is also understood as "git diff
269
268
--diff-algorithm=algo".
270
269
271
- * The new core.commentchar configuration was not applied to a few
270
+ * The new core.commentchar configuration was not applied in a few
272
271
places.
273
272
274
- * "git bundle" did not like a bundle created using a commit without
275
- any message as its one of the prerequistes .
273
+ * "git bundle" erroneously bailed out when parsing a valid bundle
274
+ containing a prerequisite commit without a commit message .
276
275
277
276
* "git log -S/-G" started paying attention to textconv filter, but
278
- there was no way to disable this. Make it honor --no-textconv
277
+ there was no way to disable this. Make it honor the --no-textconv
279
278
option.
280
279
281
- * When used with "-d temporary-directory" option, "git filter-branch"
280
+ * When used with the "-d temporary-directory" option, "git filter-branch"
282
281
failed to come back to the original working tree to perform the
283
282
final clean-up procedure.
284
283
@@ -287,9 +286,9 @@ details).
287
286
not pay much attention to the annotated tag payload. Make the code
288
287
notice the type of the tag object, in addition to the dwim_ref()
289
288
based classification the current code uses (i.e. the name appears
290
- in refs/tags/) to decide when to special case merging of tags .
289
+ in refs/tags/) to decide when to special- case tag merging .
291
290
292
- * Fix 1.8.1.x regression that stopped matching "dir" (without
291
+ * Fix a 1.8.1.x regression that stopped matching "dir" (without a
293
292
trailing slash) to a directory "dir".
294
293
(merge efa5f82 jc/directory-attrs-regression-fix later to maint-1.8.1).
295
294
@@ -300,64 +299,64 @@ details).
300
299
* The prompt string generator (in contrib/completion/) did not notice
301
300
when we are in a middle of a "git revert" session.
302
301
303
- * "submodule summary --summary-limit" option did not support
302
+ * "submodule summary --summary-limit" option did not support the
304
303
"--option=value" form.
305
304
306
305
* "index-pack --fix-thin" used an uninitialized value to compute
307
- delta depths of objects it appends to the resulting pack.
306
+ the delta depths of objects it appends to the resulting pack.
308
307
309
- * "index-pack --verify-stat" used a few counters outside protection
310
- of mutex, possibly showing incorrect numbers.
308
+ * "index-pack --verify-stat" used a few counters outside the protection
309
+ of a mutex, possibly showing incorrect numbers.
311
310
312
311
* The code to keep track of what directory names are known to Git on
313
- platforms with case insensitive filesystems can get confused upon a
314
- hash collision between these pathnames and looped forever.
312
+ platforms with case insensitive filesystems could get confused upon a
313
+ hash collision between these pathnames and would loop forever.
315
314
316
- * Annotated tags outside refs/tags/ hierarchy were not advertised
317
- correctly to the ls-remote and fetch with recent version of Git.
315
+ * Annotated tags outside the refs/tags/ hierarchy were not advertised
316
+ correctly to ls-remote and fetch with recent versions of Git.
318
317
319
- * Recent optimization broke shallow clones.
318
+ * Recent optimizations broke shallow clones.
320
319
321
320
* "git cmd -- ':(top'" was not diagnosed as an invalid syntax, and
322
321
instead the parser kept reading beyond the end of the string.
323
322
324
323
* "git tag -f <tag>" always said "Updated tag '<tag>'" even when
325
- creating a new tag (i.e. not overwriting nor updating).
324
+ creating a new tag (i.e. neither overwriting nor updating).
326
325
327
326
* "git p4" did not behave well when the path to the root of the P4
328
327
client was not its real path.
329
328
(merge bbd8486 pw/p4-symlinked-root later to maint).
330
329
331
- * "git archive" reports a failure when asked to create an archive out
332
- of an empty tree. It would be more intuitive to give an empty
330
+ * "git archive" reported a failure when asked to create an archive out
331
+ of an empty tree. It is more intuitive to give an empty
333
332
archive back in such a case.
334
333
335
- * When "format-patch" quoted a non-ascii strings on the header files,
334
+ * When "format-patch" quoted a non-ascii string in header files,
336
335
it incorrectly applied rfc2047 and chopped a single character in
337
- the middle of it .
336
+ the middle of the string .
338
337
339
338
* An aliased command spawned from a bare repository that does not say
340
- it is bare with "core.bare = yes" is treated as non-bare by mistake.
339
+ it is bare with "core.bare = yes" was treated as non-bare by mistake.
341
340
342
- * In "git reflog expire", REACHABLE bit was not cleared from the
341
+ * In "git reflog expire", the REACHABLE bit was not cleared from the
343
342
correct objects.
344
343
345
344
* The logic used by "git diff -M --stat" to shorten the names of
346
345
files before and after a rename did not work correctly when the
347
346
common prefix and suffix between the two filenames overlapped.
348
347
349
348
* The "--match=<pattern>" option of "git describe", when used with
350
- "--all" to allow refs that are not annotated tags to be used as a
349
+ "--all" to allow refs that are not annotated tags to be a
351
350
base of description, did not restrict the output from the command
352
- to those that match the given pattern.
351
+ to those refs that match the given pattern.
353
352
354
353
* Clarify in the documentation "what" gets pushed to "where" when the
355
354
command line to "git push" does not say these explicitly.
356
355
357
356
* The "--color=<when>" argument to the commands in the diff family
358
357
was described poorly.
359
358
360
- * The arguments given to pre-rebase hook were not documented.
359
+ * The arguments given to the pre-rebase hook were not documented.
361
360
362
361
* The v4 index format was not documented.
363
362
@@ -375,7 +374,7 @@ details).
375
374
376
375
* In the v1.8.0 era, we changed symbols that do not have to be global
377
376
to file scope static, but a few functions in graph.c were used by
378
- CGit from sideways bypassing the entry points of the API the
377
+ CGit sideways, bypassing the entry points of the API the
379
378
in-tree users use.
380
379
381
380
* "git update-index -h" did not do the usual "-h(elp)" thing.
@@ -388,30 +387,30 @@ details).
388
387
$msg already ended with one.
389
388
390
389
* The SSL peer verification done by "git imap-send" did not ask for
391
- Server Name Indication (RFC 4366), failing to connect SSL/TLS
390
+ Server Name Indication (RFC 4366), failing to connect to SSL/TLS
392
391
sites that serve multiple hostnames on a single IP.
393
392
394
393
* perl/Git.pm::cat_blob slurped everything in core only to write it
395
394
out to a file descriptor, which was not a very smart thing to do.
396
395
397
396
* "git branch" did not bother to check nonsense command line
398
- parameters and issue errors in many cases.
397
+ parameters. It now issues errors in many cases.
399
398
400
- * Verification of signed tags were not done correctly when not in C
399
+ * Verification of signed tags was not done correctly when not in C
401
400
or en/US locale.
402
401
403
402
* Some platforms and users spell UTF-8 differently; retry with the
404
403
most official "UTF-8" when the system does not understand the
405
- user-supplied encoding name that are the common alternative
406
- spellings of UTF-8.
404
+ user-supplied encoding name that is a common alternative
405
+ spelling of UTF-8.
407
406
408
- * When export-subst is used, "zip" output recorded incorrect
407
+ * When export-subst is used, "zip" output recorded an incorrect
409
408
size of the file.
410
409
411
410
* "git am $maildir/" applied messages in an unexpected order; sort
412
411
filenames read from the maildir/ in a way that is more likely to
413
- sort messages in the order the writing MUA meant to, by sorting
414
- numeric segment in numeric order and non-numeric segment in
412
+ sort the messages in the order the writing MUA meant to, by sorting
413
+ numeric segments in numeric order and non-numeric segments in
415
414
alphabetical order.
416
415
417
416
* "git submodule update", when recursed into sub-submodules, did not
0 commit comments