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