What's cooking (2017/10 #01)

Junio C Hamano committed Oct 4, 2017 at 16:18 UTC 8c3450d755d7bb5662ad79f351c50f09ca559e71
1 file changed +353 -315
whats-cooking.txt
+353 -315
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Sep 2017, #06; Fri, 29)
4 -X-master-at: ea220ee40cbb03a63ebad2be902057bf742492fd
5 -X-next-at: c088eec7b5eaefc58ab32b335cb69cb3d5e2cd78
3 +Subject: What's cooking in git.git (Oct 2017, #01; Wed, 4)
4 +X-master-at: 8fb8a945bc2dea2bb04249213ad8dacffbfc604f
5 +X-next-at: 6663358d3414aff4d7dac0c6f06cbfcc2cb48ddb
6
7 -What's cooking in git.git (Sep 2017, #06; Fri, 29)
7 +What's cooking in git.git (Oct 2017, #01; Wed, 4)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,6 +12,10 @@ 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 +I wanted to do v2.15-rc0 today but it seems that this has to slip,
16 +with too many topics still in flight in 'next' among which many are
17 +fixes, one is even a fix for a recent regression.
18 +
19 You can find the changes described here in the integration branches
20 of the repositories listed at
21
@@ -20,336 +24,402 @@ of the repositories listed at
24 --------------------------------------------------
25 [Graduated to "master"]
26
23 -* hn/typofix (2017-09-22) 1 commit
24 - (merged to 'next' on 2017-09-25 at 489ad60f5b)
25 - + submodule.h: typofix
27 +* ad/doc-markup-fix (2017-09-29) 1 commit
28 + (merged to 'next' on 2017-10-02 at fdf600e8f3)
29 + + doc: correct command formatting
30
31 + Docfix.
32
28 -* ic/fix-filter-branch-to-handle-tag-without-tagger (2017-09-22) 4 commits
29 - (merged to 'next' on 2017-09-25 at c7550033df)
30 - + filter-branch: use hash-object instead of mktag
31 - + filter-branch: stash away ref map in a branch
32 - + filter-branch: preserve and restore $GIT_AUTHOR_* and $GIT_COMMITTER_*
33 - + filter-branch: reset $GIT_* before cleaning up
33
35 - "git filter-branch" cannot reproduce a history with a tag without
36 - the tagger field, which only ancient versions of Git allowed to be
37 - created. This has been corrected.
34 +* bc/rev-parse-parseopt-fix (2017-09-25) 7 commits
35 + (merged to 'next' on 2017-09-26 at f3e013eaa4)
36 + + parse-options: only insert newline in help text if needed
37 + + parse-options: write blank line to correct output stream
38 + + t0040,t1502: Demonstrate parse_options bugs
39 + (merged to 'next' on 2017-09-24 at e479bce0ff)
40 + + git-rebase: don't ignore unexpected command line arguments
41 + + rev-parse parseopt: interpret any whitespace as start of help text
42 + + rev-parse parseopt: do not search help text for flag chars
43 + + t1502: demonstrate rev-parse --parseopt option mis-parsing
44
45 + Recent versions of "git rev-parse --parseopt" did not parse the
46 + option specification that does not have the optional flags (*=?!)
47 + correctly, which has been corrected.
48
40 -* ik/userdiff-html-h-element-fix (2017-09-24) 1 commit
41 - (merged to 'next' on 2017-09-25 at e3cbe89672)
42 - + userdiff: fix HTML hunk header regexp
49
44 - The built-in pattern to detect the "function header" for HTML did
45 - not match <H1>..<H6> elements without any attributes, which has
46 - been fixed.
50 +* bw/git-clang-format (2017-10-01) 1 commit
51 + (merged to 'next' on 2017-10-02 at ee84c89b07)
52 + + clang-format: adjust line break penalties
53 + (this branch is used by sb/git-clang-format.)
54
55 + Adjust clang-format penalty parameters.
56
49 -* jc/merge-x-theirs-docfix (2017-09-25) 1 commit
50 - (merged to 'next' on 2017-09-26 at 5a7d954982)
51 - + merge-strategies: avoid implying that "-s theirs" exists
57
53 - The documentation for '-X<option>' for merges was misleadingly
54 - written to suggest that "-s theirs" exists, which is not the case.
58 +* hn/path-ownership-comment (2017-09-27) 2 commits
59 + (merged to 'next' on 2017-09-28 at 7cf8481c29)
60 + + read_gitfile_gently: clarify return value ownership.
61 + + real_path: clarify return value ownership
62
63 + Add comment to a few functions that use a short-lived buffer the
64 + caller can peek and copy out of.
65
57 -* jk/describe-omit-some-refs (2017-09-17) 1 commit
58 - (merged to 'next' on 2017-09-24 at c373c71279)
59 - + describe: fix matching to actually match all patterns
60 - (this branch is used by mk/describe-match-with-all.)
66
62 - "git describe --match" learned to take multiple patterns in v2.13
63 - series, but the feature ignored the patterns after the first one
64 - and did not work at all. This has been fixed.
67 +* hn/string-list-doc (2017-09-27) 1 commit
68 + (merged to 'next' on 2017-09-28 at ffc8f65f4a)
69 + + string-list.h: move documentation from Documentation/api/ into header
70
71 + Doc reorg.
72
67 -* jk/diff-blob (2017-09-22) 1 commit
68 - (merged to 'next' on 2017-09-25 at 38286c8ff5)
69 - + cat-file: handle NULL object_context.path
73
71 - "git cat-file --textconv" started segfaulting recently, which
72 - has been corrected.
74 +* hn/submodule-comment (2017-09-26) 1 commit
75 + (merged to 'next' on 2017-09-28 at a071ca3fde)
76 + + submodule.c: describe submodule_to_gitdir() in a new comment
77
78
75 -* jk/doc-read-tree-table-asciidoctor-fix (2017-09-24) 1 commit
76 - (merged to 'next' on 2017-09-25 at 070163b964)
77 - + doc: put literal block delimiter around table
79 +* jk/no-optional-locks (2017-09-27) 1 commit
80 + (merged to 'next' on 2017-09-28 at eaffe9c638)
81 + + git: add --no-optional-locks option
82
79 - A docfix.
83 + Some commands (most notably "git status") makes an opportunistic
84 + update when performing a read-only operation to help optimize later
85 + operations in the same repository. The new "--no-optional-locks"
86 + option can be passed to Git to disable them.
87
88
82 -* jk/fallthrough (2017-09-22) 3 commits
83 - (merged to 'next' on 2017-09-25 at ad96c37620)
84 - + consistently use "fallthrough" comments in switches
85 - + curl_trace(): eliminate switch fallthrough
86 - + test-line-buffer: simplify command parsing
89 +* jk/read-in-full (2017-09-27) 7 commits
90 + (merged to 'next' on 2017-09-28 at 9d109b9233)
91 + + worktree: check the result of read_in_full()
92 + + worktree: use xsize_t to access file size
93 + + distinguish error versus short read from read_in_full()
94 + + avoid looking at errno for short read_in_full() returns
95 + + prefer "!=" when checking read_in_full() result
96 + + notes-merge: drop dead zero-write code
97 + + files-backend: prefer "0" for write_in_full() error check
98
88 - Many codepaths have been updated to squelch -Wimplicit-fallthrough
89 - warnings from Gcc 7 (which is a good code hygiene).
99 + Code clean-up to prevent future mistakes by copying and pasting
100 + code that checks the result of read_in_full() function.
101
102
92 -* jm/status-ignored-directory-optim (2017-09-19) 1 commit
93 - (merged to 'next' on 2017-09-24 at ca50f5ed41)
94 - + Improve performance of git status --ignored
103 +* jk/validate-headref-fix (2017-09-27) 3 commits
104 + (merged to 'next' on 2017-09-28 at dcea9d16f9)
105 + + validate_headref: use get_oid_hex for detached HEADs
106 + + validate_headref: use skip_prefix for symref parsing
107 + + validate_headref: NUL-terminate HEAD buffer
108
96 - "git status --ignored", when noticing that a directory without any
97 - tracked path is ignored, still enumerated all the ignored paths in
98 - the directory, which is unnecessary. The codepath has been
99 - optimized to avoid this overhead.
109 + Code clean-up.
110
111
102 -* js/win32-lazyload-dll (2017-09-26) 1 commit
103 - (merged to 'next' on 2017-09-26 at 04577bf1c5)
104 - + Win32: simplify loading of DLL functions
112 +* js/rebase-i-final (2017-07-27) 10 commits
113 + (merged to 'next' on 2017-09-26 at ea3f8f5e11)
114 + + rebase -i: rearrange fixup/squash lines using the rebase--helper
115 + + t3415: test fixup with wrapped oneline
116 + + rebase -i: skip unnecessary picks using the rebase--helper
117 + + rebase -i: check for missing commits in the rebase--helper
118 + + t3404: relax rebase.missingCommitsCheck tests
119 + + rebase -i: also expand/collapse the SHA-1s via the rebase--helper
120 + + rebase -i: do not invent onelines when expanding/collapsing SHA-1s
121 + + rebase -i: remove useless indentation
122 + + rebase -i: generate the script via rebase--helper
123 + + t3415: verify that an empty instructionFormat is handled as before
124
106 - Add a helper in anticipation for its need in a future topic RSN.
125 + The final batch to "git rebase -i" updates to move more code from
126 + the shell script to C.
127
128
109 -* jt/fast-export-copy-modify-fix (2017-09-21) 1 commit
110 - (merged to 'next' on 2017-09-24 at c02bfe1902)
111 - + fast-export: do not copy from modified file
129 +* mh/mmap-packed-refs (2017-09-25) 21 commits
130 + (merged to 'next' on 2017-09-29 at 3639417666)
131 + + packed-backend.c: rename a bunch of things and update comments
132 + + mmapped_ref_iterator: inline into `packed_ref_iterator`
133 + + ref_cache: remove support for storing peeled values
134 + + packed_ref_store: get rid of the `ref_cache` entirely
135 + + ref_store: implement `refs_peel_ref()` generically
136 + + packed_read_raw_ref(): read the reference from the mmapped buffer
137 + + packed_ref_iterator_begin(): iterate using `mmapped_ref_iterator`
138 + + read_packed_refs(): ensure that references are ordered when read
139 + + packed_ref_cache: keep the `packed-refs` file mmapped if possible
140 + + packed-backend.c: reorder some definitions
141 + + mmapped_ref_iterator_advance(): no peeled value for broken refs
142 + + mmapped_ref_iterator: add iterator over a packed-refs file
143 + + packed_ref_cache: remember the file-wide peeling state
144 + + read_packed_refs(): read references with minimal copying
145 + + read_packed_refs(): make parsing of the header line more robust
146 + + read_packed_refs(): only check for a header at the top of the file
147 + + read_packed_refs(): use mmap to read the `packed-refs` file
148 + + die_unterminated_line(), die_invalid_line(): new functions
149 + + packed_ref_cache: add a backlink to the associated `packed_ref_store`
150 + + prefix_ref_iterator: break when we leave the prefix
151 + + ref_iterator: keep track of whether the iterator output is ordered
152
113 - "git fast-export" with -M/-C option issued "copy" instruction on a
114 - path that is simultaneously modified, which was incorrect.
153 + Operations that do not touch (majority of) packed refs have been
154 + optimized by making accesses to packed-refs file lazy; we no longer
155 + pre-parse everything, and an access to a single ref in the
156 + packed-refs does not touch majority of irrelevant refs, either.
157
158
117 -* ks/doc-use-camelcase-for-config-name (2017-09-25) 1 commit
118 - (merged to 'next' on 2017-09-26 at 7b4d2115af)
119 - + doc: camelCase the config variables to improve readability
159 +* mr/doc-negative-pathspec (2017-09-25) 1 commit
160 + (merged to 'next' on 2017-09-29 at 147bb7ef8b)
161 + + docs: improve discoverability of exclude pathspec
162
121 - Doc update.
163 + Doc updates.
164
165
124 -* ma/leakplugs (2017-09-24) 6 commits
125 - (merged to 'next' on 2017-09-25 at 69d381a96a)
126 - + pack-bitmap[-write]: use `object_array_clear()`, don't leak
127 - + object_array: add and use `object_array_pop()`
128 - + object_array: use `object_array_clear()`, not `free()`
129 - + leak_pending: use `object_array_clear()`, not `free()`
130 - + commit: fix memory leak in `reduce_heads()`
131 - + builtin/commit: fix memory leak in `prepare_index()`
166 +* sb/diff-color-move (2017-09-28) 1 commit
167 + (merged to 'next' on 2017-09-28 at cbdbc741be)
168 + + diff: correct newline in summary for renamed files
169
133 - Memory leaks in various codepaths have been plugged.
170 + The output from "git diff --summary" was broken in a recent topic
171 + that has been merged to 'master' and lost a LF after reporting of
172 + mode change. This has been fixed.
173
174
136 -* mk/describe-match-with-all (2017-09-20) 2 commits
137 - (merged to 'next' on 2017-09-24 at f96d58dd83)
138 - + describe: teach --match to handle branches and remotes
139 - + Merge branch 'jk/describe-omit-some-refs' into mk/describe-match-with-all
175 +* sb/submodule-diff-header-fix (2017-09-28) 1 commit
176 + (merged to 'next' on 2017-09-28 at 10e0f59303)
177 + + submodule: correct error message for missing commits
178
141 - "git describe --match <pattern>" has been taught to play well with
142 - the "--all" option.
179 + Error message tweak.
180
181
145 -* mk/diff-delta-avoid-large-offset (2017-08-11) 1 commit
146 - (merged to 'next' on 2017-09-26 at b4983ac027)
147 - + diff-delta: do not allow delta offset truncation
182 +* sb/test-submodule-update-config (2017-09-27) 1 commit
183 + (merged to 'next' on 2017-09-28 at 497214603c)
184 + + t7406: submodule.<name>.update command must not be run from .gitmodules
185
149 - The delta format used in the packfile cannot reference data at
150 - offset larger than what can be expressed in 4-byte, but the
151 - generator for the data failed to make sure the offset does not
152 - overflow. This has been corrected.
186
187 +* sd/branch-copy (2017-09-24) 4 commits
188 + (merged to 'next' on 2017-09-28 at a6eceefa02)
189 + + branch: fix "copy" to never touch HEAD
190 + + branch: add a --copy (-c) option to go with --move (-m)
191 + + branch: add test for -m renaming multiple config sections
192 + + config: create a function to format section headers
193
155 -* mk/diff-delta-uint-may-be-shorter-than-ulong (2017-08-10) 1 commit
156 - (merged to 'next' on 2017-09-26 at 0ccd9346d7)
157 - + diff-delta: fix encoding size that would not fit in "unsigned int"
194 + "git branch" learned "-c/-C" to create a new branch by copying an
195 + existing one.
196
159 - The machinery to create xdelta used in pack files received the
160 - sizes of the data in size_t, but lost the higher bits of them by
161 - storing them in "unsigned int" during the computation, which is
162 - fixed.
197 +--------------------------------------------------
198 +[New Topics]
199
200 +* jc/merge-symlink-ours-theirs (2017-09-26) 1 commit
201 + - merge: teach -Xours/-Xtheirs to symbolic link merge
202
165 -* rj/no-sign-compare (2017-09-22) 4 commits
166 - (merged to 'next' on 2017-09-25 at 71ee264ce6)
167 - + ALLOC_GROW: avoid -Wsign-compare warnings
168 - + cache.h: hex2chr() - avoid -Wsign-compare warnings
169 - + commit-slab.h: avoid -Wsign-compare warnings
170 - + git-compat-util.h: xsize_t() - avoid -Wsign-compare warnings
203 + "git merge -Xours/-Xtheirs" learned to use our/their version when
204 + resolving a conflicting updates to a symbolic link.
205
172 - Many codepaths have been updated to squelch -Wsign-compare
173 - warnings.
206 + Needs review.
207
208
176 -* rs/mailinfo-qp-decode-fix (2017-09-24) 1 commit
177 - (merged to 'next' on 2017-09-25 at d48c594041)
178 - + mailinfo: don't decode invalid =XY quoted-printable sequences
209 +* jt/oidmap (2017-10-01) 1 commit
210 + - oidmap: map with OID as key
211
180 - "git mailinfo" was loose in decoding quoted printable and produced
181 - garbage when the two letters after the equal sign are not
182 - hexadecimal. This has been fixed.
212 + Introduce a new "oidmap" API and rewrite oidset to use it.
213
214 + Will merge to 'next'.
215
185 -* rs/resolve-ref-optional-result (2017-09-24) 3 commits
186 - (merged to 'next' on 2017-09-25 at b0f31228bb)
187 - + refs: pass NULL to resolve_ref_unsafe() if hash is not needed
188 - + refs: pass NULL to refs_resolve_ref_unsafe() if hash is not needed
189 - + refs: make sha1 output parameter of refs_resolve_ref_unsafe() optional
216
191 - Code clean-up.
217 +* jt/partial-clone-lazy-fetch (2017-10-02) 18 commits
218 + - fetch-pack: restore save_commit_buffer after use
219 + - unpack-trees: batch fetching of missing blobs
220 + - clone: configure blobmaxbytes in created repos
221 + - clone: support excluding large blobs
222 + - fetch: support excluding large blobs
223 + - fetch: refactor calculation of remote list
224 + - fetch-pack: support excluding large blobs
225 + - pack-objects: support --blob-max-bytes
226 + - pack-objects: rename want_.* to ignore_.*
227 + - gc: do not repack promisor packfiles
228 + - rev-list: support termination at promisor objects
229 + - sha1_file: support lazily fetching missing objects
230 + - introduce fetch-object: fetch one promisor object
231 + - index-pack: refactor writing of .keep files
232 + - fsck: support promisor objects as CLI argument
233 + - fsck: support referenced promisor objects
234 + - fsck: support refs pointing to promisor objects
235 + - fsck: introduce partialclone extension
236 +
237 + A journey for "git clone" and "git fetch" to become "lazier" by
238 + depending more on its remote repository---this is the beginning of
239 + it.
240
241 + Needs review.
242
194 -* sb/doc-config-submodule-update (2017-09-24) 1 commit
195 - (merged to 'next' on 2017-09-25 at 447014b4ce)
196 - + Documentation/config: clarify the meaning of submodule.<name>.update
243
244 +* ma/builtin-unleak (2017-10-02) 1 commit
245 + - builtin/: add UNLEAKs
246
199 -* sb/merge-commit-msg-hook (2017-09-22) 1 commit
200 - (merged to 'next' on 2017-09-25 at 096e0502a8)
201 - + Documentation/githooks: mention merge in commit-msg hook
247 + Many variables that points at a region of memory that will live
248 + throughout the life of the program have been marked with UNLEAK
249 + marker to help the leak checkers concentrate on real leaks..
250
203 - As "git commit" to conclude a conflicted "git merge" honors the
204 - commit-msg hook, "git merge" that records a merge commit that
205 - cleanly auto-merges should, but it didn't.
206 - * sb/merge-commit-msg-hook (2017-09-22) 1 commit
207 - (merged to 'next' on 2017-09-25 at 096e0502a8)
208 - + Documentation/githooks: mention merge in commit-msg hook
251
210 - Add documentation for a topic that has recently graduated to the
211 - 'master' branch.
252 +* ma/lockfile-fixes (2017-10-02) 11 commits
253 + - read-cache: roll back lock on error with `COMMIT_LOCK`
254 + - read-cache: don't leave dangling pointer in `do_write_index()`
255 + - read-cache: require flags for `write_locked_index()`
256 + - cache.h: document `write_locked_index()`
257 + - apply: remove `newfd` from `struct apply_state`
258 + - apply: move lockfile into `apply_state`
259 + - cache-tree: simplify locking logic
260 + - tempfile: fix documentation on `delete_tempfile()`
261 + - lockfile: fix documentation on `close_lock_file_gently()`
262 + - treewide: prefer lockfiles on the stack
263 + - sha1_file: do not leak `lock_file`
264
213 ---------------------------------------------------
214 -[New Topics]
265 + An earlier update made it possible to use an on-stack in-core
266 + lockfile structure (as opposed to having to deliberately leak an
267 + on-heap one). Many codepaths have been updated to take advantage
268 + of this new facility.
269
216 -* er/fast-import-dump-refs-on-checkpoint (2017-09-29) 2 commits
217 - - SQUASH???
218 - - fast-import: checkpoint: dump branches/tags/marks even if object_count==0
270
220 - The checkpoint command "git fast-import" did not flush updates to
221 - refs and marks unless at least one object was created since the
222 - last checkpoint, which has been corrected, as these things can
223 - happen without any new object getting created.
271 +* rs/cleanup-strbuf-users (2017-10-02) 3 commits
272 + (merged to 'next' on 2017-10-03 at 322ec33ad8)
273 + + graph: use strbuf_addchars() to add spaces
274 + + use strbuf_addstr() for adding strings to strbufs
275 + + path: use strbuf_add_real_path()
276
277 + Code clean-up.
278
226 -* hn/path-ownership-comment (2017-09-27) 2 commits
227 - (merged to 'next' on 2017-09-28 at 7cf8481c29)
228 - + read_gitfile_gently: clarify return value ownership.
229 - + real_path: clarify return value ownership
279 + Will merge to 'master'.
280
231 - Add comment to a few functions that use a short-lived buffer the
232 - caller can peek and copy out of.
281 +
282 +* rs/cocci-de-paren-call-params (2017-10-02) 1 commit
283 + (merged to 'next' on 2017-10-03 at ee97fe5c24)
284 + + coccinelle: remove parentheses that become unnecessary
285 +
286 + Code clean-up.
287
288 Will merge to 'master'.
289
290
237 -* hn/string-list-doc (2017-09-27) 1 commit
238 - (merged to 'next' on 2017-09-28 at ffc8f65f4a)
239 - + string-list.h: move documentation from Documentation/api/ into header
291 +* rs/run-command-use-alloc-array (2017-10-03) 1 commit
292 + (merged to 'next' on 2017-10-03 at e3869b6c32)
293 + + run-command: use ALLOC_ARRAY
294
241 - Doc reorg.
295 + Code clean-up.
296
297 Will merge to 'master'.
298
299
246 -* hn/submodule-comment (2017-09-26) 1 commit
247 - (merged to 'next' on 2017-09-28 at a071ca3fde)
248 - + submodule.c: describe submodule_to_gitdir() in a new comment
300 +* rs/tag-null-pointer-arith-fix (2017-10-02) 1 commit
301 + (merged to 'next' on 2017-10-03 at e05d92fec9)
302 + + tag: avoid NULL pointer arithmetic
303 +
304 + Code clean-up.
305
306 Will merge to 'master'.
307
308
253 -* jk/no-optional-locks (2017-09-27) 1 commit
254 - (merged to 'next' on 2017-09-28 at eaffe9c638)
255 - + git: add --no-optional-locks option
309 +* rs/use-free-and-null (2017-10-02) 1 commit
310 + (merged to 'next' on 2017-10-03 at 6340234d67)
311 + + repository: use FREE_AND_NULL
312
257 - Some commands (most notably "git status") makes an opportunistic
258 - update when performing a read-only operation to help optimize later
259 - operations in the same repository. The new "--no-optional-locks"
260 - option can be passed to Git to disable them.
313 + Code clean-up.
314
315 Will merge to 'master'.
316
317
265 -* jk/read-in-full (2017-09-27) 7 commits
266 - (merged to 'next' on 2017-09-28 at 9d109b9233)
267 - + worktree: check the result of read_in_full()
268 - + worktree: use xsize_t to access file size
269 - + distinguish error versus short read from read_in_full()
270 - + avoid looking at errno for short read_in_full() returns
271 - + prefer "!=" when checking read_in_full() result
272 - + notes-merge: drop dead zero-write code
273 - + files-backend: prefer "0" for write_in_full() error check
318 +* sb/git-clang-format (2017-10-02) 1 commit
319 + (merged to 'next' on 2017-10-03 at b40d47b9d5)
320 + + clang-format: add a comment about the meaning/status of the
321
275 - Code clean-up to prevent future mistakes by copying and pasting
276 - code that checks the result of read_in_full() function.
322 + Add comment to clarify that the style file is meant to be used with
323 + clang-5 and the rules are still work in progress.
324
325 Will merge to 'master'.
326
327
281 -* jk/validate-headref-fix (2017-09-27) 3 commits
282 - (merged to 'next' on 2017-09-28 at dcea9d16f9)
283 - + validate_headref: use get_oid_hex for detached HEADs
284 - + validate_headref: use skip_prefix for symref parsing
285 - + validate_headref: NUL-terminate HEAD buffer
328 +* rs/resolve-ref-optional-result (2017-10-01) 2 commits
329 + (merged to 'next' on 2017-10-03 at f129d4b0e9)
330 + + refs: pass NULL to resolve_refdup() if hash is not needed
331 + + refs: pass NULL to refs_resolve_refdup() if hash is not needed
332
333 Code clean-up.
334
335 Will merge to 'master'.
336
337
292 -* sb/diff-color-move (2017-09-28) 1 commit
293 - (merged to 'next' on 2017-09-28 at cbdbc741be)
294 - + diff: correct newline in summary for renamed files
338 +* ar/request-pull-phrasofix (2017-10-03) 1 commit
339 + (merged to 'next' on 2017-10-03 at 07807bba90)
340 + + request-pull: capitalise "Git" to make it a proper noun
341
296 - The output from "git diff --summary" was broken in a recent topic
297 - that has been merged to 'master' and lost a LF after reporting of
298 - mode change. This has been fixed.
342 + Spell the name of our system as "Git" in the output from
343 + request-pull script.
344
345 Will merge to 'master'.
346
347
303 -* sb/submodule-diff-header-fix (2017-09-28) 1 commit
304 - (merged to 'next' on 2017-09-28 at 10e0f59303)
305 - + submodule: correct error message for missing commits
348 +* tb/show-trailers-in-ref-filter (2017-10-02) 7 commits
349 + - ref-filter.c: parse trailers arguments with %(contents) atom
350 + - ref-filter.c: use trailer_opts to format trailers
351 + - t6300: refactor %(trailers) tests
352 + - doc: use "`<literal>`"-style quoting for literal strings
353 + - doc: 'trailers' is the preferred way to format trailers
354 + - t4205: unfold across multiple lines
355 + - pretty.c: delimit "%(trailers)" arguments with ","
356
307 - Error message tweak.
357 + "git for-each-ref --format=..." learned a new format element,
358 + %(trailers), to show only the commit log trailer part of the log
359 + message.
360
309 - Will merge to 'master'.
361 + Will merge to 'next'.
362
363
312 -* sb/test-submodule-update-config (2017-09-27) 1 commit
313 - (merged to 'next' on 2017-09-28 at 497214603c)
314 - + t7406: submodule.<name>.update command must not be run from .gitmodules
364 +* jk/ui-color-always-to-auto (2017-10-04) 3 commits
365 + - Merge branch 'jk/ui-color-always-to-auto-maint' into jk/ui-color-always-to-auto
366 + - t7301: use test_terminal to check color
367 + - t4015: use --color with --color-moved
368 + (this branch uses jk/ui-color-always-to-auto-maint.)
369
316 - Will merge to 'master'.
370
371 +* jk/ui-color-always-to-auto-maint (2017-10-04) 10 commits
372 + - color: make "always" the same as "auto" in config
373 + - provide --color option for all ref-filter users
374 + - t3205: use --color instead of color.branch=always
375 + - t3203: drop "always" color test
376 + - t6006: drop "always" color config tests
377 + - t7502: use diff.noprefix for --verbose test
378 + - t7508: use test_terminal for color output
379 + - t3701: use test-terminal to collect color output
380 + - t4015: prefer --color to -c color.diff=always
381 + - test-terminal: set TERM=vt100
382 + (this branch is used by jk/ui-color-always-to-auto.)
383
319 -* ad/doc-markup-fix (2017-09-29) 1 commit
320 - - doc: correct command formatting
384
322 - Docfix.
385 +* jn/strbuf-doc-re-reuse (2017-10-04) 1 commit
386 + - strbuf doc: reuse after strbuf_release is fine
387
388 Will merge to 'next'.
389
390
327 -* jr/hash-migration-plan-doc (2017-09-28) 1 commit
328 - - technical doc: add a design doc for hash function transition
391 +* ks/branch-tweak-error-message-for-extra-args (2017-10-04) 1 commit
392 + - branch: change the error messages to be more meaningful
393
330 - Lay out plans for weaning us off of SHA-1.
394 + Error message tweak.
395
332 - Will merge to 'next'.
396
397 +* ks/verify-filename-non-option-error-message-tweak (2017-10-04) 1 commit
398 + - setup: update error message to be more meaningful
399
335 -* ot/mru-on-list (2017-09-28) 1 commit
336 - - mru: use double-linked list from list.h
400 + Error message tweak.
401
338 - The first step to getting rid of mru API and using the
339 - doubly-linked list API directly instead.
402
341 - Needs review.
342 - Outreachy.
403 +* rs/qsort-s (2017-10-04) 1 commit
404 + - test-stringlist: avoid buffer underrun when sorting nothing
405
406 + Will merge to 'next'.
407
345 -* rb/compat-poll-fix (2017-09-29) 1 commit
346 - - poll.c: always set revents, even if to zero
408
348 - Backports a moral equivalent of 2015 fix to the poll emulation from
349 - the upstream gnulib to fix occasional breakages on HPE NonStop.
409 +* sb/branch-avoid-repeated-strbuf-release (2017-10-04) 1 commit
410 + - branch: reset instead of release a strbuf
411
351 - Needs review.
412 + Will merge to 'next'.
413 +
414 +
415 +* tg/memfixes (2017-10-04) 3 commits
416 + - sub-process: use child_process.args instead of child_process.argv
417 + - http-push: fix construction of hex value from path
418 + - path.c: fix uninitialized memory access
419
420 + Fixes for a handful memory access issues identified by valgrind.
421 +
422 + Will merge to 'next'.
423
424 --------------------------------------------------
425 [Stalled]
@@ -408,15 +478,45 @@ of the repositories listed at
478 --------------------------------------------------
479 [Cooking]
480
411 -* mr/doc-negative-pathspec (2017-09-25) 1 commit
412 - (merged to 'next' on 2017-09-29 at 147bb7ef8b)
413 - + docs: improve discoverability of exclude pathspec
481 +* er/fast-import-dump-refs-on-checkpoint (2017-09-29) 1 commit
482 + (merged to 'next' on 2017-10-03 at 4e7b0e7ec1)
483 + + fast-import: checkpoint: dump branches/tags/marks even if object_count==0
484
415 - Doc updates.
485 + The checkpoint command "git fast-import" did not flush updates to
486 + refs and marks unless at least one object was created since the
487 + last checkpoint, which has been corrected, as these things can
488 + happen without any new object getting created.
489
490 Will merge to 'master'.
491
492
493 +* jr/hash-migration-plan-doc (2017-09-28) 1 commit
494 + - technical doc: add a design doc for hash function transition
495 +
496 + Lay out plans for weaning us off of SHA-1.
497 +
498 + Will merge to 'next'.
499 +
500 +
501 +* ot/mru-on-list (2017-10-01) 1 commit
502 + - mru: use double-linked list from list.h
503 +
504 + The first step to getting rid of mru API and using the
505 + doubly-linked list API directly instead.
506 +
507 + Needs review.
508 + Outreachy.
509 +
510 +
511 +* rb/compat-poll-fix (2017-09-29) 1 commit
512 + - poll.c: always set revents, even if to zero
513 +
514 + Backports a moral equivalent of 2015 fix to the poll emulation from
515 + the upstream gnulib to fix occasional breakages on HPE NonStop.
516 +
517 + Needs review.
518 +
519 +
520 * jm/svn-pushmergeinfo-fix (2017-09-17) 1 commit
521 - git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames.
522
@@ -455,29 +555,12 @@ of the repositories listed at
555 What's the doneness of this one?
556
557
458 -* bc/rev-parse-parseopt-fix (2017-09-25) 7 commits
459 - (merged to 'next' on 2017-09-26 at f3e013eaa4)
460 - + parse-options: only insert newline in help text if needed
461 - + parse-options: write blank line to correct output stream
462 - + t0040,t1502: Demonstrate parse_options bugs
463 - (merged to 'next' on 2017-09-24 at e479bce0ff)
464 - + git-rebase: don't ignore unexpected command line arguments
465 - + rev-parse parseopt: interpret any whitespace as start of help text
466 - + rev-parse parseopt: do not search help text for flag chars
467 - + t1502: demonstrate rev-parse --parseopt option mis-parsing
468 -
469 - Recent versions of "git rev-parse --parseopt" did not parse the
470 - option specification that does not have the optional flags (*=?!)
471 - correctly, which has been corrected.
472 -
473 - Will merge to 'master'.
474 -
475 -
476 -* ds/find-unique-abbrev-optim (2017-09-19) 4 commits
477 - - SQUASH???
558 +* ds/find-unique-abbrev-optim (2017-10-03) 5 commits
559 + - sha1_name: minimize OID comparisons during disambiguation
560 - sha1_name: parse less while finding common prefix
561 - sha1_name: unroll len loop in find_unique_abbrev_r()
480 - - sha1_name: create perf test for find_unique_abbrev()
562 + - p0008-abbrev.sh: test find_unique_abbrev() perf
563 + - test-list-objects: list a subset of object ids
564
565
566 * cc/perf-run-config (2017-09-24) 9 commits
@@ -506,46 +589,28 @@ of the repositories listed at
589 Waiting for review to conclude.
590
591
509 -* js/rebase-i-final (2017-07-27) 10 commits
510 - (merged to 'next' on 2017-09-26 at ea3f8f5e11)
511 - + rebase -i: rearrange fixup/squash lines using the rebase--helper
512 - + t3415: test fixup with wrapped oneline
513 - + rebase -i: skip unnecessary picks using the rebase--helper
514 - + rebase -i: check for missing commits in the rebase--helper
515 - + t3404: relax rebase.missingCommitsCheck tests
516 - + rebase -i: also expand/collapse the SHA-1s via the rebase--helper
517 - + rebase -i: do not invent onelines when expanding/collapsing SHA-1s
518 - + rebase -i: remove useless indentation
519 - + rebase -i: generate the script via rebase--helper
520 - + t3415: verify that an empty instructionFormat is handled as before
521 -
522 - The final batch to "git rebase -i" updates to move more code from
523 - the shell script to C.
524 -
525 - Will merge to 'master'.
526 -
527 -
528 -* bp/fsmonitor (2017-09-24) 12 commits
529 - - fsmonitor: add a performance test
530 - - fsmonitor: add a sample integration script for Watchman
531 - - fsmonitor: add test cases for fsmonitor extension
532 - - split-index: disable the fsmonitor extension when running the split index test
533 - - fsmonitor: add a test tool to dump the index extension
534 - - update-index: add fsmonitor support to update-index
535 - - ls-files: Add support in ls-files to display the fsmonitor valid bit
536 - - fsmonitor: add documentation for the fsmonitor extension.
537 - - fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files.
538 - - update-index: add a new --force-write-index option
539 - - preload-index: add override to enable testing preload-index
540 - - bswap: add 64 bit endianness helper get_be64
592 +* bp/fsmonitor (2017-10-04) 13 commits
593 + - fsmonitor: MINGW support for watchman integration
594 + (merged to 'next' on 2017-10-02 at cf0c67979c)
595 + + fsmonitor: add a performance test
596 + + fsmonitor: add a sample integration script for Watchman
597 + + fsmonitor: add test cases for fsmonitor extension
598 + + split-index: disable the fsmonitor extension when running the split index test
599 + + fsmonitor: add a test tool to dump the index extension
600 + + update-index: add fsmonitor support to update-index
601 + + ls-files: Add support in ls-files to display the fsmonitor valid bit
602 + + fsmonitor: add documentation for the fsmonitor extension.
603 + + fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files.
604 + + update-index: add a new --force-write-index option
605 + + preload-index: add override to enable testing preload-index
606 + + bswap: add 64 bit endianness helper get_be64
607
608 We learned to talk to watchman to speed up "git status" and other
609 operations that need to see which paths have been modified.
610
545 - Looking mostly ready. Further comments?
611
547 -
548 -* bw/protocol-v1 (2017-09-27) 9 commits
612 +* bw/protocol-v1 (2017-10-04) 10 commits
613 + - ssh: introduce a 'simple' ssh variant
614 - i5700: add interop test for protocol transition
615 - http: tell server that the client understands v1
616 - connect: tell server that the client understands v1
@@ -561,46 +626,13 @@ of the repositories listed at
626 without harming them.
627
628
564 -* mh/mmap-packed-refs (2017-09-25) 21 commits
565 - (merged to 'next' on 2017-09-29 at 3639417666)
566 - + packed-backend.c: rename a bunch of things and update comments
567 - + mmapped_ref_iterator: inline into `packed_ref_iterator`
568 - + ref_cache: remove support for storing peeled values
569 - + packed_ref_store: get rid of the `ref_cache` entirely
570 - + ref_store: implement `refs_peel_ref()` generically
571 - + packed_read_raw_ref(): read the reference from the mmapped buffer
572 - + packed_ref_iterator_begin(): iterate using `mmapped_ref_iterator`
573 - + read_packed_refs(): ensure that references are ordered when read
574 - + packed_ref_cache: keep the `packed-refs` file mmapped if possible
575 - + packed-backend.c: reorder some definitions
576 - + mmapped_ref_iterator_advance(): no peeled value for broken refs
577 - + mmapped_ref_iterator: add iterator over a packed-refs file
578 - + packed_ref_cache: remember the file-wide peeling state
579 - + read_packed_refs(): read references with minimal copying
580 - + read_packed_refs(): make parsing of the header line more robust
581 - + read_packed_refs(): only check for a header at the top of the file
582 - + read_packed_refs(): use mmap to read the `packed-refs` file
583 - + die_unterminated_line(), die_invalid_line(): new functions
584 - + packed_ref_cache: add a backlink to the associated `packed_ref_store`
585 - + prefix_ref_iterator: break when we leave the prefix
586 - + ref_iterator: keep track of whether the iterator output is ordered
587 -
588 - Operations that do not touch (majority of) packed refs have been
589 - optimized by making accesses to packed-refs file lazy; we no longer
590 - pre-parse everything, and an access to a single ref in the
591 - packed-refs does not touch majority of irrelevant refs, either.
592 -
593 - Will merge to 'master'.
594 -
595 -
596 -* pc/submodule-helper (2017-09-25) 4 commits
629 +* pc/submodule-helper (2017-10-02) 3 commits
630 - submodule: port submodule subcommand 'status' from shell to C
598 - - submodule: port set_name_rev() from shell to C
631 - submodule--helper: introduce for_each_listed_submodule()
632 - submodule--helper: introduce get_submodule_displaypath()
633
634 GSoC.
603 - Looking better; it appeared to me that 3/4 is totally superfluous, though.
635 + Is this ready for 'next'?
636
637
638 * bc/hash-algo (2017-08-20) 5 commits
@@ -693,14 +725,20 @@ of the repositories listed at
725 this release cycle.
726
727
696 -* sd/branch-copy (2017-09-24) 4 commits
697 - (merged to 'next' on 2017-09-28 at a6eceefa02)
698 - + branch: fix "copy" to never touch HEAD
699 - + branch: add a --copy (-c) option to go with --move (-m)
700 - + branch: add test for -m renaming multiple config sections
701 - + config: create a function to format section headers
728 +--------------------------------------------------
729 +[Discarded]
730 +
731 +* jc/ref-filter-colors-fix (2017-10-03) 2 commits
732 + . colors: git_default_config() does not read color.ui
733 + . Revert "color: check color.ui in git_default_config()"
734 +
735 + Recent tip of 'master' and 'maint' (at least as of v2.14.2) has a
736 + regression in "git add -p" for those who set ui.color=always in
737 + their configuration, caused by us being overly aggressive in
738 + allowing plumbing commands to honor the configuration to fix a
739 + fallout from an earlier change that made everybody, even the
740 + plumbing commands, to automatically color its output by default.
741 + Revert it for now from the released version (and to be released
742 + one) until we come up with a different fix to the problem.
743
703 - "git branch" learned "-c/-C" to create and switch to a new branch
704 - by copying an existing one.
744
706 - Will merge to 'master'.