What's cooking (2020/11 #05)

Junio C Hamano committed Nov 25, 2020 at 16:46 UTC 4648b800b6396c6d133571f8b84b25b16d6f11a4
1 file changed +581 -558
whats-cooking.txt
+581 -558
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Nov 2020, #04; Thu, 19)
4 -X-master-at: faefdd61ec7c7f6f3c8c9907891465ac9a2a1475
5 -X-next-at: 04529851e543a22b6ba47fbb72737de4c325bb07
3 +Subject: What's cooking in git.git (Nov 2020, #05; Wed, 25)
4 +X-master-at: e67fbf927dfdf13d0b21dc6ea15dc3c7ef448ea0
5 +X-next-at: a3fc446d84ab72dffeba6e9dfb89723fd0545d16
6
7 -What's cooking in git.git (Nov 2020, #04; Thu, 19)
7 +What's cooking in git.git (Nov 2020, #05; Wed, 25)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with '-' are
@@ -12,9 +12,8 @@ only in 'seen' (formerly 'pu'---proposed updates) while commits prefixed
12 with '+' are in 'next'. The ones marked with '.' do not appear in any of
13 the integration branches, but I am still holding onto them.
14
15 -The sixth batch of topics are in 'master' and the tests are being
16 -prepared not to be disrupted by a potential change of the default
17 -name for the initial branch.
15 +The number of topics merged for the next release since Git 2.29 has
16 +just passed 100 after the 8th batch of them have graduated.
17
18 Copies of the source code to Git live in many repositories, and the
19 following is a list of the ones I push into. Some repositories have
@@ -46,170 +45,146 @@ Release tarballs are available at:
45 --------------------------------------------------
46 [Graduated to 'master']
47
49 -* ds/maintenance-part-3 (2020-10-16) 8 commits
50 - (merged to 'next' on 2020-11-10 at fe9475c696)
51 - + maintenance: add troubleshooting guide to docs
52 - + maintenance: use 'incremental' strategy by default
53 - + maintenance: create maintenance.strategy config
54 - + maintenance: add start/stop subcommands
55 - + maintenance: add [un]register subcommands
56 - + for-each-repo: run subcommands on configured repos
57 - + maintenance: add --schedule option and config
58 - + maintenance: optionally skip --auto process
59 - (this branch is used by ds/maintenance-part-4.)
60 -
61 - Parts of "git maintenance" to ease writing crontab entries (and
62 - other scheduling system configuration) for it.
63 -
64 -
65 -* dd/upload-pack-stateless-eof (2020-10-30) 1 commit
66 - (merged to 'next' on 2020-11-09 at 01a1f1d4fd)
67 - + upload-pack: allow stateless client EOF just prior to haves
48 +* ab/config-mak-uname-simplify (2020-11-11) 2 commits
49 + (merged to 'next' on 2020-11-12 at e1bd51ee71)
50 + + config.mak.uname: remove unused NEEDS_SSL_WITH_CURL flag
51 + + config.mak.uname: remove unused the NO_R_TO_GCC_LINKER flag
52
69 - "git fetch --depth=<n>" over the stateless RPC / smart HTTP
70 - transport handled EOF from the client poorly at the server end.
53 + Build configuration cleanup.
54
55
73 -* dg/bswap-msvc (2020-11-11) 2 commits
74 - (merged to 'next' on 2020-11-11 at 6b9e819b17)
75 - + compat/bswap.h: don't assume MSVC is little-endian
76 - (merged to 'next' on 2020-11-09 at 91a67b86f7)
77 - + compat/bswap.h: simplify MSVC endianness detection
56 +* en/strmap (2020-11-11) 15 commits
57 + (merged to 'next' on 2020-11-12 at 41519a5f5c)
58 + + shortlog: use strset from strmap.h
59 + + Use new HASHMAP_INIT macro to simplify hashmap initialization
60 + + strmap: take advantage of FLEXPTR_ALLOC_STR when relevant
61 + + strmap: enable allocations to come from a mem_pool
62 + + strmap: add a strset sub-type
63 + + strmap: split create_entry() out of strmap_put()
64 + + strmap: add functions facilitating use as a string->int map
65 + + strmap: enable faster clearing and reusing of strmaps
66 + + strmap: add more utility functions
67 + + strmap: new utility functions
68 + + hashmap: provide deallocation function names
69 + + hashmap: introduce a new hashmap_partial_clear()
70 + + hashmap: allow re-use after hashmap_free()
71 + + hashmap: adjust spacing to fix argument alignment
72 + + hashmap: add usage documentation explaining hashmap_free[_entries]()
73 + (this branch is used by en/merge-ort-impl.)
74
79 - Define ARM64 compiled with MSVC to be little-endian.
75 + A specialization of hashmap that uses a string as key has been
76 + introduced. Hopefully it will see wider use over time.
77
78
82 -* en/merge-ort-api-null-impl (2020-11-02) 4 commits
83 - (merged to 'next' on 2020-11-10 at ed9eed1558)
84 - + merge,rebase,revert: select ort or recursive by config or environment
85 - + fast-rebase: demonstrate merge-ort's API via new test-tool command
86 - + merge-ort-wrappers: new convience wrappers to mimic the old merge API
87 - + merge-ort: barebones API of new merge strategy with empty implementation
88 - (this branch is used by en/merge-ort-impl.)
79 +* fc/bash-completion-alias-of-alias (2020-11-17) 3 commits
80 + (merged to 'next' on 2020-11-18 at 4241203041)
81 + + completion: bash: improve alias loop detection
82 + (merged to 'next' on 2020-11-10 at 75f1f2b8a8)
83 + + completion: bash: check for alias loop
84 + + completion: bash: support recursive aliases
85
90 - Preparation for a new merge strategy.
86 + The command line completion script (in contrib/) learned to expand
87 + commands that are alias of alias.
88
89
93 -* en/merge-tests (2020-10-26) 9 commits
94 - (merged to 'next' on 2020-11-09 at 8ac9fe94a7)
95 - + t6423: add more details about direct resolution of directories
96 - + t6423: note improved ort handling with untracked files
97 - + t6423, t6436: note improved ort handling with dirty files
98 - + merge tests: expect slight differences in output for recursive vs. ort
99 - + t6423: expect improved conflict markers labels in the ort backend
100 - + t6404, t6423: expect improved rename/delete handling in ort backend
101 - + t6416: correct expectation for rename/rename(1to2) + directory/file
102 - + merge tests: expect improved directory/file conflict handling in ort
103 - + t/: new helper for tests that pass with ort but fail with recursive
90 +* jc/ci-github-set-env (2020-11-17) 1 commit
91 + (merged to 'next' on 2020-11-19 at 00ff5e06ac)
92 + + ci: avoid `set-env` construct in print-test-failures.sh
93
105 - Preparation for a new merge strategy.
94 + Another CI adjustment.
95
96
108 -* jc/blame-ignore-fix (2020-11-10) 1 commit
109 - (merged to 'next' on 2020-11-10 at 384ace449d)
110 - + blame: silently ignore invalid ignore file objects
97 +* jc/format-patch-name-max (2020-11-09) 1 commit
98 + (merged to 'next' on 2020-11-11 at 17e19bb17a)
99 + + format-patch: make output filename configurable
100
112 - "git blame --ignore-revs-file=<file>" learned to ignore a
113 - non-existent object name in the input, instead of complaining.
101 + The maximum length of output filenames "git format-patch" creates
102 + has become configurable (used to be capped at 64).
103
104
116 -* jc/line-log-takes-no-pathspec (2020-11-04) 1 commit
117 - (merged to 'next' on 2020-11-09 at 47c2c88b9d)
118 - + log: diagnose -L used with pathspec as an error
105 +* jk/4gb-idx (2020-11-16) 5 commits
106 + (merged to 'next' on 2020-11-18 at 2f99b73bda)
107 + + packfile: detect overflow in .idx file size checks
108 + + block-sha1: take a size_t length parameter
109 + + fsck: correctly compute checksums on idx files larger than 4GB
110 + + use size_t to store pack .idx byte offsets
111 + + compute pack .idx byte offsets using size_t
112
120 - "git log -L<range>:<path>" is documented to take no pathspec, but
121 - this was not enforced by the command line option parser, which has
122 - been corrected.
113 + The code was not prepared to deal with pack .idx file that is
114 + larger than 4GB.
115
116
125 -* jc/sparse-error-for-developer-build (2020-10-31) 1 commit
126 - (merged to 'next' on 2020-11-10 at 8cfbe66736)
127 - + Makefile: enable -Wsparse-error for DEVELOPER build
117 +* jk/diff-release-filespec-fix (2020-11-11) 2 commits
118 + (merged to 'next' on 2020-11-12 at 3b21625881)
119 + + t7800: simplify difftool test
120 + (merged to 'next' on 2020-11-09 at 6d89b9602d)
121 + + diff: allow passing NULL to diff_free_filespec_data()
122 + (this branch is used by js/default-branch-name-tests-final-stretch.)
123
129 - "make DEVELOPER=1 sparse" used to run sparse and let it emit
130 - warnings; now such warnings will cause an error.
124 + Running "git diff" while allowing external diff in a state with
125 + unmerged paths used to segfault, which has been corrected.
126
127
133 -* jk/format-patch-output (2020-11-04) 3 commits
134 - (merged to 'next' on 2020-11-09 at 1f1bb6ebff)
135 - + format-patch: support --output option
136 - + format-patch: tie file-opening logic to output_directory
137 - + format-patch: refactor output selection
128 +* jk/rev-parse-end-of-options (2020-11-10) 3 commits
129 + (merged to 'next' on 2020-11-11 at 2d517d1608)
130 + + rev-parse: handle --end-of-options
131 + + rev-parse: put all options under the "-" check
132 + + rev-parse: don't accept options after dashdash
133
139 - "git format-patch --output=there" did not work as expected and
140 - instead crashed. The option is now supported.
134 + "git rev-parse" learned the "--end-of-options" to help scripts to
135 + safely take a parameter that is supposed to be a revision, e.g.
136 + "git rev-parse --verify -q --end-of-options $rev".
137
138
143 -* js/default-branch-name-adjust-t5515 (2020-11-02) 4 commits
144 - (merged to 'next' on 2020-11-09 at 568ba5aba5)
145 - + t5515: use `main` as the name of the main branch for testing (conclusion)
146 - + t5515: use `main` as the name of the main branch for testing (part 3)
147 - + t5515: use `main` as the name of the main branch for testing (part 2)
148 - + t5515: use `main` as the name of the main branch for testing (part 1)
139 +* jx/t5411-flake-fix (2020-11-11) 3 commits
140 + (merged to 'next' on 2020-11-18 at badb1fefe5)
141 + + receive-pack: use default version 0 for proc-receive
142 + + receive-pack: gently write messages to proc-receive
143 + + t5411: new helper filter_out_user_friendly_and_stable_output
144
150 - Prepare a test script to transition of the default branch name to
151 - 'main'.
145 + The exchange between receive-pack and proc-receive hook did not
146 + carefully check for errors.
147
148
154 -* nk/perf-fsmonitor (2020-10-26) 10 commits
155 - (merged to 'next' on 2020-11-09 at 9fed160a17)
156 - + t/perf/fsmonitor: add benchmark for dirty status
157 - + t/perf/fsmonitor: perf comparison of multiple fsmonitor integrations
158 - + t/perf/fsmonitor: initialize test with git reset
159 - + t/perf/fsmonitor: factor setup for fsmonitor into function
160 - + t/perf/fsmonitor: silence initial git commit
161 - + t/perf/fsmonitor: shorten DESC to basename
162 - + t/perf/fsmonitor: factor description out for readability
163 - + t/perf/fsmonitor: improve error message if typoing hook name
164 - + t/perf/fsmonitor: move watchman setup to one-time-repo-setup
165 - + t/perf/fsmonitor: separate one time repo initialization
149 +* ma/list-object-filter-opt-msgfix (2020-11-16) 1 commit
150 + (merged to 'next' on 2020-11-18 at 7cf396ee81)
151 + + list-objects-filter-options: fix function name in BUG
152
167 - Add t/perf support for fsmonitor.
153 + Error message fix.
154 + We can further update it to lose the hand-maintained function name
155 + from the message, but that can be done separately.
156
157
170 -* pb/blame-funcname-range-userdiff (2020-11-01) 8 commits
171 - (merged to 'next' on 2020-11-10 at 221bb3f773)
172 - + blame: simplify 'setup_blame_bloom_data' interface
173 - + blame: simplify 'setup_scoreboard' interface
174 - + blame: enable funcname blaming with userdiff driver
175 - + line-log: mention both modes in 'blame' and 'log' short help
176 - + doc: add more pointers to gitattributes(5) for userdiff
177 - + blame-options.txt: also mention 'funcname' in '-L' description
178 - + doc: line-range: improve formatting
179 - + doc: log, gitk: move '-L' description to 'line-range-options.txt'
158 +* pd/mergetool-nvimdiff (2020-11-11) 2 commits
159 + (merged to 'next' on 2020-11-12 at aff20da3a2)
160 + + mergetool: avoid letting `list_tool_variants` break user-defined setups
161 + + mergetools/bc: add `bc4` to the alias list for Beyond Compare
162
181 - "git blame -L :funcname -- path" did not work well for a path for
182 - which a userdiff driver is defined.
163 + Fix regression introduced when nvimdiff support in mergetool was added.
164
165
185 -* pw/rebase-i-orig-head (2020-11-04) 4 commits
186 - (merged to 'next' on 2020-11-10 at 038a5295f5)
187 - + rebase -i: simplify get_revision_ranges()
188 - + rebase -i: use struct object_id when writing state
189 - + rebase -i: use struct object_id rather than looking up commit
190 - + rebase -i: stop overwriting ORIG_HEAD buffer
166 +* pk/subsub-fetch-fix (2020-11-12) 1 commit
167 + (merged to 'next' on 2020-11-18 at bdd3b21b7c)
168 + + submodules: fix of regression on fetching of non-init subsub-repo
169
192 - "git rebase -i" did not store ORIG_HEAD correctly.
193 - cf. <xmqq7drbbcj5.fsf@gitster.c.googlers.com>
170 + "git fetch" did not work correctly with nested submodules where the
171 + innermost submodule that is not of interest got updated in the
172 + upstream, which has been corrected.
173
174
196 -* rs/archive-high-compression (2020-11-09) 1 commit
197 - (merged to 'next' on 2020-11-10 at 9bee80950e)
198 - + archive: support compression levels beyond 9
175 +* rs/archive-plug-leak-refname (2020-11-16) 1 commit
176 + (merged to 'next' on 2020-11-19 at 270ba7b8be)
177 + + archive: release refname after use
178
200 - "git archive" now allows compression level higher than "-9"
201 - when generating tar.gz output.
179 + Memleak fix.
180
181
204 -* rs/empty-reflog-check-fix (2020-11-01) 1 commit
205 - (merged to 'next' on 2020-11-09 at 3da6b6fef0)
206 - + stash: simplify reflog emptiness check
182 +* rs/gc-sort-func-cast-fix (2020-11-18) 1 commit
183 + (merged to 'next' on 2020-11-19 at 04529851e5)
184 + + gc: fix cast in compare_tasks_by_selection()
185
208 - The code to see if "git stash drop" can safely remove refs/stash
209 - has been made more carerful.
186 + Fix broken sorting of maintenance tasks.
187
211 ---------------------------------------------------
212 -[New Topics]
188
189 * rs/hashwrite-be64 (2020-11-12) 3 commits
190 (merged to 'next' on 2020-11-18 at 60385c6fa1)
@@ -219,7 +194,12 @@ Release tarballs are available at:
194
195 Code simplification.
196
222 - Will merge to 'master'.
197 +
198 +* rs/plug-diff-cache-leak (2020-11-16) 1 commit
199 + (merged to 'next' on 2020-11-23 at a9666bbac3)
200 + + diff-lib: plug minor memory leaks in do_diff_cache()
201 +
202 + Memleak fix.
203
204
205 * sg/bisect-approximately-halfway (2020-11-12) 1 commit
@@ -231,296 +211,223 @@ Release tarballs are available at:
211 optimized by stopping when we see a commit that is close enough to
212 the half-way point.
213
234 - Will merge to 'master'.
235 -
214
237 -* tb/pack-bitmap (2020-11-19) 24 commits
238 - - pack-bitmap-write: better reuse bitmaps
239 - - pack-bitmap-write: relax unique rewalk condition
240 - - pack-bitmap-write: use existing bitmaps
241 - - pack-bitmap: factor out 'add_commit_to_bitmap()'
242 - - pack-bitmap: factor out 'bitmap_for_commit()'
243 - - pack-bitmap-write: ignore BITMAP_FLAG_REUSE
244 - - pack-bitmap-write: build fewer intermediate bitmaps
245 - - pack-bitmap.c: check reads more aggressively when loading
246 - - pack-bitmap-write: rename children to reverse_edges
247 - - t5310: add branch-based checks
248 - - commit: implement commit_list_contains()
249 - - bitmap: add bitmap_diff_nonzero()
250 - - pack-bitmap-write: fill bitmap with commit history
251 - - pack-bitmap-write: pass ownership of intermediate bitmaps
252 - - pack-bitmap-write: reimplement bitmap writing
253 - - ewah: add bitmap_dup() function
254 - - ewah: implement bitmap_or()
255 - - ewah: make bitmap growth less aggressive
256 - - ewah: factor out bitmap growth
257 - - rev-list: die when --test-bitmap detects a mismatch
258 - - t5310: drop size of truncated ewah bitmap
259 - - pack-bitmap: bounds-check size of cache extension
260 - - pack-bitmap: fix header size check
261 - - ewah/ewah_bitmap.c: grow buffer past 1
262 -
263 - Various improvement to the codepath that writes out pack bitmaps.
264 -
265 -
266 -* ab/retire-parse-remote (2020-11-16) 3 commits
267 - (merged to 'next' on 2020-11-18 at 80d4d8290c)
268 - + parse-remote: remove this now-unused library
269 - + submodule: remove sh function in favor of helper
270 - + submodule: use "fetch" logic instead of custom remote discovery
271 -
272 - "git-parse-remote" shell script library outlived its usefulness.
273 -
274 - Will merge to 'master'.
215 +* sg/t5310-jgit-wants-sha1 (2020-11-16) 1 commit
216 + (merged to 'next' on 2020-11-19 at 72fb4e7155)
217 + + t5310-pack-bitmaps: skip JGit tests with SHA256
218
219 + Since jgit does not yet work with SHA-256 repositories, mark the
220 + tests that uses it not to run unless we are testing with ShA-1
221 + repositories.
222
277 -* jk/4gb-idx (2020-11-16) 5 commits
278 - (merged to 'next' on 2020-11-18 at 2f99b73bda)
279 - + packfile: detect overflow in .idx file size checks
280 - + block-sha1: take a size_t length parameter
281 - + fsck: correctly compute checksums on idx files larger than 4GB
282 - + use size_t to store pack .idx byte offsets
283 - + compute pack .idx byte offsets using size_t
223
285 - The code was not prepared to deal with pack .idx file that is
286 - larger than 4GB.
224 +* sg/tests-prereq (2020-11-18) 2 commits
225 + (merged to 'next' on 2020-11-23 at e8926781aa)
226 + + tests: fix description of 'test_set_prereq'
227 + + tests: make sure nested lazy prereqs work reliably
228
288 - Will merge to 'master'.
229 + A lazily defined test prerequisite can now be defined in terms of
230 + another lazily defined test prerequisite.
231
232 +--------------------------------------------------
233 +[New Topics]
234
291 -* ma/list-object-filter-opt-msgfix (2020-11-16) 1 commit
292 - (merged to 'next' on 2020-11-18 at 7cf396ee81)
293 - + list-objects-filter-options: fix function name in BUG
235 +* ab/gc-keep-base-option (2020-11-21) 2 commits
236 + (merged to 'next' on 2020-11-25 at ac76ddcfe7)
237 + + gc: rename keep_base_pack variable for --keep-largest-pack
238 + + gc docs: change --keep-base-pack to --keep-largest-pack
239
295 - Error message fix.
240 + Fix an option name in "gc" documentation.
241
242 Will merge to 'master'.
298 - We can further update it to lose the hand-maintained function name
299 - from the message, but that can be done separately.
300 -
301 -
302 -* mt/rm-sparse-checkout (2020-11-16) 1 commit
303 - - rm: honor sparse checkout patterns
304 - (this branch uses mt/grep-sparse-checkout.)
305 -
306 - "git rm" follows suit to "git grep" to ignore paths outside the
307 - sparsity pattern when the sparse checkout feature is in use.
308 -
309 -
310 -* pb/pull-rebase-recurse-submodules (2020-11-16) 4 commits
311 - - pull: check for local submodule modifications with the right range
312 - - t5572: describe '--rebase' tests a little more
313 - - t5572: add notes on a peculiar test
314 - - pull --rebase: compute rebase arguments in separate function
243
316 - "git pull --rebase --recurse-submodules" checked for local changes
317 - in a wrong range and failed to run correctly when it should.
244
319 - Will merge to 'next'.
245 +* en/stash-apply-sparse-checkout (2020-11-21) 3 commits
246 + - stash: fix stash application in sparse-checkouts
247 + - stash: remove unnecessary process forking
248 + - t7012: add a testcase demonstrating stash apply bugs in sparse checkouts
249
250
322 -* pk/subsub-fetch-fix (2020-11-12) 1 commit
323 - (merged to 'next' on 2020-11-18 at bdd3b21b7c)
324 - + submodules: fix of regression on fetching of non-init subsub-repo
251 +* jc/do-not-just-explain-but-update-your-patch (2020-11-24) 1 commit
252 + (merged to 'next' on 2020-11-25 at 1f5235d4e1)
253 + + MyFirstContribition: answering questions is not the end of the story
254
326 - "git fetch" did not work correctly with nested submodules where the
327 - innermost submodule that is not of interest got updated in the
328 - upstream, which has been corrected.
255 + Expectation for the original contributor after responding to a
256 + review comment to use the explanation in a patch update has been
257 + described.
258
259 Will merge to 'master'.
260
261
333 -* rs/archive-plug-leak-refname (2020-11-16) 1 commit
334 - (merged to 'next' on 2020-11-19 at 270ba7b8be)
335 - + archive: release refname after use
262 +* jk/stop-pack-objects-when-push-is-killed (2020-11-21) 1 commit
263 + (merged to 'next' on 2020-11-25 at f73fb999cd)
264 + + send-pack: kill pack-objects helper on signal or exit
265
337 - Memleak fix.
266 + Receiving "git push" that is killed may leave zombie pack-objects
267 + process behind, which has been corrected.
268
269 Will merge to 'master'.
270
271
342 -* rs/chdir-notify-unleak (2020-11-16) 1 commit
343 - - chdir-notify: UNLEAK registrated callback entries
272 +* ma/grep-init-default (2020-11-24) 4 commits
273 + - MyFirstObjectWalk: drop `init_walken_defaults()`
274 + - grep: copy struct in one fell swoop
275 + - grep: use designated initializers for `grep_defaults`
276 + - grep: don't set up a "default" repo for grep
277
345 - Mark some stuff on list_head chain with UNLEAK() macro to squelch
346 - leak checker.
347 -
348 - Will merge to 'next'.
349 -
350 -
351 -* rs/plug-diff-cache-leak (2020-11-16) 1 commit
352 - - diff-lib: plug minor memory leaks in do_diff_cache()
353 -
354 - Memleak fix.
278 + Code clean-up.
279
356 - Will merge to 'next'.
280 + Expecting a (hopefully final) reroll.
281 + cf. <xmqqlfepg9dq.fsf@gitster.c.googlers.com>
282
283
359 -* sg/t5310-jgit-wants-sha1 (2020-11-16) 1 commit
360 - (merged to 'next' on 2020-11-19 at 72fb4e7155)
361 - + t5310-pack-bitmaps: skip JGit tests with SHA256
284 +* mt/worktree-error-message-fix (2020-11-21) 1 commit
285 + (merged to 'next' on 2020-11-25 at bc887168ff)
286 + + worktree: fix order of arguments in error message
287
363 - Since jgit does not yet work with SHA-256 repositories, mark the
364 - tests that uses it not to run unless we are testing with ShA-1
365 - repositories.
288 + Fix formulation of an error message with two placeholders in "git
289 + worktree add" subcommand.
290
291 Will merge to 'master'.
292
293
370 -* tb/repack-simplify (2020-11-17) 3 commits
371 - - builtin/repack.c: don't move existing packs out of the way
372 - - builtin/repack.c: keep track of what pack-objects wrote
373 - - repack: make "exts" array available outside cmd_repack()
294 +* na/notes-displayref-is-not-boolean (2020-11-23) 2 commits
295 + (merged to 'next' on 2020-11-25 at b0dda46b56)
296 + + t3301: test proper exit response to no-value notes.displayRef.
297 + + notes.c: fix a segfault in notes_display_config()
298
375 - Simplify the logic to deal with a repack operation that ended up
376 - creating the same packfile.
299 + Config parser fix for "git notes".
300
378 - Will merge to 'next'.
301 + Will merge to 'master'.
302
303
381 -* dd/help-autocorrect-never (2020-11-18) 1 commit
382 - - help.c: allow help.autocorrect to say "do not even compute suggestions"
304 +* fc/atmark-in-refspec (2020-11-24) 1 commit
305 + - refspec: make @ a synonym of HEAD
306
384 - "git $cmd $args", when $cmd is not a recognised subcommand, by
385 - default tries to see if $cmd is a typo of an existing subcommand
386 - and optionally executes the corrected command if there is only one
387 - possibility, depending on the setting of help.autocorrect; the
388 - users can now disable the whole thing, including the cycles spent
389 - to find a likely typo, by setting the configuration variable to
390 - 'never'.
307 + "@" sometimes worked (e.g. "git push origin @:there") as a part of
308 + a refspec element, but "git push orign @" did not work, which has
309 + been corrected.
310
311
393 -* jc/ci-github-set-env (2020-11-17) 1 commit
394 - (merged to 'next' on 2020-11-19 at 00ff5e06ac)
395 - + ci: avoid `set-env` construct in print-test-failures.sh
312 +* hn/sleep-millisec-decl (2020-11-24) 1 commit
313 + (merged to 'next' on 2020-11-25 at d11de8b987)
314 + + move sleep_millisec to git-compat-util.h
315
397 - Another CI adjustment.
316 + Move a definition of compatibility wrapper from cache.h to
317 + git-compat-util.h
318
319 Will merge to 'master'.
320
321
402 -* jc/init-doc-default-branch (2020-11-18) 1 commit
403 - - "init" doc: mention the configurability more clearly
322 +* js/init-defaultbranch-advice (2020-11-24) 4 commits
323 + - init: provide useful advice about init.defaultBranch
324 + - get_default_branch_name(): prepare for showing some advice
325 + - branch -m: allow renaming a yet-unborn branch
326 + - init: document `init.defaultBranch` better
327
405 - Doc update.
328 + Our users are going to be trained to prepare for future change of
329 + init.defaultBranch configuration variable.
330
407 - Weatherbaloon.
331
409 -
410 -* js/default-branch-name-tests-final-stretch (2020-11-19) 29 commits
411 - - tests: drop prereq `PREPARE_FOR_MAIN_BRANCH` where no longer needed
412 - - t99*: adjust the references to the default branch name "main"
413 - - tests(git-p4): transition to the default branch name `main`
414 - - t9[5-7]*: adjust the references to the default branch name "main"
415 - - t9[0-4]*: adjust the references to the default branch name "main"
416 - - t8*: adjust the references to the default branch name "main"
417 - - t7[5-9]*: adjust the references to the default branch name "main"
418 - - t7[0-4]*: adjust the references to the default branch name "main"
419 - - t6[4-9]*: adjust the references to the default branch name "main"
420 - - t64*: preemptively adjust alignment to prepare for `master` -> `main`
421 - - t6[0-3]*: adjust the references to the default branch name "main"
422 - - t5[6-9]*: adjust the references to the default branch name "main"
423 - - t55[4-9]*: adjust the references to the default branch name "main"
424 - - t55[23]*: adjust the references to the default branch name "main"
425 - - t551*: adjust the references to the default branch name "main"
426 - - t550*: adjust the references to the default branch name "main"
427 - - t5503: prepare aligned comment for replacing `master` with `main`
428 - - t5[0-4]*: adjust the references to the default branch name "main"
429 - - t5323: prepare centered comment for `master` -> `main`
430 - - t4*: adjust the references to the default branch name "main"
431 - - t3[5-9]*: adjust the references to the default branch name "main"
432 - - t34*: adjust the references to the default branch name "main"
433 - - t3416: preemptively adjust alignment in a comment
434 - - t3[0-3]*: adjust the references to the default branch name "main"
435 - - t2*: adjust the references to the default branch name "main"
436 - - t[01]*: adjust the references to the default branch name "main"
437 - - t0060: preemptively adjust alignment
438 - - tests: mark tests relying on the current default for `init.defaultBranch`
439 - - Merge 'jk/diff-release-filespec-fix' into js/default-branch-name-tests-final-stretch
440 - (this branch uses jk/diff-release-filespec-fix.)
441 -
442 - Prepare tests not to be affected by the name of the default branch
443 - "git init" creates.
444 -
445 -
446 -* js/t2106-cleanup (2020-11-18) 3 commits
447 - - t2106: ensure that the checkout fails for the expected reason
448 - - t2106: make test independent of the current main branch name
449 - - t2106: adjust style to the current conventions
332 +* js/t3404-master-to-primary (2020-11-24) 1 commit
333 + (merged to 'next' on 2020-11-25 at c2959cc831)
334 + + t3404: do not depend on any specific default branch name
335
336 A test script got cleaned up and then made not to depend on the
337 value of init.defaultBranch.
338
454 - Will merge to 'next'.
339 + Will merge to 'master'.
340
341
457 -* js/t3040-cleanup (2020-11-18) 1 commit
458 - - t3040: remove stale note
342 +* jt/trace-error-on-warning (2020-11-24) 1 commit
343 + - usage: add trace2 entry upon warning()
344
460 - Cleanup.
345 + Like die() and error(), a call to warning() will also trigger a
346 + trace2 event.
347
348 Will merge to 'next'.
349
350
465 -* js/t4015-wo-master (2020-11-19) 1 commit
466 - - t4015: let the test pass with any default branch name
467 -
468 - A test script got cleaned up not to depend on the value of
469 - init.defaultBranch.
470 -
471 - Will merge to 'next'.
351 +* km/stash-error-message-fix (2020-11-24) 1 commit
352 + (merged to 'next' on 2020-11-25 at 9ef82d6aa7)
353 + + stash: add missing space to an error message
354
355 + Error message fix.
356
474 -* rs/gc-sort-func-cast-fix (2020-11-18) 1 commit
475 - (merged to 'next' on 2020-11-19 at 04529851e5)
476 - + gc: fix cast in compare_tasks_by_selection()
357 + Will merge to 'master'.
358
478 - Fix broken sorting of maintenance tasks.
359
480 - Will merge to 'master'.
360 +* ps/config-env-pairs (2020-11-24) 2 commits
361 + - config: allow specifying config entries via envvar pairs
362 + - config: extract function to parse config pairs
363
364 + Introduce a way to feed configuration variable-value pairs via
365 + environment variables.
366
483 -* sg/tests-prereq (2020-11-18) 2 commits
484 - - tests: fix description of 'test_set_prereq'
485 - - tests: make sure nested lazy prereqs work reliably
367 + Getting there.
368 + cf. <X74CigYS7AUtMo9Q@tanuki>
369
487 - A lazily defined test prerequisite can now be defined in terms of
488 - another lazily defined test prerequisite.
370
490 - Will merge to 'next'.
371 +* sa/credential-store-timeout (2020-11-25) 1 commit
372 + (merged to 'next' on 2020-11-25 at 7a9a4b68fd)
373 + + crendential-store: use timeout when locking file
374
375 + Multiple "credential-store" backends can race to lock the same
376 + file, causing everybody else but one to fail---reattempt locking
377 + with some timeout to reduce the rate of the failure.
378
493 -* ds/config-literal-value (2020-11-19) 6 commits
494 - - config: implement --literal-value with --get*
495 - - config: plumb --literal-value into config API
496 - - config: add --literal-value option, un-implemented
497 - - config: convert multi_replace to flags
498 - - t1300: add test for --replace-all with value_regex
499 - - t1300: test "set all" mode with value_regex
500 - (this branch is used by ds/maintenance-part-3.)
379 + Will merge to 'master'.
380
381
503 -* ds/maintenance-part-3 (2020-11-19) 2 commits
504 - - maintenance: use 'git config --literal-value'
505 - - Merge branch 'ds/config-literal-value' into ds/maintenance-part-3
506 - (this branch uses ds/config-literal-value.)
382 +* tb/idx-midx-race-fix (2020-11-25) 2 commits
383 + - midx.c: protect against disappearing packs
384 + - packfile.c: protect against disappearing indexes
385
508 - "git maintenance" command had trouble working in a directory whose
509 - pathname contained an ERE metacharacter like '+'.
386 + Processes that access packdata while the .idx file gets removed
387 + (e.g. while repacking) did not fail or fall back gracefully as they
388 + could.
389
390 Will merge to 'next'.
391
392
514 -* js/pull-rebase-use-advise (2020-11-19) 1 commit
515 - - pull: colorize the hint about setting `pull.rebase`
393 +* rs/stop-pack-objects-when-fetch-is-killed (2020-11-25) 1 commit
394 + - upload-pack: kill pack-objects helper on signal or exit
395
396 + "git upload-pack" that is killed may leave zombie pack-objects
397 + process behind, which has been corrected.
398
518 -* js/t1309-master-to-topic (2020-11-19) 1 commit
519 - - t1309: use a neutral branch name in the `onbranch` test cases
399 + Needs to be replaced with signed-off and/or improved version.
400
401 --------------------------------------------------
402 [Stalled]
403
404 +* mt/grep-sparse-checkout (2020-09-10) 9 commits
405 + - config: add setting to ignore sparsity patterns in some cmds
406 + - grep: honor sparse checkout patterns
407 + - config: correctly read worktree configs in submodules
408 + - config: make do_git_config_sequence receive a 'struct repository'
409 + - t/helper/test-config: unify exit labels
410 + - t/helper/test-config: diagnose missing arguments
411 + - t/helper/test-config: be consistent with exit codes
412 + - t1308-config-set: avoid false positives when using test-config
413 + - doc: grep: unify info on configuration variables
414 + (this branch is used by mt/rm-sparse-checkout.)
415 +
416 + "git grep" has been tweaked to be limited to the sparse checkout
417 + paths.
418 +
419 +
420 +* mt/rm-sparse-checkout (2020-11-16) 1 commit
421 + - rm: honor sparse checkout patterns
422 + (this branch uses mt/grep-sparse-checkout.)
423 +
424 + "git rm" follows suit to "git grep" to ignore paths outside the
425 + sparsity pattern when the sparse checkout feature is in use.
426 +
427 + Need to wait for how these fit in larger picture.
428 + cf. <CABPp-BGMX3wb7LiS1HkJpGveoW3J1oR0vVHbKTF5+qYLRF+59g@mail.gmail.com>
429 +
430 +
431 * jk/symlinked-dotgitx-files (2020-10-23) 9 commits
432 (merged to 'next' on 2020-10-26 at c1dd37b024)
433 + docs: document symlink restrictions for .git* files
@@ -688,6 +595,8 @@ Release tarballs are available at:
595
596 "git submodule add" being rewritten in C.
597
598 + Needs review.
599 +
600
601 * mt/parallel-checkout-part-1 (2020-11-04) 19 commits
602 - ci: run test round with parallel-checkout enabled
@@ -710,28 +619,302 @@ Release tarballs are available at:
619 - convert: add [async_]convert_to_working_tree_ca() variants
620 - convert: make convert_attrs() and convert structs public
621
713 - Parallel checkout.
622 + Parallel checkout.
623 +
624 + Needs review.
625 +
626 +
627 +* fc/bash-completion-post-2.29 (2020-11-10) 26 commits
628 + - completion: bash: shuffle __gitcomp functions
629 + - completion: bash: cleanup __gitcomp* invocations
630 + - completion: bash: add __gitcomp_opts
631 + - completion: bash: improve __gitcomp description
632 + - completion: bash: rename _get_comp_words_by_ref()
633 + - completion: bash: trivial cleanup
634 + - completion: bash: cleanup _get_comp_words_by_ref()
635 + - completion: bash: refactor _get_comp_words_by_ref()
636 + - completion: bash: simplify _get_comp_words_by_ref()
637 + - test: completion: switch __gitcomp_nl prefix test
638 + - completion: bash: simplify config_variable_name
639 + - completion: bash: improve __gitcomp suffix code
640 + - completion: bash: change suffix check in __gitcomp
641 + - completion: bash: simplify __gitcomp
642 + - completion: bash: refactor __gitcomp
643 + - completion: bash: simplify equal suffix check
644 + - completion: bash: factor out check in __gitcomp
645 + - completion: bash: get rid of any non-append code
646 + - completion: bash: get rid of _append() functions
647 + - completion: bash: remove non-append functionality
648 + - test: completion: add run_func() helper
649 + - test: completion: fix currently typed words
650 + - completion: bash: do not modify COMP_WORDBREAKS
651 + - completion: bash: fix for suboptions with value
652 + - completion: bash: add correct suffix in variables
653 + - completion: bash: fix prefix detection in branch.*
654 +
655 + Needs review.
656 +
657 +
658 +* so/log-diff-merge (2020-11-09) 27 commits
659 + - doc/git-show: include --diff-merges description
660 + - doc/rev-list-options: document --first-parent implies --diff-merges=first-parent
661 + - doc/diff-generate-patch: mention new --diff-merges option
662 + - doc/git-log: describe new --diff-merges options
663 + - t4013: add test for --diff-merges=first-parent
664 + - diff-merges: implement new values for --diff-merges
665 + - diff-merges: make -m/-c/--cc explicitly mutually exclusive
666 + - diff-merges: refactor opt settings into separate functions
667 + - diff-merges: get rid of now empty diff_merges_init_revs()
668 + - diff-merges: group diff-merge flags next to each other inside 'rev_info'
669 + - diff-merges: split 'ignore_merges' field
670 + - diff-merges: fix -m to properly override -c/--cc
671 + - t4013: add tests for -m failing to override -c/--cc
672 + - t4013: support test_expect_failure through ':failure' magic
673 + - diff-merges: revise revs->diff flag handling
674 + - diff-merges: introduce revs->first_parent_merges flag
675 + - diff-merges: new function diff_merges_set_dense_combined_if_unset()
676 + - diff-merges: new function diff_merges_suppress()
677 + - diff-merges: re-arrange functions to match the order they are called in
678 + - diff-merges: rename diff_merges_default_to_enable() to match semantics
679 + - diff-merges: move checks for first_parent_only out of the module
680 + - diff-merges: rename all functions to have common prefix
681 + - revision: move diff merges functions to its own diff-merges.c
682 + - revision: provide implementation for diff merges tweaks
683 + - revision: factor out initialization of diff-merge related settings
684 + - revision: factor out setup of diff-merge related settings
685 + - revision: factor out parsing of diff-merge related options
686 +
687 + "git log" learned a new "--diff-merges=<how>" option.
688 +
689 + Needs review.
690 +
691 +* en/merge-ort-impl (2020-11-11) 21 commits
692 + - merge-ort: free data structures in merge_finalize()
693 + - merge-ort: add implementation of record_unmerged_index_entries()
694 + - tree: enable cmp_cache_name_compare() to be used elsewhere
695 + - merge-ort: add implementation of checkout()
696 + - merge-ort: basic outline for merge_switch_to_result()
697 + - merge-ort: step 3 of tree writing -- handling subdirectories as we go
698 + - merge-ort: step 2 of tree writing -- function to create tree object
699 + - merge-ort: step 1 of tree writing -- record basenames, modes, and oids
700 + - merge-ort: have process_entries operate in a defined order
701 + - merge-ort: add a preliminary simple process_entries() implementation
702 + - merge-ort: avoid recursing into identical trees
703 + - merge-ort: record stage and auxiliary info for every path
704 + - merge-ort: compute a few more useful fields for collect_merge_info
705 + - merge-ort: avoid repeating fill_tree_descriptor() on the same tree
706 + - merge-ort: implement a very basic collect_merge_info()
707 + - merge-ort: add an err() function similar to one from merge-recursive
708 + - merge-ort: use histogram diff
709 + - merge-ort: port merge_start() from merge-recursive
710 + - merge-ort: add some high-level algorithm structure
711 + - merge-ort: setup basic internal data structures
712 + - Merge branch 'en/strmap' into en/merge-ort-impl
713 +
714 + Needs review.
715 +
716 +--------------------------------------------------
717 +[Cooking]
718 +
719 +* tb/pack-bitmap (2020-11-21) 24 commits
720 + - pack-bitmap-write: better reuse bitmaps
721 + - pack-bitmap-write: relax unique rewalk condition
722 + - pack-bitmap-write: use existing bitmaps
723 + - pack-bitmap: factor out 'add_commit_to_bitmap()'
724 + - pack-bitmap: factor out 'bitmap_for_commit()'
725 + - pack-bitmap-write: ignore BITMAP_FLAG_REUSE
726 + - pack-bitmap-write: build fewer intermediate bitmaps
727 + - pack-bitmap.c: check reads more aggressively when loading
728 + - pack-bitmap-write: rename children to reverse_edges
729 + - t5310: add branch-based checks
730 + - commit: implement commit_list_contains()
731 + - bitmap: add bitmap_diff_nonzero()
732 + - pack-bitmap-write: fill bitmap with commit history
733 + - pack-bitmap-write: pass ownership of intermediate bitmaps
734 + - pack-bitmap-write: reimplement bitmap writing
735 + - ewah: add bitmap_dup() function
736 + - ewah: implement bitmap_or()
737 + - ewah: make bitmap growth less aggressive
738 + - ewah: factor out bitmap growth
739 + - rev-list: die when --test-bitmap detects a mismatch
740 + - t5310: drop size of truncated ewah bitmap
741 + - pack-bitmap: bounds-check size of cache extension
742 + - pack-bitmap: fix header size check
743 + - ewah/ewah_bitmap.c: grow buffer past 1
744 +
745 + Various improvement to the codepath that writes out pack bitmaps.
746 +
747 + Needs a bit of reshuffling?
748 + cf. <X7xzWClGr3bM3wcg@coredump.intra.peff.net>
749 +
750 +
751 +* ab/retire-parse-remote (2020-11-24) 4 commits
752 + (merged to 'next' on 2020-11-25 at 644484d7df)
753 + + submodule: fix fetch_in_submodule logic
754 + (merged to 'next' on 2020-11-18 at 80d4d8290c)
755 + + parse-remote: remove this now-unused library
756 + + submodule: remove sh function in favor of helper
757 + + submodule: use "fetch" logic instead of custom remote discovery
758 +
759 + "git-parse-remote" shell script library outlived its usefulness.
760 +
761 + Will merge to 'master'.
762 +
763 +
764 +* pb/pull-rebase-recurse-submodules (2020-11-16) 4 commits
765 + (merged to 'next' on 2020-11-25 at 9837b50d7f)
766 + + pull: check for local submodule modifications with the right range
767 + + t5572: describe '--rebase' tests a little more
768 + + t5572: add notes on a peculiar test
769 + + pull --rebase: compute rebase arguments in separate function
770 +
771 + "git pull --rebase --recurse-submodules" checked for local changes
772 + in a wrong range and failed to run correctly when it should.
773 +
774 + Will merge to 'master'.
775 +
776 +
777 +* tb/repack-simplify (2020-11-17) 3 commits
778 + (merged to 'next' on 2020-11-25 at 79a98f2403)
779 + + builtin/repack.c: don't move existing packs out of the way
780 + + builtin/repack.c: keep track of what pack-objects wrote
781 + + repack: make "exts" array available outside cmd_repack()
782 +
783 + Simplify the logic to deal with a repack operation that ended up
784 + creating the same packfile.
785 +
786 + Will merge to 'master'.
787 +
788 +
789 +* dd/help-autocorrect-never (2020-11-25) 1 commit
790 + - help.c: help.autocorrect=never means "do not compute suggestions"
791 +
792 + "git $cmd $args", when $cmd is not a recognised subcommand, by
793 + default tries to see if $cmd is a typo of an existing subcommand
794 + and optionally executes the corrected command if there is only one
795 + possibility, depending on the setting of help.autocorrect; the
796 + users can now disable the whole thing, including the cycles spent
797 + to find a likely typo, by setting the configuration variable to
798 + 'never'.
799 +
800 + Getting there.
801 + cf. <xmqqft4xdubq.fsf_-_@gitster.c.googlers.com>
802 +
803 +
804 +* js/default-branch-name-tests-final-stretch (2020-11-19) 29 commits
805 + - tests: drop prereq `PREPARE_FOR_MAIN_BRANCH` where no longer needed
806 + - t99*: adjust the references to the default branch name "main"
807 + - tests(git-p4): transition to the default branch name `main`
808 + - t9[5-7]*: adjust the references to the default branch name "main"
809 + - t9[0-4]*: adjust the references to the default branch name "main"
810 + - t8*: adjust the references to the default branch name "main"
811 + - t7[5-9]*: adjust the references to the default branch name "main"
812 + - t7[0-4]*: adjust the references to the default branch name "main"
813 + - t6[4-9]*: adjust the references to the default branch name "main"
814 + - t64*: preemptively adjust alignment to prepare for `master` -> `main`
815 + - t6[0-3]*: adjust the references to the default branch name "main"
816 + - t5[6-9]*: adjust the references to the default branch name "main"
817 + - t55[4-9]*: adjust the references to the default branch name "main"
818 + - t55[23]*: adjust the references to the default branch name "main"
819 + - t551*: adjust the references to the default branch name "main"
820 + - t550*: adjust the references to the default branch name "main"
821 + - t5503: prepare aligned comment for replacing `master` with `main`
822 + - t5[0-4]*: adjust the references to the default branch name "main"
823 + - t5323: prepare centered comment for `master` -> `main`
824 + - t4*: adjust the references to the default branch name "main"
825 + - t3[5-9]*: adjust the references to the default branch name "main"
826 + - t34*: adjust the references to the default branch name "main"
827 + - t3416: preemptively adjust alignment in a comment
828 + - t3[0-3]*: adjust the references to the default branch name "main"
829 + - t2*: adjust the references to the default branch name "main"
830 + - t[01]*: adjust the references to the default branch name "main"
831 + - t0060: preemptively adjust alignment
832 + - tests: mark tests relying on the current default for `init.defaultBranch`
833 + - Merge 'jk/diff-release-filespec-fix' into js/default-branch-name-tests-final-stretch
834 +
835 + Prepare tests not to be affected by the name of the default branch
836 + "git init" creates.
837 +
838 +
839 +* js/t2106-cleanup (2020-11-18) 3 commits
840 + (merged to 'next' on 2020-11-23 at b1bcd5d8b2)
841 + + t2106: ensure that the checkout fails for the expected reason
842 + + t2106: make test independent of the current main branch name
843 + + t2106: adjust style to the current conventions
844 +
845 + A test script got cleaned up and then made not to depend on the
846 + value of init.defaultBranch.
847 +
848 + Will merge to 'master'.
849 +
850 +
851 +* js/t3040-cleanup (2020-11-18) 1 commit
852 + (merged to 'next' on 2020-11-23 at 88951eae2f)
853 + + t3040: remove stale note
854 +
855 + Cleanup.
856 +
857 + Will merge to 'master'.
858 +
859 +
860 +* js/t4015-wo-master (2020-11-19) 1 commit
861 + (merged to 'next' on 2020-11-23 at b85c36ffb4)
862 + + t4015: let the test pass with any default branch name
863 +
864 + A test script got cleaned up not to depend on the value of
865 + init.defaultBranch.
866 +
867 + Will merge to 'master'.
868 +
869 +
870 +* ds/config-literal-value (2020-11-25) 8 commits
871 + - config doc: value-pattern is not necessarily a regexp
872 + - config: implement --fixed-value with --get*
873 + - config: plumb --fixed-value into config API
874 + - config: add --fixed-value option, un-implemented
875 + - t1300: add test for --replace-all with value-pattern
876 + - t1300: test "set all" mode with value-pattern
877 + - config: replace 'value_regex' with 'value_pattern'
878 + - config: convert multi_replace to flags
879 + (this branch is used by ds/maintenance-part-3.)
880 +
881 + Various subcommands of "git config" that takes value_regex
882 + learn the "--literal-value" option to take the value_regex option
883 + as a literal string.
884
885 + Expecting a (hopefully final) reroll.
886
716 -* mt/grep-sparse-checkout (2020-09-10) 9 commits
717 - - config: add setting to ignore sparsity patterns in some cmds
718 - - grep: honor sparse checkout patterns
719 - - config: correctly read worktree configs in submodules
720 - - config: make do_git_config_sequence receive a 'struct repository'
721 - - t/helper/test-config: unify exit labels
722 - - t/helper/test-config: diagnose missing arguments
723 - - t/helper/test-config: be consistent with exit codes
724 - - t1308-config-set: avoid false positives when using test-config
725 - - doc: grep: unify info on configuration variables
726 - (this branch is used by mt/rm-sparse-checkout.)
887
728 - "git grep" has been tweaked to be limited to the sparse checkout
729 - paths.
888 +* ds/maintenance-part-3 (2020-11-25) 2 commits
889 + - maintenance: use 'git config --fixed-value'
890 + - Merge branch 'ds/config-literal-value' into ds/maintenance-part-3
891 + (this branch uses ds/config-literal-value.)
892 +
893 + "git maintenance" command had trouble working in a directory whose
894 + pathname contained an ERE metacharacter like '+'.
895 +
896 + Blocked by ds/config-literal-value.
897 +
898 +
899 +* js/pull-rebase-use-advise (2020-11-19) 1 commit
900 + (merged to 'next' on 2020-11-25 at 05db775119)
901 + + pull: colorize the hint about setting `pull.rebase`
902 +
903 + UI improvement.
904 +
905 + Will merge to 'master'.
906 +
907 +
908 +* js/t1309-master-to-topic (2020-11-19) 1 commit
909 + (merged to 'next' on 2020-11-25 at 044da285ef)
910 + + t1309: use a neutral branch name in the `onbranch` test cases
911 +
912 + Test preparation.
913 +
914 + Will merge to 'master'.
915
731 ---------------------------------------------------
732 -[Cooking]
916
734 -* ag/merge-strategies-in-c (2020-11-16) 12 commits
917 +* ag/merge-strategies-in-c (2020-11-24) 13 commits
918 - sequencer: use the "octopus" merge strategy without forking
919 - sequencer: use the "resolve" strategy without forking
920 - merge: use the "octopus" strategy without forking
@@ -743,11 +926,14 @@ Release tarballs are available at:
926 - merge-index: libify merge_one_path() and merge_all()
927 - merge-one-file: rewrite in C
928 - update-index: move add_cacheinfo() to read-cache.c
746 - - t6027: modernise tests
929 + - t6060: modify multiple files to expose a possible issue with merge-index
930 + - t6407: modernise tests
931
932 The resolve and octopus merge strategy backends have been rewritten
933 in C.
934
935 + Needs review.
936 +
937
938 * ps/update-ref-multi-transaction (2020-11-16) 4 commits
939 - update-ref: disallow "start" for ongoing transactions
@@ -758,60 +944,7 @@ Release tarballs are available at:
944 "git update-ref --stdin" learns to take multiple transactions in a
945 single session.
946
761 -
762 -* fc/bash-completion-alias-of-alias (2020-11-17) 3 commits
763 - (merged to 'next' on 2020-11-18 at 4241203041)
764 - + completion: bash: improve alias loop detection
765 - (merged to 'next' on 2020-11-10 at 75f1f2b8a8)
766 - + completion: bash: check for alias loop
767 - + completion: bash: support recursive aliases
768 -
769 - The command line completion script (in contrib/) learned to expand
770 - commands that are alias of alias.
771 -
772 - Will merge to 'master'.
773 -
774 -
775 -* jk/rev-parse-end-of-options (2020-11-10) 3 commits
776 - (merged to 'next' on 2020-11-11 at 2d517d1608)
777 - + rev-parse: handle --end-of-options
778 - + rev-parse: put all options under the "-" check
779 - + rev-parse: don't accept options after dashdash
780 -
781 - "git rev-parse" learned the "--end-of-options" to help scripts to
782 - safely take a parameter that is supposed to be a revision, e.g.
783 - "git rev-parse --verify -q --end-of-options $rev".
784 -
785 - Will merge to 'master'.
786 -
787 -
788 -* fc/bash-completion-post-2.29 (2020-11-10) 26 commits
789 - - completion: bash: shuffle __gitcomp functions
790 - - completion: bash: cleanup __gitcomp* invocations
791 - - completion: bash: add __gitcomp_opts
792 - - completion: bash: improve __gitcomp description
793 - - completion: bash: rename _get_comp_words_by_ref()
794 - - completion: bash: trivial cleanup
795 - - completion: bash: cleanup _get_comp_words_by_ref()
796 - - completion: bash: refactor _get_comp_words_by_ref()
797 - - completion: bash: simplify _get_comp_words_by_ref()
798 - - test: completion: switch __gitcomp_nl prefix test
799 - - completion: bash: simplify config_variable_name
800 - - completion: bash: improve __gitcomp suffix code
801 - - completion: bash: change suffix check in __gitcomp
802 - - completion: bash: simplify __gitcomp
803 - - completion: bash: refactor __gitcomp
804 - - completion: bash: simplify equal suffix check
805 - - completion: bash: factor out check in __gitcomp
806 - - completion: bash: get rid of any non-append code
807 - - completion: bash: get rid of _append() functions
808 - - completion: bash: remove non-append functionality
809 - - test: completion: add run_func() helper
810 - - test: completion: fix currently typed words
811 - - completion: bash: do not modify COMP_WORDBREAKS
812 - - completion: bash: fix for suboptions with value
813 - - completion: bash: add correct suffix in variables
814 - - completion: bash: fix prefix detection in branch.*
947 + Will merge to 'next'.
948
949
950 * js/add-i-color-fix (2020-11-16) 11 commits
@@ -830,25 +963,8 @@ Release tarballs are available at:
963 "git add -i" failed to honor custom colors configured to show
964 patches, which has been corrected.
965
833 -
834 -* ab/config-mak-uname-simplify (2020-11-11) 2 commits
835 - (merged to 'next' on 2020-11-12 at e1bd51ee71)
836 - + config.mak.uname: remove unused NEEDS_SSL_WITH_CURL flag
837 - + config.mak.uname: remove unused the NO_R_TO_GCC_LINKER flag
838 -
839 - Build configuration cleanup.
840 -
841 - Will merge to 'master'.
842 -
843 -
844 -* pd/mergetool-nvimdiff (2020-11-11) 2 commits
845 - (merged to 'next' on 2020-11-12 at aff20da3a2)
846 - + mergetool: avoid letting `list_tool_variants` break user-defined setups
847 - + mergetools/bc: add `bc4` to the alias list for Beyond Compare
848 -
849 - Fix regression introduced when nvimdiff support in mergetool was added.
850 -
851 - Will merge to 'master'.
966 + Will merge to 'next'.
967 + cf. <20201117015149.GC19433@coredump.intra.peff.net>
968
969
970 * js/trace2-session-id (2020-11-11) 11 commits
@@ -867,40 +983,10 @@ Release tarballs are available at:
983 The transport layer was taught to optionally exchange the session
984 ID assigned by the trace2 subsystem during fetch/push transactions.
985
870 -
871 -* so/log-diff-merge (2020-11-09) 27 commits
872 - - doc/git-show: include --diff-merges description
873 - - doc/rev-list-options: document --first-parent implies --diff-merges=first-parent
874 - - doc/diff-generate-patch: mention new --diff-merges option
875 - - doc/git-log: describe new --diff-merges options
876 - - t4013: add test for --diff-merges=first-parent
877 - - diff-merges: implement new values for --diff-merges
878 - - diff-merges: make -m/-c/--cc explicitly mutually exclusive
879 - - diff-merges: refactor opt settings into separate functions
880 - - diff-merges: get rid of now empty diff_merges_init_revs()
881 - - diff-merges: group diff-merge flags next to each other inside 'rev_info'
882 - - diff-merges: split 'ignore_merges' field
883 - - diff-merges: fix -m to properly override -c/--cc
884 - - t4013: add tests for -m failing to override -c/--cc
885 - - t4013: support test_expect_failure through ':failure' magic
886 - - diff-merges: revise revs->diff flag handling
887 - - diff-merges: introduce revs->first_parent_merges flag
888 - - diff-merges: new function diff_merges_set_dense_combined_if_unset()
889 - - diff-merges: new function diff_merges_suppress()
890 - - diff-merges: re-arrange functions to match the order they are called in
891 - - diff-merges: rename diff_merges_default_to_enable() to match semantics
892 - - diff-merges: move checks for first_parent_only out of the module
893 - - diff-merges: rename all functions to have common prefix
894 - - revision: move diff merges functions to its own diff-merges.c
895 - - revision: provide implementation for diff merges tweaks
896 - - revision: factor out initialization of diff-merge related settings
897 - - revision: factor out setup of diff-merge related settings
898 - - revision: factor out parsing of diff-merge related options
899 -
900 - "git log" learned a new "--diff-merges=<how>" option.
986 + Will merge to 'next'.
987
988
903 -* ds/maintenance-part-4 (2020-11-04) 4 commits
989 +* ds/maintenance-part-4 (2020-11-24) 4 commits
990 - maintenance: use Windows scheduled tasks
991 - maintenance: use launchctl on macOS
992 - maintenance: include 'cron' details in docs
@@ -911,77 +997,6 @@ Release tarballs are available at:
997 methods are not 'cron'.
998
999
914 -* en/merge-ort-impl (2020-11-11) 21 commits
915 - - merge-ort: free data structures in merge_finalize()
916 - - merge-ort: add implementation of record_unmerged_index_entries()
917 - - tree: enable cmp_cache_name_compare() to be used elsewhere
918 - - merge-ort: add implementation of checkout()
919 - - merge-ort: basic outline for merge_switch_to_result()
920 - - merge-ort: step 3 of tree writing -- handling subdirectories as we go
921 - - merge-ort: step 2 of tree writing -- function to create tree object
922 - - merge-ort: step 1 of tree writing -- record basenames, modes, and oids
923 - - merge-ort: have process_entries operate in a defined order
924 - - merge-ort: add a preliminary simple process_entries() implementation
925 - - merge-ort: avoid recursing into identical trees
926 - - merge-ort: record stage and auxiliary info for every path
927 - - merge-ort: compute a few more useful fields for collect_merge_info
928 - - merge-ort: avoid repeating fill_tree_descriptor() on the same tree
929 - - merge-ort: implement a very basic collect_merge_info()
930 - - merge-ort: add an err() function similar to one from merge-recursive
931 - - merge-ort: use histogram diff
932 - - merge-ort: port merge_start() from merge-recursive
933 - - merge-ort: add some high-level algorithm structure
934 - - merge-ort: setup basic internal data structures
935 - - Merge branch 'en/strmap' into en/merge-ort-impl
936 - (this branch uses en/strmap.)
937 -
938 -
939 -* jc/format-patch-name-max (2020-11-09) 1 commit
940 - (merged to 'next' on 2020-11-11 at 17e19bb17a)
941 - + format-patch: make output filename configurable
942 -
943 - The maximum length of output filenames "git format-patch" creates
944 - has become configurable (used to be capped at 64).
945 -
946 - Will merge to 'master'.
947 -
948 -
949 -* jk/diff-release-filespec-fix (2020-11-11) 2 commits
950 - (merged to 'next' on 2020-11-12 at 3b21625881)
951 - + t7800: simplify difftool test
952 - (merged to 'next' on 2020-11-09 at 6d89b9602d)
953 - + diff: allow passing NULL to diff_free_filespec_data()
954 - (this branch is used by js/default-branch-name-tests-final-stretch.)
955 -
956 - Running "git diff" while allowing external diff in a state with
957 - unmerged paths used to segfault, which has been corrected.
958 -
959 - Will merge to 'master'.
960 -
961 -
962 -* jx/t5411-flake-fix (2020-11-11) 3 commits
963 - (merged to 'next' on 2020-11-18 at badb1fefe5)
964 - + receive-pack: use default version 0 for proc-receive
965 - + receive-pack: gently write messages to proc-receive
966 - + t5411: new helper filter_out_user_friendly_and_stable_output
967 -
968 - The exchange between receive-pack and proc-receive hook did not
969 - carefully check for errors.
970 -
971 - Will merge to 'master'.
972 -
973 -
974 -* av/fsmonitor-cleanup (2020-10-21) 2 commits
975 - - fsmonitor: make output of test-dump-fsmonitor more concise
976 - - fsmonitor: stop inline'ing mark_fsmonitor_valid / _invalid
977 -
978 - Code clean-up.
979 -
980 - Will discard.
981 - Unneeded?
982 - cf. <20201022183822.GA781760@nand.local>
983 -
984 -
1000 * sj/untracked-files-in-submodule-directory-is-not-dirty (2020-10-26) 1 commit
1001 - diff: do not show submodule with untracked files as "-dirty"
1002
@@ -994,31 +1009,6 @@ Release tarballs are available at:
1009 Needs doc update and also adjusting "git status".
1010
1011
997 -* en/strmap (2020-11-11) 15 commits
998 - (merged to 'next' on 2020-11-12 at 41519a5f5c)
999 - + shortlog: use strset from strmap.h
1000 - + Use new HASHMAP_INIT macro to simplify hashmap initialization
1001 - + strmap: take advantage of FLEXPTR_ALLOC_STR when relevant
1002 - + strmap: enable allocations to come from a mem_pool
1003 - + strmap: add a strset sub-type
1004 - + strmap: split create_entry() out of strmap_put()
1005 - + strmap: add functions facilitating use as a string->int map
1006 - + strmap: enable faster clearing and reusing of strmaps
1007 - + strmap: add more utility functions
1008 - + strmap: new utility functions
1009 - + hashmap: provide deallocation function names
1010 - + hashmap: introduce a new hashmap_partial_clear()
1011 - + hashmap: allow re-use after hashmap_free()
1012 - + hashmap: adjust spacing to fix argument alignment
1013 - + hashmap: add usage documentation explaining hashmap_free[_entries]()
1014 - (this branch is used by en/merge-ort-impl.)
1015 -
1016 - A speciailization of hashmap that uses a string as key has been
1017 - introduced. Hopefully it will see wider use over time.
1018 -
1019 - Will merge to 'master'.
1020 -
1021 -
1012 * ak/corrected-commit-date (2020-10-08) 10 commits
1013 - doc: add corrected commit date info
1014 - commit-reach: use corrected commit dates in paint_down_to_common()
@@ -1058,3 +1048,36 @@ Release tarballs are available at:
1048 "git push" learns a way to tell an object that it expects the other
1049 side to have and is usable as a common ancestor, which can be used
1050 by the other side to shrink its initial ref advertisement.
1051 +
1052 +
1053 +* rs/chdir-notify-unleak (2020-11-16) 1 commit
1054 + . chdir-notify: UNLEAK registrated callback entries
1055 +
1056 + Mark some stuff on list_head chain with UNLEAK() macro to squelch
1057 + leak checker.
1058 +
1059 + Retracted.
1060 + cf. <3b2afb7a-57aa-025c-806f-ae3faa0ed077@web.de>
1061 +
1062 +
1063 +* av/fsmonitor-cleanup (2020-10-21) 2 commits
1064 + . fsmonitor: make output of test-dump-fsmonitor more concise
1065 + . fsmonitor: stop inline'ing mark_fsmonitor_valid / _invalid
1066 +
1067 + Code clean-up.
1068 +
1069 + Unneeded?
1070 + cf. <20201022183822.GA781760@nand.local>
1071 +
1072 +
1073 +* jc/init-doc-default-branch (2020-11-18) 1 commit
1074 + . "init" doc: mention the configurability more clearly
1075 +
1076 + Doc update.
1077 +
1078 +
1079 +* ds/treeless-clone-wo-submodule-recursing (2020-11-21) 1 commit
1080 + . clone: --filter=tree:0 implies fetch.recurseSubmodules=no
1081 +
1082 + Retracted.
1083 + cf. <8a31af0e-4440-d957-11fb-48c4d2abd5c7@gmail.com>