What's cooking (2016/10 #04)

Junio C Hamano committed Oct 17, 2016 at 15:20 UTC 810f4b4ba8e7a50dd9a178228e6fac987e718ffc
1 file changed +390 -517
whats-cooking.txt
+390 -517
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Oct 2016, #03; Tue, 11)
4 -X-master-at: 8a36cd87b7c85a651ab388d403629865ffa3ba0d
5 -X-next-at: 28fc3e53f99219d01faa8a76452eac5ca9d631c2
3 +Subject: What's cooking in git.git (Oct 2016, #04; Mon, 17)
4 +X-master-at: 659889482ac63411daea38b2c3d127842ea04e4d
5 +X-next-at: 6021889cc14df07d4366829367d2c4a11d1eaa56
6
7 -What's cooking in git.git (Oct 2016, #03; Tue, 11)
7 +What's cooking in git.git (Oct 2016, #04; Mon, 17)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,12 +12,6 @@ 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 handful of topics have been merged to 'master' and the upcoming
16 -release started to take shape. Quite a few topics that no longer
17 -merge cleanly to 'pu' and have been excluded from 'pu' for some time
18 -have finally been moved to the Discarded section (many of them are
19 -expected to be updated and return).
20 -
15 You can find the changes described here in the integration branches
16 of the repositories listed at
17
@@ -26,126 +20,6 @@ of the repositories listed at
20 --------------------------------------------------
21 [Graduated to "master"]
22
29 -* ak/curl-imap-send-explicit-scheme (2016-08-17) 1 commit
30 - (merged to 'next' on 2016-09-22 at 4449584c26)
31 - + imap-send: Tell cURL to use imap:// or imaps://
32 -
33 - When we started cURL to talk to imap server when a new enough
34 - version of cURL library is available, we forgot to explicitly add
35 - imap(s):// before the destination. To some folks, that didn't work
36 - and the library tried to make HTTP(s) requests instead.
37 -
38 -
39 -* cp/completion-negative-refs (2016-08-24) 1 commit
40 - (merged to 'next' on 2016-09-22 at abd1585aa6)
41 - + completion: support excluding refs
42 -
43 - The command-line completion script (in contrib/) learned to
44 - complete "git cmd ^mas<HT>" to complete the negative end of
45 - reference to "git cmd ^master".
46 -
47 -
48 -* dp/autoconf-curl-ssl (2016-06-28) 1 commit
49 - (merged to 'next' on 2016-09-22 at 9c5aeeced9)
50 - + ./configure.ac: detect SSL in libcurl using curl-config
51 -
52 - The ./configure script generated from configure.ac was taught how
53 - to detect support of SSL by libcurl better.
54 -
55 -
56 -* jc/blame-reverse (2016-06-14) 2 commits
57 - (merged to 'next' on 2016-09-22 at d1a8e9ce99)
58 - + blame: dwim "blame --reverse OLD" as "blame --reverse OLD.."
59 - + blame: improve diagnosis for "--reverse NEW"
60 -
61 - It is a common mistake to say "git blame --reverse OLD path",
62 - expecting that the command line is dwimmed as if asking how lines
63 - in path in an old revision OLD have survived up to the current
64 - commit.
65 -
66 -
67 -* jk/pack-objects-optim-mru (2016-08-11) 4 commits
68 - (merged to 'next' on 2016-09-21 at 97b919bdbd)
69 - + pack-objects: use mru list when iterating over packs
70 - + pack-objects: break delta cycles before delta-search phase
71 - + sha1_file: make packed_object_info public
72 - + provide an initializer for "struct object_info"
73 -
74 - Originally merged to 'next' on 2016-08-11
75 -
76 - "git pack-objects" in a repository with many packfiles used to
77 - spend a lot of time looking for/at objects in them; the accesses to
78 - the packfiles are now optimized by checking the most-recently-used
79 - packfile first.
80 -
81 -
82 -* nd/shallow-deepen (2016-06-13) 27 commits
83 - (merged to 'next' on 2016-09-22 at f0cf3e3385)
84 - + fetch, upload-pack: --deepen=N extends shallow boundary by N commits
85 - + upload-pack: add get_reachable_list()
86 - + upload-pack: split check_unreachable() in two, prep for get_reachable_list()
87 - + t5500, t5539: tests for shallow depth excluding a ref
88 - + clone: define shallow clone boundary with --shallow-exclude
89 - + fetch: define shallow boundary with --shallow-exclude
90 - + upload-pack: support define shallow boundary by excluding revisions
91 - + refs: add expand_ref()
92 - + t5500, t5539: tests for shallow depth since a specific date
93 - + clone: define shallow clone boundary based on time with --shallow-since
94 - + fetch: define shallow boundary with --shallow-since
95 - + upload-pack: add deepen-since to cut shallow repos based on time
96 - + shallow.c: implement a generic shallow boundary finder based on rev-list
97 - + fetch-pack: use a separate flag for fetch in deepening mode
98 - + fetch-pack.c: mark strings for translating
99 - + fetch-pack: use a common function for verbose printing
100 - + fetch-pack: use skip_prefix() instead of starts_with()
101 - + upload-pack: move rev-list code out of check_non_tip()
102 - + upload-pack: make check_non_tip() clean things up on error
103 - + upload-pack: tighten number parsing at "deepen" lines
104 - + upload-pack: use skip_prefix() instead of starts_with()
105 - + upload-pack: move "unshallow" sending code out of deepen()
106 - + upload-pack: remove unused variable "backup"
107 - + upload-pack: move "shallow" sending code out of deepen()
108 - + upload-pack: move shallow deepen code out of receive_needs()
109 - + transport-helper.c: refactor set_helper_option()
110 - + remote-curl.c: convert fetch_git() to use argv_array
111 -
112 - The existing "git fetch --depth=<n>" option was hard to use
113 - correctly when making the history of an existing shallow clone
114 - deeper. A new option, "--deepen=<n>", has been added to make this
115 - easier to use. "git clone" also learned "--shallow-since=<date>"
116 - and "--shallow-exclude=<tag>" options to make it easier to specify
117 - "I am interested only in the recent N months worth of history" and
118 - "Give me only the history since that version".
119 -
120 -
121 -* rs/qsort (2016-10-03) 6 commits
122 - (merged to 'next' on 2016-10-06 at 32a5bd3c88)
123 - + show-branch: use QSORT
124 - + use QSORT, part 2
125 - + coccicheck: use --all-includes by default
126 - + remove unnecessary check before QSORT
127 - + use QSORT
128 - + add QSORT
129 -
130 - We call "qsort(array, nelem, sizeof(array[0]), fn)", and most of
131 - the time third parameter is redundant. A new QSORT() macro lets us
132 - omit it.
133 -
134 ---------------------------------------------------
135 -[New Topics]
136 -
137 -* ab/gitweb-abbrev-links (2016-10-06) 3 commits
138 - - gitweb: link to "git describe"'d commits in log messages
139 - - gitweb: link to 7-char+ SHA-1s, not only 8-char+
140 - - gitweb: fix a typo in a comment
141 -
142 - In addition to purely abbreviated commit object names, "gitweb"
143 - learned to turn "git describe" output (e.g. v2.9.3-599-g2376d31787)
144 - into clickable links in its output.
145 -
146 - Waiting for review.
147 -
148 -
23 * da/mergetool-diff-order (2016-10-11) 4 commits
24 (merged to 'next' on 2016-10-11 at 3d1b98c16d)
25 + mergetool: honor -O<orderfile>
@@ -156,7 +30,72 @@ of the repositories listed at
30 "git mergetool" learned to honor "-O<orderfile>" to control the
31 order of paths to present to the end user.
32
159 - Will merge to 'master'.
33 +
34 +* dt/http-empty-auth (2016-10-04) 1 commit
35 + (merged to 'next' on 2016-10-10 at 10b7b0a6a5)
36 + + http: http.emptyauth should allow empty (not just NULL) usernames
37 +
38 + http.emptyauth configuration is a way to allow an empty username to
39 + pass when attempting to authenticate using mechanisms like
40 + Kerberos. We took an unspecified (NULL) username and sent ":"
41 + (i.e. no username, no password) to CURLOPT_USERPWD, but did not do
42 + the same when the username is explicitly set to an empty string.
43 +
44 +
45 +* jk/alt-odb-cleanup (2016-10-10) 18 commits
46 + (merged to 'next' on 2016-10-10 at d2ed6b6d21)
47 + + alternates: use fspathcmp to detect duplicates
48 + + sha1_file: always allow relative paths to alternates
49 + + count-objects: report alternates via verbose mode
50 + + fill_sha1_file: write into a strbuf
51 + + alternates: store scratch buffer as strbuf
52 + + fill_sha1_file: write "boring" characters
53 + + alternates: use a separate scratch space
54 + + alternates: encapsulate alt->base munging
55 + + alternates: provide helper for allocating alternate
56 + + alternates: provide helper for adding to alternates list
57 + + link_alt_odb_entry: refactor string handling
58 + + link_alt_odb_entry: handle normalize_path errors
59 + + t5613: clarify "too deep" recursion tests
60 + + t5613: do not chdir in main process
61 + + t5613: whitespace/style cleanups
62 + + t5613: use test_must_fail
63 + + t5613: drop test_valid_repo function
64 + + t5613: drop reachable_via function
65 + (this branch is used by jk/quarantine-received-objects.)
66 +
67 + Codepaths involved in interacting alternate object store have
68 + been cleaned up.
69 +
70 +
71 +* jk/clone-copy-alternates-fix (2016-10-05) 1 commit
72 + (merged to 'next' on 2016-10-10 at 8154134c8c)
73 + + clone: detect errors in normalize_path_copy
74 +
75 + "git clone" of a local repository can be done at the filesystem
76 + level, but the codepath did not check errors while copying and
77 + adjusting the file that lists alternate object stores.
78 +
79 +
80 +* jk/quarantine-received-objects (2016-10-10) 5 commits
81 + (merged to 'next' on 2016-10-10 at 0fd3e3b2ef)
82 + + tmp-objdir: do not migrate files starting with '.'
83 + + tmp-objdir: put quarantine information in the environment
84 + + receive-pack: quarantine objects until pre-receive accepts
85 + + tmp-objdir: introduce API for temporary object directories
86 + + check_connected: accept an env argument
87 + (this branch uses jk/alt-odb-cleanup.)
88 +
89 + In order for the receiving end of "git push" to inspect the
90 + received history and decide to reject the push, the objects sent
91 + from the sending end need to be made available to the hook and
92 + the mechanism for the connectivity check, and this was done
93 + traditionally by storing the objects in the receiving repository
94 + and letting "git gc" to expire it. Instead, store the newly
95 + received objects in a temporary area, and make them available by
96 + reusing the alternate object store mechanism to them only while we
97 + decide if we accept the check, and once we decide, either migrate
98 + them to the repository or purge them immediately.
99
100
101 * jk/ref-symlink-loop (2016-10-10) 2 commits
@@ -167,48 +106,28 @@ of the repositories listed at
106 A stray symbolic link in $GIT_DIR/refs/ directory could make name
107 resolution loop forever, which has been corrected.
108
170 - Will merge to 'master'.
109
110 +* js/regexec-buf (2016-10-10) 1 commit
111 + (merged to 'next' on 2016-10-11 at 466a26548c)
112 + + configure.ac: improve description of NO_REGEX test
113
173 -* js/prepare-sequencer (2016-10-10) 26 commits
174 - - SQUASH: nobody uses this function yet
175 - - sequencer: mark all error messages for translation
176 - - sequencer: start error messages consistently with lower case
177 - - sequencer: quote filenames in error messages
178 - - sequencer: mark action_name() for translation
179 - - sequencer: remove overzealous assumption in rebase -i mode
180 - - sequencer: refactor write_message()
181 - - sequencer: left-trim lines read from the script
182 - - sequencer: do not try to commit when there were merge conflicts
183 - - sequencer: support cleaning up commit messages
184 - - sequencer: support amending commits
185 - - sequencer: allow editing the commit message on a case-by-case basis
186 - - sequencer: introduce a helper to read files written by scripts
187 - - sequencer: prepare for rebase -i's commit functionality
188 - - sequencer: remember the onelines when parsing the todo file
189 - - sequencer: refactor the code to obtain a short commit name
190 - - sequencer: get rid of the subcommand field
191 - - sequencer: avoid completely different messages for different actions
192 - - sequencer: strip CR from the todo script
193 - - sequencer: completely revamp the "todo" script parsing
194 - - sequencer: future-proof read_populate_todo()
195 - - sequencer: eventually release memory allocated for the option values
196 - - sequencer: future-proof remove_sequencer_state()
197 - - sequencer: avoid unnecessary indirection
198 - - sequencer: use memoized sequencer directory path
199 - - sequencer: use static initializers for replay_opts
114 + A follow-up to an already graduated topic.
115
201 - Update of the sequencer codebase to make it reusable to reimplement
202 - "rebase -i" continues.
116
204 - Waiting for review.
117 +* js/reset-usage (2016-10-11) 1 commit
118 + (merged to 'next' on 2016-10-11 at 61ad4a7c0e)
119 + + reset: fix usage
120
121 + Message fix-up.
122
207 -* js/regexec-buf (2016-10-10) 1 commit
208 - (merged to 'next' on 2016-10-11 at 466a26548c)
209 - + configure.ac: improve description of NO_REGEX test
123
211 - Will merge to 'master'.
124 +* nd/commit-p-doc (2016-10-05) 1 commit
125 + (merged to 'next' on 2016-10-10 at 5a9996dd7b)
126 + + git-commit.txt: clarify --patch mode with pathspec
127 +
128 + Documentation for "git commit" was updated to clarify that "commit
129 + -p <paths>" adds to the current contents of the index to come up
130 + with what to commit.
131
132
133 * rs/cocci (2016-10-10) 2 commits
@@ -218,98 +137,158 @@ of the repositories listed at
137
138 Code cleanup.
139
140 +
141 +* rs/pretty-format-color-doc-fix (2016-10-11) 1 commit
142 + (merged to 'next' on 2016-10-11 at f0ae64bcbd)
143 + + pretty: fix document link for color specification
144 +
145 + Small doc update.
146 +
147 +
148 +* sb/submodule-config-doc-drop-path (2016-10-11) 1 commit
149 + (merged to 'next' on 2016-10-11 at 28fc3e53f9)
150 + + documentation: improve submodule.<name>.{url, path} description
151 +
152 + The "submodule.<name>.path" stored in .gitmodules is never copied
153 + to .git/config and such a key in .git/config has no meaning, but
154 + the documentation described it and submodule.<name>.url next to
155 + each other as if both belong to .git/config. This has been fixed.
156 +
157 +--------------------------------------------------
158 +[New Topics]
159 +
160 +* dk/worktree-dup-checkout-with-bare-is-ok (2016-10-14) 1 commit
161 + (merged to 'next' on 2016-10-17 at 24594d3e56)
162 + + worktree: allow the main brach of a bare repository to be checked out
163 +
164 + In a worktree connected to a repository elsewhere, created via "git
165 + worktree", "git checkout" attempts to protect users from confusion
166 + by refusing to check out a branch that is already checked out in
167 + another worktree. However, this also prevented checking out a
168 + branch, which is designated as the primary branch of a bare
169 + reopsitory, in a worktree that is connected to the bare
170 + repository. The check has been corrected to allow it.
171 +
172 Will merge to 'master'.
173
174
224 -* sb/submodule-ignore-trailing-slash (2016-10-10) 2 commits
225 - (merged to 'next' on 2016-10-11 at e37425ed17)
226 - + submodule: ignore trailing slash in relative url
227 - + submodule: ignore trailing slash on superproject URL
175 +* jc/cocci-xstrdup-or-null (2016-10-12) 1 commit
176 + (merged to 'next' on 2016-10-17 at 55ceaa465a)
177 + + cocci: refactor common patterns to use xstrdup_or_null()
178
229 - A minor regression fix for "git submodule".
179 + Code cleanup.
180
181 Will merge to 'master'.
182
183
234 -* st/verify-tag (2016-10-10) 7 commits
235 - - t/t7004-tag: Add --format specifier tests
236 - - t/t7030-verify-tag: Add --format specifier tests
237 - - builtin/tag: add --format argument for tag -v
238 - - builtin/verify-tag: add --format to verify-tag
239 - - tag: add format specifier to gpg_verify_tag
240 - - ref-filter: add function to print single ref_array_item
241 - - gpg-interface, tag: add GPG_VERIFY_QUIET flag
184 +* tb/convert-stream-check (2016-10-12) 2 commits
185 + - convert.c: stream and fast search for binary
186 + - read-cache: factor out get_sha1_from_index() helper
187
243 - "git tag" and "git verify-tag" learned to put GPG verification
244 - status in their "--format=<placeholders>" output format.
188 + End-of-line conversion sometimes needs to see if the current blob
189 + in the index has NULs and CRs to base its decision. We used to
190 + always get a full statistics over the blob, but in many cases we
191 + can return early when we have seen "enough" (e.g. if we see a
192 + single NUL, the blob will be handled as binary). The codepaths
193 + have been optimized by using streaming interface.
194
246 - Is this ready for 'next'?
195 + Waiting for review.
196
197
249 -* js/reset-usage (2016-10-11) 1 commit
250 - (merged to 'next' on 2016-10-11 at 61ad4a7c0e)
251 - + reset: fix usage
198 +* jk/ambiguous-short-object-names (2016-10-12) 1 commit
199 + - t1512: become resilient to GETTEXT_POISON build
200
253 - Will merge to 'master'.
201 + A test fixup to recently graduated topic.
202
203 + Will merge to 'next'.
204
256 -* mm/credential-libsecret (2016-10-11) 1 commit
257 - - contrib: add credential helper for libsecret
205 +
206 +* jk/merge-base-fork-point-without-reflog (2016-10-12) 1 commit
207 + - merge-base: handle --fork-point without reflog
208 +
209 + "git rebase" immediately after "git clone" failed to find the fork
210 + point from the upstream.
211
212 Will merge to 'next'.
213
214
262 -* rs/pretty-format-color-doc-fix (2016-10-11) 1 commit
263 - (merged to 'next' on 2016-10-11 at f0ae64bcbd)
264 - + pretty: fix document link for color specification
215 +* jk/upload-pack-use-prio-queue (2016-10-11) 1 commit
216 + - upload-pack: use priority queue in reachable() check
217
266 - Will merge to 'master'.
218 + Code clean-up and performance improvement to reduce use of
219 + timestamp-ordered commit-list by replacing it with a priority
220 + queue.
221
222 + Will merge to 'next'.
223
269 -* sb/attr (2016-10-11) 28 commits
270 - - attr: convert to new threadsafe API
271 - - attr: make git_check_attr_counted static
272 - - attr: make git_attr_counted static
273 - - attr.c: outline the future plans by heavily commenting
274 - - attr.c: always pass check[] to collect_some_attrs()
275 - - attr.c: introduce empty_attr_check_elems()
276 - - attr.c: correct ugly hack for git_all_attrs()
277 - - attr.c: rename a local variable check
278 - - attr.c: pass struct git_attr_check down the callchain
279 - - attr.c: add push_stack() helper
280 - - attr: support quoting pathname patterns in C style
281 - - attr: expose validity check for attribute names
282 - - attr: add counted string version of git_attr()
283 - - attr: add counted string version of git_check_attr()
284 - - attr: retire git_check_attrs() API
285 - - attr: convert git_check_attrs() callers to use the new API
286 - - attr: convert git_all_attrs() to use "struct git_attr_check"
287 - - attr: (re)introduce git_check_attr() and struct git_attr_check
288 - - attr: rename function and struct related to checking attributes
289 - - attr.c: plug small leak in parse_attr_line()
290 - - attr.c: tighten constness around "git_attr" structure
291 - - attr.c: simplify macroexpand_one()
292 - - attr.c: mark where #if DEBUG ends more clearly
293 - - attr.c: complete a sentence in a comment
294 - - attr.c: explain the lack of attr-name syntax check in parse_attr()
295 - - attr.c: update a stale comment on "struct match_attr"
296 - - attr.c: use strchrnul() to scan for one line
297 - - commit.c: use strchrnul() to scan for one line
224
299 - The attributes API has been updated so that it can later be
300 - optimized using the knowledge of which attributes are queried.
225 +* jk/fetch-quick-tag-following (2016-10-14) 1 commit
226 + - fetch: use "quick" has_sha1_file for tag following
227
228 + When fetching from a remote that has many tags that are irrelevant
229 + to branches we are following, we used to waste way too many cycles
230 + when checking if the object pointed at by a tag (that we are not
231 + going to fetch!) exists in our repository too carefully.
232
303 -* sb/submodule-config-doc-drop-path (2016-10-11) 1 commit
304 - (merged to 'next' on 2016-10-11 at 28fc3e53f9)
305 - + documentation: improve submodule.<name>.{url, path} description
233 + Will merge to 'next'.
234
307 - The "submodule.<name>.path" stored in .gitmodules is never copied
308 - to .git/config and such a key in .git/config has no meaning, but
309 - the documentation described it and submodule.<name>.url next to
310 - each other as if both belong to .git/config. This has been fixed.
235
312 - Will merge to 'master'.
236 +* jt/trailer-with-cruft (2016-10-14) 6 commits
237 + - trailer: support values folded to multiple lines
238 + - trailer: allow non-trailers in trailer block
239 + - trailer: make args have their own struct
240 + - trailer: streamline trailer item create and add
241 + - trailer: use list.h for doubly-linked list
242 + - trailer: improve const correctness
243 +
244 + Update "interpret-trailers" machinery and teaches it that people in
245 + real world write all sorts of crufts in the "trailer" that was
246 + originally designed to have the neat-o "Mail-Header: like thing"
247 + and nothing else.
248 +
249 + Waiting for review.
250 +
251 +
252 +* mm/send-email-cc-cruft-after-address (2016-10-14) 1 commit
253 + - parse_mailboxes: accept extra text after <...> address
254 +
255 + "git send-email" attempts to pick up valid e-mails from the
256 + trailers, but people in real world write non-addresses there, like
257 + "Cc: Stable <add@re.ss> # 4.8+", which broke the output depending
258 + on the availability and vintage of Mail::Address perl module.
259 +
260 + Will merge to 'next'.
261 +
262 +
263 +* va/i18n (2016-10-17) 7 commits
264 + - i18n: diff: mark warnings for translation
265 + - i18n: credential-cache--daemon: mark advice for translation
266 + - i18n: convert mark error messages for translation
267 + - i18n: apply: mark error message for translation
268 + - i18n: apply: mark error messages for translation
269 + - i18n: apply: mark info messages for translation
270 + - i18n: apply: mark plural string for translation
271 +
272 + More i18n.
273 +
274 + Will merge to 'next'.
275 +
276 +
277 +* jk/tighten-alloc (2016-10-17) 2 commits
278 + - inline xalloc_flex() into FLEXPTR_ALLOC_MEM
279 + - avoid pointer arithmetic involving NULL in FLEX_ALLOC_MEM
280 +
281 + Protect our code from over-eager compilers.
282 +
283 + Will merge to 'next'.
284 +
285 +
286 +* pb/test-parse-options-expect (2016-10-17) 1 commit
287 + - t0040: convert all possible tests to use `test-parse-options --expect`
288 +
289 + Test clean-up.
290 +
291 + Will merge to 'next'.
292
293 --------------------------------------------------
294 [Stalled]
@@ -427,16 +406,170 @@ of the repositories listed at
406 --------------------------------------------------
407 [Cooking]
408
409 +* pb/bisect (2016-10-14) 28 commits
410 + - SQUASH???
411 + - bisect--helper: remove the dequote in bisect_start()
412 + - bisect--helper: retire `--bisect-auto-next` subcommand
413 + - bisect--helper: retire `--bisect-autostart` subcommand
414 + - bisect--helper: retire `--bisect-write` subcommand
415 + - bisect--helper: `bisect_replay` shell function in C
416 + - bisect--helper: `bisect_log` shell function in C
417 + - bisect--helper: retire `--write-terms` subcommand
418 + - bisect--helper: retire `--check-expected-revs` subcommand
419 + - bisect--helper: `bisect_state` & `bisect_head` shell function in C
420 + - bisect--helper: `bisect_autostart` shell function in C
421 + - bisect--helper: retire `--next-all` subcommand
422 + - bisect--helper: retire `--bisect-clean-state` subcommand
423 + - bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
424 + - t6030: no cleanup with bad merge base
425 + - bisect--helper: `bisect_start` shell function partially in C
426 + - bisect--helper: `get_terms` & `bisect_terms` shell function in C
427 + - bisect--helper: `bisect_next_check` & bisect_voc shell function in C
428 + - bisect--helper: `check_and_set_terms` shell function in C
429 + - bisect--helper: `bisect_write` shell function in C
430 + - bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
431 + - bisect--helper: `bisect_reset` shell function in C
432 + - wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
433 + - t6030: explicitly test for bisection cleanup
434 + - bisect--helper: `bisect_clean_state` shell function in C
435 + - bisect--helper: `write_terms` shell function in C
436 + - bisect: rewrite `check_term_format` shell function in C
437 + - bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
438 +
439 + GSoC "bisect" topic.
440 +
441 +
442 +* ab/gitweb-abbrev-links (2016-10-14) 3 commits
443 + (merged to 'next' on 2016-10-17 at 4868def05e)
444 + + gitweb: link to "git describe"'d commits in log messages
445 + + gitweb: link to 7-char+ SHA-1s, not only 8-char+
446 + + gitweb: fix a typo in a comment
447 +
448 + In addition to purely abbreviated commit object names, "gitweb"
449 + learned to turn "git describe" output (e.g. v2.9.3-599-g2376d31787)
450 + into clickable links in its output.
451 +
452 + Will merge to 'master'.
453 +
454 +
455 +* js/prepare-sequencer (2016-10-17) 25 commits
456 + - sequencer: mark all error messages for translation
457 + - sequencer: start error messages consistently with lower case
458 + - sequencer: quote filenames in error messages
459 + - sequencer: mark action_name() for translation
460 + - sequencer: remove overzealous assumption in rebase -i mode
461 + - sequencer: refactor write_message()
462 + - sequencer: left-trim lines read from the script
463 + - sequencer: do not try to commit when there were merge conflicts
464 + - sequencer: support cleaning up commit messages
465 + - sequencer: support amending commits
466 + - sequencer: allow editing the commit message on a case-by-case basis
467 + - sequencer: introduce a helper to read files written by scripts
468 + - sequencer: prepare for rebase -i's commit functionality
469 + - sequencer: remember the onelines when parsing the todo file
470 + - sequencer: get rid of the subcommand field
471 + - sequencer: avoid completely different messages for different actions
472 + - sequencer: strip CR from the todo script
473 + - sequencer: completely revamp the "todo" script parsing
474 + - sequencer: refactor the code to obtain a short commit name
475 + - sequencer: future-proof read_populate_todo()
476 + - sequencer: eventually release memory allocated for the option values
477 + - sequencer: future-proof remove_sequencer_state()
478 + - sequencer: avoid unnecessary indirection
479 + - sequencer: use memoized sequencer directory path
480 + - sequencer: use static initializers for replay_opts
481 +
482 + Update of the sequencer codebase to make it reusable to reimplement
483 + "rebase -i" continues.
484 +
485 + Waiting for review.
486 +
487 +
488 +* sb/submodule-ignore-trailing-slash (2016-10-10) 2 commits
489 + (merged to 'next' on 2016-10-11 at e37425ed17)
490 + + submodule: ignore trailing slash in relative url
491 + + submodule: ignore trailing slash on superproject URL
492 +
493 + A minor regression fix for "git submodule".
494 +
495 + It seems that POSIX emulation layer of Windows is not cooperating;
496 + this may have to wait (or tentatively reverted in Windows port) for
497 + the resolution of the issue.
498 +
499 + cf. <alpine.DEB.2.20.1610131255001.197091@virtualbox>
500 +
501 +
502 +* st/verify-tag (2016-10-10) 7 commits
503 + - t/t7004-tag: Add --format specifier tests
504 + - t/t7030-verify-tag: Add --format specifier tests
505 + - builtin/tag: add --format argument for tag -v
506 + - builtin/verify-tag: add --format to verify-tag
507 + - tag: add format specifier to gpg_verify_tag
508 + - ref-filter: add function to print single ref_array_item
509 + - gpg-interface, tag: add GPG_VERIFY_QUIET flag
510 +
511 + "git tag" and "git verify-tag" learned to put GPG verification
512 + status in their "--format=<placeholders>" output format.
513 +
514 + Is this ready for 'next'?
515 +
516 +
517 +* mm/credential-libsecret (2016-10-11) 1 commit
518 + (merged to 'next' on 2016-10-17 at 1b4af03ba4)
519 + + contrib: add credential helper for libsecret
520 +
521 + A new credential helper that talks via "libsecret" with
522 + implementations of XDG Secret Service API has been added to
523 + contrib/credential/.
524 +
525 + Will merge to 'master'.
526 +
527 +
528 +* sb/attr (2016-10-11) 28 commits
529 + - attr: convert to new threadsafe API
530 + - attr: make git_check_attr_counted static
531 + - attr: make git_attr_counted static
532 + - attr.c: outline the future plans by heavily commenting
533 + - attr.c: always pass check[] to collect_some_attrs()
534 + - attr.c: introduce empty_attr_check_elems()
535 + - attr.c: correct ugly hack for git_all_attrs()
536 + - attr.c: rename a local variable check
537 + - attr.c: pass struct git_attr_check down the callchain
538 + - attr.c: add push_stack() helper
539 + - attr: support quoting pathname patterns in C style
540 + - attr: expose validity check for attribute names
541 + - attr: add counted string version of git_attr()
542 + - attr: add counted string version of git_check_attr()
543 + - attr: retire git_check_attrs() API
544 + - attr: convert git_check_attrs() callers to use the new API
545 + - attr: convert git_all_attrs() to use "struct git_attr_check"
546 + - attr: (re)introduce git_check_attr() and struct git_attr_check
547 + - attr: rename function and struct related to checking attributes
548 + - attr.c: plug small leak in parse_attr_line()
549 + - attr.c: tighten constness around "git_attr" structure
550 + - attr.c: simplify macroexpand_one()
551 + - attr.c: mark where #if DEBUG ends more clearly
552 + - attr.c: complete a sentence in a comment
553 + - attr.c: explain the lack of attr-name syntax check in parse_attr()
554 + - attr.c: update a stale comment on "struct match_attr"
555 + - attr.c: use strchrnul() to scan for one line
556 + - commit.c: use strchrnul() to scan for one line
557 +
558 + The attributes API has been updated so that it can later be
559 + optimized using the knowledge of which attributes are queried.
560 +
561 +
562 * jc/ws-error-highlight (2016-10-04) 4 commits
431 - - diff: introduce diff.wsErrorHighlight option
432 - - diff.c: move ws-error-highlight parsing helpers up
433 - - diff.c: refactor parse_ws_error_highlight()
434 - - t4015: split out the "setup" part of ws-error-highlight test
563 + (merged to 'next' on 2016-10-17 at ecbdc57d77)
564 + + diff: introduce diff.wsErrorHighlight option
565 + + diff.c: move ws-error-highlight parsing helpers up
566 + + diff.c: refactor parse_ws_error_highlight()
567 + + t4015: split out the "setup" part of ws-error-highlight test
568
569 "git diff/log --ws-error-highlight=<kind>" lacked the corresponding
570 configuration variable to set it by default.
571
439 - Will merge to 'next'.
572 + Will merge to 'master'.
573
574
575 * jk/abbrev-auto (2016-10-03) 1 commit
@@ -451,28 +584,6 @@ of the repositories listed at
584 Undecided.
585
586
454 -* jk/clone-copy-alternates-fix (2016-10-05) 1 commit
455 - (merged to 'next' on 2016-10-10 at 8154134c8c)
456 - + clone: detect errors in normalize_path_copy
457 -
458 - "git clone" of a local repository can be done at the filesystem
459 - level, but the codepath did not check errors while copying and
460 - adjusting the file that lists alternate object stores.
461 -
462 - Will merge to 'master'.
463 -
464 -
465 -* nd/commit-p-doc (2016-10-05) 1 commit
466 - (merged to 'next' on 2016-10-10 at 5a9996dd7b)
467 - + git-commit.txt: clarify --patch mode with pathspec
468 -
469 - Documentation for "git commit" was updated to clarify that "commit
470 - -p <paths>" adds to the current contents of the index to come up
471 - with what to commit.
472 -
473 - Will merge to 'master'.
474 -
475 -
587 * nd/ita-empty-commit (2016-09-28) 3 commits
588 - commit: don't be fooled by ita entries when creating initial commit
589 - diff-lib.c: enable --shift-ita in index_differs_from()
@@ -503,75 +614,12 @@ of the repositories listed at
614 Will hold to see if people scream.
615
616
506 -* dt/http-empty-auth (2016-10-04) 1 commit
507 - (merged to 'next' on 2016-10-10 at 10b7b0a6a5)
508 - + http: http.emptyauth should allow empty (not just NULL) usernames
509 -
510 - http.emptyauth configuration is a way to allow an empty username to
511 - pass when attempting to authenticate using mechanisms like
512 - Kerberos. We took an unspecified (NULL) username and sent ":"
513 - (i.e. no username, no password) to CURLOPT_USERPWD, but did not do
514 - the same when the username is explicitly set to an empty string.
515 -
516 - Will merge to 'master'.
517 -
518 -
617 * jc/diff-unique-abbrev-comments (2016-09-30) 1 commit
520 - - diff_unique_abbrev(): document its assumption and limitation
618 + (merged to 'next' on 2016-10-17 at c7fb286102)
619 + + diff_unique_abbrev(): document its assumption and limitation
620
621 A bit more comments in a tricky code.
622
524 - Will merge to 'next'.
525 -
526 -
527 -* jk/quarantine-received-objects (2016-10-10) 5 commits
528 - (merged to 'next' on 2016-10-10 at 0fd3e3b2ef)
529 - + tmp-objdir: do not migrate files starting with '.'
530 - + tmp-objdir: put quarantine information in the environment
531 - + receive-pack: quarantine objects until pre-receive accepts
532 - + tmp-objdir: introduce API for temporary object directories
533 - + check_connected: accept an env argument
534 - (this branch uses jk/alt-odb-cleanup.)
535 -
536 - In order for the receiving end of "git push" to inspect the
537 - received history and decide to reject the push, the objects sent
538 - from the sending end need to be made available to the hook and
539 - the mechanism for the connectivity check, and this was done
540 - traditionally by storing the objects in the receiving repository
541 - and letting "git gc" to expire it. Instead, store the newly
542 - received objects in a temporary area, and make them available by
543 - reusing the alternate object store mechanism to them only while we
544 - decide if we accept the check, and once we decide, either migrate
545 - them to the repository or purge them immediately.
546 -
547 - Will merge to 'master'.
548 -
549 -
550 -* jk/alt-odb-cleanup (2016-10-10) 18 commits
551 - (merged to 'next' on 2016-10-10 at d2ed6b6d21)
552 - + alternates: use fspathcmp to detect duplicates
553 - + sha1_file: always allow relative paths to alternates
554 - + count-objects: report alternates via verbose mode
555 - + fill_sha1_file: write into a strbuf
556 - + alternates: store scratch buffer as strbuf
557 - + fill_sha1_file: write "boring" characters
558 - + alternates: use a separate scratch space
559 - + alternates: encapsulate alt->base munging
560 - + alternates: provide helper for allocating alternate
561 - + alternates: provide helper for adding to alternates list
562 - + link_alt_odb_entry: refactor string handling
563 - + link_alt_odb_entry: handle normalize_path errors
564 - + t5613: clarify "too deep" recursion tests
565 - + t5613: do not chdir in main process
566 - + t5613: whitespace/style cleanups
567 - + t5613: use test_must_fail
568 - + t5613: drop test_valid_repo function
569 - + t5613: drop reachable_via function
570 - (this branch is used by jk/quarantine-received-objects.)
571 -
572 - Codepaths involved in interacting alternate object store have
573 - been cleaned up.
574 -
623 Will merge to 'master'.
624
625
@@ -609,38 +657,40 @@ of the repositories listed at
657 Will hold to see if people scream.
658
659
612 -* mg/gpg-richer-status (2016-10-06) 2 commits
613 - - SQUASH: gpg-interface: use more status letters
614 - - gpg-interface: use more status letters
660 +* mg/gpg-richer-status (2016-10-12) 1 commit
661 + (merged to 'next' on 2016-10-17 at 8843a6a8be)
662 + + gpg-interface: use more status letters
663
664 The GPG verification status shown in "%G?" pretty format specifier
665 was not rich enough to differentiate a signature made by an expired
666 key, a signature made by a revoked key, etc. New output letters
667 have been assigned to express them.
668
621 - Waiting for a response to ping/squash.
669 + Will merge to 'master'.
670
671
672 * js/libify-require-clean-work-tree (2016-10-07) 6 commits
625 - - wt-status: begin error messages with lower-case
626 - - wt-status: teach has_{unstaged,uncommitted}_changes() about submodules
627 - - wt-status: export also the has_un{staged,committed}_changes() functions
628 - - wt-status: make the require_clean_work_tree() function reusable
629 - - pull: make code more similar to the shell script again
630 - - pull: drop confusing prefix parameter of die_on_unclean_work_tree()
673 + (merged to 'next' on 2016-10-17 at f5c20df38b)
674 + + wt-status: begin error messages with lower-case
675 + + wt-status: teach has_{unstaged,uncommitted}_changes() about submodules
676 + + wt-status: export also the has_un{staged,committed}_changes() functions
677 + + wt-status: make the require_clean_work_tree() function reusable
678 + + pull: make code more similar to the shell script again
679 + + pull: drop confusing prefix parameter of die_on_unclean_work_tree()
680
681 The require_clean_work_tree() helper was recreated in C when "git
682 pull" was rewritten from shell; the helper is now made available to
683 other callers in preparation for upcoming "rebase -i" work.
684
636 - Will merge to 'next'.
685 + Will merge to 'master'.
686
687
688 * bw/ls-files-recurse-submodules (2016-10-10) 4 commits
640 - - ls-files: add pathspec matching for submodules
641 - - ls-files: pass through safe options for --recurse-submodules
642 - - ls-files: optionally recurse into submodules
643 - - git: make super-prefix option
689 + (merged to 'next' on 2016-10-17 at f0e398946a)
690 + + ls-files: add pathspec matching for submodules
691 + + ls-files: pass through safe options for --recurse-submodules
692 + + ls-files: optionally recurse into submodules
693 + + git: make super-prefix option
694
695 "git ls-files" learned "--recurse-submodules" option that can be
696 used to get a listing of tracked files across submodules (i.e. this
@@ -649,10 +699,10 @@ of the repositories listed at
699 side of a pipe that is read with xargs to work on all working tree
700 files from the top-level superproject.
701
652 - Will merge to 'next'.
702 + Will merge to 'master'.
703
704
655 -* ls/filter-process (2016-10-10) 14 commits
705 +* ls/filter-process (2016-10-17) 14 commits
706 - contrib/long-running-filter: add long running filter example
707 - convert: add filter.<driver>.process option
708 - convert: prepare filter.<driver>.process option
@@ -760,180 +810,3 @@ of the repositories listed at
810 cf. <5671DB28.8020901@kdbg.org>
811
812 Will merge to 'master'.
763 -
764 ---------------------------------------------------
765 -[Discarded]
766 -
767 -* jc/attr (2016-05-25) 18 commits
768 - . attr: support quoting pathname patterns in C style
769 - . attr: expose validity check for attribute names
770 - . attr: add counted string version of git_attr()
771 - . attr: add counted string version of git_check_attr()
772 - . attr: retire git_check_attrs() API
773 - . attr: convert git_check_attrs() callers to use the new API
774 - . attr: convert git_all_attrs() to use "struct git_attr_check"
775 - . attr: (re)introduce git_check_attr() and struct git_attr_check
776 - . attr: rename function and struct related to checking attributes
777 - . attr.c: plug small leak in parse_attr_line()
778 - . attr.c: tighten constness around "git_attr" structure
779 - . attr.c: simplify macroexpand_one()
780 - . attr.c: mark where #if DEBUG ends more clearly
781 - . attr.c: complete a sentence in a comment
782 - . attr.c: explain the lack of attr-name syntax check in parse_attr()
783 - . attr.c: update a stale comment on "struct match_attr"
784 - . attr.c: use strchrnul() to scan for one line
785 - . commit.c: use strchrnul() to scan for one line
786 - (this branch is used by jc/attr-more, sb/pathspec-label and sb/submodule-default-paths.)
787 -
788 - The attributes API has been updated so that it can later be
789 - optimized using the knowledge of which attributes are queried.
790 -
791 - I wanted to polish this topic further to make the attribute
792 - subsystem thread-ready, but because other topics depend on this
793 - topic and they do not (yet) need it to be thread-ready.
794 -
795 - As the authors of topics that depend on this seem not in a hurry,
796 - let's discard this and dependent topics and restart them some other
797 - day.
798 -
799 -
800 -* jc/attr-more (2016-06-09) 8 commits
801 - . attr.c: outline the future plans by heavily commenting
802 - . attr.c: always pass check[] to collect_some_attrs()
803 - . attr.c: introduce empty_attr_check_elems()
804 - . attr.c: correct ugly hack for git_all_attrs()
805 - . attr.c: rename a local variable check
806 - . fixup! d5ad6c13
807 - . attr.c: pass struct git_attr_check down the callchain
808 - . attr.c: add push_stack() helper
809 - (this branch uses jc/attr; is tangled with sb/pathspec-label and sb/submodule-default-paths.)
810 -
811 - The beginning of long and tortuous journey to clean-up attribute
812 - subsystem implementation.
813 -
814 - Needs to be redone.
815 -
816 -
817 -* sb/submodule-default-paths (2016-06-20) 5 commits
818 - . completion: clone can recurse into submodules
819 - . clone: add --init-submodule=<pathspec> switch
820 - . submodule update: add `--init-default-path` switch
821 - . Merge branch 'sb/pathspec-label' into sb/submodule-default-paths
822 - . Merge branch 'jc/attr' into sb/submodule-default-paths
823 - (this branch uses jc/attr and sb/pathspec-label; is tangled with jc/attr-more.)
824 -
825 - Allow specifying the set of submodules the user is interested in on
826 - the command line of "git clone" that clones the superproject.
827 -
828 -
829 -* sb/pathspec-label (2016-06-03) 6 commits
830 - . pathspec: disable preload-index when attribute pathspec magic is in use
831 - . pathspec: allow escaped query values
832 - . pathspec: allow querying for attributes
833 - . pathspec: move prefix check out of the inner loop
834 - . pathspec: move long magic parsing out of prefix_pathspec
835 - . Documentation: fix a typo
836 - (this branch is used by sb/submodule-default-paths; uses jc/attr; is tangled with jc/attr-more.)
837 -
838 - The pathspec mechanism learned ":(attr:X)$pattern" pathspec magic
839 - to limit paths that match $pattern further by attribute settings.
840 - The preload-index mechanism is disabled when the new pathspec magic
841 - is in use (at least for now), because the attribute subsystem is
842 - not thread-ready.
843 -
844 -
845 -* sb/bisect (2016-04-15) 22 commits
846 - . SQUASH???
847 - . bisect: get back halfway shortcut
848 - . bisect: compute best bisection in compute_relevant_weights()
849 - . bisect: use a bottom-up traversal to find relevant weights
850 - . bisect: prepare for different algorithms based on find_all
851 - . bisect: rename count_distance() to compute_weight()
852 - . bisect: make total number of commits global
853 - . bisect: introduce distance_direction()
854 - . bisect: extract get_distance() function from code duplication
855 - . bisect: use commit instead of commit list as arguments when appropriate
856 - . bisect: replace clear_distance() by unique markers
857 - . bisect: use struct node_data array instead of int array
858 - . bisect: get rid of recursion in count_distance()
859 - . bisect: make algorithm behavior independent of DEBUG_BISECT
860 - . bisect: make bisect compile if DEBUG_BISECT is set
861 - . bisect: plug the biggest memory leak
862 - . bisect: add test for the bisect algorithm
863 - . t6030: generalize test to not rely on current implementation
864 - . t: use test_cmp_rev() where appropriate
865 - . t/test-lib-functions.sh: generalize test_cmp_rev
866 - . bisect: allow 'bisect run' if no good commit is known
867 - . bisect: write about `bisect next` in documentation
868 -
869 - The internal algorithm used in "git bisect" to find the next commit
870 - to check has been optimized greatly.
871 -
872 - Was expecting a reroll, but now pb/bisect topic starts removinging
873 - more and more parts from git-bisect.sh, this needs to see a fresh
874 - reroll.
875 -
876 - cf. <1460294354-7031-1-git-send-email-s-beyer@gmx.net>
877 -
878 -
879 -* sg/completion-updates (2016-02-28) 21 commits
880 - . completion: cache the path to the repository
881 - . completion: extract repository discovery from __gitdir()
882 - . completion: don't guard git executions with __gitdir()
883 - . completion: consolidate silencing errors from git commands
884 - . completion: don't use __gitdir() for git commands
885 - . completion: respect 'git -C <path>'
886 - . completion: fix completion after 'git -C <path>'
887 - . completion: don't offer commands when 'git --opt' needs an argument
888 - . rev-parse: add '--absolute-git-dir' option
889 - . completion: list short refs from a remote given as a URL
890 - . completion: don't list 'HEAD' when trying refs completion outside of a repo
891 - . completion: list refs from remote when remote's name matches a directory
892 - . completion: respect 'git --git-dir=<path>' when listing remote refs
893 - . completion: fix most spots not respecting 'git --git-dir=<path>'
894 - . completion: ensure that the repository path given on the command line exists
895 - . completion tests: add tests for the __git_refs() helper function
896 - . completion tests: check __gitdir()'s output in the error cases
897 - . completion tests: consolidate getting path of current working directory
898 - . completion tests: make the $cur variable local to the test helper functions
899 - . completion tests: don't add test cruft to the test repository
900 - . completion: improve __git_refs()'s in-code documentation
901 -
902 - Has been waiting for a reroll for too long.
903 - cf. <1456754714-25237-1-git-send-email-szeder@ira.uka.de>
904 -
905 -
906 -* pb/bisect (2016-08-23) 27 commits
907 - . bisect--helper: remove the dequote in bisect_start()
908 - . bisect--helper: retire `--bisect-auto-next` subcommand
909 - . bisect--helper: retire `--bisect-autostart` subcommand
910 - . bisect--helper: retire `--check-and-set-terms` subcommand
911 - . bisect--helper: retire `--bisect-write` subcommand
912 - . bisect--helper: `bisect_replay` shell function in C
913 - . bisect--helper: `bisect_log` shell function in C
914 - . bisect--helper: retire `--write-terms` subcommand
915 - . bisect--helper: retire `--check-expected-revs` subcommand
916 - . bisect--helper: `bisect_state` & `bisect_head` shell function in C
917 - . bisect--helper: `bisect_autostart` shell function in C
918 - . bisect--helper: retire `--next-all` subcommand
919 - . bisect--helper: retire `--bisect-clean-state` subcommand
920 - . bisect--helper: `bisect_next` and `bisect_auto_next` shell function in C
921 - . bisect--helper: `bisect_start` shell function partially in C
922 - . bisect--helper: `get_terms` & `bisect_terms` shell function in C
923 - . bisect--helper: `bisect_next_check` & bisect_voc shell function in C
924 - . bisect--helper: `check_and_set_terms` shell function in C
925 - . bisect--helper: `bisect_write` shell function in C
926 - . bisect--helper: `is_expected_rev` & `check_expected_revs` shell function in C
927 - . bisect--helper: `bisect_reset` shell function in C
928 - . wrapper: move is_empty_file() and rename it as is_empty_or_missing_file()
929 - . t6030: explicitly test for bisection cleanup
930 - . bisect--helper: `bisect_clean_state` shell function in C
931 - . bisect--helper: `write_terms` shell function in C
932 - . bisect: rewrite `check_term_format` shell function in C
933 - . bisect--helper: use OPT_CMDMODE instead of OPT_BOOL
934 -
935 - GSoC "bisect" topic.
936 -
937 - I'd prefer to see early part solidified so that reviews can focus
938 - on the later part that is still in flux. We are almost there but
939 - not quite yet.