What's cooking (2022/09 #02)

Junio C Hamano committed Sep 9, 2022 at 15:08 UTC a0597dcb96f9ee4af0b1c34965f0b3fea3ba0a90
1 file changed +322 -330
whats-cooking.txt
+322 -330
@@ -1,9 +1,9 @@
1 To: git@vger.kernel.org
2 -Subject: What's cooking in git.git (Sep 2022, #01; Mon, 5)
3 -X-master-at: 79f2338b3746d23454308648b2491e5beba4beff
4 -X-next-at: 6a6ce2da067c0f93245427725e5f14352452ea04
2 +Subject: What's cooking in git.git (Sep 2022, #02; Fri, 9)
3 +X-master-at: dd3f6c4cae7e3b15ce984dce8593ff7569650e24
4 +X-next-at: 50f0e44ec40b5fab5d618dd26ebd776c47e9af13
5
6 -What's cooking in git.git (Sep 2022, #01; Mon, 5)
6 +What's cooking in git.git (Sep 2022, #02; Fri, 9)
7 --------------------------------------------------
8
9 Here are the topics that have been cooking in my tree. Commits
@@ -13,10 +13,11 @@ release). Commits prefixed with '-' are only in 'seen', and aren't
13 considered "accepted" at all. A topic without enough support may be
14 discarded after a long period of no activity.
15
16 -We just started week #9 in a 12-week cycle toward Git 2.38
17 -(tinyurl.com/gitCal), but since Monday was a holiday in US, we may
18 -see only four days worth of new patches, which is less work for our
19 -reviewers pool ;-)
16 +We are at the end of week #9 in a 12-week cycle toward Git 2.38
17 +(tinyurl.com/gitCal). I plan to tag -rc0 (i.e. preview) on the 15th
18 +or so, but I expect that many folks are busy in Chicago for Git Merge
19 +so let's not make a big fuss about it and instead treat it as just one
20 +of the regular updates to the 'master' branch.
21
22 Copies of the source code to Git live in many repositories, and the
23 following is a list of the ones I push into or their mirrors. Some
@@ -49,175 +50,216 @@ Release tarballs are available at:
50 --------------------------------------------------
51 [Graduated to 'master']
52
52 -* ac/bitmap-lookup-table (2022-08-28) 7 commits
53 - (merged to 'next' on 2022-08-29 at 05d2d2c8bd)
54 - + pack-bitmap-write: drop unused pack_idx_entry parameters
55 - (merged to 'next' on 2022-08-26 at 7914c141eb)
56 - + bitmap-lookup-table: add performance tests for lookup table
57 - + pack-bitmap: prepare to read lookup table extension
58 - + pack-bitmap-write: learn pack.writeBitmapLookupTable and add tests
59 - + pack-bitmap-write.c: write lookup table extension
60 - + bitmap: move `get commit positions` code to `bitmap_writer_finish`
61 - + Documentation/technical: describe bitmap lookup table extension
53 +* ab/retire-ppc-sha1 (2022-08-31) 2 commits
54 + (merged to 'next' on 2022-09-05 at 480da6ef06)
55 + + Makefile: use $(OBJECTS) instead of $(C_OBJ)
56 + + Makefile + hash.h: remove PPC_SHA1 implementation
57 +
58 + Remove the assembly version of SHA-1 implementation for PPC.
59 + source: <cover-v3-0.2-00000000000-20220831T090744Z-avarab@gmail.com>
60
63 - The pack bitmap file gained a bitmap-lookup table to speed up
64 - locating the necessary bitmap for a given commit.
65 - source: <pull.1266.v6.git.1660496112.gitgitgadget@gmail.com>
61
62 +* cc/doc-trailer-whitespace-rules (2022-08-30) 1 commit
63 + (merged to 'next' on 2022-09-05 at 4c018a3ab7)
64 + + Documentation: clarify whitespace rules for trailers
65 +
66 + Doc update.
67 + source: <20220830105046.324041-1-christian.couder@gmail.com>
68
68 -* bc/gc-crontab-fix (2022-08-28) 1 commit
69 - (merged to 'next' on 2022-08-30 at a7a240a4da)
70 - + gc: use temporary file for editing crontab
71 - (this branch is used by jk/test-crontab-fixes.)
69
73 - FreeBSD portability fix for "git maintenance" that spawns "crontab"
74 - to schedule tasks.
75 - source: <20220828214143.754759-1-sandals@crustytoothpaste.net>
70 +* jc/format-patch-force-in-body-from (2022-08-29) 3 commits
71 + (merged to 'next' on 2022-09-05 at cecaaad60e)
72 + + format-patch: learn format.forceInBodyFrom configuration variable
73 + + format-patch: allow forcing the use of in-body From: header
74 + + pretty: separate out the logic to decide the use of in-body from
75 +
76 + "git format-patch --from=<ident>" can be told to add an in-body
77 + "From:" line even for commits that are authored by the given
78 + <ident> with "--force-in-body-from"option.
79 + source: <20220829213837.13849-1-gitster@pobox.com>
80 +
81 +
82 +* jk/tempfile-active-flag-cleanup (2022-08-30) 3 commits
83 + (merged to 'next' on 2022-09-05 at 43ed4656b3)
84 + + tempfile: update comment describing state transitions
85 + + tempfile: drop active flag
86 + + Merge branch 'rs/tempfile-cleanup-race-fix' into jk/tempfile-active-flag-cleanup
87
88 + Code clean-up.
89 + source: <Yw5nmNJSm9uzLOKL@coredump.intra.peff.net>
90
78 -* ds/bundle-uri-clone (2022-08-24) 6 commits
79 - (merged to 'next' on 2022-08-25 at 14754922fa)
80 - + clone: warn on failure to repo_init()
81 - (merged to 'next' on 2022-08-18 at 5e8a3ec71e)
82 - + clone: --bundle-uri cannot be combined with --depth
83 - + bundle-uri: add support for http(s):// and file://
84 - + clone: add --bundle-uri option
85 - + bundle-uri: create basic file-copy logic
86 - + remote-curl: add 'get' capability
87 - (this branch is used by ds/bundle-uri-3.)
91
89 - Implement "git clone --bundle-uri".
90 - source: <pull.1300.v3.git.1660050703.gitgitgadget@gmail.com>
91 - source: <5229519b-3af2-a023-8996-43343b130722@github.com>
92 -
93 -
94 -* en/merge-multi-strategies (2022-08-24) 2 commits
95 - (merged to 'next' on 2022-08-25 at 420e2eae66)
96 - + merge: small code readability improvement
97 - + merge: cleanup confusing logic for handling successful merges
98 -
99 - The code that implements multi-strategy support in "git merge" has
100 - been clean-up a bit.
101 - source: <pull.1331.v2.git.1661222541.gitgitgadget@gmail.com>
102 -
103 -
104 -* en/merge-unstash-only-on-clean-merge (2022-08-24) 1 commit
105 - (merged to 'next' on 2022-08-25 at a144bdf6cb)
106 - + merge: only apply autostash when appropriate
107 -
108 - The auto-stashed local changes created by "git merge --autostash"
109 - was mixed into a conflicted state left in the working tree, which
110 - has been corrected.
111 - source: <610b8d089db97bf1a37dbf230f51ecafe3086254.1661222541.git.gitgitgadget@gmail.com>
112 -
113 -
114 -* en/t4301-more-merge-tree-tests (2022-08-24) 1 commit
115 - (merged to 'next' on 2022-08-25 at c7abf60ff4)
116 - + t4301: add more interesting merge-tree testcases
117 - (this branch is used by es/t4301-sed-portability-fix.)
118 -
119 - More tests to protect the current behaviour of "merge-tree" before
120 - it gets further updated.
121 - source: <pull.1332.git.1661237316150.gitgitgadget@gmail.com>
122 -
123 -
124 -* en/test-without-test-create-repo (2022-08-26) 1 commit
125 - (merged to 'next' on 2022-08-30 at 4f80f48e27)
126 - + t64xx: convert 'test_create_repo' to 'git init'
127 -
128 - Test clean-up.
129 - source: <pull.1303.v2.git.git.1661485759789.gitgitgadget@gmail.com>
130 -
131 -
132 -* es/t4301-sed-portability-fix (2022-08-29) 4 commits
133 - (merged to 'next' on 2022-08-30 at eec0ceef0a)
134 - + t4301: emit blank line in more idiomatic fashion
135 - + t4301: fix broken &&-chains and add missing loop termination
136 - + t4301: account for behavior differences between sed implementations
137 - + Merge branch 'en/t4301-more-merge-tree-tests' into es/t4301-sed-portability-fix
138 -
139 - Test clean-up.
140 - source: <pull.1339.git.1661663879.gitgitgadget@gmail.com>
141 -
142 -
143 -* jk/test-crontab-fixes (2022-08-30) 1 commit
144 - (merged to 'next' on 2022-09-02 at d5113b5be3)
145 - + test-crontab: minor memory and error handling fixes
146 - (this branch uses bc/gc-crontab-fix.)
147 -
148 - Test helper fix.
149 - source: <20220823010120.25388-1-sandals@crustytoothpaste.net>
150 -
151 -
152 -* rs/tempfile-cleanup-race-fix (2022-08-27) 1 commit
153 - (merged to 'next' on 2022-08-30 at 158dd1c910)
154 - + tempfile: avoid directory cleanup race
155 - (this branch is used by jk/tempfile-active-flag-cleanup.)
156 -
157 - The clean-up of temporary files created via mks_tempfile_dt() was
158 - racy and attempted to unlink() the leading directory when signals
159 - are involved, which has been corrected.
160 - source: <526a174e-b179-c284-a21c-7afe0a0b4df2@web.de>
92 +* js/add-p-diff-parsing-fix (2022-09-01) 3 commits
93 + (merged to 'next' on 2022-09-02 at 1545e0898d)
94 + + add -p: ignore dirty submodules
95 + + add -p: gracefully handle unparseable hunk headers in colored diffs
96 + + add -p: detect more mismatches between plain vs colored diffs
97
98 + Those who use diff-so-fancy as the diff-filter noticed a regression
99 + or two in the code that parses the diff output in the built-in
100 + version of "add -p", which has been corrected.
101 + source: <pull.1336.v5.git.1662046939.gitgitgadget@gmail.com>
102
163 -* rs/test-mergesort (2022-08-28) 2 commits
164 - (merged to 'next' on 2022-08-30 at 4905149886)
165 - + test-mergesort: use mem_pool for sort input
166 - + test-mergesort: read sort input all at once
167 -
168 - Optimization of a test-helper command.
169 - source: <128f0fb8-d29b-8622-0cfe-2ecadc999db5@web.de>
103
104 +* js/range-diff-with-pathspec (2022-08-26) 3 commits
105 + (merged to 'next' on 2022-09-05 at c027222552)
106 + + range-diff: optionally accept pathspecs
107 + + range-diff: consistently validate the arguments
108 + + range-diff: reorder argument handling
109
172 -* sg/parse-options-subcommand (2022-08-25) 23 commits
173 - (merged to 'next' on 2022-08-25 at dab6bf1439)
174 - + remote: run "remote rm" argv through parse_options()
175 - + maintenance: add parse-options boilerplate for subcommands
176 - + pass subcommand "prefix" arguments to parse_options()
177 - (merged to 'next' on 2022-08-22 at 09d07c2271)
178 - + builtin/worktree.c: let parse-options parse subcommands
179 - + builtin/stash.c: let parse-options parse subcommands
180 - + builtin/sparse-checkout.c: let parse-options parse subcommands
181 - + builtin/remote.c: let parse-options parse subcommands
182 - + builtin/reflog.c: let parse-options parse subcommands
183 - + builtin/notes.c: let parse-options parse subcommands
184 - + builtin/multi-pack-index.c: let parse-options parse subcommands
185 - + builtin/hook.c: let parse-options parse subcommands
186 - + builtin/gc.c: let parse-options parse 'git maintenance's subcommands
187 - + builtin/commit-graph.c: let parse-options parse subcommands
188 - + builtin/bundle.c: let parse-options parse subcommands
189 - + parse-options: add support for parsing subcommands
190 - + parse-options: drop leading space from '--git-completion-helper' output
191 - + parse-options: clarify the limitations of PARSE_OPT_NODASH
192 - + parse-options: PARSE_OPT_KEEP_UNKNOWN only applies to --options
193 - + api-parse-options.txt: fix description of OPT_CMDMODE
194 - + t0040-parse-options: test parse_options() with various 'parse_opt_flags'
195 - + t5505-remote.sh: check the behavior without a subcommand
196 - + t3301-notes.sh: check that default operation mode doesn't take arguments
197 - + git.c: update NO_PARSEOPT markings
198 - (this branch is used by js/bisect-in-c.)
110 + Allow passing a pathspec to "git range-diff".
111 + source: <pull.1335.v2.git.1661506770.gitgitgadget@gmail.com>
112
200 - Introduce the "subcommand" mode to parse-options API and update the
201 - command line parser of Git commands with subcommands.
202 - source: <20220819160411.1791200-1-szeder.dev@gmail.com>
203 - source: <YwdSzrF3xaHvLsI+@coredump.intra.peff.net>
204 -
205 -
206 -* tb/midx-with-changing-preferred-pack-fix (2022-08-22) 7 commits
207 - (merged to 'next' on 2022-08-26 at 305a9d3323)
208 - + midx.c: avoid adding preferred objects twice
209 - + midx.c: include preferred pack correctly with existing MIDX
210 - + midx.c: extract `midx_fanout_add_pack_fanout()`
211 - + midx.c: extract `midx_fanout_add_midx_fanout()`
212 - + midx.c: extract `struct midx_fanout`
213 - + t/lib-bitmap.sh: avoid silencing stderr
214 - + t5326: demonstrate potential bitmap corruption
215 -
216 - Multi-pack index got corrupted when preferred pack changed from one
217 - pack to another in a certain way, which has been corrected.
218 - source: <cover.1661197803.git.me@ttaylorr.com>
113
114 +* vd/sparse-reset-checkout-fixes (2022-09-02) 1 commit
115 + (merged to 'next' on 2022-09-05 at 8c59ace003)
116 + + unpack-trees: fix sparse directory recursion check
117
118 + Segfault fix-up to an earlier fix to the topic to teach "git reset"
119 + and "git checkout" work better in a sparse checkout.
120 + source: <pull.1344.git.1662066153644.gitgitgadget@gmail.com>
121 +
122 +--------------------------------------------------
123 +[New Topics]
124 +
125 +* ab/doc-synopsis-and-cmd-usage (2022-09-07) 34 commits
126 + - tests: start asserting that *.txt SYNOPSIS matches -h output
127 + - doc txt & -h consistency: make "worktree" consistent
128 + - worktree: define subcommand -h in terms of command -h
129 + - reflog doc: list real subcommands up-front
130 + - doc txt & -h consistency: make "commit" consistent
131 + - doc txt & -h consistency: make "diff-tree" consistent
132 + - doc txt & -h consistency: use "[<label>...]" for "zero or more"
133 + - doc txt & -h consistency: make "annotate" consistent
134 + - doc txt & -h consistency: make "stash" consistent
135 + - doc txt & -h consistency: add missing options
136 + - doc txt & -h consistency: use "git foo" form, not "git-foo"
137 + - doc txt & -h consistency: make "bundle" consistent
138 + - doc txt & -h consistency: make "read-tree" consistent
139 + - doc txt & -h consistency: make "rerere" consistent
140 + - doc txt & -h consistency: add missing options and labels
141 + - doc txt & -h consistency: make output order consistent
142 + - doc txt & -h consistency: add or fix optional "--" syntax
143 + - doc txt & -h consistency: fix mismatching labels
144 + - t/helper/test-proc-receive.c: use "<options>", not "<options>..."
145 + - doc txt & -h consistency: use "<options>", not "<options>..."
146 + - stash doc SYNOPSIS & -h: correct padding around "[]()"
147 + - doc txt & -h consistency: correct padding around "[]()"
148 + - doc txt & -h consistency: add missing "]" to bugreport "-h"
149 + - doc txt & -h consistency: add "-z" to cat-file "-h"
150 + - doc txt & -h consistency: fix incorrect alternates syntax
151 + - doc txt & -h consistency: word-wrap
152 + - built-ins: consistently add "\n" between "usage" and options
153 + - doc SYNOPSIS & -h: fix incorrect alternates syntax
154 + - doc SYNOPSIS: consistently use ' for commands
155 + - doc SYNOPSIS: don't use ' for subcommands
156 + - blame: use a more detailed usage_msg_optf() error on bad -L
157 + - bundle: define subcommand -h in terms of command -h
158 + - builtin/bundle.c: use \t, not fix indentation 2-SP indentation
159 + - CodingGuidelines: update and clarify command-line conventions
160 +
161 + The short-help text shown by "git cmd -h" and the synopsis text
162 + shown at the beginning of "git help cmd" have been made more
163 + consistent.
164 +
165 + Needs review.
166 + source: <cover-00.34-00000000000-20220902T092734Z-avarab@gmail.com>
167 +
168 +
169 +* jk/rev-list-verify-objects-fix (2022-09-07) 2 commits
170 + (merged to 'next' on 2022-09-07 at 5da58e2145)
171 + + rev-list: disable commit graph with --verify-objects
172 + + lookup_commit_in_graph(): use prepare_commit_graph() to check for graph
173 +
174 + "git rev-list --verify-objects" ought to inspect the contents of
175 + objects and notice corrupted ones, but it didn't when the commit
176 + graph is in use, which has been corrected.
177 +
178 + Will merge to 'master'.
179 + source: <Yxe0k++LA/UfFLF/@coredump.intra.peff.net>
180 +
181 +
182 +* jk/upload-pack-skip-hash-check (2022-09-07) 4 commits
183 + (merged to 'next' on 2022-09-07 at f638a5a7c9)
184 + + t1060: check partial clone of misnamed blob
185 + + parse_object(): check commit-graph when skip_hash set
186 + + upload-pack: skip parse-object re-hashing of "want" objects
187 + + parse_object(): allow skipping hash check
188 +
189 + The server side that responds to "git fetch" and "git clone"
190 + request has been optimized by allowing it to send objects in its
191 + object store without recomputing and validating the object names.
192 +
193 + Will merge to 'master'.
194 + source: <YxfQi4qg8uJHs7Gp@coredump.intra.peff.net>
195 + source: <YxkAxutS+B8//0WF@coredump.intra.peff.net>
196 +
197 +
198 +* rs/diff-no-index-cleanup (2022-09-07) 3 commits
199 + (merged to 'next' on 2022-09-07 at a305340e6f)
200 + + diff-no-index: simplify argv index calculation
201 + + diff-no-index: release prefixed filenames
202 + + diff-no-index: release strbuf on queue error
203 + (this branch is used by jc/diff-no-index-two-stdin.)
204 +
205 + "git diff --no-index A B" managed its the pathnames of its two
206 + input files rather haphazardly, sometimes leaking them. The
207 + command line argument processing has been straightened out to clean
208 + it up.
209 +
210 + Will merge to 'master'.
211 + source: <xmqq8rmx1saz.fsf@gitster.g>
212 +
213 +
214 +* sg/parse-options-subcommand (2022-09-07) 5 commits
215 + (merged to 'next' on 2022-09-07 at e71f9b1de6)
216 + + notes, remote: show unknown subcommands between `'
217 + + notes: simplify default operation mode arguments check
218 + + test-parse-options.c: fix style of comparison with zero
219 + + test-parse-options.c: don't use for loop initial declaration
220 + + t0040-parse-options: remove leftover debugging
221 +
222 + The codepath for the OPT_SUBCOMMAND facility has been cleaned up.
223 +
224 + Will merge to 'master'.
225 + source: <20220905185007.9042-1-szeder.dev@gmail.com>
226 +
227 +
228 +* jk/plug-list-object-filter-leaks (2022-09-08) 5 commits
229 + (merged to 'next' on 2022-09-08 at a6b4b080e4)
230 + + prepare_repo_settings(): plug leak of config values
231 + + list_objects_filter_options: plug leak of filter_spec strings
232 + + transport: free filter options in disconnect_git()
233 + + transport: deep-copy object-filter struct for fetch-pack
234 + + list_objects_filter_copy(): deep-copy sparse_oid_name field
235 +
236 + The code that manages list-object-filter structure, used in partial
237 + clones, leaked the instances, which has been plugged.
238 +
239 + Will merge to 'master'.
240 + source: <Yxl1BNQoy6Drf0Oe@coredump.intra.peff.net>
241 +
242 +
243 +* jk/proto-v2-ref-prefix-fix (2022-09-08) 2 commits
244 + - fetch: add branch.*.merge to default ref-prefix extension
245 + - fetch: stop checking for NULL transport->remote in do_fetch()
246 +
247 + "git fetch" over protocol v2 sent an incorrect ref prefix request
248 + to the server and made "git pull" with configured fetch refspec
249 + that does not cover the remote branch to merge with fail, which has
250 + been corrected.
251 +
252 + Will merge to 'next'.
253 + source: <YxpBMaIckimFJYEi@coredump.intra.peff.net>
254 +
255 +
256 +* vd/doc-reviewing-guidelines (2022-09-09) 1 commit
257 + - Documentation: add ReviewingGuidelines
258 +
259 + Just like we have coding guidelines, we now have guidelines for
260 + reviewers.
261 +
262 + source: <pull.1348.git.1662747205235.gitgitgadget@gmail.com>
263
264 --------------------------------------------------
265 [Stalled]
@@ -260,21 +302,19 @@ Release tarballs are available at:
302 cf. <CAFySSZDvgwbbHCHfyuaqX3tKsr-GjJ9iihygg6rNNe46Ys7_EA@mail.gmail.com>
303 source: <20220728230210.2952731-1-calvinwan@google.com>
304
263 -
264 -
265 -
305 --------------------------------------------------
267 -[New Topics]
306 +[Cooking]
307
308 * ab/unused-annotation (2022-09-01) 2 commits
270 - - git-compat-util.h: use "deprecated" for UNUSED variables
271 - - git-compat-util.h: use "UNUSED", not "UNUSED(var)"
309 + (merged to 'next' on 2022-09-08 at dfc6123c6b)
310 + + git-compat-util.h: use "deprecated" for UNUSED variables
311 + + git-compat-util.h: use "UNUSED", not "UNUSED(var)"
312 (this branch uses jk/unused-annotation.)
313
314 Undoes 'jk/unused-annotation' topic and redoes it to work around
315 Coccinelle rules misfiring false positives in unrelated codepaths.
316
277 - Will merge to 'next'?
317 + Will merge to 'master'.
318 source: <cover-0.2-00000000000-20220825T170709Z-avarab@gmail.com>
319
320
@@ -289,18 +329,11 @@ Release tarballs are available at:
329 - Makefile: add ability to TAB-complete cocci *.patch rules
330 - cocci rules: remove unused "F" metavariable from pending rule
331
292 - source: <cover-v2-0.9-00000000000-20220831T205130Z-avarab@gmail.com>
293 -
332 + "make coccicheck" is time consuming. It has been made to run more
333 + incrementally.
334
295 -* ab/retire-ppc-sha1 (2022-08-31) 2 commits
296 - (merged to 'next' on 2022-09-05 at 480da6ef06)
297 - + Makefile: use $(OBJECTS) instead of $(C_OBJ)
298 - + Makefile + hash.h: remove PPC_SHA1 implementation
299 -
300 - Remove the assembly version of SHA-1 implementation for PPC.
301 -
302 - Will merge to 'master'.
303 - source: <cover-v3-0.2-00000000000-20220831T090744Z-avarab@gmail.com>
335 + Needs review.
336 + source: <cover-v2-0.9-00000000000-20220831T205130Z-avarab@gmail.com>
337
338
339 * en/remerge-diff-fixes (2022-09-02) 3 commits
@@ -315,39 +348,30 @@ Release tarballs are available at:
348
349
350 * es/chainlint (2022-09-01) 18 commits
318 - - t: retire unused chainlint.sed
319 - - t/Makefile: teach `make test` and `make prove` to run chainlint.pl
320 - - test-lib: replace chainlint.sed with chainlint.pl
321 - - test-lib: retire "lint harder" optimization hack
322 - - t/chainlint: add more chainlint.pl self-tests
323 - - chainlint.pl: allow `|| echo` to signal failure upstream of a pipe
324 - - chainlint.pl: complain about loops lacking explicit failure handling
325 - - chainlint.pl: don't flag broken &&-chain if failure indicated explicitly
326 - - chainlint.pl: don't flag broken &&-chain if `$?` handled explicitly
327 - - chainlint.pl: don't require `&` background command to end with `&&`
328 - - t/Makefile: apply chainlint.pl to existing self-tests
329 - - chainlint.pl: don't require `return|exit|continue` to end with `&&`
330 - - chainlint.pl: validate test scripts in parallel
331 - - chainlint.pl: add parser to identify test definitions
332 - - chainlint.pl: add parser to validate tests
333 - - chainlint.pl: add POSIX shell parser
334 - - chainlint.pl: add POSIX shell lexical analyzer
335 - - t: add skeleton chainlint.pl
351 + (merged to 'next' on 2022-09-08 at eab3357b05)
352 + + t: retire unused chainlint.sed
353 + + t/Makefile: teach `make test` and `make prove` to run chainlint.pl
354 + + test-lib: replace chainlint.sed with chainlint.pl
355 + + test-lib: retire "lint harder" optimization hack
356 + + t/chainlint: add more chainlint.pl self-tests
357 + + chainlint.pl: allow `|| echo` to signal failure upstream of a pipe
358 + + chainlint.pl: complain about loops lacking explicit failure handling
359 + + chainlint.pl: don't flag broken &&-chain if failure indicated explicitly
360 + + chainlint.pl: don't flag broken &&-chain if `$?` handled explicitly
361 + + chainlint.pl: don't require `&` background command to end with `&&`
362 + + t/Makefile: apply chainlint.pl to existing self-tests
363 + + chainlint.pl: don't require `return|exit|continue` to end with `&&`
364 + + chainlint.pl: validate test scripts in parallel
365 + + chainlint.pl: add parser to identify test definitions
366 + + chainlint.pl: add parser to validate tests
367 + + chainlint.pl: add POSIX shell parser
368 + + chainlint.pl: add POSIX shell lexical analyzer
369 + + t: add skeleton chainlint.pl
370
371 Revamp chainlint script for our tests.
338 - source: <pull.1322.git.git.1661992197.gitgitgadget@gmail.com>
339 -
340 -
341 -* jk/tempfile-active-flag-cleanup (2022-08-30) 3 commits
342 - (merged to 'next' on 2022-09-05 at 43ed4656b3)
343 - + tempfile: update comment describing state transitions
344 - + tempfile: drop active flag
345 - + Merge branch 'rs/tempfile-cleanup-race-fix' into jk/tempfile-active-flag-cleanup
346 -
347 - Code clean-up.
372
373 Will merge to 'master'.
350 - source: <Yw5nmNJSm9uzLOKL@coredump.intra.peff.net>
374 + source: <pull.1322.git.git.1661992197.gitgitgadget@gmail.com>
375
376
377 * vd/scalar-to-main (2022-09-02) 9 commits
@@ -363,6 +387,8 @@ Release tarballs are available at:
387
388 Hoist the remainder of "scalar" out of contrib/ to the main part of
389 the codebase.
390 +
391 + Needs review.
392 source: <pull.1341.v2.git.1662134210.gitgitgadget@gmail.com>
393
394
@@ -376,35 +402,16 @@ Release tarballs are available at:
402 source: <20220901173942.abolcr4aa5gixncm@lucy.dinwoodie.org>
403
404
379 -* jc/diff-no-index-unleak (2022-09-02) 1 commit
380 - - diff --no-index: unleak paths[] elements
381 -
382 - Plug a leak or two in "git diff --no-index".
383 - source: <xmqqilm579hc.fsf@gitster.g>
384 -
385 -
386 -* ow/rev-parse-parseopt-fix (2022-09-02) 1 commit
387 - - rev-parse --parseopt: detect missing opt-spec
405 +* ow/rev-parse-parseopt-fix (2022-09-08) 1 commit
406 + (merged to 'next' on 2022-09-08 at a15efb3478)
407 + + rev-parse --parseopt: detect missing opt-spec
408
409 The parser in the script interface to parse-options in "git
410 rev-parse" has been updated to diagnose a bogus input correctly.
411
392 - Will merge to 'next'?
393 - source: <20220902175902.22346-1-oystwa@gmail.com>
394 -
395 -
396 -* vd/sparse-reset-checkout-fixes (2022-09-02) 1 commit
397 - (merged to 'next' on 2022-09-05 at 8c59ace003)
398 - + unpack-trees: fix sparse directory recursion check
399 -
400 - Segfault fix-up to an earlier fix to the topic to teach "git reset"
401 - and "git checkout" work better in a sparse checkout.
402 -
412 Will merge to 'master'.
404 - source: <pull.1344.git.1662066153644.gitgitgadget@gmail.com>
413 + source: <20220902175902.22346-1-oystwa@gmail.com>
414
406 ---------------------------------------------------
407 -[Cooking]
415
416 * tb/diffstat-with-utf8-strwidth (2022-08-27) 1 commit
417 - diff.c: use utf8_strwidth() when appropriate
@@ -415,7 +422,7 @@ Release tarballs are available at:
422 source: <20220827085007.20030-1-tboegi@web.de>
423
424
418 -* gc/submodule-propagate-branches (2022-08-29) 6 commits
425 +* gc/submodule-clone-update-with-branches (2022-08-29) 6 commits
426 - clone, submodule update: check out branches
427 - submodule--helper: refactor up-to-date criterion
428 - submodule: return target of submodule symref
@@ -430,46 +437,26 @@ Release tarballs are available at:
437 source: <pull.1321.git.git.1661806456.gitgitgadget@gmail.com>
438
439
433 -* jc/format-patch-force-in-body-from (2022-08-29) 3 commits
434 - (merged to 'next' on 2022-09-05 at cecaaad60e)
435 - + format-patch: learn format.forceInBodyFrom configuration variable
436 - + format-patch: allow forcing the use of in-body From: header
437 - + pretty: separate out the logic to decide the use of in-body from
438 -
439 - "git format-patch --from=<ident>" can be told to add an in-body
440 - "From:" line even for commits that are authored by the given
441 - <ident> with "--force-in-body-from"option.
442 -
443 - Will merge to 'master'.
444 - source: <20220829213837.13849-1-gitster@pobox.com>
445 -
446 -
447 -* sy/sparse-grep (2022-09-02) 3 commits
440 +* sy/sparse-grep (2022-09-08) 3 commits
441 - builtin/grep.c: walking tree instead of expanding index with --sparse
442 - builtin/grep.c: integrate with sparse index
443 - builtin/grep.c: add --sparse option
444
452 - source: <20220903003623.64750-1-shaoxuan.yuan02@gmail.com>
445 + "git grep" learned to work better in a sparse checkout.
446
454 -
455 -* cc/doc-trailer-whitespace-rules (2022-08-30) 1 commit
456 - (merged to 'next' on 2022-09-05 at 4c018a3ab7)
457 - + Documentation: clarify whitespace rules for trailers
458 -
459 - Doc update.
460 -
461 - Will merge to 'master'.
462 - source: <20220830105046.324041-1-christian.couder@gmail.com>
447 + Needs review.
448 + source: <20220908001854.206789-1-shaoxuan.yuan02@gmail.com>
449
450
451 * js/builtin-add-p-portability-fix (2022-08-30) 3 commits
466 - - t6132(NO_PERL): do not run the scripted `add -p`
467 - - t3701: test the built-in `add -i` regardless of NO_PERL
468 - - add -p: avoid ambiguous signed/unsigned comparison
452 + (merged to 'next' on 2022-09-08 at 8d3e72e890)
453 + + t6132(NO_PERL): do not run the scripted `add -p`
454 + + t3701: test the built-in `add -i` regardless of NO_PERL
455 + + add -p: avoid ambiguous signed/unsigned comparison
456
457 More fixes to "add -p"
458
472 - Will merge to 'next'?
459 + Will merge to 'master'.
460 source: <pull.1340.git.1661867664.gitgitgadget@gmail.com>
461
462
@@ -483,7 +470,7 @@ Release tarballs are available at:
470 source: <20220826085815.2771102-1-dds@aueb.gr>
471
472
486 -* ds/bundle-uri-3 (2022-08-24) 8 commits
473 +* ds/bundle-uri-3 (2022-09-09) 10 commits
474 - bundle-uri: fetch a list of bundles
475 - bundle-uri: limit recursion depth for bundle lists
476 - bundle-uri: parse bundle list in config format
@@ -491,6 +478,8 @@ Release tarballs are available at:
478 - bundle-uri: create "key=value" line parsing
479 - bundle-uri: create base key-value pair parsing
480 - bundle-uri: create bundle_list struct and helpers
481 + - bundle-uri: use plain string in find_temp_filename()
482 + - bundle-uri: short-circuit capability parsing
483 - Merge branch 'ds/bundle-uri-clone' into ds/bundle-uri-3
484
485 Define the logical elements of a "bundle list", data structure to
@@ -498,21 +487,7 @@ Release tarballs are available at:
487 them.
488
489 Needs review.
501 - source: <pull.1333.git.1661181174.gitgitgadget@gmail.com>
502 -
503 -
504 -* js/add-p-diff-parsing-fix (2022-09-01) 3 commits
505 - (merged to 'next' on 2022-09-02 at 1545e0898d)
506 - + add -p: ignore dirty submodules
507 - + add -p: gracefully handle unparseable hunk headers in colored diffs
508 - + add -p: detect more mismatches between plain vs colored diffs
509 -
510 - Those who use diff-so-fancy as the diff-filter noticed a regression
511 - or two in the code that parses the diff output in the built-in
512 - version of "add -p", which has been corrected.
513 -
514 - Will merge to 'master'.
515 - source: <pull.1336.v5.git.1662046939.gitgitgadget@gmail.com>
490 + source: <pull.1333.v2.git.1662734015.gitgitgadget@gmail.com>
491
492
493 * js/cmake-updates (2022-08-24) 5 commits
@@ -525,21 +500,10 @@ Release tarballs are available at:
500 Update to build procedure with VS using CMake/CTest.
501
502 Needs review.
503 + cf. <3df77ffd-85a2-3a54-9005-34a24ec6e82d@github.com>
504 source: <pull.1320.v2.git.1661243463.gitgitgadget@gmail.com>
505
506
531 -* js/range-diff-with-pathspec (2022-08-26) 3 commits
532 - (merged to 'next' on 2022-09-05 at c027222552)
533 - + range-diff: optionally accept pathspecs
534 - + range-diff: consistently validate the arguments
535 - + range-diff: reorder argument handling
536 -
537 - Allow passing a pathspec to "git range-diff".
538 -
539 - Will merge to 'master'.
540 - source: <pull.1335.v2.git.1661506770.gitgitgadget@gmail.com>
541 -
542 -
507 * jk/unused-annotation (2022-08-19) 11 commits
508 (merged to 'next' on 2022-08-24 at 2174b8c75d)
509 + is_path_owned_by_current_uid(): mark "report" parameter as unused
@@ -559,7 +523,7 @@ Release tarballs are available at:
523 removed for structural reasons), to prepare us to later compile
524 with -Wunused warning turned on.
525
562 - Will keep but 'ab/unused-annotation' will undo/redo the whole thing.
526 + Will merge to 'master' along with 'ab/unused-annotation' that undoes the whole thing.
527 cf. <Ywh7ppVFk6VK1Ybs@coredump.intra.peff.net>
528 cf. <xmqqy1v7r3so.fsf@gitster.g>
529 source: <Yv9gxqH6nK2KYnNj@coredump.intra.peff.net>
@@ -582,12 +546,14 @@ Release tarballs are available at:
546 source: <pull.1326.v4.git.1661962145.gitgitgadget@gmail.com>
547
548
585 -* pw/rebase-keep-base-fixes (2022-08-18) 5 commits
549 +* pw/rebase-keep-base-fixes (2022-09-07) 7 commits
550 - rebase --keep-base: imply --no-fork-point
551 - rebase --keep-base: imply --reapply-cherry-picks
588 - - rebase: factor out merge_base calculation
552 + - rebase: factor out branch_base calculation
553 + - rebase: rename merge_base to branch_base
554 - rebase: store orig_head as a commit
555 - t3416: set $EDITOR in subshell
556 + - t3416: tighten two tests
557
558 "git rebase --keep-base" used to discard the commits that are
559 already cherry-picked to the upstream, even when "keep-base" meant
@@ -596,9 +562,9 @@ Release tarballs are available at:
562 option now implies --reapply-cherry-picks and --no-fork-point
563 options.
564
599 - Expecting a reroll.
600 - cf. <eab55cef-62bd-af2b-c295-1e76beca032f@gmail.com>
601 - source: <pull.1323.git.1660576283.gitgitgadget@gmail.com>
565 + Overall looking good, with some iffy bits.
566 + cf. <xmqqzgfbuk95.fsf@gitster.g>
567 + source: <pull.1323.v2.git.1662561470.gitgitgadget@gmail.com>
568
569
570 * ag/merge-strategies-in-c (2022-08-10) 14 commits
@@ -625,7 +591,8 @@ Release tarballs are available at:
591 source: <20220809185429.20098-1-alban.gruin@gmail.com>
592
593
628 -* sy/mv-out-of-cone (2022-08-10) 9 commits
594 +* sy/mv-out-of-cone (2022-09-08) 10 commits
595 + - builtin/mv.c: fix possible segfault in add_slash()
596 (merged to 'next' on 2022-08-17 at 2316d9ce4d)
597 + mv: check overwrite for in-to-out move
598 + advice.h: add advise_on_moving_dirty_path()
@@ -641,9 +608,9 @@ Release tarballs are available at:
608 move a path from a directory that is "in cone" to another directory
609 that is "out of cone". Handling of such a case has been improved.
610
644 - An oob read access makes sanitizer build segfault.
645 - cf.<YwdJRRuST2SP8ZT7@coredump.intra.peff.net>
611 + Will merge to 'next'.
612 source: <20220809120910.2021413-1-shaoxuan.yuan02@gmail.com>
613 + source: <20220908230223.239970-1-shaoxuan.yuan02@gmail.com>
614
615
616 * ab/submodule-helper-prep (2022-09-02) 33 commits
@@ -689,46 +656,51 @@ Release tarballs are available at:
656 source: <cover-v4-00.33-00000000000-20220831T230519Z-avarab@gmail.com>
657
658
692 -* ab/dedup-config-and-command-docs (2022-08-31) 9 commits
693 - - docs: add CONFIGURATION sections that fuzzy map to built-ins
694 - - docs: add CONFIGURATION sections that map to a built-in
695 - - log docs: de-duplicate configuration sections
696 - - difftool docs: de-duplicate configuration sections
697 - - notes docs: de-duplicate and combine configuration sections
698 - - apply docs: de-duplicate configuration sections
699 - - send-email docs: de-duplicate configuration sections
700 - - grep docs: de-duplicate configuration sections
701 - - docs: add and use include template for config/* includes
659 +* ab/dedup-config-and-command-docs (2022-09-07) 9 commits
660 + (merged to 'next' on 2022-09-08 at cd5b217110)
661 + + docs: add CONFIGURATION sections that fuzzy map to built-ins
662 + + docs: add CONFIGURATION sections that map to a built-in
663 + + log docs: de-duplicate configuration sections
664 + + difftool docs: de-duplicate configuration sections
665 + + notes docs: de-duplicate and combine configuration sections
666 + + apply docs: de-duplicate configuration sections
667 + + send-email docs: de-duplicate configuration sections
668 + + grep docs: de-duplicate configuration sections
669 + + docs: add and use include template for config/* includes
670
671 Share the text used to explain configuration variables used by "git
672 <subcmd>" in "git help <subcmd>" with the text from "git help config".
705 - source: <cover-v3-0.9-00000000000-20220831T083759Z-avarab@gmail.com>
673 +
674 + Will merge to 'master'.
675 + cf. <CAHd-oW71qvhG16YtMweA26SDCLKn+LHZe13njn18CD==9Ewbnw@mail.gmail.com>
676 + source: <cover-v4-0.9-00000000000-20220907T082419Z-avarab@gmail.com>
677
678
679 * ab/submodule-helper-leakfix (2022-09-02) 18 commits
709 - - submodule--helper: fix a configure_added_submodule() leak
710 - - submodule--helper: free rest of "displaypath" in "struct update_data"
711 - - submodule--helper: free some "displaypath" in "struct update_data"
712 - - submodule--helper: fix a memory leak in print_status()
713 - - submodule--helper: fix a leak in module_add()
714 - - submodule--helper: fix obscure leak in module_add()
715 - - submodule--helper: fix "reference" leak
716 - - submodule--helper: fix a memory leak in get_default_remote_submodule()
717 - - submodule--helper: fix a leak with repo_clear()
718 - - submodule--helper: fix "sm_path" and other "module_cb_list" leaks
719 - - submodule--helper: fix "errmsg_str" memory leak
720 - - submodule--helper: add and use *_release() functions
721 - - submodule--helper: don't leak {run,capture}_command() cp.dir argument
722 - - submodule--helper: "struct pathspec" memory leak in module_update()
723 - - submodule--helper: fix most "struct pathspec" memory leaks
724 - - submodule--helper: fix trivial get_default_remote_submodule() leak
725 - - submodule--helper: fix a leak in "clone_submodule"
726 - - Merge branch 'ab/submodule-helper-prep' into ab/submodule-helper-leakfix
680 + (merged to 'next' on 2022-09-08 at bf21cfed4b)
681 + + submodule--helper: fix a configure_added_submodule() leak
682 + + submodule--helper: free rest of "displaypath" in "struct update_data"
683 + + submodule--helper: free some "displaypath" in "struct update_data"
684 + + submodule--helper: fix a memory leak in print_status()
685 + + submodule--helper: fix a leak in module_add()
686 + + submodule--helper: fix obscure leak in module_add()
687 + + submodule--helper: fix "reference" leak
688 + + submodule--helper: fix a memory leak in get_default_remote_submodule()
689 + + submodule--helper: fix a leak with repo_clear()
690 + + submodule--helper: fix "sm_path" and other "module_cb_list" leaks
691 + + submodule--helper: fix "errmsg_str" memory leak
692 + + submodule--helper: add and use *_release() functions
693 + + submodule--helper: don't leak {run,capture}_command() cp.dir argument
694 + + submodule--helper: "struct pathspec" memory leak in module_update()
695 + + submodule--helper: fix most "struct pathspec" memory leaks
696 + + submodule--helper: fix trivial get_default_remote_submodule() leak
697 + + submodule--helper: fix a leak in "clone_submodule"
698 + + Merge branch 'ab/submodule-helper-prep' into ab/submodule-helper-leakfix
699 (this branch uses ab/submodule-helper-prep.)
700
701 Plugging leaks in submodule--helper.
702
731 - Will merge to 'next'?
703 + Will merge to 'master'.
704 source: <cover-v7-00.17-00000000000-20220831T231003Z-avarab@gmail.com>
705
706
@@ -766,3 +738,23 @@ Release tarballs are available at:
738
739 Final bits of "git bisect.sh" have been rewritten in C.
740 source: <pull.1132.v6.git.1661885419.gitgitgadget@gmail.com>
741 +
742 +--------------------------------------------------
743 +[Discarded]
744 +
745 +* jc/diff-no-index-unleak (2022-09-02) 1 commit
746 + . diff --no-index: unleak paths[] elements
747 +
748 + Plug a leak or two in "git diff --no-index".
749 +
750 + Superseded by the rs/diff-no-index-cleanup topic.
751 + source: <xmqqilm579hc.fsf@gitster.g>
752 +
753 +
754 +* jc/diff-no-index-two-stdin (2022-09-07) 1 commit
755 + . diff: "--no-index - -" compares the same standard input
756 + (this branch uses rs/diff-no-index-cleanup.)
757 +
758 + "git diff --no-index - -" learned to optimize the comparison of the
759 + same thing obtained from the standard input.
760 + source: <xmqqlequsvt4.fsf_-_@gitster.g>