What's cooking (2016/10 #09)

Junio C Hamano committed Oct 31, 2016 at 14:38 UTC 0b3e657f530ecba0206e6c07437d492592e43210
1 file changed +151 -230
whats-cooking.txt
+151 -230
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Oct 2016, #08; Fri, 28)
4 -X-master-at: 7805bda2ac68c659b0042f45473723d9fdcece74
5 -X-next-at: 86d95836a33d12ccd9eed86457166d0222f77f17
3 +Subject: What's cooking in git.git (Oct 2016, #09; Mon, 31)
4 +X-master-at: 1fe8f2cf461179c41f64efbd1dc0a9fb3b7a0fb1
5 +X-next-at: 2c8536d0921902ede8654c83a512865ff5ecd153
6
7 -What's cooking in git.git (Oct 2016, #08; Fri, 28)
7 +What's cooking in git.git (Oct 2016, #09; Mon, 31)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -13,8 +13,10 @@ Here are the topics that have been cooking. Commits prefixed with
13 the integration branches, but I am still holding onto them.
14
15 Git v2.10.2, the second maintenance release for 2.10.x track, has
16 -been tagged. On the master front, things are getting close for the
17 -preview snapshot v2.11.0-rc0.
16 +been tagged. On the master front, an early preview v2.11.0-rc0 has
17 +been tagged. An updated, slightly slipped from the original,
18 +schedule is found at http://tinyurl.com/gitCal and I am hoping that
19 +we can conclude this cycle before US Thanksgiving.
20
21 You can find the changes described here in the integration branches
22 of the repositories listed at
@@ -24,141 +26,33 @@ of the repositories listed at
26 --------------------------------------------------
27 [Graduated to "master"]
28
27 -* jc/abbrev-auto (2016-10-22) 4 commits
28 - (merged to 'next' on 2016-10-26 at 92fdb66807)
29 - + transport: compute summary-width dynamically
30 - + transport: allow summary-width to be computed dynamically
31 - + fetch: pass summary_width down the callchain
32 - + transport: pass summary_width down the callchain
33 - (this branch uses jk/abbrev-auto and lt/abbrev-auto.)
34 -
35 - "git push" and "git fetch" reports from what old object to what new
36 - object each ref was updated, using abbreviated refnames, and they
37 - attempt to align the columns for this and other pieces of
38 - information. The way these codepaths compute how many display
39 - columns to allocate for the object names portion of this output has
40 - been updated to match the recent "auto scale the default
41 - abbreviation length" change.
42 -
43 -
44 -* jk/abbrev-auto (2016-10-03) 1 commit
45 - (merged to 'next' on 2016-10-21 at 8aa3d760d8)
46 - + find_unique_abbrev: move logic out of get_short_sha1()
47 - (this branch is used by jc/abbrev-auto; uses lt/abbrev-auto.)
48 -
49 - Updates the way approximate count of total objects is computed
50 - while attempting to come up with a unique abbreviated object name,
51 - which in turn needs to estimate how many hexdigits are necessary to
52 - ensure uniqueness.
53 -
54 -
55 -* jk/daemon-path-ok-check-truncation (2016-10-24) 1 commit
56 - (merged to 'next' on 2016-10-26 at 70c08241f6)
57 - + daemon: detect and reject too-long paths
58 -
59 - "git daemon" used fixed-length buffers to turn URL to the
60 - repository the client asked for into the server side directory
61 - path, using snprintf() to avoid overflowing these buffers, but
62 - allowed possibly truncated paths to the directory. This has been
63 - tightened to reject such a request that causes overlong path to be
64 - required to serve.
65 -
66 -
67 -* jk/no-looking-at-dotgit-outside-repo (2016-10-26) 6 commits
68 - (merged to 'next' on 2016-10-26 at 4aa877b578)
69 - + diff: handle sha1 abbreviations outside of repository
70 - + diff_aligned_abbrev: use "struct oid"
71 - + diff_unique_abbrev: rename to diff_aligned_abbrev
72 - + find_unique_abbrev: use 4-buffer ring
73 - + test-*-cache-tree: setup git dir
74 - + read info/{attributes,exclude} only when in repository
75 - (this branch is used by jk/no-looking-at-dotgit-outside-repo-final.)
76 -
77 - Update "git diff --no-index" codepath not to try to peek into .git/
78 - directory that happens to be under the current directory, when we
79 - know we are operating outside any repository.
80 -
81 -
82 -* js/prepare-sequencer (2016-10-21) 27 commits
83 - (merged to 'next' on 2016-10-26 at 12be8ebe90)
84 - + sequencer: mark all error messages for translation
85 - + sequencer: start error messages consistently with lower case
86 - + sequencer: quote filenames in error messages
87 - + sequencer: mark action_name() for translation
88 - + sequencer: remove overzealous assumption in rebase -i mode
89 - + sequencer: teach write_message() to append an optional LF
90 - + sequencer: refactor write_message() to take a pointer/length
91 - + sequencer: roll back lock file if write_message() failed
92 - + sequencer: stop releasing the strbuf in write_message()
93 - + sequencer: left-trim lines read from the script
94 - + sequencer: support cleaning up commit messages
95 - + sequencer: support amending commits
96 - + sequencer: allow editing the commit message on a case-by-case basis
97 - + sequencer: introduce a helper to read files written by scripts
98 - + sequencer: prepare for rebase -i's commit functionality
99 - + sequencer: remember the onelines when parsing the todo file
100 - + sequencer: get rid of the subcommand field
101 - + sequencer: avoid completely different messages for different actions
102 - + sequencer: strip CR from the todo script
103 - + sequencer: completely revamp the "todo" script parsing
104 - + sequencer: refactor the code to obtain a short commit name
105 - + sequencer: future-proof read_populate_todo()
106 - + sequencer: plug memory leaks for the option values
107 - + sequencer: future-proof remove_sequencer_state()
108 - + sequencer: avoid unnecessary indirection
109 - + sequencer: use memoized sequencer directory path
110 - + sequencer: use static initializers for replay_opts
111 -
112 - Update of the sequencer codebase to make it reusable to reimplement
113 - "rebase -i" continues.
114 -
115 -
116 -* lt/abbrev-auto (2016-10-03) 3 commits
117 - (merged to 'next' on 2016-10-03 at bb188d00f7)
118 - + abbrev: auto size the default abbreviation
119 - + abbrev: prepare for new world order
120 - + abbrev: add FALLBACK_DEFAULT_ABBREV to prepare for auto sizing
121 - (this branch is used by jc/abbrev-auto and jk/abbrev-auto.)
122 -
123 - Allow the default abbreviation length, which has historically been
124 - 7, to scale as the repository grows. The logic suggests to use 12
125 - hexdigits for the Linux kernel, and 9 to 10 for Git itself.
126 -
127 -
128 -* nd/ita-empty-commit (2016-10-24) 4 commits
129 - (merged to 'next' on 2016-10-26 at fb007cdae1)
130 - + commit: don't be fooled by ita entries when creating initial commit
131 - + commit: fix empty commit creation when there's no changes but ita entries
132 - + diff: add --ita-[in]visible-in-index
133 - + diff-lib: allow ita entries treated as "not yet exist in index"
134 -
135 - When new paths were added by "git add -N" to the index, it was
136 - enough to circumvent the check by "git commit" to refrain from
137 - making an empty commit without "--allow-empty". The same logic
138 - prevented "git status" to show such a path as "new file" in the
139 - "Changes not staged for commit" section.
140 -
141 -
142 -* rs/ring-buffer-wraparound (2016-10-26) 1 commit
143 - (merged to 'next' on 2016-10-26 at d2da68a14a)
144 - + hex: make wraparound of the index into ring-buffer explicit
145 -
146 - The code that we have used for the past 10+ years to cycle
147 - 4-element ring buffers turns out to be not quite portable in
148 - theoretical world.
149 -
150 -
151 -* sb/submodule-ignore-trailing-slash (2016-10-25) 3 commits
152 - (merged to 'next' on 2016-10-26 at e56a8ebb38)
153 - + t0060: sidestep surprising path mangling results on Windows
154 - (merged to 'next' on 2016-10-11 at e37425ed17)
155 - + submodule: ignore trailing slash in relative url
156 - + submodule: ignore trailing slash on superproject URL
157 -
158 - A minor regression fix for "git submodule".
29 +* ak/pre-receive-hook-template-modefix (2016-10-28) 1 commit
30 + (merged to 'next' on 2016-10-28 at 86d95836a3)
31 + + pre-receive.sample: mark it executable
32 +
33 + A trivial clean-up to a recently graduated topic.
34 +
35 +
36 +* ak/sh-setup-dot-source-i18n-fix (2016-10-30) 1 commit
37 + (merged to 'next' on 2016-10-31 at 538a72700e)
38 + + git-sh-setup: be explicit where to dot-source git-sh-i18n from.
39 +
40 + Recent update to git-sh-setup (a library of shell functions that
41 + are used by our in-tree scripted Porcelain commands) included
42 + another shell library git-sh-i18n without specifying where it is,
43 + relying on the $PATH. This has been fixed to be more explicit by
44 + prefixing $(git --exec-path) output in front.
45 +
46 +
47 +* aw/numbered-stash (2016-10-26) 1 commit
48 + (merged to 'next' on 2016-10-26 at 8d9325fa3a)
49 + + stash: allow stashes to be referenced by index only
50 +
51 + The user always has to say "stash@{$N}" when naming a single
52 + element in the default location of the stash, i.e. reflogs in
53 + refs/stash. The "git stash" command learned to accept "git stash
54 + apply 4" as a short-hand for "git stash apply stash@{4}".
55
160 ---------------------------------------------------
161 -[New Topics]
56
57 * jk/common-main (2016-10-27) 1 commit
58 (merged to 'next' on 2016-10-28 at fcdd4f8a26)
@@ -166,35 +60,117 @@ of the repositories listed at
60
61 A trivial clean-up to a recently graduated topic.
62
169 - Will merge to 'master'.
63
64 +* jk/rebase-config-insn-fmt-docfix (2016-10-30) 1 commit
65 + (merged to 'next' on 2016-10-31 at d48e20ffa2)
66 + + doc: fix missing "::" in config list
67
172 -* ak/pre-receive-hook-template-modefix (2016-10-28) 1 commit
173 - (merged to 'next' on 2016-10-28 at 86d95836a3)
174 - + pre-receive.sample: mark it executable
68 + Documentation fix.
69
176 - A trivial clean-up to a recently graduated topic.
70
178 - Will merge to 'master'.
71 +* jt/trailer-with-cruft (2016-10-21) 8 commits
72 + (merged to 'next' on 2016-10-27 at b5d1a21811)
73 + + trailer: support values folded to multiple lines
74 + + trailer: forbid leading whitespace in trailers
75 + + trailer: allow non-trailers in trailer block
76 + + trailer: clarify failure modes in parse_trailer
77 + + trailer: make args have their own struct
78 + + trailer: streamline trailer item create and add
79 + + trailer: use list.h for doubly-linked list
80 + + trailer: improve const correctness
81 + (this branch is used by jt/use-trailer-api-in-commands.)
82
83 + Update "interpret-trailers" machinery and teaches it that people in
84 + real world write all sorts of crufts in the "trailer" that was
85 + originally designed to have the neat-o "Mail-Header: like thing"
86 + and nothing else.
87
181 -* nd/rebase-forget (2016-10-28) 1 commit
182 - - rebase: add --forget to cleanup rebase, leave HEAD untouched
88
184 - "git rebase" learned "--forget" option, which allows a user to
185 - remove the metadata left by an earlier "git rebase" that was
186 - manually aborted without using "git rebase --abort".
89 +* ls/filter-process (2016-10-17) 14 commits
90 + (merged to 'next' on 2016-10-19 at ffd0de042c)
91 + + contrib/long-running-filter: add long running filter example
92 + + convert: add filter.<driver>.process option
93 + + convert: prepare filter.<driver>.process option
94 + + convert: make apply_filter() adhere to standard Git error handling
95 + + pkt-line: add functions to read/write flush terminated packet streams
96 + + pkt-line: add packet_write_gently()
97 + + pkt-line: add packet_flush_gently()
98 + + pkt-line: add packet_write_fmt_gently()
99 + + pkt-line: extract set_packet_header()
100 + + pkt-line: rename packet_write() to packet_write_fmt()
101 + + run-command: add clean_on_exit_handler
102 + + run-command: move check_pipe() from write_or_die to run_command
103 + + convert: modernize tests
104 + + convert: quote filter names in error messages
105
106 + The smudge/clean filter API expect an external process is spawned
107 + to filter the contents for each path that has a filter defined. A
108 + new type of "process" filter API has been added to allow the first
109 + request to run the filter for a path to spawn a single process, and
110 + all filtering need is served by this single process for multiple
111 + paths, reducing the process creation overhead.
112
189 -* jc/git-open-cloexec (2016-10-28) 2 commits
190 - - sha1_file: stop opening files with O_NOATIME
191 - - git_open(): untangle possible NOATIME and CLOEXEC interactions
192 - (this branch uses ls/git-open-cloexec.)
113
194 - The codeflow of setting NOATIME and CLOEXEC on file descriptors Git
195 - opens has been simplified.
114 +* ls/git-open-cloexec (2016-10-25) 3 commits
115 + (merged to 'next' on 2016-10-26 at f7259cbddb)
116 + + read-cache: make sure file handles are not inherited by child processes
117 + + sha1_file: open window into packfiles with O_CLOEXEC
118 + + sha1_file: rename git_open_noatime() to git_open()
119 + (this branch is used by jc/git-open-cloexec.)
120 +
121 + Git generally does not explicitly close file descriptors that were
122 + open in the parent process when spawning a child process, but most
123 + of the time the child does not want to access them. As Windows does
124 + not allow removing or renaming a file that has a file descriptor
125 + open, a slow-to-exit child can even break the parent process by
126 + holding onto them. Use O_CLOEXEC flag to open files in various
127 + codepaths.
128 +
129 +
130 +* nd/test-helpers (2016-10-27) 1 commit
131 + (merged to 'next' on 2016-10-31 at 9780fe6d90)
132 + + valgrind: support test helpers
133 +
134 + Update to the test framework made in 2.9 timeframe broke running
135 + the tests under valgrind, which has been fixed.
136 +
137 +
138 +* rs/commit-pptr-simplify (2016-10-30) 1 commit
139 + (merged to 'next' on 2016-10-31 at ddeed2e66a)
140 + + commit: simplify building parents list
141 +
142 + Code simplification.
143 +
144 +
145 +* sc/fmt-merge-msg-doc-markup-fix (2016-10-28) 1 commit
146 + (merged to 'next' on 2016-10-31 at 198c259bb2)
147 + + Documentation/fmt-merge-msg: fix markup in example
148
197 - We probably want to drop the tip one.
149 + Documentation fix.
150 +
151 +--------------------------------------------------
152 +[New Topics]
153 +
154 +* jc/push-default-explicit (2016-10-28) 1 commit
155 + - push: do not use potentially ambiguous default refspec
156 +
157 + A lazy "git push" without refspec did not internally use a fully
158 + specified refspec to perform 'current', 'simple', or 'upstream'
159 + push, causing unnecessary "ambiguous ref" errors.
160 +
161 + Needs updates to the tests.
162 +
163 +
164 +* jt/use-trailer-api-in-commands (2016-10-28) 4 commits
165 + - sequencer: use trailer's trailer layout
166 + - trailer: have function to describe trailer layout
167 + - trailer: avoid unnecessary splitting on lines
168 + - commit: make ignore_non_trailer take buf/len
169 +
170 + Commands that operate on a log message and add lines to the trailer
171 + blocks, such as "format-patch -s", "cherry-pick (-x|-s)", and
172 + "commit -s", have been taught to use the logic of and share the
173 + code with "git interpret-trailer".
174
175 --------------------------------------------------
176 [Stalled]
@@ -337,16 +313,25 @@ of the repositories listed at
313 --------------------------------------------------
314 [Cooking]
315
340 -* aw/numbered-stash (2016-10-26) 1 commit
341 - (merged to 'next' on 2016-10-26 at 8d9325fa3a)
342 - + stash: allow stashes to be referenced by index only
316 +* nd/rebase-forget (2016-10-28) 1 commit
317 + - rebase: add --forget to cleanup rebase, leave HEAD untouched
318
344 - The user always has to say "stash@{$N}" when naming a single
345 - element in the default location of the stash, i.e. reflogs in
346 - refs/stash. The "git stash" command learned to accept "git stash
347 - apply 4" as a short-hand for "git stash apply stash@{4}".
319 + "git rebase" learned "--forget" option, which allows a user to
320 + remove the metadata left by an earlier "git rebase" that was
321 + manually aborted without using "git rebase --abort".
322 +
323 + Waiting for a reroll.
324
349 - Will merge to 'master'.
325 +
326 +* jc/git-open-cloexec (2016-10-31) 3 commits
327 + - sha1_file: stop opening files with O_NOATIME
328 + - git_open_cloexec(): use fcntl(2) w/ FD_CLOEXEC fallback
329 + - git_open(): untangle possible NOATIME and CLOEXEC interactions
330 +
331 + The codeflow of setting NOATIME and CLOEXEC on file descriptors Git
332 + opens has been simplified.
333 +
334 + We may want to drop the tip one.
335
336
337 * jk/no-looking-at-dotgit-outside-repo-final (2016-10-26) 1 commit
@@ -370,24 +355,6 @@ of the repositories listed at
355 "--unmerge" option to recover from this situation.
356
357
373 -* ls/git-open-cloexec (2016-10-25) 3 commits
374 - (merged to 'next' on 2016-10-26 at f7259cbddb)
375 - + read-cache: make sure file handles are not inherited by child processes
376 - + sha1_file: open window into packfiles with O_CLOEXEC
377 - + sha1_file: rename git_open_noatime() to git_open()
378 - (this branch is used by jc/git-open-cloexec.)
379 -
380 - Git generally does not explicitly close file descriptors that were
381 - open in the parent process when spawning a child process, but most
382 - of the time the child does not want to access them. As Windows does
383 - not allow removing or renaming a file that has a file descriptor
384 - open, a slow-to-exit child can even break the parent process by
385 - holding onto them. Use O_CLOEXEC flag to open files in various
386 - codepaths.
387 -
388 - Will merge to 'master'.
389 -
390 -
358 * jc/merge-base-fp-only (2016-10-19) 8 commits
359 . merge-base: fp experiment
360 - merge: allow to use only the fp-only merge bases
@@ -419,25 +386,6 @@ of the repositories listed at
386 cf. <xmqqd1il5w4e.fsf@gitster.mtv.corp.google.com>
387
388
422 -* jt/trailer-with-cruft (2016-10-21) 8 commits
423 - (merged to 'next' on 2016-10-27 at b5d1a21811)
424 - + trailer: support values folded to multiple lines
425 - + trailer: forbid leading whitespace in trailers
426 - + trailer: allow non-trailers in trailer block
427 - + trailer: clarify failure modes in parse_trailer
428 - + trailer: make args have their own struct
429 - + trailer: streamline trailer item create and add
430 - + trailer: use list.h for doubly-linked list
431 - + trailer: improve const correctness
432 -
433 - Update "interpret-trailers" machinery and teaches it that people in
434 - real world write all sorts of crufts in the "trailer" that was
435 - originally designed to have the neat-o "Mail-Header: like thing"
436 - and nothing else.
437 -
438 - Will merge to 'master'.
439 -
440 -
389 * pb/bisect (2016-10-18) 27 commits
390 - bisect--helper: remove the dequote in bisect_start()
391 - bisect--helper: retire `--bisect-auto-next` subcommand
@@ -569,33 +517,6 @@ of the repositories listed at
517 Will hold to see if people scream.
518
519
572 -* ls/filter-process (2016-10-17) 14 commits
573 - (merged to 'next' on 2016-10-19 at ffd0de042c)
574 - + contrib/long-running-filter: add long running filter example
575 - + convert: add filter.<driver>.process option
576 - + convert: prepare filter.<driver>.process option
577 - + convert: make apply_filter() adhere to standard Git error handling
578 - + pkt-line: add functions to read/write flush terminated packet streams
579 - + pkt-line: add packet_write_gently()
580 - + pkt-line: add packet_flush_gently()
581 - + pkt-line: add packet_write_fmt_gently()
582 - + pkt-line: extract set_packet_header()
583 - + pkt-line: rename packet_write() to packet_write_fmt()
584 - + run-command: add clean_on_exit_handler
585 - + run-command: move check_pipe() from write_or_die to run_command
586 - + convert: modernize tests
587 - + convert: quote filter names in error messages
588 -
589 - The smudge/clean filter API expect an external process is spawned
590 - to filter the contents for each path that has a filter defined. A
591 - new type of "process" filter API has been added to allow the first
592 - request to run the filter for a path to spawn a single process, and
593 - all filtering need is served by this single process for multiple
594 - paths, reducing the process creation overhead.
595 -
596 - Will merge to 'master'.
597 -
598 -
520 * sg/fix-versioncmp-with-common-suffix (2016-09-08) 5 commits
521 - versioncmp: cope with common leading parts in versionsort.prereleaseSuffix
522 - versioncmp: pass full tagnames to swap_prereleases()