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()