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