What's cooking (2016/09 #07)

Junio C Hamano committed Sep 23, 2016 at 15:54 UTC 9c14a42734bd5787e105e2fae4615871f0ac382e
1 file changed +286 -423
whats-cooking.txt
+286 -423
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Sep 2016, #06; Wed, 21)
3 +Subject: What's cooking in git.git (Sep 2016, #07; Fri, 23)
4 X-master-at: 6fe1b1407ed91823daa5d487abe457ff37463349
5 -X-next-at: 97b919bdbde768487edc76513548a747496e2579
5 +X-next-at: 0d124844aa5dddf553b9ab078d43c935bb585135
6
7 -What's cooking in git.git (Sep 2016, #06; Wed, 21)
7 +What's cooking in git.git (Sep 2016, #07; Fri, 23)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,305 +12,98 @@ Here are the topics that have been cooking. Commits prefixed with
12 '+' are in 'next'. The ones marked with '.' do not appear in any of
13 the integration branches, but I am still holding onto them.
14
15 +A bunch of topics have graduated to 'next', including a few that
16 +were so far marked as "needs review" or "will hold", as I think
17 +giving them a greater visibility and guinea pigs would be the most
18 +efficient way to get feedback from the real world ;-) Some of them
19 +may be "Meh" topic, which might be why they weren't getting any
20 +feedback so far, but at least this way we'd know if there are
21 +breakages in them (in which case we can just revert and discard
22 +them).
23 +
24 You can find the changes described here in the integration branches
25 of the repositories listed at
26
27 http://git-blame.blogspot.com/p/git-public-repositories.html
28
29 --------------------------------------------------
21 -[Graduated to "master"]
22 -
23 -* bw/pathspec-remove-unused-extern-decl (2016-09-13) 1 commit
24 - (merged to 'next' on 2016-09-15 at c5b281b)
25 - + pathspec: remove unnecessary function prototypes
26 -
27 - Code cleanup.
28 -
29 -
30 -* et/add-chmod-x (2016-09-12) 1 commit
31 - (merged to 'next' on 2016-09-15 at c81abae)
32 - + add: document the chmod option
33 - (this branch is used by tg/add-chmod+x-fix.)
34 -
35 - "git add --chmod=+x" added recently lacked documentation, which has
36 - been corrected.
37 -
38 -
39 -* ew/http-do-not-forget-to-call-curl-multi-remove-handle (2016-09-13) 3 commits
40 - (merged to 'next' on 2016-09-15 at 696acb7)
41 - + http: always remove curl easy from curlm session on release
42 - + http: consolidate #ifdefs for curl_multi_remove_handle
43 - + http: warn on curl_multi_add_handle failures
44 -
45 - The http transport (with curl-multi option, which is the default
46 - these days) failed to remove curl-easy handle from a curlm session,
47 - which led to unnecessary API failures.
48 -
49 -
50 -* jk/delta-base-cache (2016-09-12) 1 commit
51 - (merged to 'next' on 2016-09-15 at 1e35f8d)
52 - + add_delta_base_cache: use list_for_each_safe
53 -
54 - Recently we updated the code to manage the in-core cache that holds
55 - objects that have recently been used to reconstitute other objects
56 - that are stored as deltas against them, but the update used an
57 - incorrect API function to manage the list of these objects. This
58 - has been fixed.
59 - This is a last-minute fix to a topic that graduated to 'master'
60 - post 2.10 release.
61 -
62 -
63 -* jk/patch-ids-no-merges (2016-09-12) 2 commits
64 - (merged to 'next' on 2016-09-15 at 14bb3a0)
65 - + patch-ids: refuse to compute patch-id for merge commit
66 - + patch-ids: turn off rename detection
67 -
68 - "git log --cherry-pick" used to include merge commits as candidates
69 - to be matched up with other commits, resulting a lot of wasted time.
70 - The patch-id generation logic has been updated to ignore merges to
71 - avoid the wastage.
72 -
73 -
74 -* jk/rebase-i-drop-ident-check (2016-07-29) 1 commit
75 - (merged to 'next' on 2016-08-14 at 6891bcd)
76 - + rebase-interactive: drop early check for valid ident
77 -
78 - Even when "git pull --rebase=preserve" (and the underlying "git
79 - rebase --preserve") can complete without creating any new commit
80 - (i.e. fast-forwards), it still insisted on having a usable ident
81 - information (read: user.email is set correctly), which was less
82 - than nice. As the underlying commands used inside "git rebase"
83 - would fail with a more meaningful error message and advice text
84 - when the bogus ident matters, this extra check was removed.
85 -
86 -
87 -* jk/reduce-gc-aggressive-depth (2016-08-11) 1 commit
88 - (merged to 'next' on 2016-08-11 at 6810c6f)
89 - + gc: default aggressive depth to 50
90 -
91 - "git gc --aggressive" used to limit the delta-chain length to 250,
92 - which is way too deep for gaining additional space savings and is
93 - detrimental for runtime performance. The limit has been reduced to
94 - 50.
95 -
96 -
97 -* jk/setup-sequence-update (2016-09-13) 16 commits
98 - (merged to 'next' on 2016-09-15 at 4df8399)
99 - + t1007: factor out repeated setup
100 - + init: reset cached config when entering new repo
101 - + init: expand comments explaining config trickery
102 - + config: only read .git/config from configured repos
103 - + test-config: setup git directory
104 - + t1302: use "git -C"
105 - + pager: handle early config
106 - + pager: use callbacks instead of configset
107 - + pager: make pager_program a file-local static
108 - + pager: stop loading git_default_config()
109 - + pager: remove obsolete comment
110 - + diff: always try to set up the repository
111 - + diff: handle --no-index prefixes consistently
112 - + diff: skip implicit no-index check when given --no-index
113 - + patch-id: use RUN_SETUP_GENTLY
114 - + hash-object: always try to set up the git repository
115 - (this branch is used by nd/init-core-worktree-in-multi-worktree-world.)
116 -
117 - There were numerous corner cases in which the configuration files
118 - are read and used or not read at all depending on the directory a
119 - Git command was run, leading to inconsistent behaviour. The code
120 - to set-up repository access at the beginning of a Git process has
121 - been updated to fix them.
122 -
123 -
124 -* js/cat-file-filters (2016-09-11) 4 commits
125 - (merged to 'next' on 2016-09-15 at a231380)
126 - + cat-file: support --textconv/--filters in batch mode
127 - + cat-file --textconv/--filters: allow specifying the path separately
128 - + cat-file: introduce the --filters option
129 - + cat-file: fix a grammo in the man page
130 -
131 - Even though "git hash-objects", which is a tool to take an
132 - on-filesystem data stream and put it into the Git object store,
133 - allowed to perform the "outside-world-to-Git" conversions (e.g.
134 - end-of-line conversions and application of the clean-filter), and
135 - it had the feature on by default from very early days, its reverse
136 - operation "git cat-file", which takes an object from the Git object
137 - store and externalize for the consumption by the outside world,
138 - lacked an equivalent mechanism to run the "Git-to-outside-world"
139 - conversion. The command learned the "--filters" option to do so.
140 -
141 -
142 -* jt/accept-capability-advertisement-when-fetching-from-void (2016-09-09) 3 commits
143 - (merged to 'next' on 2016-09-15 at 1cd9f9a)
144 - + connect: advertized capability is not a ref
145 - + connect: tighten check for unexpected early hang up
146 - + tests: move test_lazy_prereq JGIT to test-lib.sh
147 -
148 - JGit can show a fake ref "capabilities^{}" to "git fetch" when it
149 - does not advertise any refs, but "git fetch" was not prepared to
150 - see such an advertisement. When the other side disconnects without
151 - giving any ref advertisement, we used to say "there may not be a
152 - repository at that URL", but we may have seen other advertisement
153 - like "shallow" and ".have" in which case we definitely know that a
154 - repository is there. The code to detect this case has also been
155 - updated.
156 -
157 -
158 -* jt/format-patch-base-info-above-sig (2016-09-15) 1 commit
159 - (merged to 'next' on 2016-09-15 at 3da5c68)
160 - + format-patch: show base info before email signature
161 -
162 - "git format-patch --base=..." feature that was recently added
163 - showed the base commit information after "-- " e-mail signature
164 - line, which turned out to be inconvenient. The base information
165 - has been moved above the signature line.
166 -
167 -
168 -* ks/pack-objects-bitmap (2016-09-12) 2 commits
169 - (merged to 'next' on 2016-09-15 at e0600bd)
170 - + pack-objects: use reachability bitmap index when generating non-stdout pack
171 - + pack-objects: respect --local/--honor-pack-keep/--incremental when bitmap is in use
172 -
173 - Some codepaths in "git pack-objects" were not ready to use an
174 - existing pack bitmap; now they are and as the result they have
175 - become faster.
176 -
177 -
178 -* ks/perf-build-with-autoconf (2016-09-15) 1 commit
179 - (merged to 'next' on 2016-09-15 at 261878d)
180 - + t/perf/run: copy config.mak.autogen & friends to build area
181 -
182 - Performance tests done via "t/perf" did not use the same set of
183 - build configuration if the user relied on autoconf generated
184 - configuration.
185 -
186 -
187 -* mr/vcs-svn-printf-ulong (2016-09-14) 1 commit
188 - (merged to 'next' on 2016-09-15 at cc8ef53)
189 - + vcs-svn/fast_export: fix timestamp fmt specifiers
190 -
191 - Code cleanup.
192 -
193 -
194 -* rs/checkout-some-states-are-const (2016-09-13) 1 commit
195 - (merged to 'next' on 2016-09-15 at 19f219b)
196 - + checkout: constify parameters of checkout_stage() and checkout_merged()
197 -
198 - Code cleanup.
199 -
200 -
201 -* rs/pack-sort-with-llist-mergesort (2016-09-13) 1 commit
202 - (merged to 'next' on 2016-09-15 at 45159f5)
203 - + sha1_file: use llist_mergesort() for sorting packs
204 -
205 - Code cleanup.
206 -
30 +[New Topics]
31
208 -* rs/strbuf-remove-fix (2016-09-13) 1 commit
209 - (merged to 'next' on 2016-09-15 at 5f64556)
210 - + strbuf: use valid pointer in strbuf_remove()
32 +* jk/clone-recursive-progress (2016-09-22) 1 commit
33 + (merged to 'next' on 2016-09-22 at 8310c42)
34 + + clone: pass --progress decision to recursive submodules
35
212 - Code cleanup.
36 + "git clone --recurse-submodules" lost the progress eye-candy in
37 + recent update, which has been corrected.
38
39 + Will merge to 'master'.
40
215 -* rs/unpack-trees-reduce-file-scope-global (2016-09-13) 1 commit
216 - (merged to 'next' on 2016-09-15 at cd16435)
217 - + unpack-trees: pass checkout state explicitly to check_updates()
41
219 - Code cleanup.
42 +* jk/doc-cvs-update (2016-09-22) 3 commits
43 + (merged to 'next' on 2016-09-22 at c0f949f)
44 + + docs/cvs-migration: mention cvsimport caveats
45 + + docs/cvs-migration: update link to cvsps homepage
46 + + docs/cvsimport: prefer cvs-fast-export to parsecvs
47
48 + Documentation around tools to import from CVS was fairly outdated.
49
222 -* rs/xdiff-merge-overlapping-hunks-for-W-context (2016-09-14) 1 commit
223 - (merged to 'next' on 2016-09-15 at eaa85ab)
224 - + xdiff: fix merging of hunks with -W context and -u context
50 + Will merge to 'master'.
51
226 - "git diff -W" output needs to extend the context backward to
227 - include the header line of the current function and also forward to
228 - include the body of the entire current function up to the header
229 - line of the next one. This process may have to merge to adjacent
230 - hunks, but the code forgot to do so in some cases.
52
53 +* jk/verify-packfile-gently (2016-09-22) 1 commit
54 + - verify_packfile: check pack validity before accessing data
55
233 -* va/i18n (2016-09-15) 11 commits
234 - (merged to 'next' on 2016-09-15 at 2b3d368)
235 - + i18n: update-index: mark warnings for translation
236 - + i18n: show-branch: mark plural strings for translation
237 - + i18n: show-branch: mark error messages for translation
238 - + i18n: receive-pack: mark messages for translation
239 - + notes: spell first word of error messages in lowercase
240 - + i18n: notes: mark error messages for translation
241 - + i18n: merge-recursive: mark verbose message for translation
242 - + i18n: merge-recursive: mark error messages for translation
243 - + i18n: config: mark error message for translation
244 - + i18n: branch: mark option description for translation
245 - + i18n: blame: mark error messages for translation
246 - (this branch is used by va/i18n-more.)
56 + A low-level function verify_packfile() was meant to show errors
57 + detected without dying itself, but under some conditions it didn't
58 + and died instead, which has been fixed.
59
248 - More i18n.
60 + Will merge to 'next'.
61
250 ---------------------------------------------------
251 -[New Topics]
62
253 -* ep/doc-check-ref-format-example (2016-09-21) 1 commit
254 - - git-check-ref-format.txt: fixup documentation
63 +* jt/fetch-pack-in-vain-count-with-stateless (2016-09-23) 1 commit
64 + - fetch-pack: do not reset in_vain on non-novel acks
65
256 - A shell script example in check-ref-format documentation has been
257 - fixed.
66 + When "git fetch" tries to find where the history it has diverged
67 + from what the other side has, it has a mechanism to avoid digging
68 + too deep into irrelevant side branches. This however did not work
69 + well over the "smart-http" transport due to a design bug, which has
70 + been fixed.
71
72 Will merge to 'next'.
73
74
262 -* js/regexec-buf (2016-09-21) 3 commits
263 - - regex: use regexec_buf()
264 - - regex: add regexec_buf() that can work on a non NUL-terminated string
265 - - regex: -G<pattern> feeds a non NUL-terminated string to regexec() and fails
75 +* rs/checkout-init-macro (2016-09-22) 1 commit
76 + (merged to 'next' on 2016-09-22 at 6513755)
77 + + introduce CHECKOUT_INIT
78
267 - Some codepaths in "git diff" used regexec(3) on a buffer that was
268 - mmap(2)ed, which may not have a terminating NUL, leading to a read
269 - beyond the end of the mapped region. This was fixed by introducing
270 - a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND
271 - extension.
79 + Code cleanup.
80
273 - Waiting for an Ack to minor tweaks.
274 - cf. <cover.1474482164.git.johannes.schindelin@gmx.de>
81 + Will merge to 'master'.
82
83
277 -* jt/format-patch-rfc (2016-09-21) 1 commit
278 - - format-patch: add "--rfc" for the common case of [RFC PATCH]
84 +* ik/gitweb-force-highlight (2016-09-23) 2 commits
85 + - gitweb: use highlight's shebang detection
86 + - gitweb: remove unused paarmeter from guess_file_syntax()
87
280 - In some projects it is common to use "[RFC PATCH]" as the subject
281 - prefix for a patch meant for discussion rather than application. A
282 - new option "--rfc" was a short-hand for "--subject-prefix=RFC PATCH"
283 - to help the participants of such projects.
88 + "gitweb" can spawn "highlight" to show blob contents with
89 + (programming) language-specific syntax highlighting, but only
90 + when the language is known. "highlight" can however be told
91 + to make the guess itself by giving it "--force" option, which
92 + has been enabled.
93
285 - Will merge to 'next'.
94 + Waiting for the discussion to conclude.
95 + cf. <2a4c3efb-2145-b699-c980-3079f165a6e1@gmail.com>
96
97
288 -* ls/travis-homebrew-path-fix (2016-09-21) 1 commit
289 - - travis-ci: ask homebrew for the its path instead of hardcoding it
98 +* jk/ident-ai-canonname-could-be-null (2016-09-23) 1 commit
99 + - ident: handle NULL ai_canonname
100
291 - The procedure to build Git on Mac OS X for Travis CI hardcoded the
292 - internal directory structure we assumed HomeBrew uses, which was a
293 - no-no. The procedure has been updated to ask HomeBrew things we
294 - need to know to fix this.
101 + In the codepath that comes up with the hostname to be used in an
102 + e-mail when the user didn't tell us, we looked at ai_canonname
103 + field in struct addrinfo without making sure it is not NULL first.
104
105 Will merge to 'next'.
106
298 -
299 -* nd/init-core-worktree-in-multi-worktree-world (2016-09-21) 3 commits
300 - - init: reuse original_git_dir in set_git_dir_init()
301 - - init: do not set core.worktree more often than necessary
302 - - init: correct re-initialization from a linked worktree
303 -
304 - "git init" tried to record core.worktree in the repository's
305 - 'config' file when GIT_WORK_TREE environment variable was set and
306 - it was different from where GIT_DIR appears as ".git" at its top,
307 - but the logic was faulty when .git is a "gitdir:" file that points
308 - at the real place, causing trouble in working trees that are
309 - managed by "git worktree". This has been corrected.
310 -
311 - The second one seems to need a bit more polishing.
312 - cf. <xmqqd1jx854z.fsf@gitster.mtv.corp.google.com>
313 -
107 --------------------------------------------------
108 [Stalled]
109
@@ -337,20 +130,6 @@ of the repositories listed at
130 Will discard.
131
132
340 -* jc/blame-reverse (2016-06-14) 2 commits
341 - - blame: dwim "blame --reverse OLD" as "blame --reverse OLD.."
342 - - blame: improve diagnosis for "--reverse NEW"
343 -
344 - It is a common mistake to say "git blame --reverse OLD path",
345 - expecting that the command line is dwimmed as if asking how lines
346 - in path in an old revision OLD have survived up to the current
347 - commit.
348 -
349 - Has been waiting for positive responses without seeing any.
350 -
351 - Will discard.
352 -
353 -
133 * jc/attr (2016-05-25) 18 commits
134 - attr: support quoting pathname patterns in C style
135 - attr: expose validity check for attribute names
@@ -455,6 +234,68 @@ of the repositories listed at
234 this.
235
236
237 +* pb/bisect (2016-08-23) 27 commits
238 + . bisect--helper: remove the dequote in bisect_start()
239 + . bisect--helper: retire `--bisect-auto-next` subcommand
240 + . bisect--helper: retire `--bisect-autostart` subcommand
241 + . bisect--helper: retire `--check-and-set-terms` subcommand
242 + . bisect--helper: retire `--bisect-write` subcommand
243 + . bisect--helper: `bisect_replay` shell function in C
244 + . bisect--helper: `bisect_log` shell function in C
245 + . bisect--helper: retire `--write-terms` subcommand
246 + . bisect--helper: retire `--check-expected-revs` subcommand
247 + . bisect--helper: `bisect_state` & `bisect_head` shell function in C
248 + . bisect--helper: `bisect_autostart` shell function in C
249 + . bisect--helper: retire `--next-all` subcommand
250 + . bisect--helper: retire `--bisect-clean-state` subcommand
251 + . bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
252 + . bisect--helper: `bisect_start` shell function partially in C
253 + . bisect--helper: `get_terms` & `bisect_terms` shell function in C
254 + . bisect--helper: `bisect_next_check` & bisect_voc shell function in C
255 + . bisect--helper: `check_and_set_terms` shell function in C
256 + . bisect--helper: `bisect_write` shell function in C
257 + . bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
258 + . bisect--helper: `bisect_reset` shell function in C
259 + . wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
260 + . t6030: explicitly test for bisection cleanup
261 + . bisect--helper: `bisect_clean_state` shell function in C
262 + . bisect--helper: `write_terms` shell function in C
263 + . bisect: rewrite `check_term_format` shell function in C
264 + . bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
265 +
266 + GSoC "bisect" topic.
267 +
268 + I'd prefer to see early part solidified so that reviews can focus
269 + on the later part that is still in flux. We are almost there but
270 + not quite yet.
271 +
272 +
273 +* kn/ref-filter-branch-list (2016-05-17) 17 commits
274 + - branch: implement '--format' option
275 + - branch: use ref-filter printing APIs
276 + - branch, tag: use porcelain output
277 + - ref-filter: allow porcelain to translate messages in the output
278 + - ref-filter: add `:dir` and `:base` options for ref printing atoms
279 + - ref-filter: make remote_ref_atom_parser() use refname_atom_parser_internal()
280 + - ref-filter: introduce symref_atom_parser() and refname_atom_parser()
281 + - ref-filter: introduce refname_atom_parser_internal()
282 + - ref-filter: make "%(symref)" atom work with the ':short' modifier
283 + - ref-filter: add support for %(upstream:track,nobracket)
284 + - ref-filter: make %(upstream:track) prints "[gone]" for invalid upstreams
285 + - ref-filter: introduce format_ref_array_item()
286 + - ref-filter: move get_head_description() from branch.c
287 + - ref-filter: modify "%(objectname:short)" to take length
288 + - ref-filter: implement %(if:equals=<string>) and %(if:notequals=<string>)
289 + - ref-filter: include reference to 'used_atom' within 'atom_value'
290 + - ref-filter: implement %(if), %(then), and %(else) atoms
291 +
292 + The code to list branches in "git branch" has been consolidated
293 + with the more generic ref-filter API.
294 +
295 + Rerolled.
296 + Needs review.
297 +
298 +
299 * sb/bisect (2016-04-15) 22 commits
300 . SQUASH???
301 . bisect: get back halfway shortcut
@@ -564,8 +405,88 @@ of the repositories listed at
405 --------------------------------------------------
406 [Cooking]
407
408 +* jc/blame-reverse (2016-06-14) 2 commits
409 + (merged to 'next' on 2016-09-22 at d1a8e9c)
410 + + blame: dwim "blame --reverse OLD" as "blame --reverse OLD.."
411 + + blame: improve diagnosis for "--reverse NEW"
412 +
413 + It is a common mistake to say "git blame --reverse OLD path",
414 + expecting that the command line is dwimmed as if asking how lines
415 + in path in an old revision OLD have survived up to the current
416 + commit.
417 +
418 + Will hold to see if it is broken.
419 +
420 +
421 +* ep/doc-check-ref-format-example (2016-09-21) 1 commit
422 + (merged to 'next' on 2016-09-22 at 6d0d79e)
423 + + git-check-ref-format.txt: fixup documentation
424 +
425 + A shell script example in check-ref-format documentation has been
426 + fixed.
427 +
428 + Will merge to 'master'.
429 +
430 +
431 +* js/regexec-buf (2016-09-21) 3 commits
432 + (merged to 'next' on 2016-09-22 at 2ee2477)
433 + + regex: use regexec_buf()
434 + + regex: add regexec_buf() that can work on a non NUL-terminated string
435 + + regex: -G<pattern> feeds a non NUL-terminated string to regexec() and fails
436 +
437 + Some codepaths in "git diff" used regexec(3) on a buffer that was
438 + mmap(2)ed, which may not have a terminating NUL, leading to a read
439 + beyond the end of the mapped region. This was fixed by introducing
440 + a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND
441 + extension.
442 +
443 + Will merge to 'master'.
444 +
445 +
446 +* jt/format-patch-rfc (2016-09-21) 1 commit
447 + (merged to 'next' on 2016-09-22 at 3b39442)
448 + + format-patch: add "--rfc" for the common case of [RFC PATCH]
449 +
450 + In some projects, it is common to use "[RFC PATCH]" as the subject
451 + prefix for a patch meant for discussion rather than application. A
452 + new option "--rfc" was a short-hand for "--subject-prefix=RFC PATCH"
453 + to help the participants of such projects.
454 +
455 + Will merge to 'master'.
456 +
457 +
458 +* ls/travis-homebrew-path-fix (2016-09-22) 1 commit
459 + (merged to 'next' on 2016-09-22 at 310e620)
460 + + travis-ci: ask homebrew for its path instead of hardcoding it
461 +
462 + The procedure to build Git on Mac OS X for Travis CI hardcoded the
463 + internal directory structure we assumed HomeBrew uses, which was a
464 + no-no. The procedure has been updated to ask HomeBrew things we
465 + need to know to fix this.
466 +
467 + Will merge to 'master'.
468 +
469 +
470 +* nd/init-core-worktree-in-multi-worktree-world (2016-09-23) 4 commits
471 + - init: combine set_git_dir_init() and init_db() into one
472 + - init: reuse original_git_dir in set_git_dir_init()
473 + - init: do not set core.worktree more often than necessary
474 + - init: correct re-initialization from a linked worktree
475 +
476 + "git init" tried to record core.worktree in the repository's
477 + 'config' file when GIT_WORK_TREE environment variable was set and
478 + it was different from where GIT_DIR appears as ".git" at its top,
479 + but the logic was faulty when .git is a "gitdir:" file that points
480 + at the real place, causing trouble in working trees that are
481 + managed by "git worktree". This has been corrected.
482 +
483 + The fourth one seems to need a bit more polishing.
484 + cf. <xmqqshsqz0s1.fsf@gitster.mtv.corp.google.com>
485 +
486 +
487 * mm/config-color-ui-default-to-auto (2016-09-16) 1 commit
568 - - Documentation/config: default for color.* is color.ui
488 + (merged to 'next' on 2016-09-22 at 4eac0cb)
489 + + Documentation/config: default for color.* is color.ui
490
491 Documentation for individual configuration variables to control use
492 of color (like `color.grep`) said that their default value was
@@ -574,40 +495,43 @@ of the repositories listed at
495 'auto' quite a while ago, all of them broke. This has been
496 corrected.
497
577 - Will merge to 'next'.
498 + Will merge to 'master'.
499
500
501 * rs/c-auto-resets-attributes (2016-09-19) 1 commit
581 - - pretty: let %C(auto) reset all attributes
502 + (merged to 'next' on 2016-09-22 at 68f2e4a)
503 + + pretty: let %C(auto) reset all attributes
504
505 The pretty-format specifier used by the "log" family of commands
584 - have "%C(auto)" to turn coloring of the output is taught to also
506 + have "%C(auto)" to enable coloring of the output is taught to also
507 issue a color-reset sequence to the output.
508
587 - Will merge to 'next'.
509 + Will merge to 'master'.
510
511
512 * rs/cocci (2016-09-15) 3 commits
591 - - use strbuf_addstr() for adding constant strings to a strbuf, part 2
592 - - add coccicheck make target
593 - - contrib/coccinelle: fix semantic patch for oid_to_hex_r()
513 + (merged to 'next' on 2016-09-22 at aa54fa4)
514 + + use strbuf_addstr() for adding constant strings to a strbuf, part 2
515 + + add coccicheck make target
516 + + contrib/coccinelle: fix semantic patch for oid_to_hex_r()
517
518 Code cleanup.
519
597 - Will merge to 'next'.
520 + Will merge to 'master'.
521
522
523 * va/i18n-more (2016-09-21) 6 commits
601 - - i18n: stash: mark messages for translation
602 - - i18n: notes-merge: mark die messages for translation
603 - - i18n: ident: mark hint for translation
604 - - i18n: i18n: diff: mark die messages for translation
605 - - i18n: connect: mark die messages for translation
606 - - i18n: commit: mark message for translation
524 + (merged to 'next' on 2016-09-22 at bea26e8)
525 + + i18n: stash: mark messages for translation
526 + + i18n: notes-merge: mark die messages for translation
527 + + i18n: ident: mark hint for translation
528 + + i18n: i18n: diff: mark die messages for translation
529 + + i18n: connect: mark die messages for translation
530 + + i18n: commit: mark message for translation
531
532 Even more i18n.
533
610 - Will merge to 'next'.
534 + Will merge to 'master'.
535
536
537 * jt/mailinfo-fold-in-body-headers (2016-09-21) 3 commits
@@ -653,20 +577,20 @@ of the repositories listed at
577
578
579 * tg/add-chmod+x-fix (2016-09-21) 6 commits
656 - - t3700-add: do not check working tree file mode without POSIXPERM
657 - - t3700-add: create subdirectory gently
658 - - add: modify already added files when --chmod is given
659 - - read-cache: introduce chmod_index_entry
660 - - update-index: add test for chmod flags
661 - - Merge branch 'ib/t3700-add-chmod-x-updates' into tg/add-chmod+x-fix
580 + (merged to 'next' on 2016-09-22 at 6afdd21)
581 + + t3700-add: do not check working tree file mode without POSIXPERM
582 + + t3700-add: create subdirectory gently
583 + + add: modify already added files when --chmod is given
584 + + read-cache: introduce chmod_index_entry
585 + + update-index: add test for chmod flags
586 + + Merge branch 'ib/t3700-add-chmod-x-updates' into tg/add-chmod+x-fix
587
588 "git add --chmod=+x <pathspec>" added recently only toggled the
589 executable bit for paths that are either new or modified. This has
590 been corrected to flip the executable bit for all paths that match
591 the given pathspec.
592
668 - Waiting for the discussion to conclude.
669 - cf. <c3aefd9d-b794-21a1-619e-bce6a3c2cf47@kdbg.org>
593 + Will merge to 'master'.
594
595
596 * bw/ls-files-recurse-submodules (2016-09-21) 2 commits
@@ -683,7 +607,7 @@ of the repositories listed at
607 Waiting for the discussion to conclude.
608
609
686 -* ls/filter-process (2016-09-21) 11 commits
610 +* ls/filter-process (2016-09-23) 11 commits
611 - convert: add filter.<driver>.process option
612 - convert: make apply_filter() adhere to standard Git error handling
613 - convert: modernize tests
@@ -703,7 +627,7 @@ of the repositories listed at
627 all filtering need is served by this single process for multiple
628 paths, reducing the process creation overhead.
629
706 - Is this ready?
630 + Is this one ready to be merged?
631
632
633 * hv/submodule-not-yet-pushed-fix (2016-09-15) 5 commits
@@ -724,22 +648,21 @@ of the repositories listed at
648
649
650 * rt/rebase-i-broken-insn-advise (2016-09-07) 1 commit
727 - - rebase -i: improve advice on bad instruction lines
651 + (merged to 'next' on 2016-09-23 at 0d12484)
652 + + rebase -i: improve advice on bad instruction lines
653
654 When "git rebase -i" is given a broken instruction, it told the
655 user to fix it with "--edit-todo", but didn't say what the step
656 after that was (i.e. "--continue").
657
733 - Will hold.
734 - Dscho's "rebase -i" hopefully will become available in 'pu', by
735 - which time an equivalent of this fix would be ported to C. This is
736 - queued merely as a reminder.
658 + Will merge to 'master'.
659
660
661 * nd/checkout-disambiguation (2016-09-21) 3 commits
740 - - checkout: fix ambiguity check in subdir
741 - - checkout.txt: document a common case that ignores ambiguation rules
742 - - checkout: add some spaces between code and comment
662 + (merged to 'next' on 2016-09-22 at ebfa365)
663 + + checkout: fix ambiguity check in subdir
664 + + checkout.txt: document a common case that ignores ambiguation rules
665 + + checkout: add some spaces between code and comment
666
667 "git checkout <word>" does not follow the usual disambiguation
668 rules when the <word> can be both a rev and a path, to allow
@@ -748,7 +671,7 @@ of the repositories listed at
671 This was poorly documented and the check was incorrect when the
672 command was run from a subdirectory.
673
751 - Will merge to 'next'.
674 + Will merge to 'master'.
675
676
677 * sg/fix-versioncmp-with-common-suffix (2016-09-08) 5 commits
@@ -768,13 +691,14 @@ of the repositories listed at
691
692
693 * cp/completion-negative-refs (2016-08-24) 1 commit
771 - - completion: support excluding refs
694 + (merged to 'next' on 2016-09-22 at abd1585)
695 + + completion: support excluding refs
696
697 The command-line completion script (in contrib/) learned to
698 complete "git cmd ^mas<HT>" to complete the negative end of
699 reference to "git cmd ^master".
700
777 - Needs review.
701 + Will hold to see if it is broken.
702
703
704 * sb/push-make-submodule-check-the-default (2016-08-24) 1 commit
@@ -788,25 +712,27 @@ of the repositories listed at
712
713
714 * ak/curl-imap-send-explicit-scheme (2016-08-17) 1 commit
791 - - imap-send: Tell cURL to use imap:// or imaps://
715 + (merged to 'next' on 2016-09-22 at 4449584)
716 + + imap-send: Tell cURL to use imap:// or imaps://
717
718 When we started cURL to talk to imap server when a new enough
719 version of cURL library is available, we forgot to explicitly add
720 imap(s):// before the destination. To some folks, that didn't work
721 and the library tried to make HTTP(s) requests instead.
722
798 - Needs review and testing.
723 + Will hold to see if it is broken.
724
725
726 * mh/diff-indent-heuristic (2016-09-19) 8 commits
802 - - blame: honor the diff heuristic options and config
803 - - parse-options: add parse_opt_unknown_cb()
804 - - diff: improve positioning of add/delete blocks in diffs
805 - - xdl_change_compact(): introduce the concept of a change group
806 - - recs_match(): take two xrecord_t pointers as arguments
807 - - is_blank_line(): take a single xrecord_t as argument
808 - - xdl_change_compact(): only use heuristic if group can't be matched
809 - - xdl_change_compact(): fix compaction heuristic to adjust ixo
727 + (merged to 'next' on 2016-09-22 at e71d742)
728 + + blame: honor the diff heuristic options and config
729 + + parse-options: add parse_opt_unknown_cb()
730 + + diff: improve positioning of add/delete blocks in diffs
731 + + xdl_change_compact(): introduce the concept of a change group
732 + + recs_match(): take two xrecord_t pointers as arguments
733 + + is_blank_line(): take a single xrecord_t as argument
734 + + xdl_change_compact(): only use heuristic if group can't be matched
735 + + xdl_change_compact(): fix compaction heuristic to adjust ixo
736
737 Output from "git diff" can be made easier to read by selecting
738 which lines are common and which lines are added/deleted
@@ -814,7 +740,7 @@ of the repositories listed at
740 are the same. A command line option is added to help with the
741 experiment to find a good heuristics.
742
817 - Will merge to 'next'.
743 + Will merge to 'master'.
744
745
746 * jk/pack-objects-optim-mru (2016-08-11) 4 commits
@@ -835,12 +761,13 @@ of the repositories listed at
761
762
763 * dp/autoconf-curl-ssl (2016-06-28) 1 commit
838 - - ./configure.ac: detect SSL in libcurl using curl-config
764 + (merged to 'next' on 2016-09-22 at 9c5aeec)
765 + + ./configure.ac: detect SSL in libcurl using curl-config
766
767 The ./configure script generated from configure.ac was taught how
768 to detect support of SSL by libcurl better.
769
843 - Needs review.
770 + Will hold to see if it is broken.
771
772
773 * jc/pull-rebase-ff (2016-07-28) 1 commit
@@ -874,33 +801,34 @@ of the repositories listed at
801
802
803 * nd/shallow-deepen (2016-06-13) 27 commits
877 - - fetch, upload-pack: --deepen=N extends shallow boundary by N commits
878 - - upload-pack: add get_reachable_list()
879 - - upload-pack: split check_unreachable() in two, prep for get_reachable_list()
880 - - t5500, t5539: tests for shallow depth excluding a ref
881 - - clone: define shallow clone boundary with --shallow-exclude
882 - - fetch: define shallow boundary with --shallow-exclude
883 - - upload-pack: support define shallow boundary by excluding revisions
884 - - refs: add expand_ref()
885 - - t5500, t5539: tests for shallow depth since a specific date
886 - - clone: define shallow clone boundary based on time with --shallow-since
887 - - fetch: define shallow boundary with --shallow-since
888 - - upload-pack: add deepen-since to cut shallow repos based on time
889 - - shallow.c: implement a generic shallow boundary finder based on rev-list
890 - - fetch-pack: use a separate flag for fetch in deepening mode
891 - - fetch-pack.c: mark strings for translating
892 - - fetch-pack: use a common function for verbose printing
893 - - fetch-pack: use skip_prefix() instead of starts_with()
894 - - upload-pack: move rev-list code out of check_non_tip()
895 - - upload-pack: make check_non_tip() clean things up on error
896 - - upload-pack: tighten number parsing at "deepen" lines
897 - - upload-pack: use skip_prefix() instead of starts_with()
898 - - upload-pack: move "unshallow" sending code out of deepen()
899 - - upload-pack: remove unused variable "backup"
900 - - upload-pack: move "shallow" sending code out of deepen()
901 - - upload-pack: move shallow deepen code out of receive_needs()
902 - - transport-helper.c: refactor set_helper_option()
903 - - remote-curl.c: convert fetch_git() to use argv_array
804 + (merged to 'next' on 2016-09-22 at f0cf3e3)
805 + + fetch, upload-pack: --deepen=N extends shallow boundary by N commits
806 + + upload-pack: add get_reachable_list()
807 + + upload-pack: split check_unreachable() in two, prep for get_reachable_list()
808 + + t5500, t5539: tests for shallow depth excluding a ref
809 + + clone: define shallow clone boundary with --shallow-exclude
810 + + fetch: define shallow boundary with --shallow-exclude
811 + + upload-pack: support define shallow boundary by excluding revisions
812 + + refs: add expand_ref()
813 + + t5500, t5539: tests for shallow depth since a specific date
814 + + clone: define shallow clone boundary based on time with --shallow-since
815 + + fetch: define shallow boundary with --shallow-since
816 + + upload-pack: add deepen-since to cut shallow repos based on time
817 + + shallow.c: implement a generic shallow boundary finder based on rev-list
818 + + fetch-pack: use a separate flag for fetch in deepening mode
819 + + fetch-pack.c: mark strings for translating
820 + + fetch-pack: use a common function for verbose printing
821 + + fetch-pack: use skip_prefix() instead of starts_with()
822 + + upload-pack: move rev-list code out of check_non_tip()
823 + + upload-pack: make check_non_tip() clean things up on error
824 + + upload-pack: tighten number parsing at "deepen" lines
825 + + upload-pack: use skip_prefix() instead of starts_with()
826 + + upload-pack: move "unshallow" sending code out of deepen()
827 + + upload-pack: remove unused variable "backup"
828 + + upload-pack: move "shallow" sending code out of deepen()
829 + + upload-pack: move shallow deepen code out of receive_needs()
830 + + transport-helper.c: refactor set_helper_option()
831 + + remote-curl.c: convert fetch_git() to use argv_array
832
833 The existing "git fetch --depth=<n>" option was hard to use
834 correctly when making the history of an existing shallow clone
@@ -910,72 +838,7 @@ of the repositories listed at
838 "I am interested only in the recent N months worth of history" and
839 "Give me only the history since that version".
840
913 - Needs review.
914 -
915 - Rerolled. What this topic attempts to achieve is worthwhile, I
916 - would think.
917 -
918 -
919 -* pb/bisect (2016-08-23) 27 commits
920 - . bisect--helper: remove the dequote in bisect_start()
921 - . bisect--helper: retire `--bisect-auto-next` subcommand
922 - . bisect--helper: retire `--bisect-autostart` subcommand
923 - . bisect--helper: retire `--check-and-set-terms` subcommand
924 - . bisect--helper: retire `--bisect-write` subcommand
925 - . bisect--helper: `bisect_replay` shell function in C
926 - . bisect--helper: `bisect_log` shell function in C
927 - . bisect--helper: retire `--write-terms` subcommand
928 - . bisect--helper: retire `--check-expected-revs` subcommand
929 - . bisect--helper: `bisect_state` & `bisect_head` shell function in C
930 - . bisect--helper: `bisect_autostart` shell function in C
931 - . bisect--helper: retire `--next-all` subcommand
932 - . bisect--helper: retire `--bisect-clean-state` subcommand
933 - . bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
934 - . bisect--helper: `bisect_start` shell function partially in C
935 - . bisect--helper: `get_terms` & `bisect_terms` shell function in C
936 - . bisect--helper: `bisect_next_check` & bisect_voc shell function in C
937 - . bisect--helper: `check_and_set_terms` shell function in C
938 - . bisect--helper: `bisect_write` shell function in C
939 - . bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
940 - . bisect--helper: `bisect_reset` shell function in C
941 - . wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
942 - . t6030: explicitly test for bisection cleanup
943 - . bisect--helper: `bisect_clean_state` shell function in C
944 - . bisect--helper: `write_terms` shell function in C
945 - . bisect: rewrite `check_term_format` shell function in C
946 - . bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
947 -
948 - GSoC "bisect" topic.
949 -
950 - I'd prefer to see early part solidified so that reviews can focus
951 - on the later part that is still in flux. We are almost there but
952 - not quite yet.
953 -
954 -
955 -* kn/ref-filter-branch-list (2016-05-17) 17 commits
956 - - branch: implement '--format' option
957 - - branch: use ref-filter printing APIs
958 - - branch, tag: use porcelain output
959 - - ref-filter: allow porcelain to translate messages in the output
960 - - ref-filter: add `:dir` and `:base` options for ref printing atoms
961 - - ref-filter: make remote_ref_atom_parser() use refname_atom_parser_internal()
962 - - ref-filter: introduce symref_atom_parser() and refname_atom_parser()
963 - - ref-filter: introduce refname_atom_parser_internal()
964 - - ref-filter: make "%(symref)" atom work with the ':short' modifier
965 - - ref-filter: add support for %(upstream:track,nobracket)
966 - - ref-filter: make %(upstream:track) prints "[gone]" for invalid upstreams
967 - - ref-filter: introduce format_ref_array_item()
968 - - ref-filter: move get_head_description() from branch.c
969 - - ref-filter: modify "%(objectname:short)" to take length
970 - - ref-filter: implement %(if:equals=<string>) and %(if:notequals=<string>)
971 - - ref-filter: include reference to 'used_atom' within 'atom_value'
972 - - ref-filter: implement %(if), %(then), and %(else) atoms
973 -
974 - The code to list branches in "git branch" has been consolidated
975 - with the more generic ref-filter API.
976 -
977 - Rerolled.
978 - Needs review.
841 + Will hold to see if it is broken.
842
843
844 * jc/merge-drop-old-syntax (2015-04-29) 1 commit