What's cooking (2021/10 #06)

Junio C Hamano committed Oct 25, 2021 at 16:34 UTC d50f041775036f45fb320db498b09fc683cf0a96
1 file changed +605 -639
whats-cooking.txt
+605 -639
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Oct 2021, #05; Mon, 18)
4 -X-master-at: 9d530dc0024503ab4218fe6c4395b8a0aa245478
5 -X-next-at: d3b4e01def5a9517c919f0b815c1b12296dc3dc2
3 +Subject: What's cooking in git.git (Oct 2021, #06; Mon, 25)
4 +X-master-at: e9e5ba39a78c8f5057262d49e261b42a8660d5b9
5 +X-next-at: c40950c09aa26fafb743328ce2dee3ba26b22eec
6
7 -What's cooking in git.git (Oct 2021, #05; Mon, 18)
7 +What's cooking in git.git (Oct 2021, #06; Mon, 25)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking in my tree. Commits
@@ -18,14 +18,9 @@ useful"). Do not read too much into a topic being in (or not in)
18 'seen'. The ones marked with '.' do not appear in any of the
19 integration branches, but I am still holding onto them.
20
21 -The fourteenth batch of topics are in 'master'. It has only been
22 -just a few days since the last batch, but I'd be offline tomorrow
23 -(a forced day-off), so I'm merging them a bit earlier.
24 -
25 -I expect that things will start to calm down in preparation for the
26 -release expected in mid November. Topics that are not marked with
27 -any plans may be in that status because they didn't get much
28 -attention by reviewers, in which case you folks know what to do ;-)
21 +The fifteenth batch of topics are in 'master'. I expect that this
22 +is more-or-less what we can expect in the -rc0, unless there is a
23 +hotfix to what's already merged.
24
25 Copies of the source code to Git live in many repositories, and the
26 following is a list of the ones I push into or their mirrors. Some
@@ -58,272 +53,6 @@ Release tarballs are available at:
53 --------------------------------------------------
54 [Graduated to 'master']
55
61 -* ab/align-parse-options-help (2021-09-22) 4 commits
62 - (merged to 'next' on 2021-10-06 at e22da7ef85)
63 - + parse-options: properly align continued usage output
64 - + git rev-parse --parseopt tests: add more usagestr tests
65 - + send-pack: properly use parse_options() API for usage string
66 - + parse-options API users: align usage output in C-strings
67 -
68 - When "git cmd -h" shows more than one line of usage text (e.g.
69 - the cmd subcommand may take sub-sub-command), parse-options API
70 - learned to align these lines, even across i18n/l10n.
71 -
72 -
73 -* ab/config-based-hooks-1 (2021-09-27) 8 commits
74 - (merged to 'next' on 2021-10-06 at d05325ed35)
75 - + hook-list.h: add a generated list of hooks, like config-list.h
76 - + hook.c users: use "hook_exists()" instead of "find_hook()"
77 - + hook.c: add a hook_exists() wrapper and use it in bugreport.c
78 - + hook.[ch]: move find_hook() from run-command.c to hook.c
79 - + Makefile: remove an out-of-date comment
80 - + Makefile: don't perform "mv $@+ $@" dance for $(GENERATED_H)
81 - + Makefile: stop hardcoding {command,config}-list.h
82 - + Makefile: mark "check" target as .PHONY
83 - (this branch is used by ab/config-based-hooks-2.)
84 -
85 - Mostly preliminary clean-up in the hook API.
86 -
87 -
88 -* ab/designated-initializers-more (2021-10-01) 6 commits
89 - (merged to 'next' on 2021-10-11 at 9b9836c3df)
90 - + builtin/remote.c: add and use SHOW_INFO_INIT
91 - + builtin/remote.c: add and use a REF_STATES_INIT
92 - + urlmatch.[ch]: add and use URLMATCH_CONFIG_INIT
93 - + builtin/blame.c: refactor commit_info_init() to COMMIT_INFO_INIT macro
94 - + daemon.c: refactor hostinfo_init() to HOSTINFO_INIT macro
95 - + Merge branch 'ab/designated-initializers' into ab/designated-initializers-more
96 -
97 - Code clean-up.
98 -
99 -
100 -* ab/help-config-vars (2021-09-23) 9 commits
101 - (merged to 'next' on 2021-10-06 at bf9538cfbd)
102 - + help: move column config discovery to help.c library
103 - + help / completion: make "git help" do the hard work
104 - + help tests: test --config-for-completion option & output
105 - + help: simplify by moving to OPT_CMDMODE()
106 - + help: correct logic error in combining --all and --guides
107 - + help: correct logic error in combining --all and --config
108 - + help tests: add test for --config output
109 - + help: correct usage & behavior of "git help --guides"
110 - + help: correct the usage string in -h and documentation
111 -
112 - Teach "git help -c" into helping the command line completion of
113 - configuration variables.
114 -
115 -
116 -* ab/lib-subtest (2021-09-22) 9 commits
117 - (merged to 'next' on 2021-10-06 at e8fa261811)
118 - + test-lib tests: get rid of copy/pasted mock test code
119 - + test-lib tests: assert 1 exit code, not non-zero
120 - + test-lib tests: refactor common part of check_sub_test_lib_test*()
121 - + test-lib tests: avoid subshell for "test_cmp" for readability
122 - + test-lib tests: don't provide a description for the sub-tests
123 - + test-lib tests: split up "write and run" into two functions
124 - + test-lib tests: move "run_sub_test" to a new lib-subtest.sh
125 - + Merge branch 'ps/t0000-output-directory-fix' into ab/lib-subtest
126 - + Merge branch 'jk/t0000-subtests-fix' into ab/lib-subtest
127 -
128 - Updates to the tests in t0000 to test the test framework.
129 -
130 -
131 -* ab/make-sparse-for-real (2021-09-22) 1 commit
132 - (merged to 'next' on 2021-10-06 at 10e3c31d6a)
133 - + Makefile: make the "sparse" target non-.PHONY
134 -
135 - Prevent "make sparse" from running for the source files that
136 - haven't been modified.
137 -
138 -
139 -* bs/doc-blame-color-lines (2021-10-08) 2 commits
140 - (merged to 'next' on 2021-10-11 at a2cb7768b6)
141 - + blame: document --color-* options
142 - + blame: describe default output format
143 -
144 - The "--color-lines" and "--color-by-age" options of "git blame"
145 - have been missing, which are now documented.
146 -
147 -
148 -* cm/save-restore-terminal (2021-10-06) 2 commits
149 - (merged to 'next' on 2021-10-11 at 962bb3e75b)
150 - + editor: save and reset terminal after calling EDITOR
151 - + terminal: teach git how to save/restore its terminal settings
152 -
153 - An editor session launched during a Git operation (e.g. during 'git
154 - commit') can leave the terminal in a funny state. The code path
155 - has updated to save the terminal state before, and restore it
156 - after, it spawns an editor.
157 -
158 -
159 -* ds/add-rm-with-sparse-index (2021-09-28) 13 commits
160 - (merged to 'next' on 2021-10-06 at 80a9cda797)
161 - + advice: update message to suggest '--sparse'
162 - + mv: refuse to move sparse paths
163 - + rm: skip sparse paths with missing SKIP_WORKTREE
164 - + rm: add --sparse option
165 - + add: update --renormalize to skip sparse paths
166 - + add: update --chmod to skip sparse paths
167 - + add: implement the --sparse option
168 - + add: skip tracked paths outside sparse-checkout cone
169 - + add: fail when adding an untracked sparse file
170 - + dir: fix pattern matching on dirs
171 - + dir: select directories correctly
172 - + t1092: behavior for adding sparse files
173 - + t3705: test that 'sparse_entry' is unstaged
174 -
175 - "git add", "git mv", and "git rm" have been adjusted to avoid
176 - updating paths outside of the sparse-checkout definition unless
177 - the user specifies a "--sparse" option.
178 -
179 -
180 -* en/removing-untracked-fixes (2021-09-27) 12 commits
181 - (merged to 'next' on 2021-10-06 at fc4e387fda)
182 - + Documentation: call out commands that nuke untracked files/directories
183 - + Comment important codepaths regarding nuking untracked files/dirs
184 - + unpack-trees: avoid nuking untracked dir in way of locally deleted file
185 - + unpack-trees: avoid nuking untracked dir in way of unmerged file
186 - + Change unpack_trees' 'reset' flag into an enum
187 - + Remove ignored files by default when they are in the way
188 - + unpack-trees: make dir an internal-only struct
189 - + unpack-trees: introduce preserve_ignored to unpack_trees_options
190 - + read-tree, merge-recursive: overwrite ignored files by default
191 - + checkout, read-tree: fix leak of unpack_trees_options.dir
192 - + t2500: add various tests for nuking untracked files
193 - + Merge branch 'en/am-abort-fix' into en/removing-untracked-fixes
194 -
195 - Various fixes in code paths that move untracked files away to make room.
196 -
197 -
198 -* ja/doc-status-types-and-copies (2021-10-04) 4 commits
199 - (merged to 'next' on 2021-10-06 at 4de6571bf7)
200 - + Documentation/git-status: mention how to detect copies
201 - + Documentation/git-status: document porcelain status T (typechange)
202 - + Documentation/diff-format: state in which cases porcelain status is T
203 - + Documentation/git-status: remove impossible porcelain status DR and DC
204 -
205 - A few kinds of changes "git status" can show were not documented.
206 -
207 -
208 -* jh/builtin-fsmonitor-part1 (2021-09-20) 7 commits
209 - (merged to 'next' on 2021-10-06 at 021f633b9c)
210 - + t/helper/simple-ipc: convert test-simple-ipc to use start_bg_command
211 - + run-command: create start_bg_command
212 - + simple-ipc/ipc-win32: add Windows ACL to named pipe
213 - + simple-ipc/ipc-win32: add trace2 debugging
214 - + simple-ipc: move definition of ipc_active_state outside of ifdef
215 - + simple-ipc: preparations for supporting binary messages.
216 - + trace2: add trace2_child_ready() to report on background children
217 -
218 - Built-in fsmonitor (part 1).
219 -
220 -
221 -* jk/cat-file-batch-all-wo-replace (2021-10-08) 5 commits
222 - (merged to 'next' on 2021-10-11 at 9415f7c43a)
223 - + cat-file: use packed_object_info() for --batch-all-objects
224 - + cat-file: split ordered/unordered batch-all-objects callbacks
225 - + cat-file: disable refs/replace with --batch-all-objects
226 - + cat-file: mention --unordered along with --batch-all-objects
227 - + t1006: clean up broken objects
228 -
229 - "git cat-file --batch" with the "--batch-all-objects" option is
230 - supposed to iterate over all the objects found in a repository, but
231 - it used to translate these object names using the replace mechanism,
232 - which defeats the point of enumerating all objects in the repository.
233 - This has been corrected.
234 -
235 -
236 -* js/retire-preserve-merges (2021-09-07) 11 commits
237 - (merged to 'next' on 2021-09-10 at f645ffd7a3)
238 - + sequencer: restrict scope of a formerly public function
239 - + rebase: remove a no-longer-used function
240 - + rebase: stop mentioning the -p option in comments
241 - + rebase: remove obsolete code comment
242 - + rebase: drop the internal `rebase--interactive` command
243 - + git-svn: drop support for `--preserve-merges`
244 - + rebase: drop support for `--preserve-merges`
245 - + pull: remove support for `--rebase=preserve`
246 - + tests: stop testing `git rebase --preserve-merges`
247 - + remote: warn about unhandled branch.<name>.rebase values
248 - + t5520: do not use `pull.rebase=preserve`
249 -
250 - The "--preserve-merges" option of "git rebase" has been removed.
251 -
252 -
253 -* js/windows-ci-path-fix (2021-10-13) 1 commit
254 - (merged to 'next' on 2021-10-14 at 3047fe56fc)
255 - + ci(windows): ensure that we do not pick up random executables
256 -
257 - The PATH used in CI job may be too wide and let incompatible dlls
258 - to be grabbed, which can cause the build&test to fail. Tighten it.
259 -
260 -
261 -* mt/grep-submodule-textconv (2021-09-29) 1 commit
262 - (merged to 'next' on 2021-10-06 at 1950944b8c)
263 - + grep: demonstrate bug with textconv attributes and submodules
264 -
265 - "git grep --recurse-submodules" takes trees and blobs from the
266 - submodule repository, but the textconv settings when processing a
267 - blob from the submodule is not taken from the submodule repository.
268 - A test is added to demonstrate the issue, without fixing it.
269 -
270 -
271 -* rs/make-verify-path-really-verify-again (2021-10-07) 3 commits
272 - (merged to 'next' on 2021-10-11 at 6b4358876f)
273 - + read-cache: let verify_path() reject trailing dir separators again
274 - + read-cache: add verify_path_internal()
275 - + t3905: show failure to ignore sub-repo
276 -
277 - Recent sparse-index work broke safety against attempts to add paths
278 - with trailing slashes to the index, which has been corrected.
279 -
280 -
281 -* rs/mergesort (2021-10-08) 10 commits
282 - (merged to 'next' on 2021-10-08 at 2e83706316)
283 - + test-mergesort: use repeatable random numbers
284 - (merged to 'next' on 2021-10-03 at 29a672574f)
285 - + mergesort: use ranks stack
286 - + p0071: test performance of llist_mergesort()
287 - + p0071: measure sorting of already sorted and reversed files
288 - + test-mergesort: add unriffle_skewed mode
289 - + test-mergesort: add unriffle mode
290 - + test-mergesort: add generate subcommand
291 - + test-mergesort: add test subcommand
292 - + test-mergesort: add sort subcommand
293 - + test-mergesort: use strbuf_getline()
294 -
295 - The mergesort implementation used to sort linked list has been
296 - optimized.
297 -
298 -
299 -* tb/repack-write-midx (2021-10-07) 10 commits
300 - (merged to 'next' on 2021-10-08 at ff8fec247e)
301 - + test-read-midx: fix leak of bitmap_index struct
302 - (merged to 'next' on 2021-10-06 at ccdd5aaf2a)
303 - + builtin/repack.c: pass `--refs-snapshot` when writing bitmaps
304 - + builtin/repack.c: make largest pack preferred
305 - + builtin/repack.c: support writing a MIDX while repacking
306 - + builtin/repack.c: extract showing progress to a variable
307 - + builtin/repack.c: rename variables that deal with non-kept packs
308 - + builtin/repack.c: keep track of existing packs unconditionally
309 - + midx: preliminary support for `--refs-snapshot`
310 - + builtin/multi-pack-index.c: support `--stdin-packs` mode
311 - + midx: expose `write_midx_file_only()` publicly
312 - (this branch is used by tb/fix-midx-rename-while-mapped.)
313 -
314 - "git repack" has been taught to generate multi-pack reachability
315 - bitmaps.
316 -
317 -
318 -* tz/doc-link-to-bundle-format-fix (2021-10-13) 1 commit
319 - (merged to 'next' on 2021-10-14 at dee8053d49)
320 - + doc: add bundle-format to TECH_DOCS
321 -
322 - Doc update.
323 -
324 ---------------------------------------------------
325 -[New Topics]
326 -
56 * ab/fix-commit-error-message-upon-unwritable-object-store (2021-10-12) 2 commits
57 (merged to 'next' on 2021-10-14 at 08c52f5cd5)
58 + commit: fix duplication regression in permission error output
@@ -332,130 +61,228 @@ Release tarballs are available at:
61 "git commit" gave duplicated error message when the object store
62 was unwritable, which has been corrected.
63
335 - Will merge to 'master'.
64
65 +* ab/fix-make-lint-docs (2021-10-15) 4 commits
66 + (merged to 'next' on 2021-10-18 at 22ebb3213f)
67 + + doc lint: make "lint-docs" non-.PHONY
68 + + doc build: speed up "make lint-docs"
69 + + doc lint: emit errors on STDERR
70 + + doc lint: fix error-hiding regression
71
338 -* rs/disable-gc-during-perf-tests (2021-10-11) 1 commit
339 - (merged to 'next' on 2021-10-14 at e0dd4b9bd4)
340 - + perf: disable automatic housekeeping
72 + Build fix.
73
342 - Avoid performance measurements from getting ruined by gc and other
343 - housekeeping pauses interfering in the middle.
74
345 - Will merge to 'master'.
75 +* ab/fsck-unexpected-type (2021-10-01) 17 commits
76 + (merged to 'next' on 2021-10-14 at 10edc78c9c)
77 + + fsck: report invalid object type-path combinations
78 + + fsck: don't hard die on invalid object types
79 + + object-file.c: stop dying in parse_loose_header()
80 + + object-file.c: return ULHR_TOO_LONG on "header too long"
81 + + object-file.c: use "enum" return type for unpack_loose_header()
82 + + object-file.c: simplify unpack_loose_short_header()
83 + + object-file.c: make parse_loose_header_extended() public
84 + + object-file.c: return -1, not "status" from unpack_loose_header()
85 + + object-file.c: don't set "typep" when returning non-zero
86 + + cat-file tests: test for current --allow-unknown-type behavior
87 + + cat-file tests: add corrupt loose object test
88 + + cat-file tests: test for missing/bogus object with -t, -s and -p
89 + + cat-file tests: move bogus_* variable declarations earlier
90 + + fsck tests: test for garbage appended to a loose object
91 + + fsck tests: test current hash/type mismatch behavior
92 + + fsck tests: refactor one test to use a sub-repo
93 + + fsck tests: add test for fsck-ing an unknown type
94
95 + "git fsck" has been taught to report mismatch between expected and
96 + actual types of an object better.
97
348 -* gc/remote-with-fewer-static-global-variables (2021-10-13) 3 commits
349 - - remote: add struct repository parameter to external functions
350 - - remote: use remote_state parameter internally
351 - - remote: move static variables into per-repository struct
98
353 - Code clean-up to eventually allow information on remotes defined
354 - for an arbitrary repository to be read.
99 +* ab/mark-leak-free-tests (2021-10-12) 10 commits
100 + (merged to 'next' on 2021-10-18 at c522807d5d)
101 + + leak tests: mark some misc tests as passing with SANITIZE=leak
102 + + leak tests: mark various "generic" tests as passing with SANITIZE=leak
103 + + leak tests: mark some read-tree tests as passing with SANITIZE=leak
104 + + leak tests: mark some ls-files tests as passing with SANITIZE=leak
105 + + leak tests: mark all checkout-index tests as passing with SANITIZE=leak
106 + + leak tests: mark all trace2 tests as passing with SANITIZE=leak
107 + + leak tests: mark all ls-tree tests as passing with SANITIZE=leak
108 + + leak tests: run various "test-tool" tests in t00*.sh SANITIZE=leak
109 + + leak tests: run various built-in tests in t00*.sh SANITIZE=leak
110 + + Merge branch 'ab/sanitize-leak-ci' into ab/mark-leak-free-tests
111
356 - Will merge to 'next'?
112 + Bunch of tests are marked as "passing leak check".
113
114
359 -* jk/loosen-urlmatch (2021-10-12) 1 commit
360 - - urlmatch: add underscore to URL_HOST_CHARS
115 +* ab/mark-leak-free-tests-more (2021-10-07) 8 commits
116 + (merged to 'next' on 2021-10-18 at fe798f77b8)
117 + + merge: add missing strbuf_release()
118 + + ls-files: add missing string_list_clear()
119 + + ls-files: fix a trivial dir_clear() leak
120 + + tests: fix test-oid-array leak, test in SANITIZE=leak
121 + + tests: fix a memory leak in test-oidtree.c
122 + + tests: fix a memory leak in test-parse-options.c
123 + + tests: fix a memory leak in test-prio-queue.c
124 + + Merge branch 'ab/sanitize-leak-ci' into ab/mark-leak-free-tests-more
125
362 - Treat "_" as any other DNS-valid characters in an URL when matching
363 - the per-URL configuration variable names.
126 + Bunch of tests are marked as "passing leak check".
127
365 - Will merge to 'next'?
128
129 +* ab/parse-options-cleanup (2021-10-08) 10 commits
130 + (merged to 'next' on 2021-10-18 at 305d339ad9)
131 + + parse-options: change OPT_{SHORT,UNSET} to an enum
132 + + parse-options tests: test optname() output
133 + + parse-options.[ch]: make opt{bug,name}() "static"
134 + + commit-graph: stop using optname()
135 + + parse-options.c: move optname() earlier in the file
136 + + parse-options.h: make the "flags" in "struct option" an enum
137 + + parse-options.c: use exhaustive "case" arms for "enum parse_opt_result"
138 + + parse-options.[ch]: consistently use "enum parse_opt_result"
139 + + parse-options.[ch]: consistently use "enum parse_opt_flags"
140 + + parse-options.h: move PARSE_OPT_SHELL_EVAL between enums
141
368 -* rs/add-dry-run-without-objects (2021-10-12) 1 commit
369 - (merged to 'next' on 2021-10-14 at a42928e134)
370 - + add: don't write objects with --dry-run
142 + Random changes to parse-options implementation.
143
372 - Stop "git add --dry-run" from creating new blob and tree objects.
144
374 - Will merge to 'master'.
145 +* ab/pkt-line-cleanup (2021-10-15) 2 commits
146 + (merged to 'next' on 2021-10-18 at 79b07663da)
147 + + pkt-line.[ch]: remove unused packet_read_line_buf()
148 + + pkt-line.[ch]: remove unused packet_buf_write_len()
149
150 + Code clean-up.
151
377 -* ab/test-bail (2021-10-14) 2 commits
378 - - test-lib.sh: use "Bail out!" syntax on bad SANITIZE=leak use
379 - - test-lib.sh: de-duplicate error() teardown code
152
381 - A new feature has been added to abort early in the test framework.
153 +* ab/test-cleanly-recreate-trash-directory (2021-10-15) 1 commit
154 + (merged to 'next' on 2021-10-18 at 6fdb43973b)
155 + + test-lib.sh: try to re-chmod & retry on failed trash removal
156
383 - Will merge to 'next'.
157 + Improve test framework around unwritable directories.
158
159
386 -* ab/config-based-hooks-2 (2021-10-15) 14 commits
387 - - run-command: remove old run_hook_{le,ve}() hook API
388 - - receive-pack: convert push-to-checkout hook to hook.h
389 - - read-cache: convert post-index-change to use hook.h
390 - - commit: convert {pre-commit,prepare-commit-msg} hook to hook.h
391 - - git-p4: use 'git hook' to run hooks
392 - - send-email: use 'git hook run' for 'sendemail-validate'
393 - - git hook run: add an --ignore-missing flag
394 - - merge: convert post-merge to use hook.h
395 - - hooks: convert 'post-checkout' hook to hook library
396 - - am: convert applypatch to use hook.h
397 - - rebase: convert pre-rebase to use hook.h
398 - - gc: use hook library for pre-auto-gc hook
399 - - hook: add 'run' subcommand
400 - - Merge branch 'ab/config-based-hooks-1' into ab/config-based-hooks-2
160 +* ab/test-lib-diff-cleanup (2021-10-15) 2 commits
161 + (merged to 'next' on 2021-10-18 at 5229c5d01d)
162 + + tests: stop using top-level "README" and "COPYING" files
163 + + "lib-diff" tests: make "README" and "COPYING" test data smaller
164
402 - More "config-based hooks".
165 + Test clean-up.
166
404 - Breaks t2400.
167
168 +* ab/unpack-trees-leakfix (2021-10-13) 4 commits
169 + (merged to 'next' on 2021-10-14 at bb54827704)
170 + + sequencer: fix a memory leak in do_reset()
171 + + sequencer: add a "goto cleanup" to do_reset()
172 + + unpack-trees: don't leak memory in verify_clean_subdirectory()
173 + + Merge branch 'ab/sanitize-leak-ci' into ab/unpack-trees-leakfix
174
407 -* ab/fix-make-lint-docs (2021-10-15) 4 commits
408 - (merged to 'next' on 2021-10-18 at 22ebb3213f)
409 - + doc lint: make "lint-docs" non-.PHONY
410 - + doc build: speed up "make lint-docs"
411 - + doc lint: emit errors on STDERR
412 - + doc lint: fix error-hiding regression
175 + Leakfix.
176
414 - Build fix.
177
416 - Will merge to 'master'.
178 +* da/mergetools-special-case-xxdiff-exit-128 (2021-10-13) 1 commit
179 + (merged to 'next' on 2021-10-18 at 0dd8a08c63)
180 + + mergetools/xxdiff: prevent segfaults from stopping difftool
181
182 + The xxdiff difftool backend can exit with status 128, which the
183 + difftool-helper that launches the backend takes as a significant
184 + failure, when it is not significant at all. Work it around.
185
419 -* ab/ignore-replace-while-working-on-commit-graph (2021-10-15) 3 commits
420 - - commit-graph: don't consider "replace" objects with "verify"
421 - - commit-graph tests: fix another graph_git_two_modes() helper
422 - - commit-graph tests: fix error-hiding graph_git_two_modes() helper
423 - (this branch is used by gc/use-repo-settings.)
186
425 - Teach "git commit-graph" command not to allow using replace objects
426 - at all, as we do not use the commit-graph at runtime when we see
427 - object replacement.
187 +* fs/ssh-signing (2021-09-10) 9 commits
188 + (merged to 'next' on 2021-10-11 at b456b95672)
189 + + ssh signing: test that gpg fails for unknown keys
190 + + ssh signing: tests for logs, tags & push certs
191 + + ssh signing: duplicate t7510 tests for commits
192 + + ssh signing: verify signatures using ssh-keygen
193 + + ssh signing: provide a textual signing_key_id
194 + + ssh signing: retrieve a default key from ssh-agent
195 + + ssh signing: add ssh key format and signing code
196 + + ssh signing: add test prereqs
197 + + ssh signing: preliminary refactoring and clean-up
198 + (this branch is used by fs/ssh-signing-fix and fs/ssh-signing-key-lifetime.)
199
429 - Will merge to 'next'?
200 + Use ssh public crypto for object and push-cert signing.
201
202
432 -* ab/pkt-line-cleanup (2021-10-15) 2 commits
433 - (merged to 'next' on 2021-10-18 at 79b07663da)
434 - + pkt-line.[ch]: remove unused packet_read_line_buf()
435 - + pkt-line.[ch]: remove unused packet_buf_write_len()
203 +* fs/ssh-signing-fix (2021-10-18) 5 commits
204 + (merged to 'next' on 2021-10-18 at 5ffa706433)
205 + + gpg-interface: fix leak of strbufs in get_ssh_key_fingerprint()
206 + + gpg-interface: fix leak of "line" in parse_ssh_output()
207 + (merged to 'next' on 2021-10-14 at 97735c6091)
208 + + ssh signing: clarify trustlevel usage in docs
209 + + ssh signing: fmt-merge-msg tests & config parse
210 + + Merge branch 'fs/ssh-signing' into fs/ssh-signing-fix
211 + (this branch is used by fs/ssh-signing-key-lifetime; uses fs/ssh-signing.)
212
437 - Code clean-up.
213 + Fix-up for the other topic already in 'next'.
214
439 - Will merge to 'master'.
215
216 +* jc/doc-commit-header-continuation-line (2021-10-12) 1 commit
217 + (merged to 'next' on 2021-10-18 at 99b71c0aaf)
218 + + signature-format.txt: explain and illustrate multi-line headers
219
442 -* ab/test-lib-diff-cleanup (2021-10-15) 2 commits
443 - (merged to 'next' on 2021-10-18 at 5229c5d01d)
444 - + tests: stop using top-level "README" and "COPYING" files
445 - + "lib-diff" tests: make "README" and "COPYING" test data smaller
220 + Doc update.
221
447 - Test clean-up.
222
449 - Will merge to 'master'.
223 +* jh/perf-remove-test-times (2021-10-04) 1 commit
224 + (merged to 'next' on 2021-10-14 at 473a26166c)
225 + + t/perf/perf-lib.sh: remove test_times.* at the end test_perf_()
226
227 + Perf test fix.
228
452 -* so/stash-staged (2021-10-18) 1 commit
453 - - stash: implement '--staged' option for 'push' and 'save'
229
455 - "git stash" learned the "--staged" option to stash away what has
456 - been added to the index (and nothing else).
230 +* js/userdiff-cpp (2021-10-25) 7 commits
231 + (merged to 'next' on 2021-10-25 at 2158813163)
232 + + userdiff-cpp: back out the digit-separators in numbers
233 + (merged to 'next' on 2021-10-18 at fea77f6c4e)
234 + + userdiff-cpp: learn the C++ spaceship operator
235 + + userdiff-cpp: permit the digit-separating single-quote in numbers
236 + + userdiff-cpp: prepare test cases with yet unsupported features
237 + + userdiff-cpp: tighten word regex
238 + + t4034: add tests showing problematic cpp tokenizations
239 + + t4034/cpp: actually test that operator tokens are not split
240
458 - Will merge to 'next'?
241 + Userdiff patterns for the C++ language has been updated.
242 +
243 +
244 +* jt/no-abuse-alternate-odb-for-submodules (2021-10-08) 9 commits
245 + (merged to 'next' on 2021-10-14 at ae49a2ceda)
246 + + submodule: trace adding submodule ODB as alternate
247 + + submodule: pass repo to check_has_commit()
248 + + object-file: only register submodule ODB if needed
249 + + merge-{ort,recursive}: remove add_submodule_odb()
250 + + refs: peeling non-the_repository iterators is BUG
251 + + refs: teach arbitrary repo support to iterators
252 + + refs: plumb repo into ref stores
253 + + Merge branch 'jk/ref-paranoia' into jt/no-abuse-alternate-odb-for-submodules
254 + + Merge branch 'jt/add-submodule-odb-clean-up' into jt/no-abuse-alternate-odb-for-submodules
255 +
256 + Follow through the work to use the repo interface to access
257 + submodule objects in-process, instead of abusing the alternate
258 + object database interface.
259 +
260 +
261 +* pw/sparse-cache-tree-verify-fix (2021-10-18) 2 commits
262 + (merged to 'next' on 2021-10-18 at 0186a643cc)
263 + + t1092: run "rebase --apply" without "-q" in testing
264 + (merged to 'next' on 2021-10-11 at 2f90c87850)
265 + + sparse index: fix use-after-free bug in cache_tree_verify()
266 +
267 + Recent sparse-index addition, namely any use of index_name_pos(),
268 + can expand sparse index entries and breaks any code that walks
269 + cache-tree or existing index entries. One such instance of such a
270 + breakage has been corrected.
271 +
272 +
273 +* rs/add-dry-run-without-objects (2021-10-12) 1 commit
274 + (merged to 'next' on 2021-10-14 at a42928e134)
275 + + add: don't write objects with --dry-run
276 +
277 + Stop "git add --dry-run" from creating new blob and tree objects.
278 +
279 +
280 +* rs/disable-gc-during-perf-tests (2021-10-11) 1 commit
281 + (merged to 'next' on 2021-10-14 at e0dd4b9bd4)
282 + + perf: disable automatic housekeeping
283 +
284 + Avoid performance measurements from getting ruined by gc and other
285 + housekeeping pauses interfering in the middle.
286
287
288 * tb/fix-midx-rename-while-mapped (2021-10-15) 5 commits
@@ -471,58 +298,245 @@ Release tarballs are available at:
298 version of .midx before removing them from the disk, as some
299 platforms do not allow removal of a file that still has mapping.
300
301 +--------------------------------------------------
302 +[New Topics]
303 +
304 +* ab/generate-command-list (2021-10-23) 10 commits
305 + - generate-cmdlist.sh: replace "cut", "tr" and "grep" with pure-shell
306 + - generate-cmdlist.sh: replace "grep' invocation with a shell version
307 + - generate-cmdlist.sh: do not shell out to "sed"
308 + - generate-cmdlist.sh: stop sorting category lines
309 + - generate-cmdlist.sh: replace for loop by printf's auto-repeat feature
310 + - generate-cmdlist.sh: run "grep | sort", not "sort | grep"
311 + - generate-cmdlist.sh: don't call get_categories() from category_list()
312 + - generate-cmdlist.sh: spawn fewer processes
313 + - generate-cmdlist.sh: trivial whitespace change
314 + - command-list.txt: sort with "LC_ALL=C sort"
315 +
316 + Build optimization.
317 +
318 +
319 +* ab/ref-filter-leakfix (2021-10-20) 3 commits
320 + (merged to 'next' on 2021-10-23 at 8066971a3d)
321 + + branch: use ref_sorting_release()
322 + + ref-filter API user: add and use a ref_sorting_release()
323 + + tag: use a "goto cleanup" pattern, leak less memory
324 + (this branch is used by jc/fix-ref-sorting-parse.)
325 +
326 + "git for-each-ref" family of commands were leaking the ref_sorting
327 + instances that hold sorting keys specified by the user; this has
328 + been corrected.
329 +
330 Will merge to 'master'.
331
332
477 -* vd/sparse-sparsity-fix-on-read (2021-10-15) 2 commits
478 - - sparse-index: update index read to consider index.sparse config
479 - - test-read-cache.c: prepare_repo_settings after config init
333 +* bs/doc-blame-color-lines (2021-10-20) 1 commit
334 + (merged to 'next' on 2021-10-23 at 4da10a5162)
335 + + git config doc: fix recent ASCIIDOC formatting regression
336
481 - Ensure that the sparseness of the in-core index matches the
482 - index.sparse configuration specified by the repository immediately
483 - after the on-disk index file is read.
337 + Doc fix.
338
485 - Under discussion.
339 + Will merge to 'master'.
340
341
488 -* jc/fix-ref-sorting-parse (2021-10-18) 1 commit
489 - - for-each-ref: delay parsing of --sort=<atom> options
342 +* jc/fix-pull-ff-only-when-already-up-to-date (2021-10-20) 1 commit
343 + - pull: --ff-only should make it a noop when already-up-to-date
344
491 - Things like "git -c branch.sort=bogus branch new HEAD", i.e. the
492 - operation modes of the "git branch" command that do not need the
493 - sort key information, no longer errors out by seeing a bogus sort
494 - key.
345 + "git pull --ff-only" and "git pull --rebase --ff-only" should make
346 + it a no-op to attempt pulling from a remote that is behind us, but
347 + instead the command errored out by saying it was impossible to
348 + fast-forward, which may technically be true, but not a useful thing
349 + to diagnose as an error. This has been corrected.
350
351 Will merge to 'next'?
352
353
499 -* jc/tutorial-format-patch-base (2021-10-18) 1 commit
500 - - MyFirstContribution: teach to use "format-patch --base=auto"
354 +* ab/make-sparse-for-real (2021-10-21) 1 commit
355 + (merged to 'next' on 2021-10-23 at f7a8389fb3)
356 + + Makefile: remove redundant GIT-CFLAGS dependency from "sparse"
357
502 - Teach and encourage first-time contributors to this project to
503 - state the base commit when they submit their topic.
358 + Fix-up for a recent topic.
359
360 + Will merge to 'master'.
361
506 -* jk/http-push-status-fix (2021-10-18) 2 commits
507 - - transport-helper: recognize "expecting report" error from send-pack
508 - - send-pack: complain about "expecting report" with --helper-status
362
510 - "git push" client talking to an HTTP server did not diagnose the
511 - lack of the final status report from the other side correctly,
512 - which has been corrected.
363 +* ab/plug-handle-path-exclude-leak (2021-10-21) 1 commit
364 + (merged to 'next' on 2021-10-23 at 6be5d7bea8)
365 + + config.c: don't leak memory in handle_path_include()
366 +
367 + Leakfix.
368 +
369 + Will merge to 'master'.
370 +
371 +
372 +* ab/plug-random-leaks (2021-10-23) 6 commits
373 + (merged to 'next' on 2021-10-23 at 9c04a95718)
374 + + reflog: free() ref given to us by dwim_log()
375 + + submodule--helper: fix small memory leaks
376 + + clone: fix a memory leak of the "git_dir" variable
377 + + grep: fix a "path_list" memory leak
378 + + grep: use object_array_clear() in cmd_grep()
379 + + grep: prefer "struct grep_opt" over its "void *" equivalent
380 +
381 + Leakfix.
382 +
383 + Will merge to 'master'.
384 +
385 +
386 +* ab/sh-retire-helper-functions (2021-10-21) 6 commits
387 + - git-sh-setup: remove "sane_grep", it's not needed anymore
388 + - git-sh-setup: remove unused sane_egrep() function
389 + - git-instaweb: unconditionally assume that gitweb is mod_perl capable
390 + - Makefile: remove $(NO_CURL) from $(SCRIPT_DEFINES)
391 + - Makefile: remove $(GIT_VERSION) from $(SCRIPT_DEFINES)
392 + - Makefile: move git-SCRIPT-DEFINES adjacent to $(SCRIPT_DEFINES)
393 +
394 + Make a few helper functions unused and then lose them.
395 +
396 +
397 +* ab/sh-retire-rebase-preserve-merges (2021-10-21) 2 commits
398 + (merged to 'next' on 2021-10-23 at f1fede7500)
399 + + git-sh-setup: remove messaging supporting --preserve-merges
400 + + git-sh-i18n: remove unused eval_ngettext()
401 +
402 + Code clean-up to remove unused helpers.
403 +
404 + Will merge to 'master'.
405 +
406 +
407 +* ow/stash-count-in-status-porcelain-output (2021-10-21) 2 commits
408 + - status: print stash info with --porcelain=v2 --show-stash
409 + - status: count stash entries in separate function
410 +
411 + Allow "git status --porcelain=v2" to show the number of stash
412 + entries with --show-stash like the normal output does.
413
414 Will merge to 'next'.
415
416
517 -* js/branch-track-inherit (2021-10-18) 1 commit
518 - - branch: add flags and config to inherit tracking
417 +* tb/plug-pack-bitmap-leaks (2021-10-21) 9 commits
418 + - pack-bitmap.c: more aggressively free in free_bitmap_index()
419 + - pack-bitmap.c: don't leak type-level bitmaps
420 + - pack-bitmap.c: avoid leaking via midx_bitmap_filename()
421 + - builtin/multi-pack-index.c: don't leak concatenated options
422 + - builtin/repack.c: avoid leaking child arguments
423 + - builtin/pack-objects.c: don't leak memory via arguments
424 + - t/helper/test-read-midx.c: free MIDX within read_midx_file()
425 + - midx.c: don't leak MIDX from verify_midx_file
426 + - midx.c: clean up chunkfile after reading the MIDX
427
520 - "git -c branch.autosetupmerge=inherit branch new old" makes "new"
521 - to have the same upstream as the "old" branch, instead of marking
522 - "old" itself as its upstream.
428 + Leakfix.
429 +
430 + Will merge to 'next'?
431 +
432 +
433 +* bs/archive-doc-compression-level (2021-10-25) 1 commit
434 + (merged to 'next' on 2021-10-25 at 9360d864a2)
435 + + archive: describe compression level option
436 +
437 + Update "git archive" documentation and give explicit mention on the
438 + compression level for both zip and tar.gz format.
439 +
440 + Will merge to 'master'.
441 +
442 +
443 +* es/pretty-describe-more (2021-10-23) 3 commits
444 + - pretty: add abbrev option to %(describe)
445 + - pretty: add tag option to %(describe)
446 + - pretty.c: rename describe options variable to more descriptive name
447 +
448 + Extend "git log --format=%(describe)" placeholder to allow passing
449 + selected command-line options to the underlying "git describe"
450 + command.
451 +
452 + Expecting a reroll.
453 +
454 +
455 +* fs/ssh-signing-key-lifetime (2021-10-23) 8 commits
456 + - ssh signing: fmt-merge-msg/check_signature with tag date
457 + - ssh signing: verify-tag/check_signature with tag date
458 + - ssh signing: git log/check_signature with commit date
459 + - ssh signing: verify-commit/check_signature with commit date
460 + - ssh signing: add key lifetime test prereqs
461 + - ssh signing: extend check_signature to accept payload metadata
462 + - Merge branch 'fs/ssh-signing-fix' into fs/ssh-signing-key-lifetime
463 + - Merge branch 'fs/ssh-signing' into fs/ssh-signing-key-lifetime
464 +
465 + Extend the signing of objects with SSH keys and learn to pay
466 + attention to the key validity time range when verifying.
467 +
468 + Expecting a reroll.
469 + cf. <51099904-a962-eb23-8baf-9ce15fff7d10@gigacodes.de>
470 +
471 +
472 +* jc/branch-copy-doc (2021-10-23) 1 commit
473 + - branch (doc): -m/-c copies config and reflog
474 +
475 + "git branch -c/-m new old" was not described to copy config, which
476 + has been corrected.
477 +
478 + Will merge to 'next'?
479 +
480 +
481 +* jc/doc-format-patch-clarify-auto-base (2021-10-23) 1 commit
482 + - format-patch (doc): clarify --base=auto
483 +
484 + Rephrase the description of "format-patch --base=auto".
485 +
486 + Will merge to 'next'?
487
524 - Under discussion.
525 - cf. <87a6j6tbsv.fsf@gmgdl.gmail.com>
488 +
489 +* jc/doc-submitting-patches-choice-of-base (2021-10-25) 2 commits
490 + - (wip) reword the final review part
491 + - SubmittingPatchs: clarify choice of base and testing
492 +
493 + Extend the guidance to choose the base commit to build your work
494 + on, and hint/nudge contributors to read others' changes.
495 +
496 +
497 +* js/expand-runtime-prefix (2021-10-25) 1 commit
498 + (merged to 'next' on 2021-10-25 at 7ff05e8222)
499 + + config.txt: fix typo
500 +
501 + Typofix.
502 +
503 + Will merge to 'master'.
504 +
505 +
506 +* ma/doc-folder-to-directory (2021-10-25) 3 commits
507 + - gitweb.txt: change "folder" to "directory"
508 + - gitignore.txt: change "folder" to "directory"
509 + - git-multi-pack-index.txt: change "folder" to "directory"
510 +
511 + Consistently use 'directory', not 'folder', to call the filesystem
512 + entity that collects a group of files and, eh, directories.
513 +
514 + Will merge to 'next' and then to 'master'.
515 +
516 +
517 +* ma/doc-git-version (2021-10-25) 1 commit
518 + (merged to 'next' on 2021-10-25 at 9f74afec0c)
519 + + git.txt: fix typo
520 +
521 + Typofix.
522 +
523 + Will merge to 'master'.
524 +
525 +
526 +* rd/http-backend-code-simplification (2021-10-25) 1 commit
527 + - http-backend: remove a duplicated code branch
528 +
529 + (slight) Code simplification.
530 +
531 + Will merge to 'next'?
532 +
533 +
534 +* sg/sparse-index-not-that-common-a-command (2021-10-25) 1 commit
535 + - command-list.txt: remove 'sparse-index' from main help
536 +
537 + Drop "git sparse-index" from the list of common commands.
538 +
539 + Will merge to 'next'.
540
541 --------------------------------------------------
542 [Stalled]
@@ -544,85 +558,174 @@ Release tarballs are available at:
558 which is among the topics this topic stomps on.
559
560
547 -* pw/diff-color-moved-fix (2021-08-05) 13 commits
548 - - diff: drop unused options parameter from cmp_in_block_with_wsd()
549 - - diff --color-moved: intern strings
550 - - diff: use designated initializers for emitted_diff_symbol
551 - - diff --color-moved-ws=allow-indentation-change: improve hash lookups
552 - - diff --color-moved: stop clearing potential moved blocks
553 - - diff --color-moved: shrink potential moved blocks as we go
554 - - diff --color-moved: unify moved block growth functions
555 - - diff --color-moved: call comparison function directly
556 - - diff --color-moved-ws=allow-indentation-change: simplify and optimize
557 - - diff: simplify allow-indentation-change delta calculation
558 - - diff --color-moved: avoid false short line matches and bad zerba coloring
559 - - diff --color-moved=zebra: fix alternate coloring
560 - - diff --color-moved: add perf tests
561 +* pw/diff-color-moved-fix (2021-08-05) 13 commits
562 + - diff: drop unused options parameter from cmp_in_block_with_wsd()
563 + - diff --color-moved: intern strings
564 + - diff: use designated initializers for emitted_diff_symbol
565 + - diff --color-moved-ws=allow-indentation-change: improve hash lookups
566 + - diff --color-moved: stop clearing potential moved blocks
567 + - diff --color-moved: shrink potential moved blocks as we go
568 + - diff --color-moved: unify moved block growth functions
569 + - diff --color-moved: call comparison function directly
570 + - diff --color-moved-ws=allow-indentation-change: simplify and optimize
571 + - diff: simplify allow-indentation-change delta calculation
572 + - diff --color-moved: avoid false short line matches and bad zerba coloring
573 + - diff --color-moved=zebra: fix alternate coloring
574 + - diff --color-moved: add perf tests
575 +
576 + Originally merged to 'next' on 2021-08-05
577 +
578 + Long-overdue correctness and performance update to "diff
579 + --color-moved" feature.
580 +
581 + Expecting a reroll.
582 + cf. <8bec1a6d-5052-50c3-4100-e6348289d581@gmail.com>
583 +
584 +
585 +* cf/fetch-set-upstream-while-detached (2021-07-06) 1 commit
586 + - fetch: fix segfault on --set-upstream while on a detached HEAD
587 +
588 + "git fetch --set-upstream" while on detached HEAD segfaulted
589 + instead of noticing that such an operation did not make sense.
590 +
591 + Expecting a reroll.
592 + cf. <xmqqsg0ri5mq.fsf@gitster.g>
593 +
594 +--------------------------------------------------
595 +[Cooking]
596 +
597 +* gc/remote-with-fewer-static-global-variables (2021-10-20) 4 commits
598 + - remote: add struct repository parameter to external functions
599 + - remote: remove the_repository->remote_state from static methods
600 + - remote: use remote_state parameter internally
601 + - remote: move static variables into per-repository struct
602 +
603 + Code clean-up to eventually allow information on remotes defined
604 + for an arbitrary repository to be read.
605 +
606 + Expecting a reroll.
607 +
608 + Breaks pushremote_get() and causes "git push" to segfault; there
609 + might be other similar breakages.
610 + cf. <xmqqtuhbo2tn.fsf@gitster.g>
611 +
612 +
613 +* jk/loosen-urlmatch (2021-10-12) 1 commit
614 + (merged to 'next' on 2021-10-25 at f66ca39ebe)
615 + + urlmatch: add underscore to URL_HOST_CHARS
616 +
617 + Treat "_" as any other URL-valid characters in an URL when matching
618 + the per-URL configuration variable names.
619 +
620 + Will merge to 'master'.
621 +
622 +
623 +* ab/test-bail (2021-10-14) 2 commits
624 + (merged to 'next' on 2021-10-23 at 4a16ebdb74)
625 + + test-lib.sh: use "Bail out!" syntax on bad SANITIZE=leak use
626 + + test-lib.sh: de-duplicate error() teardown code
627 +
628 + A new feature has been added to abort early in the test framework.
629 +
630 + Will merge to 'master'.
631 +
632 +
633 +* ab/config-based-hooks-2 (2021-10-20) 14 commits
634 + - run-command: remove old run_hook_{le,ve}() hook API
635 + - receive-pack: convert push-to-checkout hook to hook.h
636 + - read-cache: convert post-index-change to use hook.h
637 + - commit: convert {pre-commit,prepare-commit-msg} hook to hook.h
638 + - git-p4: use 'git hook' to run hooks
639 + - send-email: use 'git hook run' for 'sendemail-validate'
640 + - git hook run: add an --ignore-missing flag
641 + - merge: convert post-merge to use hook.h
642 + - hooks: convert 'post-checkout' hook to hook library
643 + - am: convert applypatch to use hook.h
644 + - rebase: convert pre-rebase to use hook.h
645 + - gc: use hook library for pre-auto-gc hook
646 + - hook: add 'run' subcommand
647 + - Merge branch 'ab/config-based-hooks-1' into ab/config-based-hooks-2
648 +
649 + More "config-based hooks".
650 +
651 +
652 +* ab/ignore-replace-while-working-on-commit-graph (2021-10-15) 3 commits
653 + (merged to 'next' on 2021-10-25 at 5ed4266a96)
654 + + commit-graph: don't consider "replace" objects with "verify"
655 + + commit-graph tests: fix another graph_git_two_modes() helper
656 + + commit-graph tests: fix error-hiding graph_git_two_modes() helper
657 + (this branch is used by gc/use-repo-settings.)
658 +
659 + Teach "git commit-graph" command not to allow using replace objects
660 + at all, as we do not use the commit-graph at runtime when we see
661 + object replacement.
662 +
663 + Will merge to 'master'.
664
562 - Originally merged to 'next' on 2021-08-05
665
564 - Long-overdue correctness and performance update to "diff
565 - --color-moved" feature.
666 +* so/stash-staged (2021-10-18) 1 commit
667 + (merged to 'next' on 2021-10-25 at 68b88e35c4)
668 + + stash: implement '--staged' option for 'push' and 'save'
669
567 - Expecting a reroll.
568 - cf. <8bec1a6d-5052-50c3-4100-e6348289d581@gmail.com>
670 + "git stash" learned the "--staged" option to stash away what has
671 + been added to the index (and nothing else).
672
673 + Will merge to 'master'.
674
571 -* cf/fetch-set-upstream-while-detached (2021-07-06) 1 commit
572 - - fetch: fix segfault on --set-upstream while on a detached HEAD
675
574 - "git fetch --set-upstream" while on detached HEAD segfaulted
575 - instead of noticing that such an operation did not make sense.
676 +* vd/sparse-sparsity-fix-on-read (2021-10-21) 3 commits
677 + - sparse-index: update do_read_index to ensure correct sparsity
678 + - sparse-index: add ensure_correct_sparsity function
679 + - test-read-cache.c: prepare_repo_settings after config init
680
577 - Expecting a reroll.
578 - cf. <xmqqsg0ri5mq.fsf@gitster.g>
681 + Ensure that the sparseness of the in-core index matches the
682 + index.sparse configuration specified by the repository immediately
683 + after the on-disk index file is read.
684
580 ---------------------------------------------------
581 -[Cooking]
685
583 -* ab/test-cleanly-recreate-trash-directory (2021-10-15) 1 commit
584 - (merged to 'next' on 2021-10-18 at 6fdb43973b)
585 - + test-lib.sh: try to re-chmod & retry on failed trash removal
686 +* jc/fix-ref-sorting-parse (2021-10-20) 2 commits
687 + - for-each-ref: delay parsing of --sort=<atom> options
688 + - Merge branch 'ab/ref-filter-leakfix' into jc/fix-ref-sorting-parse
689 + (this branch uses ab/ref-filter-leakfix.)
690
587 - Improve test framework around unwritable directories.
691 + Things like "git -c branch.sort=bogus branch new HEAD", i.e. the
692 + operation modes of the "git branch" command that do not need the
693 + sort key information, no longer errors out by seeing a bogus sort
694 + key.
695
589 - Will merge to 'master'.
696 + Will merge to 'next'.
697
698
592 -* da/mergetools-special-case-xxdiff-exit-128 (2021-10-13) 1 commit
593 - (merged to 'next' on 2021-10-18 at 0dd8a08c63)
594 - + mergetools/xxdiff: prevent segfaults from stopping difftool
699 +* jc/tutorial-format-patch-base (2021-10-23) 1 commit
700 + - MyFirstContribution: teach to use "format-patch --base=auto"
701
596 - The xxdiff difftool backend can exit with status 128, which the
597 - difftool-helper that launches the backend takes as a significant
598 - failure, when it is not significant at all. Work it around.
702 + Teach and encourage first-time contributors to this project to
703 + state the base commit when they submit their topic.
704
600 - Will merge to 'master'.
705 + Will merge to 'next'.
706
707
603 -* fs/ssh-signing-fix (2021-10-18) 5 commits
604 - (merged to 'next' on 2021-10-18 at 5ffa706433)
605 - + gpg-interface: fix leak of strbufs in get_ssh_key_fingerprint()
606 - + gpg-interface: fix leak of "line" in parse_ssh_output()
607 - (merged to 'next' on 2021-10-14 at 97735c6091)
608 - + ssh signing: clarify trustlevel usage in docs
609 - + ssh signing: fmt-merge-msg tests & config parse
610 - + Merge branch 'fs/ssh-signing' into fs/ssh-signing-fix
611 - (this branch uses fs/ssh-signing.)
708 +* jk/http-push-status-fix (2021-10-18) 2 commits
709 + (merged to 'next' on 2021-10-23 at 9704ff261d)
710 + + transport-helper: recognize "expecting report" error from send-pack
711 + + send-pack: complain about "expecting report" with --helper-status
712
613 - Fix-up for the other topic already in 'next'.
713 + "git push" client talking to an HTTP server did not diagnose the
714 + lack of the final status report from the other side correctly,
715 + which has been corrected.
716
717 Will merge to 'master'.
718
719
618 -* jc/doc-commit-header-continuation-line (2021-10-12) 1 commit
619 - (merged to 'next' on 2021-10-18 at 99b71c0aaf)
620 - + signature-format.txt: explain and illustrate multi-line headers
720 +* js/branch-track-inherit (2021-10-18) 1 commit
721 + - branch: add flags and config to inherit tracking
722
622 - Doc update.
723 + "git -c branch.autosetupmerge=inherit branch new old" makes "new"
724 + to have the same upstream as the "old" branch, instead of marking
725 + "old" itself as its upstream.
726
624 - Will merge to 'master'.
625 - cf. <87sfx1hnp4.fsf@trouble.defaultvalue.org>
727 + Under discussion.
728 + cf. <87a6j6tbsv.fsf@gmgdl.gmail.com>
729
730
731 * rb/doc-commit-header-continuation-line (2021-10-11) 1 commit
@@ -638,8 +741,32 @@ Release tarballs are available at:
741 Superseded by the jc/doc-commit-header-continuation-line topic.
742
743
641 -* jh/builtin-fsmonitor-part2 (2021-10-14) 5 commits
642 - - fsmonitor: update fsmonitor config documentation
744 +* jh/builtin-fsmonitor-part2 (2021-10-21) 29 commits
745 + - t7527: test status with untracked-cache and fsmonitor--daemon
746 + - fsmonitor: force update index after large responses
747 + - fsmonitor--daemon: use a cookie file to sync with file system
748 + - fsmonitor--daemon: periodically truncate list of modified files
749 + - t/perf/p7519: add fsmonitor--daemon test cases
750 + - t/perf/p7519: speed up test on Windows
751 + - t/helper/test-chmtime: skip directories on Windows
752 + - t/perf: avoid copying builtin fsmonitor files into test repo
753 + - t7527: create test for fsmonitor--daemon
754 + - t/helper/fsmonitor-client: create IPC client to talk to FSMonitor Daemon
755 + - help: include fsmonitor--daemon feature flag in version info
756 + - fsmonitor--daemon: implement handle_client callback
757 + - compat/fsmonitor/fsm-listen-darwin: implement FSEvent listener on MacOS
758 + - compat/fsmonitor/fsm-listen-darwin: add macos header files for FSEvent
759 + - compat/fsmonitor/fsm-listen-win32: implement FSMonitor backend on Windows
760 + - fsmonitor--daemon: create token-based changed path cache
761 + - fsmonitor--daemon: define token-ids
762 + - fsmonitor--daemon: add pathname classification
763 + - fsmonitor--daemon: implement 'start' command
764 + - fsmonitor--daemon: implement 'run' command
765 + - compat/fsmonitor/fsm-listen-darwin: stub in backend for Darwin
766 + - compat/fsmonitor/fsm-listen-win32: stub in backend for Windows
767 + - fsmonitor--daemon: implement 'stop' and 'status' commands
768 + - fsmonitor--daemon: add a built-in fsmonitor daemon
769 + - fsmonitor: document builtin fsmonitor
770 - fsmonitor: use IPC to query the builtin FSMonitor daemon
771 - fsmonitor: config settings are repository-specific
772 - fsmonitor-ipc: create client routines for git-fsmonitor--daemon
@@ -647,8 +774,6 @@ Release tarballs are available at:
774
775 Built-in fsmonitor (part 2).
776
650 - Breaks check-docs lint.
651 -
777
778 * ld/sparse-diff-blame (2021-10-15) 3 commits
779 - blame: enable and test the sparse index
@@ -659,66 +784,6 @@ Release tarballs are available at:
784 Teach diff and blame to work well with sparse index.
785
786
662 -* ab/mark-leak-free-tests (2021-10-12) 10 commits
663 - (merged to 'next' on 2021-10-18 at c522807d5d)
664 - + leak tests: mark some misc tests as passing with SANITIZE=leak
665 - + leak tests: mark various "generic" tests as passing with SANITIZE=leak
666 - + leak tests: mark some read-tree tests as passing with SANITIZE=leak
667 - + leak tests: mark some ls-files tests as passing with SANITIZE=leak
668 - + leak tests: mark all checkout-index tests as passing with SANITIZE=leak
669 - + leak tests: mark all trace2 tests as passing with SANITIZE=leak
670 - + leak tests: mark all ls-tree tests as passing with SANITIZE=leak
671 - + leak tests: run various "test-tool" tests in t00*.sh SANITIZE=leak
672 - + leak tests: run various built-in tests in t00*.sh SANITIZE=leak
673 - + Merge branch 'ab/sanitize-leak-ci' into ab/mark-leak-free-tests
674 -
675 - Bunch of tests are marked as "passing leak check".
676 -
677 - Will merge to 'master'.
678 -
679 -
680 -* ab/mark-leak-free-tests-more (2021-10-07) 8 commits
681 - (merged to 'next' on 2021-10-18 at fe798f77b8)
682 - + merge: add missing strbuf_release()
683 - + ls-files: add missing string_list_clear()
684 - + ls-files: fix a trivial dir_clear() leak
685 - + tests: fix test-oid-array leak, test in SANITIZE=leak
686 - + tests: fix a memory leak in test-oidtree.c
687 - + tests: fix a memory leak in test-parse-options.c
688 - + tests: fix a memory leak in test-prio-queue.c
689 - + Merge branch 'ab/sanitize-leak-ci' into ab/mark-leak-free-tests-more
690 -
691 - Bunch of tests are marked as "passing leak check".
692 -
693 - Will merge to 'master'.
694 -
695 -
696 -* ab/unpack-trees-leakfix (2021-10-13) 4 commits
697 - (merged to 'next' on 2021-10-14 at bb54827704)
698 - + sequencer: fix a memory leak in do_reset()
699 - + sequencer: add a "goto cleanup" to do_reset()
700 - + unpack-trees: don't leak memory in verify_clean_subdirectory()
701 - + Merge branch 'ab/sanitize-leak-ci' into ab/unpack-trees-leakfix
702 -
703 - Leakfix.
704 -
705 - Will merge to 'master'.
706 -
707 -
708 -* js/userdiff-cpp (2021-10-10) 6 commits
709 - (merged to 'next' on 2021-10-18 at fea77f6c4e)
710 - + userdiff-cpp: learn the C++ spaceship operator
711 - + userdiff-cpp: permit the digit-separating single-quote in numbers
712 - + userdiff-cpp: prepare test cases with yet unsupported features
713 - + userdiff-cpp: tighten word regex
714 - + t4034: add tests showing problematic cpp tokenizations
715 - + t4034/cpp: actually test that operator tokens are not split
716 -
717 - Userdiff patterns for the C++ language has been updated.
718 -
719 - Will merge to 'master'.
720 -
721 -
787 * mp/absorb-submodule-git-dir-upon-deinit (2021-10-07) 1 commit
788 - submodule: absorb git dir instead of dying on deinit
789
@@ -756,27 +821,14 @@ Release tarballs are available at:
821
822
823 * ns/tmp-objdir (2021-10-04) 2 commits
759 - - tmp-objdir: disable ref updates when replacing the primary odb
760 - - tmp-objdir: new API for creating temporary writable databases
824 + (merged to 'next' on 2021-10-23 at 358d376f61)
825 + + tmp-objdir: disable ref updates when replacing the primary odb
826 + + tmp-objdir: new API for creating temporary writable databases
827 (this branch is used by ns/batched-fsync and ns/remerge-diff.)
828
829 New interface into the tmp-objdir API to help in-core use of the
830 quarantine feature.
831
766 - Will merge to 'next'.
767 -
768 -
769 -* pw/sparse-cache-tree-verify-fix (2021-10-18) 2 commits
770 - (merged to 'next' on 2021-10-18 at 0186a643cc)
771 - + t1092: run "rebase --apply" without "-q" in testing
772 - (merged to 'next' on 2021-10-11 at 2f90c87850)
773 - + sparse index: fix use-after-free bug in cache_tree_verify()
774 -
775 - Recent sparse-index addition, namely any use of index_name_pos(),
776 - can expand sparse index entries and breaks any code that walks
777 - cache-tree or existing index entries. One such instance of such a
778 - breakage has been corrected.
779 -
832 Will merge to 'master'.
833
834
@@ -798,25 +850,17 @@ Release tarballs are available at:
850
851
852 * gc/use-repo-settings (2021-10-15) 4 commits
801 - - gc: perform incremental repack when implictly enabled
802 - - fsck: verify multi-pack-index when implictly enabled
803 - - fsck: verify commit graph when implicitly enabled
804 - - Merge branch 'ab/ignore-replace-while-working-on-commit-graph' into gc/use-repo-settings
853 + (merged to 'next' on 2021-10-25 at 3d38c09a8d)
854 + + gc: perform incremental repack when implictly enabled
855 + + fsck: verify multi-pack-index when implictly enabled
856 + + fsck: verify commit graph when implicitly enabled
857 + + Merge branch 'ab/ignore-replace-while-working-on-commit-graph' into gc/use-repo-settings
858 (this branch uses ab/ignore-replace-while-working-on-commit-graph.)
859
860 It is wrong to read some settings directly from the config
861 subsystem, as things like feature.experimental can affect their
862 default values.
863
811 - Will merge to 'next'?
812 -
813 -
814 -* jh/perf-remove-test-times (2021-10-04) 1 commit
815 - (merged to 'next' on 2021-10-14 at 473a26166c)
816 - + t/perf/perf-lib.sh: remove test_times.* at the end test_perf_()
817 -
818 - Perf test fix.
819 -
864 Will merge to 'master'.
865
866
@@ -842,24 +886,6 @@ Release tarballs are available at:
886 protect the fixes.
887
888
845 -* ab/parse-options-cleanup (2021-10-08) 10 commits
846 - (merged to 'next' on 2021-10-18 at 305d339ad9)
847 - + parse-options: change OPT_{SHORT,UNSET} to an enum
848 - + parse-options tests: test optname() output
849 - + parse-options.[ch]: make opt{bug,name}() "static"
850 - + commit-graph: stop using optname()
851 - + parse-options.c: move optname() earlier in the file
852 - + parse-options.h: make the "flags" in "struct option" an enum
853 - + parse-options.c: use exhaustive "case" arms for "enum parse_opt_result"
854 - + parse-options.[ch]: consistently use "enum parse_opt_result"
855 - + parse-options.[ch]: consistently use "enum parse_opt_flags"
856 - + parse-options.h: move PARSE_OPT_SHELL_EVAL between enums
857 -
858 - Random changes to parse-options implementation.
859 -
860 - Will merge to 'master'.
861 -
862 -
889 * es/superproject-aware-submodules (2021-10-14) 4 commits
890 - submodule: record superproject gitdir during 'update'
891 - submodule: record superproject gitdir during absorbgitdirs
@@ -869,52 +895,8 @@ Release tarballs are available at:
895 A configuration variable in a submodule points at the location of
896 the superproject it is bound to (RFC).
897
872 - Will merge to 'next'?
873 -
874 -
875 -* ab/fsck-unexpected-type (2021-10-01) 17 commits
876 - (merged to 'next' on 2021-10-14 at 10edc78c9c)
877 - + fsck: report invalid object type-path combinations
878 - + fsck: don't hard die on invalid object types
879 - + object-file.c: stop dying in parse_loose_header()
880 - + object-file.c: return ULHR_TOO_LONG on "header too long"
881 - + object-file.c: use "enum" return type for unpack_loose_header()
882 - + object-file.c: simplify unpack_loose_short_header()
883 - + object-file.c: make parse_loose_header_extended() public
884 - + object-file.c: return -1, not "status" from unpack_loose_header()
885 - + object-file.c: don't set "typep" when returning non-zero
886 - + cat-file tests: test for current --allow-unknown-type behavior
887 - + cat-file tests: add corrupt loose object test
888 - + cat-file tests: test for missing/bogus object with -t, -s and -p
889 - + cat-file tests: move bogus_* variable declarations earlier
890 - + fsck tests: test for garbage appended to a loose object
891 - + fsck tests: test current hash/type mismatch behavior
892 - + fsck tests: refactor one test to use a sub-repo
893 - + fsck tests: add test for fsck-ing an unknown type
894 -
895 - "git fsck" has been taught to report mismatch between expected and
896 - actual types of an object better.
897 -
898 - Will merge to 'master'.
899 -
900 -
901 -* jt/no-abuse-alternate-odb-for-submodules (2021-10-08) 9 commits
902 - (merged to 'next' on 2021-10-14 at ae49a2ceda)
903 - + submodule: trace adding submodule ODB as alternate
904 - + submodule: pass repo to check_has_commit()
905 - + object-file: only register submodule ODB if needed
906 - + merge-{ort,recursive}: remove add_submodule_odb()
907 - + refs: peeling non-the_repository iterators is BUG
908 - + refs: teach arbitrary repo support to iterators
909 - + refs: plumb repo into ref stores
910 - + Merge branch 'jk/ref-paranoia' into jt/no-abuse-alternate-odb-for-submodules
911 - + Merge branch 'jt/add-submodule-odb-clean-up' into jt/no-abuse-alternate-odb-for-submodules
912 -
913 - Follow through the work to use the repo interface to access
914 - submodule objects in-process, instead of abusing the alternate
915 - object database interface.
916 -
917 - Will merge to 'master'.
898 + Under discussion.
899 + cf. <911ab2c1-8a11-d9d0-4b28-fc801112f6da@gmail.com>
900
901
902 * tp/send-email-completion (2021-10-07) 3 commits
@@ -930,42 +912,43 @@ Release tarballs are available at:
912
913
914 * hm/paint-hits-in-log-grep (2021-10-15) 4 commits
933 - - grep/pcre2: fix an edge case concerning ascii patterns and UTF-8 data
934 - - pretty: colorize pattern matches in commit messages
935 - - grep: refactor next_match() and match_one_pattern() for external use
936 - - Merge branch 'jk/grep-haystack-is-read-only' into hm/paint-hits-in-log-grep
915 + (merged to 'next' on 2021-10-25 at e3edea3fa9)
916 + + grep/pcre2: fix an edge case concerning ascii patterns and UTF-8 data
917 + + pretty: colorize pattern matches in commit messages
918 + + grep: refactor next_match() and match_one_pattern() for external use
919 + + Merge branch 'jk/grep-haystack-is-read-only' into hm/paint-hits-in-log-grep
920
921 "git log --grep=string --author=name" learns to highlight hits just
922 like "git grep string" does.
923
941 - Will merge to 'next'?
942 - cf. <xmqq1r4vjji3.fsf@gitster.g>
924 + Will merge to 'master'.
925
926
945 -* ks/submodule-add-message-fix (2021-09-20) 1 commit
946 - - submodule--helper: fix incorrect newlines in an error message
927 +* ks/submodule-add-message-fix (2021-10-23) 1 commit
928 + (merged to 'next' on 2021-10-25 at 377e759528)
929 + + submodule--helper: fix incorrect newlines in an error message
930
931 Message regression fix.
932
950 - Waiting for a response.
951 - cf. <m27df9lvm1.fsf@gmail.com>
933 + Will merge to 'master'.
934
935
936 * ns/batched-fsync (2021-10-08) 8 commits
955 - - core.fsyncobjectfiles: performance tests for add and stash
956 - - core.fsyncobjectfiles: tests for batch mode
957 - - unpack-objects: use the bulk-checkin infrastructure
958 - - update-index: use the bulk-checkin infrastructure
959 - - core.fsyncobjectfiles: add windows support for batch mode
960 - - core.fsyncobjectfiles: batched disk flushes
961 - - bulk-checkin: rename 'state' variable and separate 'plugged' boolean
962 - - Merge branch 'ns/tmp-objdir' into ns/batched-fsync
937 + (merged to 'next' on 2021-10-25 at e45c907d41)
938 + + core.fsyncobjectfiles: performance tests for add and stash
939 + + core.fsyncobjectfiles: tests for batch mode
940 + + unpack-objects: use the bulk-checkin infrastructure
941 + + update-index: use the bulk-checkin infrastructure
942 + + core.fsyncobjectfiles: add windows support for batch mode
943 + + core.fsyncobjectfiles: batched disk flushes
944 + + bulk-checkin: rename 'state' variable and separate 'plugged' boolean
945 + + Merge branch 'ns/tmp-objdir' into ns/batched-fsync
946 (this branch uses ns/tmp-objdir.)
947
948 The "core.fsyncobjectfiles" configuration variable can now be set
949 to "batch" for improved performance.
950
968 - Will merge to 'next'?
951 + Will merge to 'master'.
952
953
954 * en/zdiff3 (2021-09-20) 2 commits
@@ -1031,7 +1014,7 @@ Release tarballs are available at:
1014
1015 The "remainder" of hn/refs-errno-cleanup topic.
1016
1034 - Will merge to 'next'?
1017 + Will merge to 'next'.
1018
1019
1020 * ab/only-single-progress-at-once (2021-10-13) 10 commits
@@ -1048,25 +1031,8 @@ Release tarballs are available at:
1031
1032 Further tweaks on progress API.
1033
1051 - Will merge to 'next'?
1052 -
1053 -
1054 -* fs/ssh-signing (2021-09-10) 9 commits
1055 - (merged to 'next' on 2021-10-11 at b456b95672)
1056 - + ssh signing: test that gpg fails for unknown keys
1057 - + ssh signing: tests for logs, tags & push certs
1058 - + ssh signing: duplicate t7510 tests for commits
1059 - + ssh signing: verify signatures using ssh-keygen
1060 - + ssh signing: provide a textual signing_key_id
1061 - + ssh signing: retrieve a default key from ssh-agent
1062 - + ssh signing: add ssh key format and signing code
1063 - + ssh signing: add test prereqs
1064 - + ssh signing: preliminary refactoring and clean-up
1065 - (this branch is used by fs/ssh-signing-fix.)
1066 -
1067 - Use ssh public crypto for object and push-cert signing.
1068 -
1069 - Will merge to 'master'.
1034 + Need to pick up an updated version.
1035 + cf. <cover-v4-0.8-00000000000-20211025T111915Z-avarab@gmail.com>
1036
1037
1038 * hn/reftable (2021-10-08) 19 commits