What's cooking (2015/06 #07)

Junio C Hamano committed Jun 29, 2015 at 14:24 UTC 42d3d57628ce9d9fe280ca23ba6fd0380f22bd60
1 file changed +132 -250
whats-cooking.txt
+132 -250
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Jun 2015, #06; Wed, 24)
4 -X-master-at: df97e5dfeaea093e50afc15e44a23dfd3fa02502
5 -X-next-at: 3f8b1d03318d3e5eff389ac0d3568f45053ae1fd
3 +Subject: What's cooking in git.git (Jun 2015, #07; Mon, 29)
4 +X-master-at: 912bd497e93f0235a5999a77f8d54f5ff80a3a03
5 +X-next-at: d595659997efd86e238e50f97b9c8c811b229c4b
6
7 -What's cooking in git.git (Jun 2015, #06; Wed, 24)
7 +What's cooking in git.git (Jun 2015, #07; Mon, 29)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -16,10 +16,11 @@ been excluded from 'pu'; most notably, I think the remainder of
16 bc/object-id needs to wait until the for-each-ref topic from Karthik
17 settles and then rebased on it, or something.
18
19 -We will be in the pre-release freeze soonish, and the next cycle
20 -would reopen mid next month. In the meantime, let's shift the focus
21 -on making sure that what has already been merged to 'master' are
22 -good (i.e. regression hunting and fixes).
19 +A couple of "hotfix" topics that just went into 'next' should be
20 +part of -rc1 early next month, but other than that there aren't
21 +anything ultra-urgent cooking right now. Read those "Will merge to
22 +'master'" as if they were suffixed with "soon after the upcoming
23 +release".
24
25 You can find the changes described here in the integration branches
26 of the repositories listed at
@@ -29,273 +30,107 @@ of the repositories listed at
30 --------------------------------------------------
31 [Graduated to "master"]
32
32 -* af/tcsh-completion-noclobber (2015-06-09) 1 commit
33 - (merged to 'next' on 2015-06-16 at 621f205)
34 - + git-completion.tcsh: fix redirect with noclobber
35 -
36 - The tcsh completion writes a bash scriptlet but that would have
37 - failed for users with noclobber set.
38 -
39 -
40 -* es/configure-getdelim (2015-06-03) 2 commits
41 - (merged to 'next' on 2015-06-11 at cdead14)
42 - + configure: add getdelim() check
43 - + config.mak.uname: Darwin: define HAVE_GETDELIM for modern OS X releases
44 -
45 - Auto-detect availability of getdelim() that helps optimized version
46 - of strbuf_getwholeline().
47 -
48 -
49 -* es/osx-header-pollutes-mask-macro (2015-06-03) 2 commits
50 - (merged to 'next' on 2015-06-11 at cd8c39e)
51 - + ewah: use less generic macro name
52 - + ewah/bitmap: silence warning about MASK macro redefinition
53 -
54 -
55 -* es/send-email-sendmail-alias (2015-06-01) 10 commits
56 - (merged to 'next' on 2015-06-11 at b5e310e)
57 - + send-email: further warn about unsupported sendmail aliases features
58 - + t9001: add sendmail aliases line continuation tests
59 - + t9001: refactor sendmail aliases test infrastructure
60 - + send-email: implement sendmail aliases line continuation support
61 - + send-email: simplify sendmail aliases comment and blank line recognizer
62 - + send-email: refactor sendmail aliases parser
63 - + send-email: fix style: cuddle 'elsif' and 'else' with closing brace
64 - + send-email: drop noise comments which merely repeat what code says
65 - + send-email: visually distinguish sendmail aliases parser warnings
66 - + send-email: further document missing sendmail aliases functionality
67 -
68 - "git send-email" learned to handle more forms of sendmail style
69 - aliases file.
70 -
71 -
72 -* es/utf8-stupid-compiler-workaround (2015-06-05) 1 commit
73 - (merged to 'next' on 2015-06-11 at dc0f2d2)
74 - + utf8: NO_ICONV: silence uninitialized variable warning
75 -
76 - A compilation workaround.
77 -
78 -
79 -* fk/doc-format-patch-vn (2015-06-10) 1 commit
80 - (merged to 'next' on 2015-06-16 at 9be3516)
81 - + doc: format-patch: fix typo
82 -
83 - Docfix.
84 -
85 -
86 -* jc/apply-reject-noop-hunk (2015-06-01) 1 commit
87 - (merged to 'next' on 2015-06-11 at 8063665)
88 - + apply: reject a hunk that does not do anything
89 -
90 - "git apply" cannot diagnose a patch corruption when the breakage is
91 - to mark the length of the hunk shorter than it really is on the
92 - hunk header line "@@ -l,k +m,n @@"; one special case it could is
93 - when the hunk becomes no-op (e.g. k == n == 2 for two-line context
94 - patch output), and it learned to do so for this special case.
95 -
96 -
97 -* jc/do-not-feed-tags-to-clear-commit-marks (2015-06-01) 1 commit
98 - (merged to 'next' on 2015-06-11 at 65b4308)
99 - + format-patch: do not feed tags to clear_commit_marks()
100 -
101 - "git format-patch --ignore-if-upstream A..B" did not like to be fed
102 - tags as boundary commits.
103 -
104 -
105 -* jc/ll-merge-expose-path (2015-06-04) 1 commit
106 - (merged to 'next' on 2015-06-11 at 5c5fe41)
107 - + ll-merge: pass the original path to external drivers
108 -
109 - Traditionally, external low-level 3-way merge drivers are expected
110 - to produce their results based solely on the contents of the three
111 - variants given in temporary files named by %O, %A and %B on their
112 - command line. Additionally allow them to look at the final path
113 - (given by %P).
114 -
115 -
116 -* jk/index-pack-reduce-recheck (2015-06-09) 1 commit
117 - (merged to 'next' on 2015-06-16 at ff83705)
118 - + index-pack: avoid excessive re-reading of pack directory
119 -
120 - Disable "have we lost a race with competing repack?" check while
121 - receiving a huge object transfer that runs index-pack.
122 -
123 -
124 -* jk/stash-require-clean-index (2015-06-15) 1 commit
125 - (merged to 'next' on 2015-06-16 at beb4883)
126 - + Revert "stash: require a clean index to apply"
127 -
128 - A hotfix for the topic already in 'master'.
129 -
130 -
131 -* js/sleep-without-select (2015-06-05) 4 commits
132 - (merged to 'next' on 2015-06-11 at 278edb1)
133 - + lockfile: wait using sleep_millisec() instead of select()
134 - + lockfile: convert retry timeout computations to millisecond
135 - + help.c: wrap wait-only poll() invocation in sleep_millisec()
136 - + lockfile: replace random() by rand()
137 -
138 - Portability fix.
139 -
140 -
141 -* ld/p4-changes-block-size (2015-06-10) 4 commits
142 - (merged to 'next' on 2015-06-16 at 09b7daa)
143 - + git-p4: fixing --changes-block-size handling
144 - + git-p4: add tests for non-numeric revision range
145 - + git-p4: test with limited p4 server results
146 - + git-p4: additional testing of --changes-block-size
147 -
148 - More workaround for Perforce's row number limit in "git p4".
149 -
150 -
151 -* mh/fsck-reflog-entries (2015-06-08) 2 commits
152 - (merged to 'next' on 2015-06-16 at 44e3202)
153 - + fsck: report errors if reflog entries point at invalid objects
154 - + fsck_handle_reflog_sha1(): new function
155 -
156 - "git fsck" used to ignore missing or invalid objects recorded in reflog.
157 -
158 -
159 -* mh/reporting-broken-refs-from-for-each-ref (2015-06-08) 4 commits
160 - (merged to 'next' on 2015-06-16 at 31af2b8)
161 - + read_loose_refs(): treat NULL_SHA1 loose references as broken
162 - + read_loose_refs(): simplify function logic
163 - + for-each-ref: report broken references correctly
164 - + t6301: new tests of for-each-ref error handling
165 -
166 - "git for-each-ref" reported "missing object" for 0{40} when it
167 - encounters a broken ref. The lack of object whose name is 0{40} is
168 - not the problem; the ref being broken is.
169 -
170 -
171 -* nd/untracked-cache (2015-06-08) 1 commit
172 - (merged to 'next' on 2015-06-16 at 5e7df1d)
173 - + read-cache: fix untracked cache invalidation when split-index is used
174 -
175 - Hotfix for the 'untracked-cache' topic that is already in 'master'.
33 +* nd/diff-i-t-a (2015-06-23) 1 commit
34 + + Revert "diff-lib.c: adjust position of i-t-a entries in diff"
35
36 + The "let's show paths added with -N as 'new' in status output"
37 + change was done without enough consideration on potential fallouts
38 + on the codepaths that do not have anything to do with "status" and
39 + caused regression to at least one widely used "wsadd" alias.
40
178 -* pa/auto-gc-mac-osx (2015-06-12) 1 commit
179 - (merged to 'next' on 2015-06-16 at 151ec95)
180 - + hooks/pre-auto-gc: adjust power checking for newer OS X
41 +--------------------------------------------------
42 +[New Topics]
43
182 - Recent Mac OS X updates breaks the logic to detect that the machine
183 - is on the AC power in the sample pre-auto-gc script.
44 +None of these is particularly urgent.
45
46 +* dt/refs-backend-preamble (2015-06-29) 7 commits
47 + - git-stash: use git-reflog instead of creating files
48 + - git-reflog: add create and exists functions
49 + - refs: new public ref function: safe_create_reflog
50 + - refs: break out check for reflog autocreation
51 + - bisect: treat BISECT_HEAD as a ref
52 + - cherry-pick: treat CHERRY_PICK_HEAD and REVERT_HEAD as refs
53 + - refs.c: add err arguments to reflog functions
54
186 -* pt/am-abort-fix (2015-06-08) 6 commits
187 - (merged to 'next' on 2015-06-16 at 9cac1de)
188 - + am --abort: keep unrelated commits on unborn branch
189 - + am --abort: support aborting to unborn branch
190 - + am --abort: revert changes introduced by failed 3way merge
191 - + am --skip: support skipping while on unborn branch
192 - + am -3: support 3way merge on unborn branch
193 - + am --skip: revert changes introduced by failed 3way merge
55 + In preparation for allowing different "backends" to store the refs
56 + in a way different from the traditional "one ref per file in $GIT_DIR
57 + or in a $GIT_DIR/packed-refs file" filesystem storage, reduce
58 + direct filesystem access to ref-like things like CHERRY_PICK_HEAD
59 + from scripts and programs.
60
195 - Various fixes around "git am" that applies a patch to a history
196 - that is not there yet.
61 + Will merge to 'next'.
62
63
199 -* pt/pull-optparse (2015-06-02) 3 commits
200 - (merged to 'next' on 2015-06-11 at e252b4c)
201 - + pull: use git-rev-parse --parseopt for option parsing
202 - + pull: handle git-fetch's options as well
203 - + Merge branch 'pt/pull-tests' into pt/pull-optparse
64 +* et/http-proxyauth (2015-06-29) 1 commit
65 + - http: always use any proxy auth method available
66
205 - "git pull" has become more aware of the options meant for
206 - underlying "git fetch" and then learned to use parse-options
207 - parser.
67 + We used to ask libCURL to use the most secure authentication method
68 + available when talking to an HTTP proxy only when we were told to
69 + talk to one via configuration variables. We now ask libCURL to
70 + always use the most secure authentication method, because the user
71 + can tell libCURL to use an HTTP proxy via an environment variable
72 + without using configuration variables.
73
74 + Looked sensible. An extra set of eyes appreciated, but I think
75 + this is ready.
76
210 -* pt/t0302-needs-sanity (2015-06-12) 1 commit
211 - (merged to 'next' on 2015-06-16 at f0d8e17)
212 - + t0302: "unreadable" test needs SANITY prereq
77 + Will merge to 'next'.
78
79
215 -* qn/blame-show-email (2015-06-01) 1 commit
216 - (merged to 'next' on 2015-06-11 at b4998e2)
217 - + blame: add blame.showEmail configuration
80 +* jc/fsck-retire-require-eoh (2015-06-28) 1 commit
81 + - fsck: it is OK for a tag and a commit to lack the body
82
219 - "git blame" learned blame.showEmail configuration variable.
83 + A fix to a minor regression to "git fsck" in v2.2 era that started
84 + complaining about a body-less tag object when it lacks a separator
85 + empty line after its header to separate it with a non-existent body.
86
87 + Will merge to 'next'.
88
222 -* rl/am-3way-config (2015-06-04) 3 commits
223 - (merged to 'next' on 2015-06-11 at 9b9910d)
224 - + git-am: add am.threeWay config variable
225 - + t4150-am: refactor am -3 tests
226 - + git-am.sh: fix initialization of the threeway variable
89
228 - "git am" learned am.threeWay configuration variable.
90 +* jk/date-mode-format (2015-06-29) 3 commits
91 + - introduce "format" date-mode
92 + - convert "enum date_mode" into a struct
93 + - show-branch: use DATE_RELATIVE instead of magic number
94
95 + Teach "git log" and friends a new "--date=format:..." option to
96 + format timestamps using system's strftime(3).
97
231 -* sg/commit-cleanup-scissors (2015-06-09) 1 commit
232 - (merged to 'next' on 2015-06-16 at 988e23d)
233 - + commit: cope with scissors lines in commit message
98 + Will merge to 'next'.
99
235 - "git commit --cleanup=scissors" was not careful enough to protect
236 - against getting fooled by a line that looked like scissors.
100
101 +* jk/still-interesting (2015-06-29) 1 commit
102 + - revision.c: remove unneeded check for NULL
103
239 -* sg/completion-commit-cleanup (2015-06-08) 1 commit
240 - (merged to 'next' on 2015-06-16 at a9d1c77)
241 - + completion: teach 'scissors' mode to 'git commit --cleanup='
104 + Code clean-up.
105
243 ---------------------------------------------------
244 -[New Topics]
106 + Will merge to 'next'.
107
246 -* ad/bisect-terms (2015-06-24) 5 commits
247 - - bisect: allow any terms set by user
248 - - bisect: add the terms old/new
249 - - bisect: simplify the addition of new bisect terms
250 - - bisect: replace hardcoded "bad|good" by variables
251 - - bisect: correction of typo
108
253 - The use of 'good/bad' in "git bisect" made it confusing to use when
254 - hunting for a state change that is not a regression (e.g. bugfix).
255 - The command learned 'old/new' and then also allows the end user to
256 - choose the words via a new subcommand "git bisect terms $new $old".
109 +* nd/export-worktree (2015-06-26) 1 commit
110 + - setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR
111
258 - The last one is still iffy ($gmane/272554); perhaps split this
259 - at patch 4 and leave the last one as a separate topic.
112 + Running an aliased command from a subdirectory when the .git thing
113 + in the working tree is a gitfile pointing elsewhere did not work.
114
115 + Will merge to 'next'.
116
262 -* mh/tempfile (2015-06-10) 14 commits
263 - - credential-cache--daemon: use tempfile module
264 - - credential-cache--daemon: delete socket from main()
265 - - gc: use tempfile module to handle gc.pid file
266 - - lock_repo_for_gc(): compute the path to "gc.pid" only once
267 - - diff: use tempfile module
268 - - setup_temporary_shallow(): use tempfile module
269 - - write_shared_index(): use tempfile module
270 - - register_tempfile(): new function to handle an existing temporary file
271 - - tempfile: add several functions for creating temporary files
272 - - register_tempfile_object(): new function, extracted from create_tempfile()
273 - - commit_lock_file(): use get_locked_file_path()
274 - - lockfile: remove some redundant functions
275 - - tempfile: a new module for handling temporary files
276 - - Move lockfile API documentation to lockfile.h
117
278 - Rebuild "lockfile" API on top of a new "tempfile" API.
279 - This needs rerolling, to include "tempfile.h" in "lockfile.h", at
280 - least.
118 +* sb/p5310-and-chain (2015-06-26) 1 commit
119 + - p5310: Fix broken && chain in performance test
120
282 - Expecting a reroll.
283 - ($gmane/271353)
121 + Code clean-up.
122
123 + Will merge to 'next'.
124
286 -* nd/diff-i-t-a (2015-06-23) 1 commit
287 - - Revert "diff-lib.c: adjust position of i-t-a entries in diff"
125
289 - The "let's show paths added with -N as 'new' in status output"
290 - change was done without enough consideration on potential fallouts
291 - on the codepaths that do not have anything to do with "status" and
292 - caused regression to at least one widely used "wsadd" alias.
126 +* jc/rerere (2015-06-28) 5 commits
127 + - rerere: report autoupdated paths only after actually updating them
128 + - rerere: write out each record of MERGE_RR in one go
129 + - rerere: lift PATH_MAX limitation
130 + - t4200: rerere a merge with two identical conflicts
131 + - rerere: fix an off-by-one non-bug
132
294 - We do not know how widespread the fallouts would be; while we
295 - determine if it is feasible to squash all the fallouts and move
296 - things forward until the upcoming release or it would take more
297 - time and better be postponed til the next cycle, I prepared this
298 - just in case we need to revert it.
133 + Code clean-up (so far).
134
135 --------------------------------------------------
136 [Stalled]
@@ -504,6 +339,49 @@ of the repositories listed at
339 --------------------------------------------------
340 [Cooking]
341
342 +* ad/bisect-terms (2015-06-29) 10 commits
343 + - bisect: allow setting any user-specified in 'git bisect start'
344 + - bisect: add 'git bisect terms' to view the current terms
345 + - bisect: add the terms old/new
346 + - bisect: sanity check on terms
347 + - bisect: don't mix option parsing and non-trivial code
348 + - bisect: simplify the addition of new bisect terms
349 + - bisect: replace hardcoded "bad|good" by variables
350 + - Documentation/bisect: revise overall content
351 + - Documentation/bisect: move getting help section to the end
352 + - bisect: correction of typo
353 +
354 + The use of 'good/bad' in "git bisect" made it confusing to use when
355 + hunting for a state change that is not a regression (e.g. bugfix).
356 + The command learned 'old/new' and then allows the end user to
357 + say e.g. "bisect start --term-old=fast --term=new=slow" to find a
358 + performance regression.
359 +
360 +
361 +* mh/tempfile (2015-06-10) 14 commits
362 + - credential-cache--daemon: use tempfile module
363 + - credential-cache--daemon: delete socket from main()
364 + - gc: use tempfile module to handle gc.pid file
365 + - lock_repo_for_gc(): compute the path to "gc.pid" only once
366 + - diff: use tempfile module
367 + - setup_temporary_shallow(): use tempfile module
368 + - write_shared_index(): use tempfile module
369 + - register_tempfile(): new function to handle an existing temporary file
370 + - tempfile: add several functions for creating temporary files
371 + - register_tempfile_object(): new function, extracted from create_tempfile()
372 + - commit_lock_file(): use get_locked_file_path()
373 + - lockfile: remove some redundant functions
374 + - tempfile: a new module for handling temporary files
375 + - Move lockfile API documentation to lockfile.h
376 +
377 + Rebuild "lockfile" API on top of a new "tempfile" API.
378 + This needs rerolling, to include "tempfile.h" in "lockfile.h", at
379 + least.
380 +
381 + Expecting a reroll.
382 + ($gmane/271353)
383 +
384 +
385 * js/fsck-opt (2015-06-23) 19 commits
386 - fsck: support ignoring objects in `git fsck` via fsck.skiplist
387 - fsck: git receive-pack: support excluding objects from fsck'ing
@@ -532,7 +410,7 @@ of the repositories listed at
410 Will merge to 'next'.
411
412
535 -* js/rebase-i-clean-up-upon-continue-to-skip (2015-06-23) 2 commits
413 +* js/rebase-i-clean-up-upon-continue-to-skip (2015-06-29) 2 commits
414 - rebase -i: do not leave a CHERRY_PICK_HEAD file behind
415 - t3404: demonstrate CHERRY_PICK_HEAD bug
416
@@ -650,7 +528,7 @@ of the repositories listed at
528 Will merge to 'master'.
529
530
653 -* jk/cat-file-batch-all (2015-06-22) 8 commits
531 +* jk/cat-file-batch-all (2015-06-26) 8 commits
532 - cat-file: sort and de-dup output of --batch-all-objects
533 - cat-file: add --batch-all-objects option
534 - cat-file: split batch_one_object into two stages
@@ -703,6 +581,7 @@ of the repositories listed at
581 + for-each-ref: rename 'refinfo' to 'ref_array_item'
582 + for-each-ref: clean up code
583 + for-each-ref: extract helper functions out of grab_single_ref()
584 + (this branch is used by kn/for-each-tag-branch.)
585
586 GSoC project to rebuild ref listing by branch and tag based on the
587 for-each-ref machinery. This is its first part.
@@ -743,7 +622,9 @@ of the repositories listed at
622 other than refs/replace/ for the object replacement data.
623
624
746 -* nd/multiple-work-trees (2015-06-12) 1 commit
625 +* nd/multiple-work-trees (2015-06-29) 2 commits
626 + (merged to 'next' on 2015-06-29 at fd4eb60)
627 + + worktree: new place for "git prune --worktrees"
628 (merged to 'next' on 2015-06-24 at 7c3f918)
629 + checkout: don't check worktrees when not necessary
630
@@ -832,7 +713,7 @@ of the repositories listed at
713 Reimplement 'git pull' in C.
714
715 This is v4 ($gmane/271943).
835 - Comments from mentors and others?
716 + Will merge to 'next'.
717
718
719 * rl/send-email-aliases (2015-06-17) 10 commits
@@ -896,7 +777,8 @@ of the repositories listed at
777 What's the status of this one?
778
779
899 -* gr/rebase-i-drop-warn (2015-06-01) 2 commits
780 +* gr/rebase-i-drop-warn (2015-06-24) 3 commits
781 + - git rebase -i: add static check for commands and SHA-1
782 - git rebase -i: warn about removed commits
783 - git-rebase -i: add command "drop" to remove a commit
784
@@ -905,9 +787,7 @@ of the repositories listed at
787 who do not use it (and instead just remove the lines) by throwing
788 a warning.
789
908 - This is a lot older version than the latest round ($gmane/272420)
909 - Expecting a reroll.
910 - ($gmane/272506).
790 + Need to pick up the latest reroll ($gmane/273009).
791
792
793 * jh/strbuf-read-use-read-in-full (2015-06-01) 1 commit
@@ -963,7 +843,9 @@ of the repositories listed at
843 Still an early WIP
844
845
966 -* ee/clean-remove-dirs (2015-06-15) 5 commits
846 +* ee/clean-remove-dirs (2015-06-26) 6 commits
847 + (merged to 'next' on 2015-06-29 at d595659)
848 + + read_gitfile_gently: fix use-after-free
849 (merged to 'next' on 2015-06-24 at 7c27821)
850 + clean: improve performance when removing lots of directories
851 + p7300: add performance tests for clean