What's cooking (2017/02 #07)
Junio C Hamano committed
Feb 23, 2017 at 14:10 UTC
7be9902743ec534396426fa19ca745a692b1a3ca
1 file changed
+235
-126
whats-cooking.txt
+235
-126
@@ -1,10 +1,10 @@
1
To: git@vger.kernel.org
2
Bcc: lwn@lwn.net
3
-Subject: What's cooking in git.git (Feb 2017, #06; Tue, 21)
3
+Subject: What's cooking in git.git (Feb 2017, #07; Thu, 23)
4
X-master-at: 80ba04ed9b07c34af9cc644f2183b3b80fd81744
5
-X-next-at: 302250072e59acfdf6a5a069d54402b4f1478844
5
+X-next-at: cbe923c8da4a7f6cf4861a317ae620497394d507
6
7
-What's cooking in git.git (Feb 2017, #06; Tue, 21)
7
+What's cooking in git.git (Feb 2017, #07; Thu, 23)
8
--------------------------------------------------
9
10
Here are the topics that have been cooking. Commits prefixed with
@@ -12,10 +12,6 @@ Here are the topics that have been cooking. Commits prefixed with
12
'+' are in 'next'. The ones marked with '.' do not appear in any of
13
the integration branches, but I am still holding onto them.
14
15
-The tip of the 'master' is still at -rc2 but with a git-svn update
16
-from Eric. I'd like to get pull requests for gitk and git-gui
17
-updates soonish, if we are to have one during this cycle.
18
-
15
You can find the changes described here in the integration branches
16
of the repositories listed at
17
@@ -24,127 +20,84 @@ of the repositories listed at
20
--------------------------------------------------
21
[New Topics]
22
27
-* jk/tempfile-ferror-fclose-confusion (2017-02-17) 1 commit
28
- (merged to 'next' on 2017-02-21 at 479ba0131f)
29
- + tempfile: set errno to a known value before calling ferror()
30
-
31
- A caller of tempfile API that uses stdio interface to write to
32
- files may ignore errors while writing, which is detected when
33
- tempfile is closed (with a call to ferror()). By that time, the
34
- original errno that may have told us what went wrong is likely to
35
- be long gone and was overwritten by an irrelevant value.
36
- close_tempfile() now resets errno to EIO to make errno at least
37
- predictable.
38
-
39
- Will cook in 'next'.
40
-
23
+* js/curl-empty-auth-set-by-default (2017-02-22) 1 commit
24
+ - http(s): automatically try NTLM authentication first
25
42
-* ah/doc-ls-files-quotepath (2017-02-20) 1 commit
43
- - Documentation: link git-ls-files to core.quotePath variable
26
+ Flip "http.emptyAuth" on by default to help OOB experience for
27
+ users of HTTP Negotiate authentication scheme.
28
45
- Documentation for "git ls-files" did not refer to core.quotePath
29
+ Under discussion.
30
+ cf. <20170222233419.q3fxqmrscosumbjm@genre.crustytoothpaste.net>
31
47
- Needs review.
32
49
-
50
-* dr/doc-check-ref-format-normalize (2017-02-21) 1 commit
51
- (merged to 'next' on 2017-02-21 at 5e88b7a93d)
52
- + git-check-ref-format: clarify documentation for --normalize
33
+* bc/blame-doc-fix (2017-02-22) 1 commit
34
+ (merged to 'next' on 2017-02-22 at 81c0ff2283)
35
+ + Documentation: use brackets for optional arguments
36
37
Doc update.
38
56
- Will cook in 'next'.
39
+ Will merge to 'master'.
40
41
59
-* gp/document-dotfiles-in-templates-are-not-copied (2017-02-17) 1 commit
60
- (merged to 'next' on 2017-02-21 at bbfa2bb7d4)
61
- + init: document dotfiles exclusion on template copy
42
+* bc/worktree-doc-fix-detached (2017-02-22) 1 commit
43
+ (merged to 'next' on 2017-02-22 at 8257025363)
44
+ + Documentation: correctly spell git worktree --detach
45
46
Doc update.
47
65
- Will cook in 'next'.
48
+ Will merge to 'master'.
49
50
68
-* jc/config-case-cmdline (2017-02-21) 2 commits
69
- (merged to 'next' on 2017-02-21 at 354f023a3a)
70
- + config: reject invalid VAR in 'git -c VAR=VAL command'
71
- + config: preserve <subsection> case for one-shot config on the command line
72
-
73
- The code to parse "git -c VAR=VAL cmd" and set configuration
74
- variable for the duration of cmd had two small bugs, which have
75
- been fixed.
76
-
77
- Will cook in 'next'.
51
+* rt/align-add-i-help-text (2017-02-22) 1 commit
52
+ (merged to 'next' on 2017-02-22 at a8573afb9a)
53
+ + git add -i: replace \t with blanks in the help message
54
55
+ Doc update.
56
80
-* jh/memihash-opt (2017-02-17) 5 commits
81
- - name-hash: remember previous dir_entry during lazy_init_name_hash
82
- - name-hash: specify initial size for istate.dir_hash table
83
- - name-hash: precompute hash values during preload-index
84
- - hashmap: allow memihash computation to be continued
85
- - name-hash: eliminate duplicate memihash call
57
+ Will merge to 'master'.
58
87
- Expecting an update for perf?
59
60
+* jh/send-email-one-cc (2017-02-23) 1 commit
61
+ - send-email: only allow one address per body tag
62
90
-* km/delete-ref-reflog-message (2017-02-20) 4 commits
91
- (merged to 'next' on 2017-02-21 at 4ee4ce3f64)
92
- + branch: record creation of renamed branch in HEAD's log
93
- + rename_ref: replace empty message in HEAD's log
94
- + update-ref: pass reflog message to delete_ref()
95
- + delete_ref: accept a reflog message argument
63
+ "Cc:" on the trailer part does not have to conform to RFC strictly,
64
+ unlike in the e-mail header. "git send-email" has been updated to
65
+ ignore anything after '>' when picking addresses, to allow non-address
66
+ cruft like " # stable 4.4" after the address.
67
97
- "git update-ref -d" and other operations to delete references did
98
- not leave any entry in HEAD's reflog when the reference being
99
- deleted was the current branch. This is not a problem in practice
100
- because you do not want to delete the branch you are currently on,
101
- but caused renaming of the current branch to something else not to
102
- be logged in a useful way.
68
+ Will merge to and then cook in 'next'.
69
104
- Will cook in 'next'.
70
71
+* jk/http-auth (2017-02-23) 1 commit
72
+ - http: restrict auth methods to what the server advertises
73
107
-* nd/prune-in-worktree (2017-02-19) 15 commits
108
- - rev-list: expose and document --single-worktree
109
- - revision.c: --reflog add HEAD reflog from all worktrees
110
- - files-backend: make reflog iterator go through per-worktree reflog
111
- - refs: add refs_for_each_reflog[_ent]()
112
- - revision.c: --all adds HEAD from all worktrees
113
- - refs: remove dead for_each_*_submodule()
114
- - revision.c: use refs_for_each*() instead of for_each_*_submodule()
115
- - refs: add a refs_for_each_in() and friends
116
- - refs: add refs_for_each_ref()
117
- - refs: add refs_head_ref()
118
- - refs: add refs_read_ref[_full]()
119
- - refs: move submodule slash stripping code to get_submodule_ref_store
120
- - revision.c: --indexed-objects add objects from all worktrees
121
- - revision.c: refactor add_index_objects_to_pending()
122
- - revision.h: new flag in struct rev_info wrt. worktree-related refs
123
- (this branch uses mh/ref-remove-empty-directory, mh/submodule-hash, nd/files-backend-git-dir and nd/worktree-kill-parse-ref.)
74
+ Reduce authentication round-trip over HTTP when the server supports
75
+ just a single authentication method.
76
125
- "git gc" and friends when multiple worktrees are used off of a
126
- single repository did not consider the index and per-worktree refs
127
- of other worktrees as the root for reachability traversal, making
128
- objects that are in use only in other worktrees to be subject to
129
- garbage collection.
77
+ Will merge to and then cook in 'next'.
78
+ There is a follow-up that would supersede js/curl-empty-auth-set-by-default
79
+ topic; as it expected to be refined further, it is not queued here yet.
80
81
132
-* mm/fetch-show-error-message-on-unadvertised-object (2017-02-21) 1 commit
133
- - fetch: print an error when declining to request an unadvertised object
82
+* jk/ident-empty (2017-02-23) 4 commits
83
+ - ident: do not ignore empty config name/email
84
+ - ident: reject all-crud ident name
85
+ - ident: handle NULL email when complaining of empty name
86
+ - ident: mark error messages for translation
87
135
- "git fetch" that requests a commit by object name, when the other
136
- side does not allow such an request, failed without much
137
- explanation.
88
+ user.email that consists of only cruft chars should have
89
+ consistently errored out, but didn't.
90
139
- Expecting a split series?
91
+ Will merge to and then cook in 'next'.
92
93
142
-* rl/remote-allow-missing-branch-name-merge (2017-02-21) 1 commit
143
- - remote: ignore failure to remove missing branch.<name>.merge
94
+* jt/upload-pack-error-report (2017-02-23) 1 commit
95
+ - upload-pack: report "not our ref" to client
96
145
- "git remote rm X", when a branch has remote X configured as the
146
- value of its branch.*.remote, tried to remove branch.*.remote and
147
- branch.*.merge and failed if either is unset.
97
+ "git upload-pack", which is a counter-part of "git fetch", did not
98
+ report a request for a ref that was not advertised as invalid.
99
+ This is generally not a problem (because "git fetch" will stop
100
+ before making such a request), but is the right thing to do.
101
102
Will merge to and then cook in 'next'.
103
@@ -283,6 +236,136 @@ of the repositories listed at
236
--------------------------------------------------
237
[Cooking]
238
239
+* jk/tempfile-ferror-fclose-confusion (2017-02-17) 1 commit
240
+ (merged to 'next' on 2017-02-21 at 479ba0131f)
241
+ + tempfile: set errno to a known value before calling ferror()
242
+
243
+ A caller of tempfile API that uses stdio interface to write to
244
+ files may ignore errors while writing, which is detected when
245
+ tempfile is closed (with a call to ferror()). By that time, the
246
+ original errno that may have told us what went wrong is likely to
247
+ be long gone and was overwritten by an irrelevant value.
248
+ close_tempfile() now resets errno to EIO to make errno at least
249
+ predictable.
250
+
251
+ Will cook in 'next'.
252
+
253
+
254
+* ah/doc-ls-files-quotepath (2017-02-22) 1 commit
255
+ - Documentation: clarify core.quotePath and update git-ls-files doc
256
+
257
+ Documentation for "git ls-files" did not refer to core.quotePath
258
+
259
+ Looked good, but another reroll is still incoming?
260
+ cf. <3c801e54-28c7-52d0-6915-ee7aaf1d89c9@gmail.com>
261
+
262
+
263
+* dr/doc-check-ref-format-normalize (2017-02-21) 1 commit
264
+ (merged to 'next' on 2017-02-21 at 5e88b7a93d)
265
+ + git-check-ref-format: clarify documentation for --normalize
266
+
267
+ Doc update.
268
+
269
+ Will merge to 'master'.
270
+
271
+
272
+* gp/document-dotfiles-in-templates-are-not-copied (2017-02-17) 1 commit
273
+ (merged to 'next' on 2017-02-21 at bbfa2bb7d4)
274
+ + init: document dotfiles exclusion on template copy
275
+
276
+ Doc update.
277
+
278
+ Will merge to 'master'.
279
+
280
+
281
+* jc/config-case-cmdline (2017-02-21) 3 commits
282
+ (merged to 'next' on 2017-02-21 at 63d3652c77)
283
+ + config: squelch stupid compiler
284
+ (merged to 'next' on 2017-02-21 at 354f023a3a)
285
+ + config: reject invalid VAR in 'git -c VAR=VAL command'
286
+ + config: preserve <subsection> case for one-shot config on the command line
287
+
288
+ The code to parse "git -c VAR=VAL cmd" and set configuration
289
+ variable for the duration of cmd had two small bugs, which have
290
+ been fixed.
291
+
292
+ Will cook in 'next'.
293
+
294
+
295
+* jh/memihash-opt (2017-02-17) 5 commits
296
+ - name-hash: remember previous dir_entry during lazy_init_name_hash
297
+ - name-hash: specify initial size for istate.dir_hash table
298
+ - name-hash: precompute hash values during preload-index
299
+ - hashmap: allow memihash computation to be continued
300
+ - name-hash: eliminate duplicate memihash call
301
+
302
+ Expecting an update for perf?
303
+
304
+
305
+* km/delete-ref-reflog-message (2017-02-20) 4 commits
306
+ (merged to 'next' on 2017-02-21 at 4ee4ce3f64)
307
+ + branch: record creation of renamed branch in HEAD's log
308
+ + rename_ref: replace empty message in HEAD's log
309
+ + update-ref: pass reflog message to delete_ref()
310
+ + delete_ref: accept a reflog message argument
311
+
312
+ "git update-ref -d" and other operations to delete references did
313
+ not leave any entry in HEAD's reflog when the reference being
314
+ deleted was the current branch. This is not a problem in practice
315
+ because you do not want to delete the branch you are currently on,
316
+ but caused renaming of the current branch to something else not to
317
+ be logged in a useful way.
318
+
319
+ Will cook in 'next'.
320
+
321
+
322
+* nd/prune-in-worktree (2017-02-19) 15 commits
323
+ . rev-list: expose and document --single-worktree
324
+ . revision.c: --reflog add HEAD reflog from all worktrees
325
+ . files-backend: make reflog iterator go through per-worktree reflog
326
+ . refs: add refs_for_each_reflog[_ent]()
327
+ . revision.c: --all adds HEAD from all worktrees
328
+ . refs: remove dead for_each_*_submodule()
329
+ . revision.c: use refs_for_each*() instead of for_each_*_submodule()
330
+ . refs: add a refs_for_each_in() and friends
331
+ . refs: add refs_for_each_ref()
332
+ . refs: add refs_head_ref()
333
+ . refs: add refs_read_ref[_full]()
334
+ . refs: move submodule slash stripping code to get_submodule_ref_store
335
+ . revision.c: --indexed-objects add objects from all worktrees
336
+ . revision.c: refactor add_index_objects_to_pending()
337
+ . revision.h: new flag in struct rev_info wrt. worktree-related refs
338
+ (this branch uses mh/ref-remove-empty-directory, mh/submodule-hash and nd/worktree-kill-parse-ref; is tangled with nd/files-backend-git-dir.)
339
+
340
+ "git gc" and friends when multiple worktrees are used off of a
341
+ single repository did not consider the index and per-worktree refs
342
+ of other worktrees as the root for reachability traversal, making
343
+ objects that are in use only in other worktrees to be subject to
344
+ garbage collection.
345
+
346
+
347
+* mm/fetch-show-error-message-on-unadvertised-object (2017-02-22) 4 commits
348
+ - fetch-pack: add specific error for fetching an unadvertised object
349
+ - fetch_refs_via_pack: call report_unmatched_refs
350
+ - squash??? remove unfinished sentence
351
+ - fetch-pack: move code to report unmatched refs to a function
352
+
353
+ "git fetch" that requests a commit by object name, when the other
354
+ side does not allow such an request, failed without much
355
+ explanation.
356
+
357
+
358
+* rl/remote-allow-missing-branch-name-merge (2017-02-21) 1 commit
359
+ (merged to 'next' on 2017-02-22 at cbe923c8da)
360
+ + remote: ignore failure to remove missing branch.<name>.merge
361
+
362
+ "git remote rm X", when a branch has remote X configured as the
363
+ value of its branch.*.remote, tried to remove branch.*.remote and
364
+ branch.*.merge and failed if either is unset.
365
+
366
+ Will cook in 'next'.
367
+
368
+
369
* vn/xdiff-func-context (2017-01-15) 1 commit
370
(merged to 'next' on 2017-02-21 at 838eab8d93)
371
+ xdiff -W: relax end-of-file function detection
@@ -293,13 +376,30 @@ of the repositories listed at
376
Will cook in 'next'.
377
378
296
-* nd/worktree-kill-parse-ref (2017-02-19) 5 commits
297
- - refs: kill set_worktree_head_symref()
298
- - refs: add refs_create_symref()
299
- - worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
300
- - refs.c: add refs_resolve_ref_unsafe()
301
- - refs: introduce get_worktree_ref_store()
302
- (this branch is used by nd/prune-in-worktree; uses mh/ref-remove-empty-directory, mh/submodule-hash and nd/files-backend-git-dir.)
379
+* nd/worktree-kill-parse-ref (2017-02-19) 22 commits
380
+ . refs: kill set_worktree_head_symref()
381
+ . refs: add refs_create_symref()
382
+ . worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
383
+ . refs.c: add refs_resolve_ref_unsafe()
384
+ . refs: introduce get_worktree_ref_store()
385
+ . refs: rename get_ref_store() to get_submodule_ref_store() and make it public
386
+ . files-backend: remove submodule_allowed from files_downcast()
387
+ . refs: move submodule code out of files-backend.c
388
+ . path.c: move some code out of strbuf_git_path_submodule()
389
+ . refs.c: make get_main_ref_store() public and use it
390
+ . refs.c: kill register_ref_store(), add register_submodule_ref_store()
391
+ . refs.c: flatten get_ref_store() a bit
392
+ . refs: rename lookup_ref_store() to lookup_submodule_ref_store()
393
+ . refs.c: introduce get_main_ref_store()
394
+ . files-backend: remove the use of git_path()
395
+ . refs.c: share is_per_worktree_ref() to files-backend.c
396
+ . files-backend: replace *git_path*() with files_path()
397
+ . files-backend: add files_path()
398
+ . files-backend: convert git_path() to strbuf_git_path()
399
+ . refs-internal.c: make files_log_ref_write() static
400
+ . Merge branch 'mh/ref-remove-empty-directory' into nd/files-backend-git-dir
401
+ . Merge branch 'mh/submodule-hash' into nd/files-backend-git-dir
402
+ (this branch is used by nd/prune-in-worktree; uses mh/ref-remove-empty-directory and mh/submodule-hash; is tangled with nd/files-backend-git-dir.)
403
404
(hopefully) a beginning of safer "git worktree" that is resistant
405
to "gc".
@@ -307,25 +407,34 @@ of the repositories listed at
407
Needs review.
408
409
310
-* nd/files-backend-git-dir (2017-02-19) 17 commits
311
- - refs: rename get_ref_store() to get_submodule_ref_store() and make it public
312
- - files-backend: remove submodule_allowed from files_downcast()
313
- - refs: move submodule code out of files-backend.c
314
- - path.c: move some code out of strbuf_git_path_submodule()
315
- - refs.c: make get_main_ref_store() public and use it
316
- - refs.c: kill register_ref_store(), add register_submodule_ref_store()
317
- - refs.c: flatten get_ref_store() a bit
318
- - refs: rename lookup_ref_store() to lookup_submodule_ref_store()
319
- - refs.c: introduce get_main_ref_store()
320
- - files-backend: remove the use of git_path()
321
- - refs.c: share is_per_worktree_ref() to files-backend.c
322
- - files-backend: replace *git_path*() with files_path()
323
- - files-backend: add files_path()
324
- - files-backend: convert git_path() to strbuf_git_path()
325
- - refs-internal.c: make files_log_ref_write() static
326
- - Merge branch 'mh/ref-remove-empty-directory' into nd/files-backend-git-dir
327
- - Merge branch 'mh/submodule-hash' into nd/files-backend-git-dir
328
- (this branch is used by nd/prune-in-worktree and nd/worktree-kill-parse-ref; uses mh/ref-remove-empty-directory and mh/submodule-hash.)
410
+* nd/files-backend-git-dir (2017-02-22) 26 commits
411
+ . t1406: new tests for submodule ref store
412
+ . t1405: some basic tests on main ref store
413
+ . t/helper: add test-ref-store to test ref-store functions
414
+ . refs: delete pack_refs() in favor of refs_pack_refs()
415
+ . files-backend: avoid ref api targetting main ref store
416
+ . refs: new transaction related ref-store api
417
+ . refs: add new ref-store api
418
+ . refs: rename get_ref_store() to get_submodule_ref_store() and make it public
419
+ . files-backend: replace submodule_allowed check in files_downcast()
420
+ . refs: move submodule code out of files-backend.c
421
+ . path.c: move some code out of strbuf_git_path_submodule()
422
+ . refs.c: make get_main_ref_store() public and use it
423
+ . refs.c: kill register_ref_store(), add register_submodule_ref_store()
424
+ . refs.c: flatten get_ref_store() a bit
425
+ . refs: rename lookup_ref_store() to lookup_submodule_ref_store()
426
+ . refs.c: introduce get_main_ref_store()
427
+ . files-backend: remove the use of git_path()
428
+ . files-backend: add and use files_refname_path()
429
+ . files-backend: add and use files_reflog_path()
430
+ . files-backend: move "logs/" out of TMP_RENAMED_LOG
431
+ . files-backend: convert git_path() to strbuf_git_path()
432
+ . files-backend: add and use files_packed_refs_path()
433
+ . files-backend: make files_log_ref_write() static
434
+ . refs.h: add forward declaration for structs used in this file
435
+ . Merge branch 'mh/ref-remove-empty-directory' into nd/files-backend-git-dir
436
+ . Merge branch 'mh/submodule-hash' into nd/files-backend-git-dir
437
+ (this branch uses mh/ref-remove-empty-directory and mh/submodule-hash; is tangled with nd/prune-in-worktree and nd/worktree-kill-parse-ref.)
438
439
The "submodule" specific field in the ref_store structure is
440
replaced with a more generic "gitdir" that can later be used also
@@ -402,7 +511,7 @@ of the repositories listed at
511
cf. <xmqqmvdfh4az.fsf@gitster.mtv.corp.google.com>
512
513
405
-* bc/object-id (2017-02-20) 19 commits
514
+* bc/object-id (2017-02-22) 19 commits
515
- wt-status: convert to struct object_id
516
- builtin/merge-base: convert to struct object_id
517
- Convert object iteration callbacks to struct object_id
@@ -425,8 +534,8 @@ of the repositories listed at
534
535
"uchar [40]" to "struct object_id" conversion continues.
536
428
- Expecting a reroll.
429
- cf. <20170221011058.cpx7uio6ibkvrtbv@genre.crustytoothpaste.net>
537
+ Now at v5; looked alright.
538
+ cf. <20170221234737.894681-1-sandals@crustytoothpaste.net>
539
540
541
* jk/grep-no-index-fix (2017-02-14) 7 commits