What's cooking (2015/10 #06)

Junio C Hamano committed Oct 26, 2015 at 16:17 UTC 89e703f6bde74b063c374f5351357d182893f340
1 file changed +240 -265
whats-cooking.txt
+240 -265
@@ -1,22 +1,20 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Oct 2015, #05; Thu, 22)
4 -X-master-at: 74301d6edeb0e081a4ef864057952b6a7ff2b4be
5 -X-next-at: b049f0a3b4560d97ac87735f8c2e9b4d5c69fd44
3 +Subject: What's cooking in git.git (Oct 2015, #06; Mon, 26)
4 +X-master-at: 37023ba381b6d251d7140a997b39b566dbc63c42
5 +X-next-at: 063f6400bc25ef9c258bf5470b0d2f8188f104b5
6
7 -What's cooking in git.git (Oct 2015, #05; Thu, 22)
7 +What's cooking in git.git (Oct 2015, #06; Mon, 26)
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 -With somewhat reduced review bandwidth, I'd expect that the upcoming
15 -cycle would be slower than usual. At tinyurl.com/gitCal, I
16 -tentatively drew a 14-week schedule for this cycle (I plan to be
17 -offline during weeks #7-#9 myself---hopefully we'll have capable
18 -interim maintainers to take care of the list traffic in the meantime
19 -as in past years).
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.
18
19 You can find the changes described here in the integration branches
20 of the repositories listed at
@@ -26,149 +24,42 @@ of the repositories listed at
24 --------------------------------------------------
25 [Graduated to "master"]
26
29 -* jk/war-on-sprintf (2015-10-05) 70 commits
30 - (merged to 'next' on 2015-10-15 at 27a1ae5)
31 - + name-rev: use strip_suffix to avoid magic numbers
32 - + use strbuf_complete to conditionally append slash
33 - + fsck: use for_each_loose_file_in_objdir
34 - + Makefile: drop D_INO_IN_DIRENT build knob
35 - + fsck: drop inode-sorting code
36 - + convert strncpy to memcpy
37 - + notes: document length of fanout path with a constant
38 - + color: add color_set helper for copying raw colors
39 - + prefer memcpy to strcpy
40 - + help: clean up kfmclient munging
41 - + receive-pack: simplify keep_arg computation
42 - + avoid sprintf and strcpy with flex arrays
43 - + use alloc_ref rather than hand-allocating "struct ref"
44 - + color: add overflow checks for parsing colors
45 - + drop strcpy in favor of raw sha1_to_hex
46 - + use sha1_to_hex_r() instead of strcpy
47 - + daemon: use cld->env_array when re-spawning
48 - + stat_tracking_info: convert to argv_array
49 - + http-push: use an argv_array for setup_revisions
50 - + fetch-pack: use argv_array for index-pack / unpack-objects
51 - + diagnose_invalid_index_path: use strbuf to avoid strcpy/strcat
52 - + write_loose_object: convert to strbuf
53 - + remove_leading_path: use a strbuf for internal storage
54 - + enter_repo: convert fixed-size buffers to strbufs
55 - + merge-recursive: convert malloc / strcpy to strbuf
56 - + transport: use strbufs for status table "quickref" strings
57 - + apply: convert root string to strbuf
58 - + init: use strbufs to store paths
59 - + probe_utf8_pathname_composition: use internal strbuf
60 - + precompose_utf8: drop unused variable
61 - + sha1_get_pack_name: use a strbuf
62 - + http-walker: store url in a strbuf
63 - + http-push: use strbuf instead of fwrite_buffer
64 - + remote-ext: simplify git pkt-line generation
65 - + upload-archive: convert sprintf to strbuf
66 - + resolve_ref: use strbufs for internal buffers
67 - + read_remotes_file: simplify string handling
68 - + read_branches_file: simplify string handling
69 - + mailmap: replace strcpy with xstrdup
70 - + help: drop prepend function in favor of xstrfmt
71 - + ref-filter: drop sprintf and strcpy calls
72 - + use strip_suffix and xstrfmt to replace suffix
73 - + fetch: replace static buffer with xstrfmt
74 - + config: use xstrfmt in normalize_value
75 - + replace trivial malloc + sprintf / strcpy calls with xstrfmt
76 - + receive-pack: convert strncpy to xsnprintf
77 - + http-push: replace strcat with xsnprintf
78 - + add_packed_git: convert strcpy into xsnprintf
79 - + entry.c: convert strcpy to xsnprintf
80 - + grep: use xsnprintf to format failure message
81 - + compat/hstrerror: convert sprintf to snprintf
82 - + stop_progress_msg: convert sprintf to xsnprintf
83 - + find_short_object_filename: convert sprintf to xsnprintf
84 - + use xsnprintf for generating git object headers
85 - + archive-tar: use xsnprintf for trivial formatting
86 - + convert trivial sprintf / strcpy calls to xsnprintf
87 - + compat/inet_ntop: fix off-by-one in inet_ntop4
88 - + test-dump-cache-tree: avoid overflow of cache-tree name
89 - + progress: store throughput display in a strbuf
90 - + trace: use strbuf for quote_crnl output
91 - + mailsplit: make PATH_MAX buffers dynamic
92 - + fsck: use strbuf to generate alternate directories
93 - + add reentrant variants of sha1_to_hex and find_unique_abbrev
94 - + strbuf: make strbuf_complete_line more generic
95 - + add git_path_buf helper function
96 - + add xsnprintf helper function
97 - + fsck: don't fsck alternates for connectivity-only check
98 - + archive-tar: fix minor indentation violation
99 - + mailsplit: fix FILE* leak in split_maildir
100 - + show-branch: avoid segfault with --reflog of unborn branch
101 - (this branch is used by dt/refs-backend-lmdb and dt/refs-backend-pre-vtable.)
102 -
103 - Many allocations that is manually counted (correctly) that are
104 - followed by strcpy/sprintf have been replaced with a less error
105 - prone constructs such as xstrfmt.
106 -
107 -
108 -* ls/p4-test-updates (2015-10-12) 2 commits
109 - (merged to 'next' on 2015-10-15 at 3c94932)
110 - + git-p4: skip t9819 test case on case insensitive file systems
111 - + git-p4: avoid "stat" command in t9815 git-p4-submit-fail
112 -
113 - A few test scripts around "git p4" have been improved for
114 - portability.
115 -
116 -
117 -* tb/t0027-crlf (2015-10-12) 1 commit
118 - (merged to 'next' on 2015-10-15 at 7ab4f31)
119 - + t0027: improve test for not-normalized files
120 -
121 - The test for various line-ending conversions has been enhanced.
122 -
123 ---------------------------------------------------
124 -[New Topics]
125 -
126 -* ar/clone-dissociate (2015-10-22) 1 commit
127 - - clone: allow "--dissociate" without reference
128 -
129 - "git clone --dissociate" used to require that "--reference" was
130 - used at the same time, but you can create a new repository that
131 - borrows objects from another without using "--reference", namely
132 - with "clone --local" from a repository that borrows objects from
133 - other repositories.
134 -
135 - Will merge to 'next'.
27 +* dk/p4-import-ctypes (2015-10-20) 1 commit
28 + (merged to 'next' on 2015-10-22 at 5760144)
29 + + git-p4: import the ctypes module
30
31 + "git-p4" tried to use from ctypes module without first importing
32 + it.
33
138 -* da/difftool (2015-10-21) 1 commit
139 - - difftool: gracefully handle symlinks to directories
34
141 - The code to reuse checked out files for comparison was too
142 - aggressive and forgot that symbolic links cannot be reused
143 - for comparison.
35 +* dt/t7063-fix-flaky-test (2015-10-19) 1 commit
36 + (merged to 'next' on 2015-10-20 at 156af72)
37 + + t7063: fix flaky untracked-cache test
38
145 - Smells wrong that this special-cases based on the target of
146 - symbolic link.
39
40 +* es/worktree-add (2015-10-18) 1 commit
41 + (merged to 'next' on 2015-10-20 at ccadb70)
42 + + worktree: usage: denote <branch> as optional with 'add'
43
149 -* dt/name-hash-dir-entry-fix (2015-10-21) 1 commit
150 - (merged to 'next' on 2015-10-22 at 15eb519)
151 - + name-hash: don't reuse cache_entry in dir_entry
44
153 - The name-hash subsystem that is used to cope with case insensitive
154 - filesystems keeps track of directories and their on-filesystem
155 - cases for all the paths in the index by holding a pointer to a
156 - randomly chosen cache entry that is inside the directory (for its
157 - ce->ce_name component). This pointer was not updated even when the
158 - cache entry was removed from the index, leading to use after free.
159 - This was fixed by recording the path for each directory instead of
160 - borrowing cache entries and restructuring the API somewhat.
161 -
162 - Will merge to 'master'.
45 +* jc/am-3-fallback-regression-fix (2015-10-09) 1 commit
46 + (merged to 'next' on 2015-10-15 at 7dde994)
47 + + am -3: do not let failed merge from completing the error codepath
48 + (this branch is used by js/am-3-merge-recursive-direct.)
49
50 + "git am -3" had a small regression where it is aborted in its error
51 + handling codepath when underlying merge-recursive failed in certain
52 + ways, as it assumed that the internal call to merge-recursive will
53 + never die, which is not the case (yet).
54
165 -* jc/everyday-markup (2015-10-22) 1 commit
166 - (merged to 'next' on 2015-10-22 at 0a2702d)
167 - + Documentation/everyday: match undefline with the text
55
169 - AsciiDoc markup fixes.
56 +* jc/usage-stdin (2015-10-16) 1 commit
57 + (merged to 'next' on 2015-10-20 at 937d4aa)
58 + + usage: do not insist that standard input must come from a file
59
171 - Will merge to 'master'.
60 + The synopsis text and the usage string of subcommands that read
61 + list of things from the standard input are often shown as if they
62 + only take input from a file on a filesystem, which was misleading.
63
64
65 * jk/repository-extension (2015-06-24) 2 commits
@@ -180,36 +71,129 @@ of the repositories listed at
71 backward incompatible changes by introducing a new repository
72 format version "1", with an extension mechanism.
73
183 - Will merge to 'master'.
74
75 +* kn/for-each-tag (2015-10-18) 1 commit
76 + (merged to 'next' on 2015-10-20 at 7afd374)
77 + + tag.c: use the correct algorithm for the '--contains' option
78
186 -* tk/sigchain-unnecessary-post-tempfile (2015-10-22) 4 commits
187 - (merged to 'next' on 2015-10-22 at b049f0a)
188 - + shallow: remove unused #include "sigchain.h"
189 - + read-cache: remove unused #include "sigchain.h"
190 - + diff: remove unused #include "sigchain.h"
191 - + credential-cache--daemon: remove unused #include "sigchain.h"
79 + Recent update to "git tag --contains" caused a performance
80 + regression.
81
193 - Remove no-longer used #include.
82
195 - Will merge to 'master'.
83 +* mr/worktree-list (2015-10-08) 5 commits
84 + (merged to 'next' on 2015-10-20 at 7cb272d)
85 + + worktree: add 'list' command
86 + + worktree: add details to the worktree struct
87 + + worktree: add a function to get worktree details
88 + + worktree: refactor find_linked_symref function
89 + + worktree: add top-level worktree.c
90
91 + Add the "list" subcommand to "git worktree".
92
198 -* xf/user-manual-markup (2015-10-22) 3 commits
199 - (merged to 'next' on 2015-10-22 at cd33c83)
200 - + Documentation: match undefline with the text in old release notes
201 - + Documentation: match underline with the text
202 - + Documentation: fix header markup
93
204 - AsciiDoc markup fixes.
94 +* rt/placeholder-in-usage (2015-10-16) 1 commit
95 + (merged to 'next' on 2015-10-20 at 5189b23)
96 + + am, credential-cache: add angle brackets to usage string
97 +
98 + A couple of commands still showed "[options]" in their usage string
99 + to note where options should come on their command line, but we
100 + spell that "[<options>]" in most places these days.
101 +
102 +
103 +* tk/stripspace (2015-10-16) 2 commits
104 + (merged to 'next' on 2015-10-20 at 327a997)
105 + + stripspace: use parse-options for command-line parsing
106 + + strbuf: make stripspace() part of strbuf
107 +
108 + The internal stripspace() function has been moved to where it
109 + logically belongs to, i.e. strbuf API, and the command line parser
110 + of "git stripspace" has been updated to use the parse_options API.
111 +
112 +--------------------------------------------------
113 +[New Topics]
114 +
115 +* gr/rebase-i-drop-warn (2015-10-26) 1 commit
116 + - rebase-i: work around Windows CRLF line endings
117 +
118 + Recent update to "rebase -i" that tries to sanity check the edited
119 + insn sheet before it uses it has become too picky on Windows where
120 + CRLF left by the editor is turned into a trailing CR on the line
121 + read via the "read" built-in command.
122 +
123 + Waiting for comments.
124 +
125 +
126 +* jc/add-u-A-default-to-top (2015-10-24) 1 commit
127 + - add: simplify -u/-A without pathspec
128 +
129 + "git --literal-pathspecs add -u/-A" without any command line
130 + argument misbehaved ever since Git 2.0.
131 +
132 + Waiting for comments.
133 +
134 +
135 +* jk/delete-modechange-conflict (2015-10-26) 3 commits
136 + - merge: detect delete/modechange conflict
137 + - t6031: generalize for recursive and resolve strategies
138 + - t6031: move triple-rename test to t3030
139 +
140 + Merging a branch that removes a path and another that changes the
141 + mode bits on the same path should have conflicted at the path, but
142 + it didn't and silently favoured the removal.
143 +
144 + Will merge to 'next'.
145 +
146 +
147 +* jk/war-on-sprintf (2015-10-23) 2 commits
148 + (merged to 'next' on 2015-10-23 at 3a94851)
149 + + compat/mingw.c: remove printf format warning
150 + + read_branches_file: plug a FILE* leak
151
152 Will merge to 'master'.
153
154
209 -* jc/em-dash-in-doc (2015-10-22) 1 commit
210 - - Documentation: AsciiDoc spells em-dash as double-dashes, not triple
155 +* js/imap-send-curl-compilation-fix (2015-10-26) 1 commit
156 + - imap-send: only use CURLOPT_LOGIN_OPTIONS if it is actually available
157
212 - AsciiDoc markup fixes.
158 + "git imap-send" did not compile well with older version of cURL library.
159 +
160 + Will merge to 'next'.
161 +
162 +
163 +* js/misc-fixes (2015-10-26) 3 commits
164 + - Correct fscanf formatting string for I64u values
165 + - Silence GCC's "cast of pointer to integer of a different size" warning
166 + - Squelch warning about an integer overflow
167 +
168 + Various compilation fixes and squelching of warnings.
169 +
170 + Will merge to 'next'.
171 +
172 +
173 +* mk/blame-error-message (2015-10-26) 1 commit
174 + - blame: fix option name in error message
175 +
176 + Will merge to 'next'.
177 +
178 +
179 +* pt/http-socks-proxy (2015-10-26) 1 commit
180 + - remote-http(s): support SOCKS proxies
181 +
182 + Add support for talking http/https over socks proxy.
183 +
184 + Will merge to 'next'.
185 +
186 +
187 +* rs/pop-commit (2015-10-26) 1 commit
188 + - use pop_commit() for consuming the first entry of a struct commit_list
189 +
190 + Code simplification.
191 +
192 + Will merge to 'next'.
193 +
194 +
195 +* xf/user-manual-ff (2015-10-26) 1 commit
196 + - user-manual: fix the description of fast-forward
197
198 Will merge to 'next'.
199
@@ -299,8 +283,90 @@ of the repositories listed at
283 --------------------------------------------------
284 [Cooking]
285
286 +* ar/clone-dissociate (2015-10-22) 1 commit
287 + (merged to 'next' on 2015-10-23 at 6bf746f)
288 + + clone: allow "--dissociate" without reference
289 +
290 + "git clone --dissociate" used to require that "--reference" was
291 + used at the same time, but you can create a new repository that
292 + borrows objects from another without using "--reference", namely
293 + with "clone --local" from a repository that borrows objects from
294 + other repositories.
295 +
296 + Will merge to 'master'.
297 +
298 +
299 +* da/difftool (2015-10-21) 1 commit
300 + - difftool: gracefully handle symlinks to directories
301 +
302 + The code to reuse checked out files for comparison was too
303 + aggressive and forgot that symbolic links cannot be reused
304 + for comparison.
305 +
306 + Smells wrong that this special-cases based on the target of
307 + symbolic link.
308 +
309 +
310 +* dt/name-hash-dir-entry-fix (2015-10-21) 1 commit
311 + (merged to 'next' on 2015-10-22 at 15eb519)
312 + + name-hash: don't reuse cache_entry in dir_entry
313 +
314 + The name-hash subsystem that is used to cope with case insensitive
315 + filesystems keeps track of directories and their on-filesystem
316 + cases for all the paths in the index by holding a pointer to a
317 + randomly chosen cache entry that is inside the directory (for its
318 + ce->ce_name component). This pointer was not updated even when the
319 + cache entry was removed from the index, leading to use after free.
320 + This was fixed by recording the path for each directory instead of
321 + borrowing cache entries and restructuring the API somewhat.
322 +
323 + Will merge to 'master'.
324 +
325 +
326 +* jc/everyday-markup (2015-10-22) 1 commit
327 + (merged to 'next' on 2015-10-22 at 0a2702d)
328 + + Documentation/everyday: match undefline with the text
329 +
330 + AsciiDoc markup fixes.
331 +
332 + Will merge to 'master'.
333 +
334 +
335 +* tk/sigchain-unnecessary-post-tempfile (2015-10-22) 4 commits
336 + (merged to 'next' on 2015-10-22 at b049f0a)
337 + + shallow: remove unused #include "sigchain.h"
338 + + read-cache: remove unused #include "sigchain.h"
339 + + diff: remove unused #include "sigchain.h"
340 + + credential-cache--daemon: remove unused #include "sigchain.h"
341 +
342 + Remove no-longer used #include.
343 +
344 + Will merge to 'master'.
345 +
346 +
347 +* xf/user-manual-markup (2015-10-22) 3 commits
348 + (merged to 'next' on 2015-10-22 at cd33c83)
349 + + Documentation: match undefline with the text in old release notes
350 + + Documentation: match underline with the text
351 + + Documentation: fix header markup
352 +
353 + AsciiDoc markup fixes.
354 +
355 + Will merge to 'master'.
356 +
357 +
358 +* jc/em-dash-in-doc (2015-10-22) 1 commit
359 + (merged to 'next' on 2015-10-23 at 31a08ce)
360 + + Documentation: AsciiDoc spells em-dash as double-dashes, not triple
361 +
362 + AsciiDoc markup fixes.
363 +
364 + Will merge to 'master'.
365 +
366 +
367 * mh/notes-allow-reading-treeish (2015-10-08) 3 commits
303 - - notes: allow treeish expressions as notes ref
368 + (merged to 'next' on 2015-10-23 at 8a697f0)
369 + + notes: allow treeish expressions as notes ref
370 + Merge branch 'jk/notes-dwim-doc' into next
371 + Merge branch 'jc/merge-drop-old-syntax' into next
372 (this branch uses jc/merge-drop-old-syntax.)
@@ -354,87 +420,6 @@ of the repositories listed at
420 ($gmane/279897).
421
422
357 -* jc/usage-stdin (2015-10-16) 1 commit
358 - (merged to 'next' on 2015-10-20 at 937d4aa)
359 - + usage: do not insist that standard input must come from a file
360 -
361 - The synopsis text and the usage string of subcommands that read
362 - list of things from the standard input are often shown as if they
363 - only take input from a file on a filesystem, which was misleading.
364 -
365 - Will merge to 'master'.
366 -
367 -
368 -* rt/placeholder-in-usage (2015-10-16) 1 commit
369 - (merged to 'next' on 2015-10-20 at 5189b23)
370 - + am, credential-cache: add angle brackets to usage string
371 -
372 - A couple of commands still showed "[options]" in their usage string
373 - to note where options should come on their command line, but we
374 - spell that "[<options>]" in most places these days.
375 -
376 - Will merge to 'master'.
377 -
378 -
379 -* tk/stripspace (2015-10-16) 2 commits
380 - (merged to 'next' on 2015-10-20 at 327a997)
381 - + stripspace: use parse-options for command-line parsing
382 - + strbuf: make stripspace() part of strbuf
383 -
384 - The internal stripspace() function has been moved to where it
385 - logically belongs to, i.e. strbuf API, and the command line parser
386 - of "git stripspace" has been updated to use the parse_options API.
387 -
388 - Will merge to 'master'.
389 -
390 -
391 -* dk/p4-import-ctypes (2015-10-20) 1 commit
392 - (merged to 'next' on 2015-10-22 at 5760144)
393 - + git-p4: import the ctypes module
394 -
395 - "git-p4" tried to use from ctypes module without first importing
396 - it.
397 -
398 - Will merge to 'master'.
399 -
400 -
401 -* dt/t7063-fix-flaky-test (2015-10-19) 1 commit
402 - (merged to 'next' on 2015-10-20 at 156af72)
403 - + t7063: fix flaky untracked-cache test
404 -
405 - Will merge to 'master'.
406 -
407 -
408 -* es/worktree-add (2015-10-18) 1 commit
409 - (merged to 'next' on 2015-10-20 at ccadb70)
410 - + worktree: usage: denote <branch> as optional with 'add'
411 -
412 - Will merge to 'master'.
413 -
414 -
415 -* kn/for-each-tag (2015-10-18) 1 commit
416 - (merged to 'next' on 2015-10-20 at 7afd374)
417 - + tag.c: use the correct algorithm for the '--contains' option
418 -
419 - Recent update to "git tag --contains" caused a performance
420 - regression.
421 -
422 - Will merge to 'master'.
423 -
424 -
425 -* mr/worktree-list (2015-10-08) 5 commits
426 - (merged to 'next' on 2015-10-20 at 7cb272d)
427 - + worktree: add 'list' command
428 - + worktree: add details to the worktree struct
429 - + worktree: add a function to get worktree details
430 - + worktree: refactor find_linked_symref function
431 - + worktree: add top-level worktree.c
432 -
433 - Add the "list" subcommand to "git worktree".
434 -
435 - Will merge to 'master'.
436 -
437 -
423 * jc/mailinfo (2015-10-21) 1 commit
424 - mailinfo: ignore in-body header that we do not care about
425 (this branch uses jc/am-mailinfo-direct and jc/mailinfo-lib.)
@@ -507,23 +492,10 @@ of the repositories listed at
492 Will merge to 'master'.
493
494
510 -* jc/am-3-fallback-regression-fix (2015-10-09) 1 commit
511 - (merged to 'next' on 2015-10-15 at 7dde994)
512 - + am -3: do not let failed merge from completing the error codepath
513 - (this branch is used by js/am-3-merge-recursive-direct.)
514 -
515 - "git am -3" had a small regression where it is aborted in its error
516 - handling codepath when underlying merge-recursive failed in certain
517 - ways, as it assumed that the internal call to merge-recursive will
518 - never die, which is not the case (yet).
519 -
520 - Will merge to 'master'.
521 -
522 -
495 * js/am-3-merge-recursive-direct (2015-10-12) 2 commits
524 - - am: make a direct call to merge_recursive
525 - - merge_recursive_options: introduce the "gently" flag
526 - (this branch uses jc/am-3-fallback-regression-fix.)
496 + (merged to 'next' on 2015-10-23 at dc631e5)
497 + + am: make a direct call to merge_recursive
498 + + merge_recursive_options: introduce the "gently" flag
499
500 The merge_recursive_generic() function has been made a bit safer to
501 call from inside a process. "git am -3" was taught to make a direct
@@ -589,15 +561,18 @@ of the repositories listed at
561 ($gmane/278326)
562
563
592 -* sb/submodule-parallel-fetch (2015-10-21) 16 commits
564 +* sb/submodule-parallel-fetch (2015-10-23) 18 commits
565 + - (NEEDSWORK) clone: allow an explicit argument for parallel submodule clones
566 + - submodule update: expose parallelism to the user
567 - git submodule update: have a dedicated helper for cloning
568 - submodule config: keep update strategy around
595 - - run-command: fix missing output from late callbacks
596 - - test-run-command: increase test coverage
597 - - test-run-command: test for gracefully aborting
598 - - run-command: initialize the shutdown flag
599 - - run-command: clear leftover state from child_process structure
600 - - run-command: fix early shutdown
569 + (merged to 'next' on 2015-10-23 at 8f04bbd)
570 + + run-command: fix missing output from late callbacks
571 + + test-run-command: increase test coverage
572 + + test-run-command: test for gracefully aborting
573 + + run-command: initialize the shutdown flag
574 + + run-command: clear leftover state from child_process structure
575 + + run-command: fix early shutdown
576 (merged to 'next' on 2015-10-15 at df63590)
577 + submodules: allow parallel fetching, add tests and documentation
578 + fetch_populated_submodules: use new parallel job processing