What's cooking (2017/06 #03)

Junio C Hamano committed Jun 5, 2017 at 11:53 UTC 3f981a596ab892e7ed11d677ba249b8af6a1a84f
1 file changed +332 -416
whats-cooking.txt
+332 -416
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Jun 2017, #02; Fri, 2)
4 -X-master-at: 826c06412e429a091d32d0e1b26e77da33fc1ce9
5 -X-next-at: 4b9c06c7d442bdd2a0056b5372cc385eaee2012e
3 +Subject: What's cooking in git.git (Jun 2017, #03; Mon, 5)
4 +X-master-at: 69e6b9b4f4a91ce90f2c38ed2fa89686f8aff44f
5 +X-next-at: b3defc5cc2fce0752a80d6af33c0598a2e1a01f4
6
7 -What's cooking in git.git (Jun 2017, #02; Fri, 2)
7 +What's cooking in git.git (Jun 2017, #03; Mon, 5)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,12 +12,8 @@ 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 bit more topics are now in 'master'. One unfortunate thing is
16 -that the SHA1 breakage in 2.13 for big-endian platforms were lost in
17 -the noise with excitement felt by some subset of contributors with
18 -the possible use of submodules. The first step in the series is
19 -neutral to the excitement, and should be fast-tracked down to
20 -'maint' soonish.
15 +With many fixes accumulated since v2.13.0, the first maintenance
16 +release v2.13.1 has been tagged. Thanks for all the help.
17
18 You can find the changes described here in the integration branches
19 of the repositories listed at
@@ -27,143 +23,32 @@ of the repositories listed at
23 --------------------------------------------------
24 [Graduated to "master"]
25
30 -* ab/grep-preparatory-cleanup (2017-05-26) 31 commits
31 - (merged to 'next' on 2017-05-29 at f2cfa89d3e)
32 - + grep: assert that threading is enabled when calling grep_{lock,unlock}
33 - + grep: given --threads with NO_PTHREADS=YesPlease, warn
34 - + pack-objects: fix buggy warning about threads
35 - + pack-objects & index-pack: add test for --threads warning
36 - + test-lib: add a PTHREADS prerequisite
37 - + grep: move is_fixed() earlier to avoid forward declaration
38 - + grep: change internal *pcre* variable & function names to be *pcre1*
39 - + grep: change the internal PCRE macro names to be PCRE1
40 - + grep: factor test for \0 in grep patterns into a function
41 - + grep: remove redundant regflags assignments
42 - + grep: catch a missing enum in switch statement
43 - + perf: add a comparison test of log --grep regex engines with -F
44 - + perf: add a comparison test of log --grep regex engines
45 - + perf: add a comparison test of grep regex engines with -F
46 - + perf: add a comparison test of grep regex engines
47 - + perf: emit progress output when unpacking & building
48 - + perf: add a GIT_PERF_MAKE_COMMAND for when *_MAKE_OPTS won't do
49 - + grep: add tests to fix blind spots with \0 patterns
50 - + grep: prepare for testing binary regexes containing rx metacharacters
51 - + grep: add a test helper function for less verbose -f \0 tests
52 - + grep: add tests for grep pattern types being passed to submodules
53 - + grep: amend submodule recursion test for regex engine testing
54 - + grep: add tests for --threads=N and grep.threads
55 - + grep: change non-ASCII -i test to stop using --debug
56 - + grep: add a test for backreferences in PCRE patterns
57 - + grep: add a test asserting that --perl-regexp dies when !PCRE
58 - + log: make --regexp-ignore-case work with --perl-regexp
59 - + log: add exhaustive tests for pattern style options & config
60 - + test-lib: rename the LIBPCRE prerequisite to PCRE
61 - + grep & rev-list doc: stop promising libpcre for --perl-regexp
62 - + Makefile & configure: reword inaccurate comment about PCRE
63 - (this branch is used by ab/pcre-v2 and sb/submodule-blanket-recursive.)
64 -
65 - The internal implementation of "git grep" has seen some clean-up.
66 -
67 -
68 -* ab/ref-filter-no-contains (2017-05-23) 1 commit
69 - (merged to 'next' on 2017-05-29 at 5d39fd2961)
70 - + tag: duplicate mention of --contains should mention --no-contains
71 -
72 - Doc update to a recent topic.
73 -
74 -
75 -* ah/doc-interpret-trailers-ifexists (2017-05-23) 1 commit
76 - (merged to 'next' on 2017-05-29 at cb353c1d21)
77 - + Documentation: fix reference to ifExists for interpret-trailers
78 -
79 - Documentation fix.
80 -
81 -
82 -* ah/doc-pretty-format-fix (2017-05-23) 1 commit
83 - (merged to 'next' on 2017-05-29 at 6e3e8fd80d)
84 - + Documentation: fix formatting typo in pretty-formats.txt
85 -
86 - Documentation fix.
87 -
88 -
89 -* dk/send-email-avoid-net-smtp-ssl-when-able (2017-06-01) 1 commit
90 - (merged to 'next' on 2017-06-01 at 3ff3ddfac7)
91 - + send-email: Net::SMTP::starttls was introduced in v2.34
92 -
93 - A hotfix to a topic in 'master'.
94 -
95 -
96 -* jk/diff-blob (2017-05-24) 15 commits
97 - (merged to 'next' on 2017-05-29 at 5ecc979cc7)
98 - + diff: use blob path for blob/file diffs
99 - + diff: use pending "path" if it is available
100 - + diff: use the word "path" instead of "name" for blobs
101 - + diff: pass whole pending entry in blobinfo
102 - + handle_revision_arg: record paths for pending objects
103 - + handle_revision_arg: record modes for "a..b" endpoints
104 - + t4063: add tests of direct blob diffs
105 - + get_sha1_with_context: dynamically allocate oc->path
106 - + get_sha1_with_context: always initialize oc->symlink_path
107 - + sha1_name: consistently refer to object_context as "oc"
108 - + handle_revision_arg: add handle_dotdot() helper
109 - + handle_revision_arg: hoist ".." check out of range parsing
110 - + handle_revision_arg: stop using "dotdot" as a generic pointer
111 - + handle_revision_arg: simplify commit reference lookups
112 - + handle_revision_arg: reset "dotdot" consistently
113 -
114 - The result from "git diff" that compares two blobs, e.g. "git diff
115 - $commit1:$path $commit2:$path", used to be shown with the full
116 - object name as given on the command line, but it is more natural to
117 - use the $path in the output and use it to look up .gitattributes.
118 -
119 -
120 -* js/bs-is-a-dir-sep-on-windows (2017-05-26) 2 commits
121 - (merged to 'next' on 2017-05-26 at 450b39f726)
122 - + Windows: do not treat a path with backslashes as a remote's nick name
123 - + mingw.h: permit arguments with side effects for is_dir_sep
124 -
125 - "foo\bar\baz" in "git fetch foo\bar\baz", even though there is no
126 - slashes in it, cannot be a nickname for a remote on Windows, as
127 - that is likely to be a pathname on a local filesystem.
128 -
129 -
130 -* jt/send-email-validate-hook (2017-06-02) 1 commit
131 - (merged to 'next' on 2017-06-02 at 32055bc433)
132 - + send-email: check for repo before invoking hook
133 -
134 - A hotfix for a topic already in 'master'.
135 -
136 -
137 -* rs/mingw-path-lookup-simplify (2017-05-23) 1 commit
138 - (merged to 'next' on 2017-05-29 at 4365139a7f)
139 - + mingw: simplify PATH handling
26 +* ab/c-translators-comment-style (2017-05-31) 1 commit
27 + (merged to 'next' on 2017-06-01 at df7fb9199a)
28 + + C style: use standard style for "TRANSLATORS" comments
29
141 - Code simplification.
30 + Update the C style recommendation for notes for translators, as
31 + recent versions of gettext tools can work with our style of
32 + multi-line comments.
33
34
144 -* sb/t5531-update-desc (2017-05-23) 1 commit
145 - (merged to 'next' on 2017-05-29 at 67a91db3cf)
146 - + t5531: fix test description
35 +* ab/sha1dc-maint (2017-05-22) 1 commit
36 + (merged to 'next' on 2017-05-30 at 9eb40bf912)
37 + + sha1dc: update from upstream
38 + (this branch is used by ab/sha1dc.)
39
148 - The description strings for a few tests have been updated.
40 + The "collision detecting" SHA-1 implementation shipped with 2.13
41 + was quite broken on some big-endian platforms and/or platforms that
42 + do not like unaligned fetches. Update to the upstream code which
43 + has already fixed these issues.
44
45
151 -* sl/clean-d-ignored-fix (2017-05-24) 6 commits
152 - (merged to 'next' on 2017-05-29 at 837c255ae8)
153 - + clean: teach clean -d to preserve ignored paths
154 - + dir: expose cmp_name() and check_contains()
155 - + dir: hide untracked contents of untracked dirs
156 - + dir: recurse into untracked dirs for ignored files
157 - + t7061: status --ignored should search untracked dirs
158 - + t7300: clean -d should skip dirs with ignored files
46 +* ab/t3070-test-dedup (2017-05-29) 1 commit
47 + (merged to 'next' on 2017-05-30 at 71eadec33b)
48 + + wildmatch test: remove redundant duplicate test
49
160 - "git clean -d" used to clean directories that has ignored files,
161 - even though the command should not lose ignored ones without "-x".
162 - "git status --ignored" did not list ignored and untracked files
163 - without "-uall". These have been corrected.
50 + Test cleanup.
51
165 ---------------------------------------------------
166 -[New Topics]
52
53 * ad/pull-remote-doc (2017-06-02) 1 commit
54 (merged to 'next' on 2017-06-02 at 32915e88db)
@@ -171,47 +56,261 @@ of the repositories listed at
56
57 Docfix.
58
174 - Will merge to 'master'.
59
60 +* ah/doc-filter-branch-export-env (2017-05-29) 1 commit
61 + (merged to 'next' on 2017-05-30 at a62168bf77)
62 + + doc: filter-branch does not require re-export of vars
63
177 -* jc/diff-tree-stale-comment (2017-06-02) 1 commit
178 - - diff-tree: update stale in-code comments
64 + Docfix.
65
180 - Comment fix.
66 +
67 +* ah/doc-rev-parse-short-default (2017-06-01) 1 commit
68 + (merged to 'next' on 2017-06-01 at f64fcc2a26)
69 + + doc: rewrite description for rev-parse --short
70 +
71 + Doc update.
72 +
73 +
74 +* jh/close-index-before-stat (2017-04-28) 1 commit
75 + (merged to 'next' on 2017-05-16 at 0c0372eb02)
76 + + read-cache: close index.lock in do_write_index
77 +
78 + Originally merged to 'next' on 2017-04-30
79 +
80 + The timestamp of the index file is now taken after the file is
81 + closed, to help Windows, on which a stale timestamp is reported by
82 + fstat() on a file that is opened for writing and data was written
83 + but not yet closed.
84 +
85 +
86 +* jk/connect-symref-info-leak-fix (2017-05-26) 1 commit
87 + (merged to 'next' on 2017-05-30 at d8b75d2dd9)
88 + + connect.c: fix leak in parse_one_symref_info()
89 +
90 + Leakfix.
91 +
92 +
93 +* jk/drop-free-refspecs (2017-06-01) 1 commit
94 + (merged to 'next' on 2017-06-01 at 8f455319fc)
95 + + remote: drop free_refspecs() function
96 +
97 + Code clean-up.
98 +
99 +
100 +* jk/unbreak-am-h (2017-05-30) 1 commit
101 + (merged to 'next' on 2017-06-01 at ee2233d409)
102 + + am: handle "-h" argument earlier
103 + (this branch is used by jk/consistent-h.)
104 +
105 + "git am -h" triggered a BUG().
106 +
107 +
108 +* jk/url-insteadof-config (2017-06-01) 1 commit
109 + (merged to 'next' on 2017-06-01 at e7ea6032c2)
110 + + docs/config: mention protocol implications of url.insteadOf
111 +
112 + The interaction of "url.*.insteadOf" and custom URL scheme's
113 + whitelisting is now documented better.
114 +
115 +
116 +* js/blame-lib (2017-05-25) 29 commits
117 + (merged to 'next' on 2017-05-30 at b4678b36a7)
118 + + blame: move entry prepend to libgit
119 + + blame: move scoreboard setup to libgit
120 + + blame: move scoreboard-related methods to libgit
121 + + blame: move fake-commit-related methods to libgit
122 + + blame: move origin-related methods to libgit
123 + + blame: move core structures to header
124 + + blame: create entry prepend function
125 + + blame: create scoreboard setup function
126 + + blame: create scoreboard init function
127 + + blame: rework methods that determine 'final' commit
128 + + blame: wrap blame_sort and compare_blame_final
129 + + blame: move progress updates to a scoreboard callback
130 + + blame: make sanity_check use a callback in scoreboard
131 + + blame: move no_whole_file_rename flag to scoreboard
132 + + blame: move xdl_opts flags to scoreboard
133 + + blame: move show_root flag to scoreboard
134 + + blame: move reverse flag to scoreboard
135 + + blame: move contents_from to scoreboard
136 + + blame: move copy/move thresholds to scoreboard
137 + + blame: move stat counters to scoreboard
138 + + blame: rename nth_line function
139 + + blame: rename ent_score function
140 + + blame: rename coalesce function
141 + + blame: rename origin-related functions
142 + + blame: rename scoreboard structure to blame_scoreboard
143 + + blame: rename origin structure to blame_origin
144 + + blame: remove unused parameters
145 + + blame: move textconv_object with related functions
146 + + blame: remove unneeded dependency on blob.h
147 +
148 + The internal logic used in "git blame" has been libified to make it
149 + easier to use by cgit.
150 +
151 +
152 +* mb/diff-default-to-indent-heuristics (2017-05-09) 4 commits
153 + (merged to 'next' on 2017-05-29 at 7645575e21)
154 + + add--interactive: drop diff.indentHeuristic handling
155 + + diff: enable indent heuristic by default
156 + + diff: have the diff-* builtins configure diff before initializing revisions
157 + + diff: make the indent heuristic part of diff's basic configuration
158 +
159 + Make the "indent" heuristics the default in "diff" and diff.indentHeuristics
160 + configuration variable an escape hatch for those who do no want it.
161 + Looks like there may be follow-on work possible, but the topic
162 + itself is in good order.
163 + cf. <20170509033258.q7auj5p5lxs4tggd@sigill.intra.peff.net>
164 +
165 +
166 +* mh/packed-ref-store-prep (2017-05-24) 26 commits
167 + (merged to 'next' on 2017-05-29 at e4f5e06b4c)
168 + + cache_ref_iterator_begin(): avoid priming unneeded directories
169 + + ref-filter: limit traversal to prefix
170 + + create_ref_entry(): remove `check_name` option
171 + + refs_ref_iterator_begin(): handle `GIT_REF_PARANOIA`
172 + + read_packed_refs(): report unexpected fopen() failures
173 + + read_packed_refs(): do more of the work of reading packed refs
174 + + get_packed_ref_cache(): assume "packed-refs" won't change while locked
175 + + should_pack_ref(): new function, extracted from `files_pack_refs()`
176 + + ref_update_reject_duplicates(): add a sanity check
177 + + ref_update_reject_duplicates(): use `size_t` rather than `int`
178 + + ref_update_reject_duplicates(): expose function to whole refs module
179 + + ref_transaction_prepare(): new optional step for reference updates
180 + + ref_transaction_commit(): check for valid `transaction->state`
181 + + files_transaction_cleanup(): new helper function
182 + + files_ref_store: put the packed files lock directly in this struct
183 + + files-backend: move `lock` member to `files_ref_store`
184 + + lockfile: add a new method, is_lock_file_locked()
185 + + ref_store: take a `msg` parameter when deleting references
186 + + refs: use `size_t` indexes when iterating over ref transaction updates
187 + + refs_ref_iterator_begin(): don't check prefixes redundantly
188 + + prefix_ref_iterator: don't trim too much
189 + + files-backend: use `die("BUG: ...")`, not `die("internal error: ...")`
190 + + ref_iterator_begin_fn(): fix docstring
191 + + refs.h: clarify docstring for the ref_transaction_update()-related fns
192 + + t3600: clean up permissions test properly
193 + + Merge branch 'bc/object-id'
194 +
195 + The implementation of "ref" API around the "packed refs" have been
196 + cleaned up, in preparation for further changes.
197 +
198 +
199 +* rf/completion-config-commit (2017-05-30) 1 commit
200 + (merged to 'next' on 2017-06-01 at cea32e0486)
201 + + completion: add completions for git config commit
202 + (this branch is used by rf/completion.)
203 +
204 + Completion update.
205 +
206 +
207 +* sd/t3200-typofix (2017-05-29) 1 commit
208 + (merged to 'next' on 2017-05-30 at 784e5e73f8)
209 + + branch test: fix invalid config key access
210 +
211 + Test fix.
212 +
213 +
214 +* tb/pull-ff-rebase-autostash (2017-06-01) 1 commit
215 + (merged to 'next' on 2017-06-01 at b5e676d57e)
216 + + pull: ff --rebase --autostash works in dirty repo
217 +
218 + "git pull --rebase --autostash" didn't auto-stash when the local history
219 + fast-forwards to the upstream.
220 +
221 +--------------------------------------------------
222 +[New Topics]
223 +
224 +* bw/object-id (2017-06-05) 33 commits
225 + - diff: rename diff_fill_sha1_info to diff_fill_oid_info
226 + - diffcore-rename: use is_empty_blob_oid
227 + - tree-diff: convert path_appendnew to object_id
228 + - tree-diff: convert diff_tree_paths to struct object_id
229 + - tree-diff: convert try_to_follow_renames to struct object_id
230 + - builtin/diff-tree: cleanup references to sha1
231 + - diff-tree: convert diff_tree_sha1 to struct object_id
232 + - notes-merge: convert write_note_to_worktree to struct object_id
233 + - notes-merge: convert verify_notes_filepair to struct object_id
234 + - notes-merge: convert find_notes_merge_pair_ps to struct object_id
235 + - notes-merge: convert merge_from_diffs to struct object_id
236 + - notes-merge: convert notes_merge* to struct object_id
237 + - tree-diff: convert diff_root_tree_sha1 to struct object_id
238 + - combine-diff: convert find_paths_* to struct object_id
239 + - combine-diff: convert diff_tree_combined to struct object_id
240 + - diff: convert diff_flush_patch_id to struct object_id
241 + - patch-ids: convert to struct object_id
242 + - diff: finish conversion for prepare_temp_file to struct object_id
243 + - diff: convert reuse_worktree_file to struct object_id
244 + - diff: convert fill_filespec to struct object_id
245 + - diff: convert diff_change to struct object_id
246 + - diff: convert run_diff_files to struct object_id
247 + - diff: convert diff_addremove to struct object_id
248 + - diff: convert diff_index_show_file to struct object_id
249 + - diff: convert get_stat_data to struct object_id
250 + - grep: convert to struct object_id
251 + - notes: convert some accessor functions to struct object_id
252 + - builtin/notes: convert to struct object_id
253 + - notes: convert format_display_notes to struct object_id
254 + - notes: make get_note return pointer to struct object_id
255 + - notes: convert for_each_note to struct object_id
256 + - notes: convert internal parts to struct object_id
257 + - notes: convert internal structures to struct object_id
258 +
259 + Conversion from uchar[20] to struct object_id continues.
260
261 Will merge to 'next'.
262
263
185 -* jc/noent-notdir (2017-05-30) 2 commits
186 - - treewide: use is_missing_file_error() where ENOENT and ENOTDIR are checked
187 - - compat-util: is_missing_file_error()
264 +* rs/strbuf-addftime-zZ (2017-06-04) 1 commit
265 + - strbuf: let strbuf_addftime handle %z and %Z itself
266
189 - Our code often opens a path to an optional file, to work on its
190 - contents when we can successfully open it. We can ignore a failure
191 - to open if such an optional file does not exist, but we do want to
192 - report a failure in opening for other reasons (e.g. we got an I/O
193 - error, or the file is there, but we lack the permission to open).
267 + As there is no portable way to pass timezone information to
268 + strftime, some output format from "git log" and friends are
269 + impossible to produce. Teach our own strbuf_addftime to replace %z
270 + and %Z with caller-supplied values to help working around this.
271
195 - The exact errors we need to ignore are ENOENT (obviously) and
196 - ENOTDIR (less obvious). Instead of repeating comparison of errno
197 - with these two constants, introduce a helper function to do so.
272 + Will merge to 'next'.
273 +
274 +
275 +* sb/submodule-rm-absorb (2017-06-04) 1 commit
276 + - Documentation/git-rm: correct submodule description
277 +
278 + Doc update to a recently graduated topic.
279
280 Will merge to 'next'.
281
282
202 -* rf/completion (2017-06-02) 6 commits
203 - - completion: add git config credentialCache.ignoreSIGHUP
204 - - completion: add git config credential completions
205 - - completion: add git config advice completions
206 - - completion: add git config am.threeWay completion
207 - - completion: add git config core completions
208 - - completion: add git config gc completions
209 - (this branch uses rf/completion-config-commit.)
283 +* sg/revision-parser-skip-prefix (2017-06-04) 3 commits
284 + - revision.c: use skip_prefix() in handle_revision_pseudo_opt()
285 + - revision.c: use skip_prefix() in handle_revision_opt()
286 + - revision.c: stricter parsing of '--no-{min,max}-parents'
287
211 - Completion updates.
288 + Code clean-up.
289 +
290 + Will merge to 'next'.
291 +
292 +
293 +* ab/perf-remove-index-lock (2017-06-05) 1 commit
294 + - perf: work around the tested repo having an index.lock
295 +
296 + When an existing repository is used for t/perf testing, we first
297 + create bit-for-bit copy of it, which may grab a transient state of
298 + the repository and freeze it into the repository used for testing,
299 + which then may cause Git operations to fail. Single out "the index
300 + being locked" case and forcibly drop the lock from the copy.
301
302 Will merge to 'next'.
303
304 +
305 +* ab/wip-fsmonitor (2017-06-04) 7 commits
306 + - perf: add a performance test for core.fsmonitor
307 + - fsmonitor: add a sample query-fsmonitor hook script for Watchman
308 + - fsmonitor: add documentation for the fsmonitor extension
309 + - fsmonitor: add test cases for fsmonitor extension
310 + - fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files.
311 + - dir: make lookup_untracked() available outside of dir.c
312 + - bswap: add 64 bit endianness helper get_be64
313 +
314 --------------------------------------------------
315 [Stalled]
316
@@ -268,103 +367,76 @@ of the repositories listed at
367 --------------------------------------------------
368 [Cooking]
369
271 -* ls/filter-process-delayed (2017-06-01) 5 commits
272 - - convert: add "status=delayed" to filter process protocol
273 - - convert: move multiple file filter error handling to separate function
274 - - t0021: write "OUT" only on success
275 - - t0021: make debug log file name configurable
276 - - t0021: keep filter log files on comparison
277 -
278 - The filter-process interface learned to allow a process with long
279 - latency give a "delayed" response.
280 -
281 - Needs review.
282 -
283 -
284 -* ah/doc-rev-parse-short-default (2017-06-01) 1 commit
285 - (merged to 'next' on 2017-06-01 at f64fcc2a26)
286 - + doc: rewrite description for rev-parse --short
370 +* jc/diff-tree-stale-comment (2017-06-02) 1 commit
371 + (merged to 'next' on 2017-06-04 at bffae281d2)
372 + + diff-tree: update stale in-code comments
373
288 - Doc update.
374 + Comment fix.
375
376 Will merge to 'master'.
377
378
293 -* rf/completion-config-commit (2017-05-30) 1 commit
294 - (merged to 'next' on 2017-06-01 at cea32e0486)
295 - + completion: add completions for git config commit
296 - (this branch is used by rf/completion.)
379 +* jc/noent-notdir (2017-05-30) 2 commits
380 + (merged to 'next' on 2017-06-04 at 7cb4efbc3c)
381 + + treewide: use is_missing_file_error() where ENOENT and ENOTDIR are checked
382 + + compat-util: is_missing_file_error()
383
298 - Completion update.
384 + Our code often opens a path to an optional file, to work on its
385 + contents when we can successfully open it. We can ignore a failure
386 + to open if such an optional file does not exist, but we do want to
387 + report a failure in opening for other reasons (e.g. we got an I/O
388 + error, or the file is there, but we lack the permission to open).
389 +
390 + The exact errors we need to ignore are ENOENT (obviously) and
391 + ENOTDIR (less obvious). Instead of repeating comparison of errno
392 + with these two constants, introduce a helper function to do so.
393
394 Will merge to 'master'.
395
396
303 -* ab/c-translators-comment-style (2017-05-31) 1 commit
304 - (merged to 'next' on 2017-06-01 at df7fb9199a)
305 - + C style: use standard style for "TRANSLATORS" comments
397 +* rf/completion (2017-06-02) 6 commits
398 + (merged to 'next' on 2017-06-04 at dde1e34703)
399 + + completion: add git config credentialCache.ignoreSIGHUP
400 + + completion: add git config credential completions
401 + + completion: add git config advice completions
402 + + completion: add git config am.threeWay completion
403 + + completion: add git config core completions
404 + + completion: add git config gc completions
405
307 - Update the C style recommendation for notes for translators, as
308 - recent versions of gettext tools can work with our style of
309 - multi-line comments.
406 + Completion updates.
407
408 Will merge to 'master'.
409
410
314 -* jc/diff-log-help (2017-06-01) 1 commit
315 - - diff- and log- family: handle "git cmd -h" early
316 - (this branch is used by jc/wip-check-help-option.)
411 +* ls/filter-process-delayed (2017-06-01) 5 commits
412 + - convert: add "status=delayed" to filter process protocol
413 + - convert: move multiple file filter error handling to separate function
414 + - t0021: write "OUT" only on success
415 + - t0021: make debug log file name configurable
416 + - t0021: keep filter log files on comparison
417
318 - The continuation of jk/consistent-h topic; the plumbing commands in
319 - the diff- and log- family were calling into the revision machinery
320 - without repository set-up upon "git $cmd -h", which is fixed.
418 + The filter-process interface learned to allow a process with long
419 + latency give a "delayed" response.
420
322 - Will squeeze into jk/consistent-h topic.
421 + Needs review.
422
423
325 -* jk/consistent-h (2017-05-30) 7 commits
424 +* jk/consistent-h (2017-06-05) 8 commits
425 - t0012: test "-h" with builtins
426 - git: add hidden --list-builtins option
427 - version: convert to parse-options
428 + - diff- and log- family: handle "git cmd -h" early
429 - submodule--helper: show usage for "-h"
430 - remote-{ext,fd}: print usage message on invalid arguments
431 - upload-archive: handle "-h" option early
432 - credential: handle invalid arguments earlier
333 - (this branch uses jk/unbreak-am-h.)
433
434 "git $cmd -h" for builtin commands calls the implementation of the
435 command (i.e. cmd_$cmd() function) without doing any repository
436 set-up, and the commands that expect RUN_SETUP is done by the Git
437 potty needs to be prepared to show the help text without barfing.
438
340 -
341 -* jk/drop-free-refspecs (2017-06-01) 1 commit
342 - (merged to 'next' on 2017-06-01 at 8f455319fc)
343 - + remote: drop free_refspecs() function
344 -
345 - Code clean-up.
346 -
347 - Will merge to 'master'.
348 -
349 -
350 -* jk/unbreak-am-h (2017-05-30) 1 commit
351 - (merged to 'next' on 2017-06-01 at ee2233d409)
352 - + am: handle "-h" argument earlier
353 - (this branch is used by jk/consistent-h.)
354 -
355 - "git am -h" triggered a BUG().
356 -
357 - Will merge to 'master'.
358 -
359 -
360 -* jk/url-insteadof-config (2017-06-01) 1 commit
361 - (merged to 'next' on 2017-06-01 at e7ea6032c2)
362 - + docs/config: mention protocol implications of url.insteadOf
363 -
364 - The interaction of "url.*.insteadOf" and custom URL scheme's
365 - whitelisting is now documented better.
366 -
367 - Will merge to 'master'.
439 + Will merge to 'next'.
440
441
442 * pw/rebase-i-regression-fix-tests (2017-06-01) 1 commit
@@ -377,36 +449,27 @@ of the repositories listed at
449
450
451 * sb/submodule-blanket-recursive (2017-06-01) 9 commits
380 - - builtin/fetch.c: respect 'submodule.recurse' option
381 - - builtin/push.c: respect 'submodule.recurse' option
382 - - builtin/grep.c: respect 'submodule.recurse' option
383 - - Introduce 'submodule.recurse' option for worktree manipulators
384 - - submodule loading: separate code path for .gitmodules and config overlay
385 - - reset/checkout/read-tree: unify config callback for submodule recursion
386 - - submodule test invocation: only pass additional arguments
387 - - submodule recursing: do not write a config variable twice
388 - - Merge branch 'ab/grep-preparatory-cleanup' into sb/submodule-blanket-recursive
452 + (merged to 'next' on 2017-06-04 at 418bb03032)
453 + + builtin/fetch.c: respect 'submodule.recurse' option
454 + + builtin/push.c: respect 'submodule.recurse' option
455 + + builtin/grep.c: respect 'submodule.recurse' option
456 + + Introduce 'submodule.recurse' option for worktree manipulators
457 + + submodule loading: separate code path for .gitmodules and config overlay
458 + + reset/checkout/read-tree: unify config callback for submodule recursion
459 + + submodule test invocation: only pass additional arguments
460 + + submodule recursing: do not write a config variable twice
461 + + Merge branch 'ab/grep-preparatory-cleanup' into sb/submodule-blanket-recursive
462
463 Many commands learned to pay attention to submodule.recurse
464 configuration.
465
393 - Will merge to 'next'.
466 + Will merge to 'master'.
467
468 It is not known if a simple "yes/no" is sufficient in the longer
469 term, and what should happen when --recurse-submodules option starts
470 taking "recurse into them how?" parameter, though.
471
472
400 -* tb/pull-ff-rebase-autostash (2017-06-01) 1 commit
401 - (merged to 'next' on 2017-06-01 at b5e676d57e)
402 - + pull: ff --rebase --autostash works in dirty repo
403 -
404 - "git pull --rebase --autostash" didn't auto-stash when the local history
405 - fast-forwards to the upstream.
406 -
407 - Will merge to 'master'.
408 -
409 -
473 * ab/pcre-v2 (2017-06-02) 8 commits
474 - grep: add support for PCRE v2
475 - grep: un-break building with PCRE >= 8.32 without --enable-jit
@@ -423,46 +486,6 @@ of the repositories listed at
486 Will merge to 'next'.
487
488
426 -* ab/sha1dc-maint (2017-05-22) 1 commit
427 - (merged to 'next' on 2017-05-30 at 9eb40bf912)
428 - + sha1dc: update from upstream
429 - (this branch is used by ab/sha1dc.)
430 -
431 - The "collision detecting" SHA-1 implementation shipped with 2.13
432 - was quite broken on some big-endian platforms and/or platforms that
433 - do not like unaligned fetches. Update to the upstream code which
434 - has already fixed these issues.
435 -
436 - Will merge to 'master'.
437 -
438 -
439 -* ab/t3070-test-dedup (2017-05-29) 1 commit
440 - (merged to 'next' on 2017-05-30 at 71eadec33b)
441 - + wildmatch test: remove redundant duplicate test
442 -
443 - Test cleanup.
444 -
445 - Will merge to 'master'.
446 -
447 -
448 -* ah/doc-filter-branch-export-env (2017-05-29) 1 commit
449 - (merged to 'next' on 2017-05-30 at a62168bf77)
450 - + doc: filter-branch does not require re-export of vars
451 -
452 - Docfix.
453 -
454 - Will merge to 'master'.
455 -
456 -
457 -* jk/connect-symref-info-leak-fix (2017-05-26) 1 commit
458 - (merged to 'next' on 2017-05-30 at d8b75d2dd9)
459 - + connect.c: fix leak in parse_one_symref_info()
460 -
461 - Leakfix.
462 -
463 - Will merge to 'master'.
464 -
465 -
489 * jk/pathspec-magic-disambiguation (2017-05-29) 6 commits
490 - verify_filename(): flip order of checks
491 - verify_filename(): treat ":(magic)" as a pathspec
@@ -483,55 +506,12 @@ of the repositories listed at
506 learned to say "it's a pathspec" a bit more often when the syntax
507 looks like so.
508
486 -
487 -* sd/t3200-typofix (2017-05-29) 1 commit
488 - (merged to 'next' on 2017-05-30 at 784e5e73f8)
489 - + branch test: fix invalid config key access
490 -
491 - Test fix.
492 -
493 - Will merge to 'master'.
494 -
495 -
496 -* mh/packed-ref-store-prep (2017-05-24) 26 commits
497 - (merged to 'next' on 2017-05-29 at e4f5e06b4c)
498 - + cache_ref_iterator_begin(): avoid priming unneeded directories
499 - + ref-filter: limit traversal to prefix
500 - + create_ref_entry(): remove `check_name` option
501 - + refs_ref_iterator_begin(): handle `GIT_REF_PARANOIA`
502 - + read_packed_refs(): report unexpected fopen() failures
503 - + read_packed_refs(): do more of the work of reading packed refs
504 - + get_packed_ref_cache(): assume "packed-refs" won't change while locked
505 - + should_pack_ref(): new function, extracted from `files_pack_refs()`
506 - + ref_update_reject_duplicates(): add a sanity check
507 - + ref_update_reject_duplicates(): use `size_t` rather than `int`
508 - + ref_update_reject_duplicates(): expose function to whole refs module
509 - + ref_transaction_prepare(): new optional step for reference updates
510 - + ref_transaction_commit(): check for valid `transaction->state`
511 - + files_transaction_cleanup(): new helper function
512 - + files_ref_store: put the packed files lock directly in this struct
513 - + files-backend: move `lock` member to `files_ref_store`
514 - + lockfile: add a new method, is_lock_file_locked()
515 - + ref_store: take a `msg` parameter when deleting references
516 - + refs: use `size_t` indexes when iterating over ref transaction updates
517 - + refs_ref_iterator_begin(): don't check prefixes redundantly
518 - + prefix_ref_iterator: don't trim too much
519 - + files-backend: use `die("BUG: ...")`, not `die("internal error: ...")`
520 - + ref_iterator_begin_fn(): fix docstring
521 - + refs.h: clarify docstring for the ref_transaction_update()-related fns
522 - + t3600: clean up permissions test properly
523 - + Merge branch 'bc/object-id'
524 -
525 - The implementation of "ref" API around the "packed refs" have been
526 - cleaned up, in preparation for further changes.
527 -
528 - Will merge to 'master'.
509 + Will merge to 'next'.
510
511
512 * ab/sha1dc (2017-05-22) 2 commits
513 - sha1collisiondetection: automatically enable when submodule is populated
514 - sha1dc: optionally use sha1collisiondetection as a submodule
534 - (this branch uses ab/sha1dc-maint.)
515
516 The "collission-detecting" implementation of SHA-1 hash we borrowed
517 from is replaced by directly binding the upstream project as our
@@ -542,7 +522,8 @@ of the repositories listed at
522 submodule is not yet fully known, but this lets us dip our toes.
523
524
545 -* bp/fsmonitor (2017-06-02) 6 commits
525 +* bp/fsmonitor (2017-06-04) 7 commits
526 + - perf: add a performance test for core.fsmonitor
527 - fsmonitor: add a sample query-fsmonitor hook script for Watchman
528 - fsmonitor: add documentation for the fsmonitor extension
529 - fsmonitor: add test cases for fsmonitor extension
@@ -579,6 +560,8 @@ of the repositories listed at
560 the same as deleted lines elsewhere differently from genuinely new
561 lines.
562
563 + Are we happy with these changes?
564 +
565
566 * xz/send-email-batch-size (2017-05-23) 1 commit
567 - send-email: --batch-size to work around some SMTP server limit
@@ -591,44 +574,6 @@ of the repositories listed at
574 cf. <CACBZZX5GYV50rjg9X602JHqFPaoofH9TwDf_-r_MDu8-rmNV6Q@mail.gmail.com>
575
576
594 -* js/blame-lib (2017-05-25) 29 commits
595 - (merged to 'next' on 2017-05-30 at b4678b36a7)
596 - + blame: move entry prepend to libgit
597 - + blame: move scoreboard setup to libgit
598 - + blame: move scoreboard-related methods to libgit
599 - + blame: move fake-commit-related methods to libgit
600 - + blame: move origin-related methods to libgit
601 - + blame: move core structures to header
602 - + blame: create entry prepend function
603 - + blame: create scoreboard setup function
604 - + blame: create scoreboard init function
605 - + blame: rework methods that determine 'final' commit
606 - + blame: wrap blame_sort and compare_blame_final
607 - + blame: move progress updates to a scoreboard callback
608 - + blame: make sanity_check use a callback in scoreboard
609 - + blame: move no_whole_file_rename flag to scoreboard
610 - + blame: move xdl_opts flags to scoreboard
611 - + blame: move show_root flag to scoreboard
612 - + blame: move reverse flag to scoreboard
613 - + blame: move contents_from to scoreboard
614 - + blame: move copy/move thresholds to scoreboard
615 - + blame: move stat counters to scoreboard
616 - + blame: rename nth_line function
617 - + blame: rename ent_score function
618 - + blame: rename coalesce function
619 - + blame: rename origin-related functions
620 - + blame: rename scoreboard structure to blame_scoreboard
621 - + blame: rename origin structure to blame_origin
622 - + blame: remove unused parameters
623 - + blame: move textconv_object with related functions
624 - + blame: remove unneeded dependency on blob.h
625 -
626 - The internal logic used in "git blame" has been libified to make it
627 - easier to use by cgit.
628 -
629 - Will merge to 'master'.
630 -
631 -
577 * sg/clone-refspec-from-command-line-config (2017-06-01) 2 commits
578 - Documentation/clone: document ignored configuration variables
579 - clone: respect additional configured fetch refspecs during initial fetch
@@ -641,56 +586,27 @@ of the repositories listed at
586 Are we happy with these two?
587
588
644 -* jh/close-index-before-stat (2017-04-28) 1 commit
645 - (merged to 'next' on 2017-05-16 at 0c0372eb02)
646 - + read-cache: close index.lock in do_write_index
647 -
648 - Originally merged to 'next' on 2017-04-30
649 -
650 - The timestamp of the index file is now taken after the file is
651 - closed, to help Windows, on which a stale timestamp is reported by
652 - fstat() on a file that is opened for writing and data was written
653 - but not yet closed.
654 -
655 - Will merge to 'master'.
656 -
657 -
658 -* mb/diff-default-to-indent-heuristics (2017-05-09) 4 commits
659 - (merged to 'next' on 2017-05-29 at 7645575e21)
660 - + add--interactive: drop diff.indentHeuristic handling
661 - + diff: enable indent heuristic by default
662 - + diff: have the diff-* builtins configure diff before initializing revisions
663 - + diff: make the indent heuristic part of diff's basic configuration
664 -
665 - Make the "indent" heuristics the default in "diff" and diff.indentHeuristics
666 - configuration variable an escape hatch for those who do no want it.
667 -
668 - Will merge to 'master'.
669 - Looks like there may be follow-on work possible, but the topic
670 - itself is in good order.
671 - cf. <20170509033258.q7auj5p5lxs4tggd@sigill.intra.peff.net>
672 -
673 -
589 * nd/fopen-errors (2017-06-02) 13 commits
675 - - mingw_fopen: report ENOENT for invalid file names
676 - - mingw: verify that paths are not mistaken for remote nicknames
677 - - log: fix memory leak in open_next_file()
678 - - rerere.c: move error_errno() closer to the source system call
679 - - print errno when reporting a system call error
680 - - wrapper.c: make warn_on_inaccessible() static
681 - - wrapper.c: add and use fopen_or_warn()
682 - - wrapper.c: add and use warn_on_fopen_errors()
683 - - config.mak.uname: set FREAD_READS_DIRECTORIES for Darwin, too
684 - - config.mak.uname: set FREAD_READS_DIRECTORIES for Linux and FreeBSD
685 - - clone: use xfopen() instead of fopen()
686 - - use xfopen() in more places
687 - - git_fopen: fix a sparse 'not declared' warning
590 + (merged to 'next' on 2017-06-04 at 7a755e73bb)
591 + + mingw_fopen: report ENOENT for invalid file names
592 + + mingw: verify that paths are not mistaken for remote nicknames
593 + + log: fix memory leak in open_next_file()
594 + + rerere.c: move error_errno() closer to the source system call
595 + + print errno when reporting a system call error
596 + + wrapper.c: make warn_on_inaccessible() static
597 + + wrapper.c: add and use fopen_or_warn()
598 + + wrapper.c: add and use warn_on_fopen_errors()
599 + + config.mak.uname: set FREAD_READS_DIRECTORIES for Darwin, too
600 + + config.mak.uname: set FREAD_READS_DIRECTORIES for Linux and FreeBSD
601 + + clone: use xfopen() instead of fopen()
602 + + use xfopen() in more places
603 + + git_fopen: fix a sparse 'not declared' warning
604
605 We often try to open a file for reading whose existence is
606 optional, and silently ignore errors from open/fopen; report such
607 errors if they are not due to missing files.
608
693 - Will merge to 'next'.
609 + Will merge to 'master'.
610
611
612 * js/rebase-i-final (2017-05-02) 10 commits
@@ -708,7 +624,7 @@ of the repositories listed at
624 The final batch to "git rebase -i" updates to move more code from
625 the shell script to C.
626
711 - Undecided; expecting a reroll.
627 + Expecting a reroll.
628 This is at its v4.
629 cf. <cover.1493414945.git.johannes.schindelin@gmx.de>
630