What's cooking (2015/11 #01)

Junio C Hamano committed Nov 5, 2015 at 15:11 UTC 0958d20853136af6c7a0a31da55a30f23118b0e4
1 file changed +313 -333
whats-cooking.txt
+313 -333
@@ -1,20 +1,24 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Oct 2015, #07; Fri, 30)
4 -X-master-at: 2635c2b8bfc9aec07b7f023d8e3b3d02df715344
5 -X-next-at: 3dda608c19069845846bd7fd57000a99f97b9c9d
3 +Subject: What's cooking in git.git (Nov 2015, #01; Thu, 5)
4 +X-master-at: 2c78628255b8cc7f0b5d47981acea138db8716d2
5 +X-next-at: 550542234b0fed5a3944af44b01152b620e8dba1
6
7 -What's cooking in git.git (Oct 2015, #07; Fri, 30)
7 +What's cooking in git.git (Nov 2015, #01; Thu, 5)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
13
14 -At tinyurl.com/gitCal, I drew a 14-week schedule for this cycle. I
15 -plan to be offline during weeks #7-#9 myself; hopefully we'll have
16 -capable interim maintainers to take care of the list traffic in the
17 -meantime as in past years.
14 +Git 2.6.3 has been tagged, with accumulated fixes and minor updates
15 +that are already in 'master'. We have about 5 weeks left til -rc0
16 +so hopefully a handful of topics that are not yet in 'next' but have
17 +already been reviewed and polished may be able to be merged to
18 +'next', cook in there for a while and be in the next release. I'll
19 +be offline for a few weeks starting this weekend, but I am confident
20 +that our capable interim maintainer can shepherd these topics
21 +forward with the help from our contributors.
22
23 You can find the changes described here in the integration branches
24 of the repositories listed at
@@ -24,333 +28,164 @@ of the repositories listed at
28 --------------------------------------------------
29 [Graduated to "master"]
30
27 -* ar/clone-dissociate (2015-10-22) 1 commit
28 - (merged to 'next' on 2015-10-23 at 6bf746f)
29 - + clone: allow "--dissociate" without reference
30 -
31 - "git clone --dissociate" used to require that "--reference" was
32 - used at the same time, but you can create a new repository that
33 - borrows objects from another without using "--reference", namely
34 - with "clone --local" from a repository that borrows objects from
35 - other repositories.
36 -
37 -
38 -* dt/name-hash-dir-entry-fix (2015-10-21) 1 commit
39 - (merged to 'next' on 2015-10-22 at 15eb519)
40 - + name-hash: don't reuse cache_entry in dir_entry
41 -
42 - The name-hash subsystem that is used to cope with case insensitive
43 - filesystems keeps track of directories and their on-filesystem
44 - cases for all the paths in the index by holding a pointer to a
45 - randomly chosen cache entry that is inside the directory (for its
46 - ce->ce_name component). This pointer was not updated even when the
47 - cache entry was removed from the index, leading to use after free.
48 - This was fixed by recording the path for each directory instead of
49 - borrowing cache entries and restructuring the API somewhat.
50 -
51 -
52 -* gr/rebase-i-drop-warn (2015-10-28) 2 commits
53 - (merged to 'next' on 2015-10-29 at 4bfda25)
54 - + rebase-i: work around Windows CRLF line endings
55 - + t3404: "rebase -i" gets broken when insn sheet uses CR/LF line endings
56 -
57 - Recent update to "rebase -i" that tries to sanity check the edited
58 - insn sheet before it uses it has become too picky on Windows where
59 - CRLF left by the editor is turned into a trailing CR on the line
60 - read via the "read" built-in command.
61 -
62 -
63 -* jc/add-u-A-default-to-top (2015-10-24) 1 commit
64 - (merged to 'next' on 2015-10-29 at 15aea9c)
65 - + add: simplify -u/-A without pathspec
66 -
67 - "git --literal-pathspecs add -u/-A" without any command line
68 - argument misbehaved ever since Git 2.0.
69 -
70 -
71 -* jc/am-mailinfo-direct (2015-10-21) 1 commit
72 - (merged to 'next' on 2015-10-22 at ca15014)
73 - + am: make direct call to mailinfo
74 - (this branch is used by jc/mailinfo; uses jc/mailinfo-lib.)
75 -
76 - "git am" used to spawn "git mailinfo" via run_command() API once
77 - per each patch, but learned to make a direct call to mailinfo()
78 - instead.
79 -
80 -
81 -* jc/em-dash-in-doc (2015-10-22) 1 commit
82 - (merged to 'next' on 2015-10-23 at 31a08ce)
83 - + Documentation: AsciiDoc spells em-dash as double-dashes, not triple
84 -
85 - AsciiDoc markup fixes.
86 -
87 -
88 -* jc/everyday-markup (2015-10-22) 1 commit
89 - (merged to 'next' on 2015-10-22 at 0a2702d)
90 - + Documentation/everyday: match undefline with the text
91 -
92 - AsciiDoc markup fixes.
93 -
94 -
95 -* jc/mailinfo-lib (2015-10-21) 34 commits
96 - (merged to 'next' on 2015-10-22 at 405bd66)
97 - + mailinfo: remove calls to exit() and die() deep in the callchain
98 - + mailinfo: handle charset conversion errors in the caller
99 - + mailinfo: libify
100 - + mailinfo: keep the parsed log message in a strbuf
101 - + mailinfo: handle_commit_msg() shouldn't be called after finding patchbreak
102 - + mailinfo: move content/content_top to struct mailinfo
103 - + mailinfo: move [ps]_hdr_data to struct mailinfo
104 - + mailinfo: move cmitmsg and patchfile to struct mailinfo
105 - + mailinfo: move charset to struct mailinfo
106 - + mailinfo: move transfer_encoding to struct mailinfo
107 - + mailinfo: move check for metainfo_charset to convert_to_utf8()
108 - + mailinfo: move metainfo_charset to struct mailinfo
109 - + mailinfo: move use_scissors and use_inbody_headers to struct mailinfo
110 - + mailinfo: move add_message_id and message_id to struct mailinfo
111 - + mailinfo: move patch_lines to struct mailinfo
112 - + mailinfo: move filter/header stage to struct mailinfo
113 - + mailinfo: move global "FILE *fin, *fout" to struct mailinfo
114 - + mailinfo: move keep_subject & keep_non_patch_bracket to struct mailinfo
115 - + mailinfo: introduce "struct mailinfo" to hold globals
116 - + mailinfo: move global "line" into mailinfo() function
117 - + mailinfo: do not let find_boundary() touch global "line" directly
118 - + mailinfo: do not let handle_boundary() touch global "line" directly
119 - + mailinfo: do not let handle_body() touch global "line" directly
120 - + mailinfo: get rid of function-local static states
121 - + mailinfo: move definition of MAX_HDR_PARSED closer to its use
122 - + mailinfo: move cleanup_space() before its users
123 - + mailinfo: move check_header() after the helpers it uses
124 - + mailinfo: move read_one_header_line() closer to its callers
125 - + mailinfo: move handle_boundary() lower
126 - + mailinfo: plug strbuf leak during continuation line handling
127 - + mailinfo: explicitly close file handle to the patch output
128 - + mailinfo: fix an off-by-one error in the boundary stack
129 - + mailinfo: fold decode_header_bq() into decode_header()
130 - + mailinfo: remove a no-op call convert_to_utf8(it, "")
131 - (this branch is used by jc/am-mailinfo-direct and jc/mailinfo.)
132 -
133 - The implementation of "git mailinfo" was refactored so that a
134 - mailinfo() function can be directly called from inside a process.
31 +* da/difftool (2015-10-29) 1 commit
32 + (merged to 'next' on 2015-11-01 at 4e5ab33)
33 + + difftool: ignore symbolic links in use_wt_file
34
35 + The code to prepare the working tree side of temporary directory
36 + for the "dir-diff" feature forgot that symbolic links need not be
37 + copied (or symlinked) to the temporary area, as the code already
38 + special cases and overwrites them. Besides, it was wrong to try
39 + computing the object name of the target of symbolic link, which may
40 + not even exist or may be a directory.
41
137 -* jk/delete-modechange-conflict (2015-10-26) 3 commits
138 - (merged to 'next' on 2015-10-29 at 59ce69d)
139 - + merge: detect delete/modechange conflict
140 - + t6031: generalize for recursive and resolve strategies
141 - + t6031: move triple-rename test to t3030
42
143 - Merging a branch that removes a path and another that changes the
144 - mode bits on the same path should have conflicted at the path, but
145 - it didn't and silently favoured the removal.
43 +* jc/mailinfo-lib (2015-11-01) 1 commit
44 + (merged to 'next' on 2015-11-01 at 3ecaa28)
45 + + mailinfo: fix passing wrong address to git_mailinfo_config
46
47 + Hotfix for a topic already in 'master'.
48
148 -* jk/merge-file-exit-code (2015-10-29) 1 commit
149 - (merged to 'next' on 2015-10-29 at 6ae613f)
150 - + merge-file: clamp exit code to maximum 127
49
152 - "git merge-file" tried to signal how many conflicts it found, which
153 - obviously would not work well when there are too many of them.
50 +* jk/initialization-fix-to-add-submodule-odb (2015-10-28) 1 commit
51 + (merged to 'next' on 2015-11-01 at da94b97)
52 + + add_submodule_odb: initialize alt_odb list earlier
53
54 + We peek objects from submodule's object store by linking it to the
55 + list of alternate object databases, but the code to do so forgot to
56 + correctly initialize the list.
57
156 -* jk/war-on-sprintf (2015-10-23) 2 commits
157 - (merged to 'next' on 2015-10-23 at 3a94851)
158 - + compat/mingw.c: remove printf format warning
159 - + read_branches_file: plug a FILE* leak
58
59 +* js/git-gdb (2015-10-30) 1 commit
60 + (merged to 'next' on 2015-11-01 at 3d232d5)
61 + + test: facilitate debugging Git executables in tests with gdb
62
162 -* js/imap-send-curl-compilation-fix (2015-10-26) 1 commit
163 - (merged to 'next' on 2015-10-29 at 9c4f3eb)
164 - + imap-send: only use CURLOPT_LOGIN_OPTIONS if it is actually available
63 + Allow easier debugging of a single "git" invocation in our test
64 + scripts.
65
166 - "git imap-send" did not compile well with older version of cURL library.
66
67 +* kn/for-each-branch (2015-10-30) 1 commit
68 + (merged to 'next' on 2015-11-01 at 4249dc9)
69 + + ref-filter: fallback on alphabetical comparison
70
169 -* js/misc-fixes (2015-10-26) 3 commits
170 - (merged to 'next' on 2015-10-29 at 8990f29)
171 - + Correct fscanf formatting string for I64u values
172 - + Silence GCC's "cast of pointer to integer of a different size" warning
173 - + Squelch warning about an integer overflow
71 + Using the timestamp based criteria in "git branch --sort" did not
72 + tiebreak branches that point at commits with the same timestamp (or
73 + the same commit), making the resulting output unstable.
74
175 - Various compilation fixes and squelching of warnings.
75
76 +* mk/blame-first-parent (2015-10-30) 3 commits
77 + (merged to 'next' on 2015-11-01 at 3f87150)
78 + + blame: allow blame --reverse --first-parent when it makes sense
79 + + blame: extract find_single_final
80 + + blame: test to describe use of blame --reverse --first-parent
81
178 -* mk/blame-error-message (2015-10-26) 1 commit
179 - (merged to 'next' on 2015-10-29 at 82a1b18)
180 - + blame: fix option name in error message
82 + "git blame" learnt to take "--first-parent" and "--reverse" at the
83 + same time when it makes sense.
84
182 - The error message from "git blame --contents --reverse" incorrectly
183 - talked about "--contents --children".
85
86 +* rs/daemon-plug-child-leak (2015-11-02) 2 commits
87 + (merged to 'next' on 2015-11-02 at 64afbb9)
88 + + daemon: plug memory leak
89 + + run-command: factor out child_process_clear()
90 + (this branch is used by sb/submodule-parallel-update.)
91
186 -* rp/link-curl-before-ssl (2015-10-21) 3 commits
187 - (merged to 'next' on 2015-10-22 at dad4fc6)
188 - + configure.ac: detect ssl need with libcurl
189 - + Makefile: make curl-config path configurable
190 - + Makefile: link libcurl before zlib
92 + "git daemon" uses "run_command()" without "finish_command()", so it
93 + needs to release resources itself, which it forgot to do.
94
192 - The linkage order of libraries was wrong in places around libcurl.
95
194 -
195 -* rs/pop-commit (2015-10-26) 1 commit
196 - (merged to 'next' on 2015-10-29 at f24d8ed)
197 - + use pop_commit() for consuming the first entry of a struct commit_list
96 +* rs/show-branch-argv-array (2015-11-01) 1 commit
97 + (merged to 'next' on 2015-11-01 at fac4fa6)
98 + + show-branch: use argv_array for default arguments
99
100 Code simplification.
101
102
202 -* tk/sigchain-unnecessary-post-tempfile (2015-10-22) 4 commits
203 - (merged to 'next' on 2015-10-22 at b049f0a)
204 - + shallow: remove unused #include "sigchain.h"
205 - + read-cache: remove unused #include "sigchain.h"
206 - + diff: remove unused #include "sigchain.h"
207 - + credential-cache--daemon: remove unused #include "sigchain.h"
103 +* rs/wt-status-detached-branch-fix (2015-11-01) 5 commits
104 + (merged to 'next' on 2015-11-01 at cb23615)
105 + + wt-status: use skip_prefix() to get rid of magic string length constants
106 + + wt-status: don't skip a magical number of characters blindly
107 + + wt-status: avoid building bogus branch name with detached HEAD
108 + + wt-status: exit early using goto in wt_shortstatus_print_tracking()
109 + + t7060: add test for status --branch on a detached HEAD
110
209 - Remove no-longer used #include.
210 -
211 -
212 -* xf/user-manual-ff (2015-10-26) 1 commit
213 - (merged to 'next' on 2015-10-29 at 488c4f8)
214 - + user-manual: fix the description of fast-forward
215 -
216 -
217 -* xf/user-manual-markup (2015-10-22) 3 commits
218 - (merged to 'next' on 2015-10-22 at cd33c83)
219 - + Documentation: match undefline with the text in old release notes
220 - + Documentation: match underline with the text
221 - + Documentation: fix header markup
222 -
223 - AsciiDoc markup fixes.
111 + "git status --branch --short" accessed beyond the constant string
112 + "HEAD", which has been corrected.
113
114 --------------------------------------------------
115 [New Topics]
116
228 -* sb/submodule-parallel-update (2015-10-29) 9 commits
229 - - clone: allow an explicit argument for parallel submodule clones
230 - - submodule update: expose parallelism to the user
231 - - git submodule update: have a dedicated helper for cloning
232 - - fetching submodules: respect `submodule.jobs` config option
233 - - submodule config: update parse_config()
234 - - submodule config: remove name_and_item_from_var
235 - - submodule config: keep update strategy around
236 - - run_processes_parallel: add output to tracing messages
237 - - Merge branch 'sb/submodule-parallel-fetch' into sb/submodule-parallel-update
238 - (this branch uses sb/submodule-parallel-fetch.)
117 +* ad/sha1-update-chunked (2015-11-05) 2 commits
118 + - sha1: allow limiting the size of the data passed to SHA1_Update()
119 + - sha1: provide another level of indirection for the SHA-1 functions
120
240 - Builds on top of the "fetch --recurse-submodules" work to introduce
241 - parallel downloading into multiple submodules for "submodule update".
121 + Apple's common crypto implementation of SHA1_Update() does not take
122 + more than 4GB at a time, and we now have a compile-time workaround
123 + for it.
124
243 - Waiting for reviews.
125 + I think this is more or less ready. I am skeptical about the file
126 + location reorg ([PATCH 3/3] $gmane/280912) and did not queue it.
127
128
246 -* jc/strbuf-gets (2015-10-28) 17 commits
247 - - test-sha1-array: read command stream with strbuf_gets()
248 - - grep: read -f file with strbuf_gets()
249 - - send-pack: read list of refs with strbuf_gets()
250 - - column: read lines with strbuf_gets()
251 - - cat-file: read batch stream with strbuf_gets()
252 - - transport-helper: read helper response with strbuf_gets()
253 - - clone/sha1_file: read info/alternates with strbuf_gets()
254 - - remote.c: read $GIT_DIR/remotes/* with strbuf_gets()
255 - - ident.c: read /etc/mailname with strbuf_gets()
256 - - rev-parse: read parseopt spec with strbuf_gets()
257 - - revision: read --stdin with strbuf_gets()
258 - - hash-object: read --stdin-paths with strbuf_gets()
259 - - mktree: read textual tree representation with strbuf_gets()
260 - - update-index: read list of paths with strbuf_gets() under --stdin
261 - - update-index: read --index-info with strbuf_gets()
262 - - check-attr, check-ignore, checkout-index: read paths with strbuf_gets()
263 - - strbuf: add strbuf_gets()
129 +* dt/http-range (2015-11-02) 2 commits
130 + (merged to 'next' on 2015-11-03 at 7c3cc60)
131 + + http: use off_t to store partial file size
132 + + http.c: use CURLOPT_RANGE for range requests
133
265 - Teach codepaths that communicate with users by reading text files
266 - to be more lenient to editors that write CRLF-terminated lines.
267 - Note that this is only about communication with Git, like feeding
268 - list of object names from the standard input instead of from the
269 - command line, and does not involve files in the working tree.
134 + A Range: request can be responded with a full response and when
135 + asked properly libcurl knows how to strip the result down to the
136 + requested range. However, we were hand-crafting a range request
137 + and it did not kick in.
138
271 - Waiting for reviews.
139 + Will merge to 'master'.
140
141
274 -* eg/p4-submit-catch-failure (2015-10-30) 1 commit
275 - - git-p4: clean up after p4 submit failure
142 +* vl/grep-configurable-threads (2015-11-01) 1 commit
143 + - grep: add --threads=<num> option and grep.threads configuration
144
277 - Just like the working tree is cleaned up when the user cancelled
278 - submission in P4Submit.applyCommit(), clean up the mess if "p4
279 - submit" fails.
145 + "git grep" can now be configured (or told from the command line)
146 + how many threads to use when searching in the working tree files.
147
281 - Needs an update to test.
148 + Expecting a reroll.
149 + ($gmane/280854)
150
151
284 -* jk/initialization-fix-to-add-submodule-odb (2015-10-28) 1 commit
285 - - add_submodule_odb: initialize alt_odb list earlier
152 +* kf/http-proxy-auth-methods (2015-11-04) 3 commits
153 + - SQUASH???
154 + - http: use credential API to handle proxy authentication
155 + - http: allow selection of proxy authentication method
156
287 - We peek objects from submodule's object store by linking it to the
288 - list of alternate object databases, but the code to do so forgot to
289 - correctly initialize the list.
157 + New http.proxyAuthMethod configuration variable can be used to
158 + specify what authentication method to use, as a way to work around
159 + proxies that do not give error response expected by libcurl when
160 + CURLAUTH_ANY is used. Also, the codepath for proxy authentication
161 + has been taught to use credential API to store the authentication
162 + material in user's keyrings.
163
291 - Will merge to 'next'.
164 + Still being worked on.
165 + ($gmane/280925).
166
167
294 -* ep/ident-with-getaddrinfo (2015-10-30) 1 commit
295 - - (NEEDSWORK $gmane/280507) ident.c: add support for IPv6
296 -
297 - A build without NO_IPv6 used to use gethostbyname() when guessing
298 - user's hostname, instead of getaddrinfo() that is used in other
299 - codepaths in such a build.
300 -
301 - Waiting for a reroll.
302 - ($gmane/280507)
168 +* lf/ref-is-hidden-namespace (2015-11-05) 4 commits
169 + - t5509: add basic tests for hideRefs
170 + - hideRefs: add support for matching full refs
171 + - upload-pack: strip refs before calling ref_is_hidden()
172 + - config.txt: document the semantics of hideRefs with namespaces
173
304 -
305 -* js/git-gdb (2015-10-30) 1 commit
306 - - test: facilitate debugging Git executables in tests with gdb
307 -
308 - Allow easier debugging of a single "git" invocation in our test
309 - scripts.
174 + Extend transfer.hideRefs to work better with use of namespaces.
175
176 Will merge to 'next'.
177
178
314 -* kn/for-each-branch (2015-10-30) 1 commit
315 - - ref-filter: fallback on alphabetical comparison
316 -
317 - Using the timestamp based criteria in "git branch --sort" did not
318 - tiebreak branches that point at commits with the same timestamp (or
319 - the same commit), making the resulting output unstable.
320 -
321 - Will merge to 'next' and then quickly to 'master'.
322 -
323 -
324 -* ea/checkout-progress (2015-10-30) 2 commits
325 - - SQUASH???
326 - - checkout: add --progress option
327 -
328 - "git checkout" did not follow the usual "--[no-]progress"
329 - convention and implemented only "--quiet" that is essentially
330 - "--no-progress".
331 -
332 - Waiting for a reroll.
333 -
179 +* dg/git-svn-empty-dirs (2015-11-05) 1 commit
180 + - git-svn: improve rebase/mkdirs performance
181
335 -* jc/test-must-fail-with-sigpipe (2015-10-30) 1 commit
336 - - test: accept death by SIGPIPE as a valid failure mode
182
338 - Waiting for reviews.
183 +* fp/subtree-todo-update (2015-11-05) 1 commit
184 + - contrib/subtree: remove "push" command from the "todo" file
185
186 --------------------------------------------------
187 [Stalled]
188
343 -* dk/gc-idx-wo-pack (2015-08-17) 3 commits
344 - - DONTMERGE: log message, grace-period and tests $gmane/276058
345 - - gc: remove stale .idx files without corresponding .pack file
346 - - prepare_packed_git(): refactor garbage reporting in pack directory
347 -
348 - Having a leftover .idx file without corresponding .pack file in
349 - the repository hurts performance; "git gc" learned to prune them.
350 -
351 - Waiting for a reroll.
352 -
353 -
189 * nd/ita-cleanup (2015-09-06) 6 commits
190 - grep: make it clear i-t-a entries are ignored
191 - checkout(-index): do not checkout i-t-a entries
@@ -423,25 +258,129 @@ of the repositories listed at
258 --------------------------------------------------
259 [Cooking]
260
426 -* pt/http-socks-proxy (2015-10-26) 1 commit
427 - - remote-http(s): support SOCKS proxies
261 +* dk/gc-idx-wo-pack (2015-11-04) 3 commits
262 + - gc: remove garbage .idx files from pack dir
263 + - t5304: test cleaning pack garbage
264 + - prepare_packed_git(): refactor garbage reporting in pack directory
265
429 - Add support for talking http/https over socks proxy.
266 + Having a leftover .idx file without corresponding .pack file in
267 + the repository hurts performance; "git gc" learned to prune them.
268 +
269 + We may want to do the same for .bitmap (and notice but not prune
270 + .keep) without corresponding .pack, but that can be a separate
271 + topic.
272
273 Will merge to 'next'.
274
275
434 -* da/difftool (2015-10-29) 1 commit
435 - - difftool: ignore symbolic links in use_wt_file
276 +* sb/submodule-parallel-update (2015-11-05) 10 commits
277 + - clone: allow an explicit argument for parallel submodule clones
278 + - submodule update: expose parallelism to the user
279 + - git submodule update: have a dedicated helper for cloning
280 + - fetching submodules: respect `submodule.jobs` config option
281 + - submodule config: update parse_config()
282 + - submodule config: remove name_and_item_from_var
283 + - submodule config: keep update strategy around
284 + - run_processes_parallel: add output to tracing messages
285 + - Merge branch 'rs/daemon-plug-child-leak' into sb/submodule-parallel-update
286 + - Merge branch 'sb/submodule-parallel-fetch' into sb/submodule-parallel-update
287 + (this branch uses sb/submodule-parallel-fetch; is tangled with rs/daemon-leak-fix.)
288 +
289 + Builds on top of the "fetch --recurse-submodules" work to introduce
290 + parallel downloading into multiple submodules for "submodule update".
291 +
292 + Waiting for sb/submodule-parallel-fetch to stabilize.
293 +
294 + It would be the cleanest to rebuild sb/submodule-parallel-fetch on
295 + top of 2.7.0 once it ships and then build this directly on top;
296 + that way, we do not have to have merges in this topic that
297 + distracting (besides, some part of the other topic can be updated
298 + in-place instead of this follow-up topic tweaking them as past
299 + mistakes and inflexibilities).
300 +
301 +
302 +* jc/strbuf-gets (2015-10-28) 17 commits
303 + - test-sha1-array: read command stream with strbuf_gets()
304 + - grep: read -f file with strbuf_gets()
305 + - send-pack: read list of refs with strbuf_gets()
306 + - column: read lines with strbuf_gets()
307 + - cat-file: read batch stream with strbuf_gets()
308 + - transport-helper: read helper response with strbuf_gets()
309 + - clone/sha1_file: read info/alternates with strbuf_gets()
310 + - remote.c: read $GIT_DIR/remotes/* with strbuf_gets()
311 + - ident.c: read /etc/mailname with strbuf_gets()
312 + - rev-parse: read parseopt spec with strbuf_gets()
313 + - revision: read --stdin with strbuf_gets()
314 + - hash-object: read --stdin-paths with strbuf_gets()
315 + - mktree: read textual tree representation with strbuf_gets()
316 + - update-index: read list of paths with strbuf_gets() under --stdin
317 + - update-index: read --index-info with strbuf_gets()
318 + - check-attr, check-ignore, checkout-index: read paths with strbuf_gets()
319 + - strbuf: add strbuf_gets()
320 +
321 + Teach codepaths that communicate with users by reading text files
322 + to be more lenient to editors that write CRLF-terminated lines.
323 + Note that this is only about communication with Git, like feeding
324 + list of object names from the standard input instead of from the
325 + command line, and does not involve files in the working tree.
326 +
327 + Waiting for reviews.
328 +
329 +
330 +* eg/p4-submit-catch-failure (2015-10-30) 1 commit
331 + - git-p4: clean up after p4 submit failure
332 +
333 + Just like the working tree is cleaned up when the user cancelled
334 + submission in P4Submit.applyCommit(), clean up the mess if "p4
335 + submit" fails.
336 +
337 + Needs an update to test.
338 + ($gmane/280539)
339 +
340 +
341 +* ep/ident-with-getaddrinfo (2015-10-30) 1 commit
342 + - (NEEDSWORK $gmane/280507) ident.c: add support for IPv6
343 +
344 + A build without NO_IPv6 used to use gethostbyname() when guessing
345 + user's hostname, instead of getaddrinfo() that is used in other
346 + codepaths in such a build.
347 +
348 + Waiting for a reroll.
349 + ($gmane/280507)
350
437 - The code to prepare the working tree side of temporary directory
438 - for the "dir-diff" feature forgot that symbolic links need not be
439 - copied (or symlinked) to the temporary area, as the code already
440 - special cases and overwrites them. Besides, it was wrong to try
441 - computing the object name of the target of symbolic link, which may
442 - not even exist or may be a directory.
351
444 - Waiting for response.
352 +* ea/checkout-progress (2015-11-01) 1 commit
353 + (merged to 'next' on 2015-11-03 at 08a8d1f)
354 + + checkout: add --progress option
355 +
356 + "git checkout" did not follow the usual "--[no-]progress"
357 + convention and implemented only "--quiet" that is essentially
358 + a superset of "--no-progress". Extend the command to support the
359 + usual "--[no-]progress".
360 +
361 + Will merge to 'master'.
362 +
363 +
364 +* jc/test-must-fail-with-sigpipe (2015-10-30) 1 commit
365 + - test: accept death by SIGPIPE as a valid failure mode
366 +
367 + In some tests we expect a git command that transfers objects to
368 + result in failure, but it is normal for the failure to come from
369 + SIGPIPE when the other end of the connection detects an (expected)
370 + error and hangs up. However, test_expect_failure helper function
371 + was not prepared to see a death by sigpipe as a normal failure
372 + exit.
373 +
374 + It probably is more sensible to limit the test that allows depth by
375 + SIGPIPE as Lars Schneider suggests, so it is likely that this will
376 + be replaced while I am away ;-)
377 +
378 +
379 +* pt/http-socks-proxy (2015-10-26) 1 commit
380 + - remote-http(s): support SOCKS proxies
381 +
382 + Add support for talking http/https over socks proxy.
383 + Needs a sign-off from the original author.
384
385
386 * mh/notes-allow-reading-treeish (2015-10-08) 3 commits
@@ -458,45 +397,12 @@ of the repositories listed at
397 when the operation would update the notes (in which case we must
398 have a place to store the updated notes tree, iow, a ref).
399
461 - Will cook in 'next'.
400 + As the patch was done on top of the 'drop old-syntax from merge',
401 + this has to wait until that other topic can graduate, unfortunately.
402 + It can be redone in a way that does not depend on that topic after
403 + this cycle, though.
404
463 -
464 -* dt/refs-backend-pre-vtable (2015-10-15) 26 commits
465 - - refs: break out ref conflict checks
466 - - refs: make files_log_ref_write functions public
467 - - initdb: move safe_create_dir into common code
468 - - refs.c: move should_autocreate_reflog to common code
469 - - refs.c: move peel_object to the common code
470 - - refs.c: move copy_msg to the common code
471 - - refs.c: move refname_is_safe to the common code
472 - - refs: move transaction functions into common code
473 - - refs.c: move head_ref_namespaced to the common code
474 - - refs.c: move ref iterators to the common code
475 - - refs.c: move prettify_refname to the common code
476 - - refs.c: move is_branch to the common code
477 - - refs.c: move check_refname_format to the common code
478 - - refs.c: move resolve_refdup to common
479 - - refs.c: move read_ref, read_ref_full and ref_exists to the common code
480 - - refs.c: move warn_if_dangling_symref* to the common code
481 - - refs.c: move dwim and friend functions to the common refs code
482 - - refs.c: move the hidden refs functions to the common code
483 - - refs.c: move read_ref_at to the common refs file
484 - - refs.c: move delete_pseudoref and delete_ref to the common code
485 - - refs.c: move update_ref to refs.c
486 - - refs.c: add a new refs.c file to hold all common refs code
487 - - refs-be-files.c: rename refs to refs-be-files
488 - - refs: make repack_without_refs and is_branch public
489 - - refs.c: create a public version of verify_refname_available
490 - - Merge branch 'jk/war-on-sprintf' into HEAD
491 -
492 - The early part of the pluggable ref backend series, which sifts the
493 - ref API functions into two bins: the filesystem backend specific
494 - ones and the generic API functions. The next step will start
495 - introducing the framework to dispatch generic calls to specific
496 - backend implementation(s) and then finally plug a new backend that
497 - is different from the file backend.
498 -
499 - Reroll exists, but haven't picked up yet.
405 + Will keep in 'next'.
406
407
408 * jc/mailinfo (2015-10-21) 1 commit
@@ -523,7 +429,19 @@ of the repositories listed at
429 call from inside a process. "git am -3" was taught to make a direct
430 call to the function when falling back to three-way merge.
431
526 - Will keep in 'next' during the 2.7 cycle.
432 + Being able to make a direct call would be good in general, but as a
433 + performance thing, we would want to see it backed up by numbers.
434 +
435 + I haven't gone through the "gently" change with fine toothed comb;
436 + I can see that the change avoids calling die(), but I haven't made
437 + sure that the program states (e.g. what's in the in-core index) are
438 + adjusted sensibly when it returns to the caller instead of dying,
439 + or the codepaths that used to die() are free of resource leaks.
440 + The original code certainly did not care the program states at the
441 + point of dying exactly because it knew it is going to exit, but now
442 + they have to care, and they need to be audited.
443 +
444 + Will keep in 'next'.
445
446
447 * sg/pretty-more-date-mode-format (2015-10-07) 1 commit
@@ -572,7 +490,9 @@ of the repositories listed at
490 ($gmane/278326)
491
492
575 -* sb/submodule-parallel-fetch (2015-10-21) 14 commits
493 +* sb/submodule-parallel-fetch (2015-11-05) 16 commits
494 + - strbuf: update documentation for strbuf_read_once()
495 + - run-command: remove set_nonblocking()
496 (merged to 'next' on 2015-10-23 at 8f04bbd)
497 + run-command: fix missing output from late callbacks
498 + test-run-command: increase test coverage
@@ -589,12 +509,14 @@ of the repositories listed at
509 + xread_nonblock: add functionality to read from fds without blocking
510 + xread: poll on non blocking fds
511 + submodule.c: write "Fetching submodule <foo>" to stderr
592 - (this branch is used by sb/submodule-parallel-update.)
512 + (this branch is used by sb/submodule-parallel-update; is tangled with rs/daemon-leak-fix.)
513
514 Add a framework to spawn a group of processes in parallel, and use
515 it to run "git fetch --recurse-submodules" in parallel.
516
597 - Will cook in 'next'.
517 + Still being worked on, but it seems that we are seeing light at the
518 + end of the tunnel.
519 + ($gmane/280937)
520
521
522 * ad/cygwin-wants-rename (2015-08-07) 1 commit
@@ -630,7 +552,7 @@ of the repositories listed at
552 git-gui still uses the deprecated syntax, which needs to be fixed
553 before this final step can proceed.
554
633 - Will keep in 'next' during the 2.7 cycle.
555 + Will keep in 'next'.
556
557 --------------------------------------------------
558 [Discarded]
@@ -639,3 +561,61 @@ of the repositories listed at
561 . merge: fix cache_entry use-after-free
562
563 Made unnecessary with dt/name-hash-dir-entry-fix topic.
564 +
565 +
566 +* rs/daemon-leak-fix (2015-10-31) 3 commits
567 + (merged to 'next' on 2015-11-01 at 9b6c8f9)
568 + + daemon: plug memory leak
569 + + run-command: export child_process_clear()
570 + + run-command: name the cleanup function child_process_clear()
571 + (this branch uses sb/submodule-parallel-fetch; is tangled with sb/submodule-parallel-update.)
572 +
573 + "git daemon" uses "run_command()" without "finish_command()", so it
574 + needs to release resources itself, which it forgot to do.
575 +
576 + This was tangled with another topic that was not quite ready.
577 + Discard and replace it with an equivalent rs/daemon-plug-child-leak
578 + that is independent.
579 +
580 +
581 +* dt/refs-backend-pre-vtable (2015-10-15) 26 commits
582 + . refs: break out ref conflict checks
583 + . refs: make files_log_ref_write functions public
584 + . initdb: move safe_create_dir into common code
585 + . refs.c: move should_autocreate_reflog to common code
586 + . refs.c: move peel_object to the common code
587 + . refs.c: move copy_msg to the common code
588 + . refs.c: move refname_is_safe to the common code
589 + . refs: move transaction functions into common code
590 + . refs.c: move head_ref_namespaced to the common code
591 + . refs.c: move ref iterators to the common code
592 + . refs.c: move prettify_refname to the common code
593 + . refs.c: move is_branch to the common code
594 + . refs.c: move check_refname_format to the common code
595 + . refs.c: move resolve_refdup to common
596 + . refs.c: move read_ref, read_ref_full and ref_exists to the common code
597 + . refs.c: move warn_if_dangling_symref* to the common code
598 + . refs.c: move dwim and friend functions to the common refs code
599 + . refs.c: move the hidden refs functions to the common code
600 + . refs.c: move read_ref_at to the common refs file
601 + . refs.c: move delete_pseudoref and delete_ref to the common code
602 + . refs.c: move update_ref to refs.c
603 + . refs.c: add a new refs.c file to hold all common refs code
604 + . refs-be-files.c: rename refs to refs-be-files
605 + . refs: make repack_without_refs and is_branch public
606 + . refs.c: create a public version of verify_refname_available
607 + . Merge branch 'jk/war-on-sprintf' into HEAD
608 +
609 + The early part of the pluggable ref backend series, which sifts the
610 + ref API functions into two bins: the filesystem backend specific
611 + ones and the generic API functions. The next step will start
612 + introducing the framework to dispatch generic calls to specific
613 + backend implementation(s) and then finally plug a new backend that
614 + is different from the file backend.
615 +
616 + It seems Michael's "I'd do it like this if I were doing it"
617 + $gmane/280754 would be the way forward?
618 +
619 + Ejected while the topic is in flux, as this and its later reroll
620 + both want to move things around while other topics want to update
621 + the files involved.