What's cooking (2016/10 #01)

Junio C Hamano committed Oct 3, 2016 at 15:25 UTC 374104b7461c270398f753ed892b89224a97a987
1 file changed +313 -336
whats-cooking.txt
+313 -336
@@ -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, #08; Tue, 27)
4 -X-master-at: 21f862b498925194f8f1ebe8203b7a7df756555b
5 -X-next-at: 59e95dbc0e21ff4f326eb160a9f4c21e1a059f56
3 +Subject: What's cooking in git.git (Oct 2016, #01; Mon, 3)
4 +X-master-at: 0cf36115dce7438a0eafad54a81cc57175e8fb54
5 +X-next-at: 9af6bb63e9b9efbcd0064516a7811092873d1ddf
6
7 -What's cooking in git.git (Sep 2016, #08; Tue, 27)
7 +What's cooking in git.git (Oct 2016, #01; Mon, 3)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,6 +12,12 @@ 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 +With fixes since 2.10 accumulated on the 'master' front, the first
16 +maintenance release 2.10.1 has been tagged. The auto-abbreviation
17 +by Linus and Peff is now in 'next'. The tip of 'master' has quite a
18 +many topics merged since the last report. Pat is back and hopefully
19 +be more active as the git-gui maintainer. Life is good ;-)
20 +
21 You can find the changes described here in the integration branches
22 of the repositories listed at
23
@@ -20,243 +26,144 @@ of the repositories listed at
26 --------------------------------------------------
27 [Graduated to "master"]
28
23 -* mh/diff-indent-heuristic (2016-09-19) 8 commits
24 - (merged to 'next' on 2016-09-22 at e71d742)
25 - + blame: honor the diff heuristic options and config
26 - + parse-options: add parse_opt_unknown_cb()
27 - + diff: improve positioning of add/delete blocks in diffs
28 - + xdl_change_compact(): introduce the concept of a change group
29 - + recs_match(): take two xrecord_t pointers as arguments
30 - + is_blank_line(): take a single xrecord_t as argument
31 - + xdl_change_compact(): only use heuristic if group can't be matched
32 - + xdl_change_compact(): fix compaction heuristic to adjust ixo
33 -
34 - Output from "git diff" can be made easier to read by selecting
35 - which lines are common and which lines are added/deleted
36 - intelligently when the lines before and after the changed section
37 - are the same. A command line option is added to help with the
38 - experiment to find a good heuristics.
39 - * mh/diff-indent-heuristic (2016-09-27) 1 commit
40 - - xdiff: rename "struct group" to "struct xdlgroup"
41 -
42 - Clean-up for a recently graduated topic.
43 -
44 -
45 -* rs/cocci (2016-09-15) 3 commits
46 - (merged to 'next' on 2016-09-22 at aa54fa4)
47 - + use strbuf_addstr() for adding constant strings to a strbuf, part 2
48 - + add coccicheck make target
49 - + contrib/coccinelle: fix semantic patch for oid_to_hex_r()
50 -
51 - Code cleanup.
52 -
53 -
54 -* ep/doc-check-ref-format-example (2016-09-21) 1 commit
55 - (merged to 'next' on 2016-09-22 at 6d0d79e)
56 - + git-check-ref-format.txt: fixup documentation
57 -
58 - A shell script example in check-ref-format documentation has been
59 - fixed.
60 -
61 -
62 -* jk/clone-recursive-progress (2016-09-22) 1 commit
63 - (merged to 'next' on 2016-09-22 at 8310c42)
64 - + clone: pass --progress decision to recursive submodules
65 -
66 - "git clone --recurse-submodules" lost the progress eye-candy in
67 - recent update, which has been corrected.
68 -
69 -
70 -* jk/doc-cvs-update (2016-09-22) 3 commits
71 - (merged to 'next' on 2016-09-22 at c0f949f)
72 - + docs/cvs-migration: mention cvsimport caveats
73 - + docs/cvs-migration: update link to cvsps homepage
74 - + docs/cvsimport: prefer cvs-fast-export to parsecvs
75 -
76 - Documentation around tools to import from CVS was fairly outdated.
77 -
78 -
79 -* js/regexec-buf (2016-09-21) 3 commits
80 - (merged to 'next' on 2016-09-22 at 2ee2477)
81 - + regex: use regexec_buf()
82 - + regex: add regexec_buf() that can work on a non NUL-terminated string
83 - + regex: -G<pattern> feeds a non NUL-terminated string to regexec() and fails
29 +* dt/mailinfo (2016-09-26) 1 commit
30 + (merged to 'next' on 2016-09-27 at 59e95dbc0e)
31 + + add David Turner's Two Sigma address
32
85 - Some codepaths in "git diff" used regexec(3) on a buffer that was
86 - mmap(2)ed, which may not have a terminating NUL, leading to a read
87 - beyond the end of the mapped region. This was fixed by introducing
88 - a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND
89 - extension.
33
34 +* dt/tree-fsck (2016-09-27) 2 commits
35 + (merged to 'next' on 2016-09-28 at afdfdbbf37)
36 + + fsck: handle bad trees like other errors
37 + + tree-walk: be more specific about corrupt tree errors
38
92 -* jt/format-patch-rfc (2016-09-21) 1 commit
93 - (merged to 'next' on 2016-09-22 at 3b39442)
94 - + format-patch: add "--rfc" for the common case of [RFC PATCH]
39 + The codepath in "git fsck" to detect malformed tree objects has
40 + been updated not to die but keep going after detecting them.
41
96 - In some projects, it is common to use "[RFC PATCH]" as the subject
97 - prefix for a patch meant for discussion rather than application. A
98 - new option "--rfc" was a short-hand for "--subject-prefix=RFC PATCH"
99 - to help the participants of such projects.
42
43 +* ik/gitweb-force-highlight (2016-09-25) 2 commits
44 + (merged to 'next' on 2016-09-27 at cbb8391a76)
45 + + gitweb: use highlight's shebang detection
46 + + gitweb: remove unused guess_file_syntax() parameter
47
102 -* ls/travis-homebrew-path-fix (2016-09-22) 1 commit
103 - (merged to 'next' on 2016-09-22 at 310e620)
104 - + travis-ci: ask homebrew for its path instead of hardcoding it
48 + "gitweb" can spawn "highlight" to show blob contents with
49 + (programming) language-specific syntax highlighting, but only
50 + when the language is known. "highlight" can however be told
51 + to make the guess itself by giving it "--force" option, which
52 + has been enabled.
53
106 - The procedure to build Git on Mac OS X for Travis CI hardcoded the
107 - internal directory structure we assumed HomeBrew uses, which was a
108 - no-no. The procedure has been updated to ask HomeBrew things we
109 - need to know to fix this.
54
55 +* jc/verify-loose-object-header (2016-09-26) 2 commits
56 + (merged to 'next' on 2016-09-27 at 2947f95f14)
57 + + unpack_sha1_header(): detect malformed object header
58 + + streaming: make sure to notice corrupt object
59
112 -* mm/config-color-ui-default-to-auto (2016-09-16) 1 commit
113 - (merged to 'next' on 2016-09-22 at 4eac0cb)
114 - + Documentation/config: default for color.* is color.ui
60 + Codepaths that read from an on-disk loose object were too loose in
61 + validating what they are reading is a proper object file and
62 + sometimes read past the data they read from the disk, which has
63 + been corrected. H/t to Gustavo Grieco for reporting.
64
116 - Documentation for individual configuration variables to control use
117 - of color (like `color.grep`) said that their default value is
118 - 'false', instead of saying their default is taken from `color.ui`.
119 - When we updated the default value for color.ui from 'false' to
120 - 'auto' quite a while ago, all of them broke. This has been
121 - corrected.
65
66 +* jc/worktree-config (2016-09-27) 1 commit
67 + (merged to 'next' on 2016-09-28 at 0c262f6)
68 + + worktree: honor configuration variables
69
124 -* nd/checkout-disambiguation (2016-09-21) 3 commits
125 - (merged to 'next' on 2016-09-22 at ebfa365)
126 - + checkout: fix ambiguity check in subdir
127 - + checkout.txt: document a common case that ignores ambiguation rules
128 - + checkout: add some spaces between code and comment
70 + "git worktree", even though it used the default_abbrev setting that
71 + ought to be affected by core.abbrev configuration variable, ignored
72 + the variable setting. The command has been taught to read the
73 + default set of configuration variables to correct this.
74
130 - "git checkout <word>" does not follow the usual disambiguation
131 - rules when the <word> can be both a rev and a path, to allow
132 - checking out a branch 'foo' in a project that happens to have a
133 - file 'foo' in the working tree without having to disambiguate.
134 - This was poorly documented and the check was incorrect when the
135 - command was run from a subdirectory.
75
76 +* jk/ident-ai-canonname-could-be-null (2016-09-23) 1 commit
77 + (merged to 'next' on 2016-09-26 at 0eefb29)
78 + + ident: handle NULL ai_canonname
79
138 -* rs/c-auto-resets-attributes (2016-09-19) 1 commit
139 - (merged to 'next' on 2016-09-22 at 68f2e4a)
140 - + pretty: let %C(auto) reset all attributes
80 + In the codepath that comes up with the hostname to be used in an
81 + e-mail when the user didn't tell us, we looked at ai_canonname
82 + field in struct addrinfo without making sure it is not NULL first.
83
142 - The pretty-format specifier "%C(auto)" used by the "log" family of
143 - commands to enable coloring of the output is taught to also issue a
144 - color-reset sequence to the output.
84
85 +* jk/verify-packfile-gently (2016-09-22) 1 commit
86 + (merged to 'next' on 2016-09-26 at f5abba5)
87 + + verify_packfile: check pack validity before accessing data
88
147 -* rs/checkout-init-macro (2016-09-22) 1 commit
148 - (merged to 'next' on 2016-09-22 at 6513755)
149 - + introduce CHECKOUT_INIT
89 + A low-level function verify_packfile() was meant to show errors
90 + that were detected without dying itself, but under some conditions
91 + it didn't and died instead, which has been fixed.
92
151 - Code cleanup.
93
94 +* jt/fetch-pack-in-vain-count-with-stateless (2016-09-23) 1 commit
95 + (merged to 'next' on 2016-09-26 at 9645629)
96 + + fetch-pack: do not reset in_vain on non-novel acks
97
154 -* rt/rebase-i-broken-insn-advise (2016-09-07) 1 commit
155 - (merged to 'next' on 2016-09-23 at 0d12484)
156 - + rebase -i: improve advice on bad instruction lines
98 + When "git fetch" tries to find where the history of the repository
99 + it runs in has diverged from what the other side has, it has a
100 + mechanism to avoid digging too deep into irrelevant side branches.
101 + This however did not work well over the "smart-http" transport due
102 + to a design bug, which has been fixed.
103
158 - When "git rebase -i" is given a broken instruction, it told the
159 - user to fix it with "--edit-todo", but didn't say what the step
160 - after that was (i.e. "--continue").
104
105 +* jt/mailinfo-fold-in-body-headers (2016-09-21) 3 commits
106 + (merged to 'next' on 2016-09-26 at 4235eb6)
107 + + mailinfo: handle in-body header continuations
108 + + mailinfo: make is_scissors_line take plain char *
109 + + mailinfo: separate in-body header processing
110
163 -* tg/add-chmod+x-fix (2016-09-21) 6 commits
164 - (merged to 'next' on 2016-09-22 at 6afdd21)
165 - + t3700-add: do not check working tree file mode without POSIXPERM
166 - + t3700-add: create subdirectory gently
167 - + add: modify already added files when --chmod is given
168 - + read-cache: introduce chmod_index_entry
169 - + update-index: add test for chmod flags
170 - + Merge branch 'ib/t3700-add-chmod-x-updates' into tg/add-chmod+x-fix
111 + When "git format-patch --stdout" output is placed as an in-body
112 + header and it uses the RFC2822 header folding, "git am" failed to
113 + put the header line back into a single logical line. The
114 + underlying "git mailinfo" was taught to handle this properly.
115
172 - "git add --chmod=+x <pathspec>" added recently only toggled the
173 - executable bit for paths that are either new or modified. This has
174 - been corrected to flip the executable bit for all paths that match
175 - the given pathspec.
116
117 +* kd/mailinfo-quoted-string (2016-09-28) 2 commits
118 + (merged to 'next' on 2016-09-28 at 2aaeb57804)
119 + + mailinfo: unescape quoted-pair in header fields
120 + + t5100-mailinfo: replace common path prefix with variable
121
178 -* va/i18n-more (2016-09-21) 6 commits
179 - (merged to 'next' on 2016-09-22 at bea26e8)
180 - + i18n: stash: mark messages for translation
181 - + i18n: notes-merge: mark die messages for translation
182 - + i18n: ident: mark hint for translation
183 - + i18n: i18n: diff: mark die messages for translation
184 - + i18n: connect: mark die messages for translation
185 - + i18n: commit: mark message for translation
122 + An author name, that spelled a backslash-quoted double quote in the
123 + human readable part "My \"double quoted\" name", was not unquoted
124 + correctly while applying a patch from a piece of e-mail.
125
187 - Even more i18n.
188 -
189 ---------------------------------------------------
190 -[New Topics]
126
127 * mh/diff-indent-heuristic (2016-09-27) 1 commit
193 - (merged to 'next' on 2016-09-27 at 3d6fb66)
128 + (merged to 'next' on 2016-09-27 at 3d6fb6605a)
129 + xdiff: rename "struct group" to "struct xdlgroup"
130
131 Clean-up for a recently graduated topic.
132
198 - Will merge to 'master'.
199 -
200 -
201 -* rs/cocci (2016-09-27) 3 commits
202 - - use strbuf_add_unique_abbrev() for adding short hashes, part 2
203 - - use strbuf_addstr() instead of strbuf_addf() with "%s", part 2
204 - - gitignore: ignore output files of coccicheck make target
205 -
206 - Code clean-up with help from coccinelle tool continues.
207 -
208 - Will merge to 'next'.
209 -
210 -
211 -* jc/verify-loose-object-header (2016-09-26) 2 commits
212 - (merged to 'next' on 2016-09-27 at 2947f95)
213 - + unpack_sha1_header(): detect malformed object header
214 - + streaming: make sure to notice corrupt object
215 -
216 - Codepaths that read from an on-disk loose object were too loose in
217 - validating what they are reading is a proper object file and
218 - sometimes read past the data they read from the disk, which has
219 - been corrected. H/t to Gustavo Grieco for reporting.
133
221 - Will merge to 'master'.
134 +* nd/init-core-worktree-in-multi-worktree-world (2016-09-25) 5 commits
135 + (merged to 'next' on 2016-09-27 at 619f7f3a3b)
136 + + init: kill git_link variable
137 + + init: do not set unnecessary core.worktree
138 + + init: kill set_git_dir_init()
139 + + init: call set_git_dir_init() from within init_db()
140 + + init: correct re-initialization from a linked worktree
141
142 + "git init" tried to record core.worktree in the repository's
143 + 'config' file when GIT_WORK_TREE environment variable was set and
144 + it was different from where GIT_DIR appears as ".git" at its top,
145 + but the logic was faulty when .git is a "gitdir:" file that points
146 + at the real place, causing trouble in working trees that are
147 + managed by "git worktree". This has been corrected.
148
224 -* jk/ambiguous-short-object-names (2016-09-27) 11 commits
225 - - get_short_sha1: make default disambiguation configurable
226 - - get_short_sha1: list ambiguous objects on error
227 - - for_each_abbrev: drop duplicate objects
228 - - sha1_array: let callbacks interrupt iteration
229 - - get_short_sha1: mark ambiguity error for translation
230 - - get_short_sha1: NUL-terminate hex prefix
231 - - get_short_sha1: refactor init of disambiguation code
232 - - get_short_sha1: parse tags when looking for treeish
233 - - get_sha1: propagate flags to child functions
234 - - get_sha1: avoid repeating ourselves via ONLY_TO_DIE
235 - - get_sha1: detect buggy calls with multiple disambiguators
149
237 - When given an abbreviated object name that is not (or more
238 - realistically, "no longer") unique, we gave a fatal error
239 - "ambiguous argument". This error is now accompanied by hints that
240 - lists the objects that begins with the given prefix. During the
241 - course of development of this new feature, numerous minor bugs were
242 - uncovered and corrected, the most notable one of which is that we
243 - gave "short SHA1 xxxx is ambiguous." twice without good reason.
150 +* pb/rev-list-reverse-with-count (2016-09-27) 1 commit
151 + (merged to 'next' on 2016-09-28 at 2905d0adbc)
152 + + rev-list-options: clarify the usage of --reverse
153
245 - Will merge to 'next'.
154 + Doc update to clarify what "log -3 --reverse" does.
155
156
157 * rs/copy-array (2016-09-25) 2 commits
249 - (merged to 'next' on 2016-09-27 at c92e020)
158 + (merged to 'next' on 2016-09-27 at c92e020669)
159 + use COPY_ARRAY
160 + add COPY_ARRAY
161
162 Code cleanup.
163
255 - Will merge to 'master'.
256 -
164
165 * rs/git-gui-use-modern-git-merge-syntax (2016-09-26) 2 commits
259 - (merged to 'next' on 2016-09-27 at f55850d)
166 + (merged to 'next' on 2016-09-27 at f55850df7d)
167 + Merge branch 'rs/use-modern-git-merge-syntax' of git-gui into rs/git-gui-use-modern-git-merge-syntax
168 + git-gui: stop using deprecated merge syntax
169
@@ -265,108 +172,188 @@ of the repositories listed at
172 time, and "git gui" was the last in-tree user of the syntax. This
173 is finally fixed, so that we can move forward with the deprecation.
174
268 - Will merge to 'master'.
269 -
175
176 * va/git-gui-i18n (2016-09-26) 3 commits
272 - (merged to 'next' on 2016-09-27 at ab0f66f)
177 + (merged to 'next' on 2016-09-27 at ab0f66ff8a)
178 + Merge branch 'va/i18n' of ../git-gui into va/git-gui-i18n
179 + git-gui: l10n: add Portuguese translation
180 + git-gui i18n: mark strings for translation
181
182 "git gui" l10n to Portuguese.
183
184 +--------------------------------------------------
185 +[New Topics]
186 +
187 +* rs/cocci (2016-10-03) 4 commits
188 + (merged to 'next' on 2016-10-03 at 758cc6de9c)
189 + + coccicheck: make transformation for strbuf_addf(sb, "...") more precise
190 + (merged to 'next' on 2016-09-28 at 26462645f9)
191 + + use strbuf_add_unique_abbrev() for adding short hashes, part 2
192 + + use strbuf_addstr() instead of strbuf_addf() with "%s", part 2
193 + + gitignore: ignore output files of coccicheck make target
194 +
195 + Code clean-up with help from coccinelle tool continues.
196 +
197 Will merge to 'master'.
198
199
282 -* va/i18n-perl-scripts (2016-09-25) 11 commits
283 - - i18n: difftool: mark warnings for translation
284 - - i18n: send-email: mark string with interpolation for translation
285 - - i18n: send-email: mark warnings and errors for translation
286 - - i18n: send-email: mark strings for translation
287 - - i18n: add--interactive: mark edit_hunk_manually message for translation
288 - - i18n: add--interactive: i18n of help_patch_cmd
289 - - i18n: add--interactive: mark message for translation
290 - - i18n: add--interactive: mark plural strings
291 - - i18n: add--interactive: mark strings with interpolation for translation
292 - - i18n: add--interactive: mark simple here documents for translation
293 - - i18n: add--interactive: mark strings for translation
200 +* nd/ita-empty-commit (2016-09-28) 3 commits
201 + - commit: don't be fooled by ita entries when creating initial commit
202 + - diff-lib.c: enable --shift-ita in index_differs_from()
203 + - Resurrect "diff-lib.c: adjust position of i-t-a entries in diff"
204
295 - Porcelain scripts written in Perl are getting internationalized.
205 + When new paths were added by "git add -N" to the index, it was
206 + enough to circumvent the check by "git commit" to refrain from
207 + making an empty commit without "--allow-empty". The same logic
208 + prevented "git status" to show such a path as "new file" in the
209 + "Changes not staged for commit" section.
210
297 - Waiting for a reroll.
298 - cf. <1474913721.1035.9.camel@sapo.pt>
211 + Expecting a reroll.
212 + cf. <xmqqzimrj03j.fsf@gitster.mtv.corp.google.com>
213 + cf. <xmqq8tubkgg5.fsf@gitster.mtv.corp.google.com>
214
215
301 -* vn/revision-shorthand-for-side-branch-log (2016-09-27) 1 commit
302 - - revision: new rev^-n shorthand for rev^n..rev
216 +* jc/blame-abbrev (2016-09-28) 1 commit
217 + (merged to 'next' on 2016-10-03 at 8ec86ff1e1)
218 + + blame: use DEFAULT_ABBREV macro
219
304 - "git log rev^..rev" is an often-used revision range specification
305 - to show what was done on a side branch merged at rev, which has
306 - gained a short-hand "rev^-1". In general "rev^-$n" is the same as
307 - "^rev^$n rev", i.e. what was done while the history leading to nth
308 - parent was looking the other way.
220 + Almost everybody uses DEFAULT_ABBREV to refer to the default
221 + setting for the abbreviation, but "git blame" peeked into
222 + underlying variable bypassing the macro for no good reason.
223
310 - Will merge to 'next'.
224 + Will merge to 'master'.
225
226
313 -* dt/mailinfo (2016-09-26) 1 commit
314 - (merged to 'next' on 2016-09-27 at 59e95db)
315 - + add David Turner's Two Sigma address
227 +* lt/abbrev-auto (2016-10-03) 3 commits
228 + (merged to 'next' on 2016-10-03 at bb188d00f7)
229 + + abbrev: auto size the default abbreviation
230 + + abbrev: prepare for new world order
231 + + abbrev: add FALLBACK_DEFAULT_ABBREV to prepare for auto sizing
232 + (this branch uses jk/ambiguous-short-object-names.)
233 +
234 + Allow the default abbreviation length, which has historically been
235 + 7, to scale as the repository grows. The logic suggests to use 12
236 + hexdigits for the Linux kernel, and 9 to 10 for Git itself.
237
238 Will merge to 'master'.
239
240
320 -* dt/tree-fsck (2016-09-27) 2 commits
321 - - fsck: handle bad trees like other errors
322 - - tree-walk: be more specific about corrupt tree errors
241 +* dt/http-empty-auth (2016-10-03) 1 commit
242 + - http: http.emptyauth should allow empty (not just NULL) usernames
243
324 - The codepath in "git fsck" to detect malformed tree objects has
325 - been updated not to die but keep going after detecting them.
244 + http.emptyauth configuration is a way to allow an empty username to
245 + pass when attempting to authenticate using mechanisms like
246 + Kerberos. We took an unspecified (NULL) username and sent ":"
247 + (i.e. no username, no password) to CURLOPT_USERPWD, but did not do
248 + the same when the username is explicitly set to an empty string.
249
327 - Will merge to 'next'.
250 + cf. <20161003210100.t5nqknwfotag3lmj@sigill.intra.peff.net>
251
252
330 -* jc/latin-1 (2016-09-26) 2 commits
331 - - utf8: accept "latin-1" as ISO-8859-1
332 - - utf8: refactor code to decide fallback encoding
253 +* jc/diff-unique-abbrev-comments (2016-09-30) 1 commit
254 + - diff_unique_abbrev(): document its assumption and limitation
255
334 - Some platforms no longer understand "latin-1" that is still seen in
335 - the wild in e-mail headers; replace them with "iso-8859-1" that is
336 - more widely known when conversion fails from/to it.
256
338 - Will merge to 'next'.
257 +* jk/graph-padding-fix (2016-09-29) 1 commit
258 + (merged to 'next' on 2016-10-03 at 3f526e0f38)
259 + + graph: fix extra spaces in graph_padding_line
260
261 + The "graph" API used in "git log --graph" miscounted the number of
262 + output columns consumed so far when drawing a padding line, which
263 + has been fixed; this did not affect any existing code as nobody
264 + tried to write anything after the padding on such a line, though.
265
341 -* jc/worktree-config (2016-09-27) 1 commit
342 - - worktree: honor configuration variables
266 + Will merge to 'master'.
267
344 - "git worktree", even though it used the default_abbrev setting that
345 - ought to be affected by core.abbrev configuration variable, ignored
346 - the variable setting. The command has been taught to read the
347 - default set of configuration variables to correct this.
268
349 - Will merge to 'next'.
269 +* jk/quarantine-received-objects (2016-10-03) 5 commits
270 + - tmp-objdir: do not migrate files starting with '.'
271 + - tmp-objdir: put quarantine information in the environment
272 + - receive-pack: quarantine objects until pre-receive accepts
273 + - tmp-objdir: introduce API for temporary object directories
274 + - check_connected: accept an env argument
275 + (this branch uses jk/alt-odb-cleanup.)
276
277 + In order for the receiving end of "git push" to inspect the
278 + received history and decide to reject the push, the objects sent
279 + from the sending end need to be made available to the hook and
280 + the mechanism for the connectivity check, and this was done
281 + traditionally by storing the objects in the receiving repository
282 + and letting "git gc" to expire it. Instead, store the newly
283 + received objects in a temporary area, and make them available by
284 + reusing the alternate object store mechanism to them only while we
285 + decide if we accept the check, and once we decide, either migrate
286 + them to the repository or purge them immediately.
287
352 -* mg/gpg-richer-status (2016-09-27) 1 commit
353 - - gpg-interface: use more status letters
288
355 - The GPG verification status shown in "%G?" pretty format specifier
356 - was not rich enough to differentiate a signature made by an expired
357 - key, a signature made by a revoked key, etc. New output letters
358 - have been assigned to express them.
289 +* ps/http-gssapi-cred-delegation (2016-09-29) 1 commit
290 + (merged to 'next' on 2016-10-03 at 310fbe8f24)
291 + + http: control GSSAPI credential delegation
292
360 - Will merge to 'next'.
293 + In recent versions of cURL, GSSAPI credential delegation is
294 + disabled by default due to CVE-2011-2192; introduce a configuration
295 + to selectively allow enabling this.
296 +
297 + Will merge to 'master'.
298
299
363 -* pb/rev-list-reverse-with-count (2016-09-27) 1 commit
364 - - rev-list-options: clarify the usage of --reverse
300 +* rs/c-auto-resets-attributes (2016-09-29) 1 commit
301 + (merged to 'next' on 2016-10-03 at 6a0b946a79)
302 + + pretty: avoid adding reset for %C(auto) if output is empty
303
366 - Doc update.
304 + When "%C(auto)" appears at the very beginning of the pretty format
305 + string, it did not need to issue the reset sequence, but it did.
306 +
307 + Will merge to 'master'.
308 + This is a small optimization to already graduated topic.
309 +
310 +
311 +* rs/qsort (2016-10-03) 6 commits
312 + - show-branch: use QSORT
313 + - use QSORT, part 2
314 + - coccicheck: use --all-includes by default
315 + - remove unnecessary check before QSORT
316 + - use QSORT
317 + - add QSORT
318 +
319 + We call "qsort(array, nelem, sizeof(array[0]), fn)", and most of
320 + the time third parameter is redundant. A new QSORT() macro lets us
321 + omit it.
322
323 Will merge to 'next'.
324
325 +
326 +* sg/ref-filter-parse-optim (2016-10-03) 1 commit
327 + (merged to 'next' on 2016-10-03 at 9af6bb63e9)
328 + + ref-filter: strip format option after a field name only once while parsing
329 +
330 + The code that parses the format parameter of for-each-ref command
331 + has seen a micro-optimization.
332 +
333 + Will merge to 'master'.
334 +
335 +
336 +* jk/alt-odb-cleanup (2016-10-03) 18 commits
337 + - alternates: use fspathcmp to detect duplicates
338 + - sha1_file: always allow relative paths to alternates
339 + - count-objects: report alternates via verbose mode
340 + - fill_sha1_file: write into a strbuf
341 + - alternates: store scratch buffer as strbuf
342 + - fill_sha1_file: write "boring" characters
343 + - alternates: use a separate scratch space
344 + - alternates: encapsulate alt->base munging
345 + - alternates: provide helper for allocating alternate
346 + - alternates: provide helper for adding to alternates list
347 + - link_alt_odb_entry: refactor string handling
348 + - link_alt_odb_entry: handle normalize_path errors
349 + - t5613: clarify "too deep" recursion tests
350 + - t5613: do not chdir in main process
351 + - t5613: whitespace/style cleanups
352 + - t5613: use test_must_fail
353 + - t5613: drop test_valid_repo function
354 + - t5613: drop reachable_via function
355 + (this branch is used by jk/quarantine-received-objects.)
356 +
357 --------------------------------------------------
358 [Stalled]
359
@@ -668,57 +655,87 @@ of the repositories listed at
655 --------------------------------------------------
656 [Cooking]
657
671 -* jk/verify-packfile-gently (2016-09-22) 1 commit
672 - (merged to 'next' on 2016-09-26 at f5abba5)
673 - + verify_packfile: check pack validity before accessing data
658 +* jk/ambiguous-short-object-names (2016-09-27) 11 commits
659 + (merged to 'next' on 2016-09-28 at 1b85295323)
660 + + get_short_sha1: make default disambiguation configurable
661 + + get_short_sha1: list ambiguous objects on error
662 + + for_each_abbrev: drop duplicate objects
663 + + sha1_array: let callbacks interrupt iteration
664 + + get_short_sha1: mark ambiguity error for translation
665 + + get_short_sha1: NUL-terminate hex prefix
666 + + get_short_sha1: refactor init of disambiguation code
667 + + get_short_sha1: parse tags when looking for treeish
668 + + get_sha1: propagate flags to child functions
669 + + get_sha1: avoid repeating ourselves via ONLY_TO_DIE
670 + + get_sha1: detect buggy calls with multiple disambiguators
671 + (this branch is used by lt/abbrev-auto.)
672
675 - A low-level function verify_packfile() was meant to show errors
676 - that were detected without dying itself, but under some conditions
677 - it didn't and died instead, which has been fixed.
673 + When given an abbreviated object name that is not (or more
674 + realistically, "no longer") unique, we gave a fatal error
675 + "ambiguous argument". This error is now accompanied by hints that
676 + lists the objects that begins with the given prefix. During the
677 + course of development of this new feature, numerous minor bugs were
678 + uncovered and corrected, the most notable one of which is that we
679 + gave "short SHA1 xxxx is ambiguous." twice without good reason.
680
681 Will merge to 'master'.
682
683
682 -* jt/fetch-pack-in-vain-count-with-stateless (2016-09-23) 1 commit
683 - (merged to 'next' on 2016-09-26 at 9645629)
684 - + fetch-pack: do not reset in_vain on non-novel acks
684 +* va/i18n-perl-scripts (2016-09-25) 11 commits
685 + - i18n: difftool: mark warnings for translation
686 + - i18n: send-email: mark string with interpolation for translation
687 + - i18n: send-email: mark warnings and errors for translation
688 + - i18n: send-email: mark strings for translation
689 + - i18n: add--interactive: mark edit_hunk_manually message for translation
690 + - i18n: add--interactive: i18n of help_patch_cmd
691 + - i18n: add--interactive: mark message for translation
692 + - i18n: add--interactive: mark plural strings
693 + - i18n: add--interactive: mark strings with interpolation for translation
694 + - i18n: add--interactive: mark simple here documents for translation
695 + - i18n: add--interactive: mark strings for translation
696
686 - When "git fetch" tries to find where the history of the repository
687 - it runs inhas diverged from what the other side has, it has a
688 - mechanism to avoid digging too deep into irrelevant side branches.
689 - This however did not work well over the "smart-http" transport due
690 - to a design bug, which has been fixed.
697 + Porcelain scripts written in Perl are getting internationalized.
698
692 - Will merge to 'master'.
699 + Waiting for a reroll.
700 + cf. <1474913721.1035.9.camel@sapo.pt>
701
702
695 -* ik/gitweb-force-highlight (2016-09-25) 2 commits
696 - (merged to 'next' on 2016-09-27 at cbb8391)
697 - + gitweb: use highlight's shebang detection
698 - + gitweb: remove unused guess_file_syntax() parameter
703 +* vn/revision-shorthand-for-side-branch-log (2016-09-27) 1 commit
704 + (merged to 'next' on 2016-09-28 at c1237b24f6)
705 + + revision: new rev^-n shorthand for rev^n..rev
706
700 - "gitweb" can spawn "highlight" to show blob contents with
701 - (programming) language-specific syntax highlighting, but only
702 - when the language is known. "highlight" can however be told
703 - to make the guess itself by giving it "--force" option, which
704 - has been enabled.
707 + "git log rev^..rev" is an often-used revision range specification
708 + to show what was done on a side branch merged at rev. This has
709 + gained a short-hand "rev^-1". In general "rev^-$n" is the same as
710 + "^rev^$n rev", i.e. what has happened on other branches while the
711 + history leading to nth parent was looking the other way.
712
713 Will merge to 'master'.
714
715
709 -* jk/ident-ai-canonname-could-be-null (2016-09-23) 1 commit
710 - (merged to 'next' on 2016-09-26 at 0eefb29)
711 - + ident: handle NULL ai_canonname
716 +* jc/latin-1 (2016-09-26) 2 commits
717 + (merged to 'next' on 2016-09-28 at c8673e03c2)
718 + + utf8: accept "latin-1" as ISO-8859-1
719 + + utf8: refactor code to decide fallback encoding
720
713 - In the codepath that comes up with the hostname to be used in an
714 - e-mail when the user didn't tell us, we looked at ai_canonname
715 - field in struct addrinfo without making sure it is not NULL first.
721 + Some platforms no longer understand "latin-1" that is still seen in
722 + the wild in e-mail headers; replace them with "iso-8859-1" that is
723 + more widely known when conversion fails from/to it.
724
717 - Will merge to 'master'.
725 + Will hold to see if people scream.
726 +
727 +
728 +* mg/gpg-richer-status (2016-09-28) 1 commit
729 + - gpg-interface: use more status letters
730 +
731 + The GPG verification status shown in "%G?" pretty format specifier
732 + was not rich enough to differentiate a signature made by an expired
733 + key, a signature made by a revoked key, etc. New output letters
734 + have been assigned to express them.
735
736
737 * jc/blame-reverse (2016-06-14) 2 commits
721 - (merged to 'next' on 2016-09-22 at d1a8e9c)
738 + (merged to 'next' on 2016-09-22 at d1a8e9ce99)
739 + blame: dwim "blame --reverse OLD" as "blame --reverse OLD.."
740 + blame: improve diagnosis for "--reverse NEW"
741
@@ -730,51 +747,6 @@ of the repositories listed at
747 Will hold to see if it is broken.
748
749
733 -* nd/init-core-worktree-in-multi-worktree-world (2016-09-25) 5 commits
734 - (merged to 'next' on 2016-09-27 at 619f7f3)
735 - + init: kill git_link variable
736 - + init: do not set unnecessary core.worktree
737 - + init: kill set_git_dir_init()
738 - + init: call set_git_dir_init() from within init_db()
739 - + init: correct re-initialization from a linked worktree
740 -
741 - "git init" tried to record core.worktree in the repository's
742 - 'config' file when GIT_WORK_TREE environment variable was set and
743 - it was different from where GIT_DIR appears as ".git" at its top,
744 - but the logic was faulty when .git is a "gitdir:" file that points
745 - at the real place, causing trouble in working trees that are
746 - managed by "git worktree". This has been corrected.
747 -
748 - Will merge to 'master'.
749 -
750 -
751 -* jt/mailinfo-fold-in-body-headers (2016-09-21) 3 commits
752 - (merged to 'next' on 2016-09-26 at 4235eb6)
753 - + mailinfo: handle in-body header continuations
754 - + mailinfo: make is_scissors_line take plain char *
755 - + mailinfo: separate in-body header processing
756 -
757 - When "git format-patch --stdout" output is placed as an in-body
758 - header and it uses the RFC2822 header folding, "git am" failed to
759 - put the header line back into a single logical line. The
760 - underlying "git mailinfo" was taught to handle this properly.
761 -
762 - Will merge to 'master'.
763 -
764 -
765 -* kd/mailinfo-quoted-string (2016-09-26) 3 commits
766 - - mailinfo: unescape quoted-pair in header fields
767 - - SQUASH???
768 - - t5100-mailinfo: replace common path prefix with variable
769 -
770 - An e-mail author named that spelled a backslash-quoted double quote
771 - in the human readable part "My \"double quoted\" name" was not
772 - unquoted correctly.
773 -
774 - Waiting for a reroll.
775 - cf. <20160926194455.GB19089@ikke.info>
776 -
777 -
750 * js/libify-require-clean-work-tree (2016-09-12) 5 commits
751 - wt-status: teach has_{unstaged,uncommitted}_changes() about submodules
752 - Export also the has_un{staged,committed}_changed() functions
@@ -792,9 +764,11 @@ of the repositories listed at
764 cf. <xmqqpoo92bdr.fsf@gitster.mtv.corp.google.com>
765
766
795 -* bw/ls-files-recurse-submodules (2016-09-21) 2 commits
767 +* bw/ls-files-recurse-submodules (2016-10-03) 4 commits
768 - ls-files: add pathspec matching for submodules
769 + - ls-files: pass through safe options for --recurse-submodules
770 - ls-files: optionally recurse into submodules
771 + - git: make super-prefix option
772
773 "git ls-files" learned "--recurse-submodules" option that can be
774 used to get a listing of tracked files across submodules (i.e. this
@@ -803,7 +777,7 @@ of the repositories listed at
777 side of a pipe that is read with xargs to work on all working tree
778 files from the top-level superproject.
779
806 - Waiting for the discussion to conclude.
780 + Looking good. Is this ready for 'next'?
781
782
783 * ls/filter-process (2016-09-23) 11 commits
@@ -826,6 +800,9 @@ of the repositories listed at
800 all filtering need is served by this single process for multiple
801 paths, reducing the process creation overhead.
802
803 + Somehow I thought this was getting ready for 'next' but it seems
804 + at least another round of reroll is coming?
805 +
806
807 * hv/submodule-not-yet-pushed-fix (2016-09-14) 2 commits
808 - serialize collection of refs that contain submodule changes
@@ -860,7 +837,7 @@ of the repositories listed at
837
838
839 * cp/completion-negative-refs (2016-08-24) 1 commit
863 - (merged to 'next' on 2016-09-22 at abd1585)
840 + (merged to 'next' on 2016-09-22 at abd1585aa6)
841 + completion: support excluding refs
842
843 The command-line completion script (in contrib/) learned to
@@ -883,7 +860,7 @@ of the repositories listed at
860
861
862 * ak/curl-imap-send-explicit-scheme (2016-08-17) 1 commit
886 - (merged to 'next' on 2016-09-22 at 4449584)
863 + (merged to 'next' on 2016-09-22 at 4449584c26)
864 + imap-send: Tell cURL to use imap:// or imaps://
865
866 When we started cURL to talk to imap server when a new enough
@@ -895,7 +872,7 @@ of the repositories listed at
872
873
874 * jk/pack-objects-optim-mru (2016-08-11) 4 commits
898 - (merged to 'next' on 2016-09-21 at 97b919b)
875 + (merged to 'next' on 2016-09-21 at 97b919bdbd)
876 + pack-objects: use mru list when iterating over packs
877 + pack-objects: break delta cycles before delta-search phase
878 + sha1_file: make packed_object_info public
@@ -912,7 +889,7 @@ of the repositories listed at
889
890
891 * dp/autoconf-curl-ssl (2016-06-28) 1 commit
915 - (merged to 'next' on 2016-09-22 at 9c5aeec)
892 + (merged to 'next' on 2016-09-22 at 9c5aeeced9)
893 + ./configure.ac: detect SSL in libcurl using curl-config
894
895 The ./configure script generated from configure.ac was taught how
@@ -932,7 +909,7 @@ of the repositories listed at
909
910
911 * ex/deprecate-empty-pathspec-as-match-all (2016-06-22) 1 commit
935 - (merged to 'next' on 2016-09-21 at e19148e)
912 + (merged to 'next' on 2016-09-21 at e19148ea63)
913 + pathspec: warn on empty strings as pathspec
914
915 Originally merged to 'next' on 2016-07-13
@@ -952,7 +929,7 @@ of the repositories listed at
929
930
931 * nd/shallow-deepen (2016-06-13) 27 commits
955 - (merged to 'next' on 2016-09-22 at f0cf3e3)
932 + (merged to 'next' on 2016-09-22 at f0cf3e3385)
933 + fetch, upload-pack: --deepen=N extends shallow boundary by N commits
934 + upload-pack: add get_reachable_list()
935 + upload-pack: split check_unreachable() in two, prep for get_reachable_list()