What's cooking (2021/01 #02)

Junio C Hamano committed Jan 8, 2021 at 11:19 UTC 8cb6cac5af20456e459e8a9414e05461a3a87edc
1 file changed +518 -443
whats-cooking.txt
+518 -443
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Jan 2021, #01; Wed, 6)
4 -X-master-at: 71ca53e8125e36efbda17293c50027d31681a41f
5 -X-next-at: d98b1dd5eaa7327399716162c746c9bd3cac3866
3 +Subject: What's cooking in git.git (Jan 2021, #02; Fri, 8)
4 +X-master-at: 72c4083ddf91b489b7b7b812df67ee8842177d98
5 +X-next-at: b2714ff1a467d5c50f82988d2216cb7d091f5c2b
6
7 -What's cooking in git.git (Jan 2021, #01; Wed, 6)
7 +What's cooking in git.git (Jan 2021, #02; Fri, 8)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with '-' are
@@ -12,8 +12,9 @@ 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 -https://github.com/git/git/runs/1660876025 shows that with a few
16 -topics excluded the tip of 'seen' passes the CI. Yay.
15 +Many topics that have been cooking in the 'next' branch during the
16 +pre-release freeze at the year end have now been merged to the
17 +'master' branch, and the tip of the 'next' branch has been rewound.
18
19 Copies of the source code to Git live in many repositories, and the
20 following is a list of the ones I push into or their mirrors. Some
@@ -46,10 +47,368 @@ Release tarballs are available at:
47 --------------------------------------------------
48 [New Topics]
49
49 -* ab/branch-sort (2021-01-06) 5 commits
50 +* en/ort-directory-rename (2021-01-07) 18 commits
51 + - merge-ort: fix a directory rename detection bug
52 + - merge-ort: process_renames() now needs more defensiveness
53 + - merge-ort: implement apply_directory_rename_modifications()
54 + - merge-ort: add a new toplevel_dir field
55 + - merge-ort: implement handle_path_level_conflicts()
56 + - merge-ort: implement check_for_directory_rename()
57 + - merge-ort: implement apply_dir_rename() and check_dir_renamed()
58 + - merge-ort: implement compute_collisions()
59 + - merge-ort: modify collect_renames() for directory rename handling
60 + - merge-ort: implement handle_directory_level_conflicts()
61 + - merge-ort: implement compute_rename_counts()
62 + - merge-ort: copy get_renamed_dir_portion() from merge-recursive.c
63 + - merge-ort: add outline of get_provisional_directory_renames()
64 + - merge-ort: add outline for computing directory renames
65 + - merge-ort: collect which directories are removed in dirs_removed
66 + - merge-ort: initialize and free new directory rename data structures
67 + - merge-ort: add new data structures for directory rename detection
68 + - Merge branch 'en/merge-ort-3' into en/ort-directory-rename
69 + (this branch uses en/merge-ort-3.)
70 +
71 + ORT merge strategy learns to infer "renamed directory" while
72 + merging.
73 +
74 +
75 +* jk/forbid-lf-in-git-url (2021-01-07) 2 commits
76 + - fsck: reject .gitmodules git:// urls with newlines
77 + - git_connect_git(): forbid newlines in host and path
78 +
79 + Newline characters in the host and path part of git:// URL are
80 + now forbidden.
81 +
82 + Will merge to 'next'.
83 +
84 +
85 +* ps/fetch-atomic (2021-01-07) 2 commits
86 + - fetch: implement support for atomic reference updates
87 + - fetch: allow passing a transaction to `s_update_ref()`
88 +
89 + "git fetch" learns to treat ref updates atomically in all-or-none
90 + fashion, just like "git push" does, with the new "--atomic" option.
91 +
92 +
93 +* jc/sign-off (2021-01-07) 1 commit
94 + - SubmittingPatches: tighten wording on "sign-off" procedure
95 +
96 + Doc update.
97 +
98 + Will merge to 'next'.
99 +
100 +--------------------------------------------------
101 +[Graduated to 'master']
102 +
103 +* ab/trailers-extra-format (2020-12-09) 5 commits
104 + (merged to 'next' on 2020-12-14 at 9fc731944e)
105 + + pretty format %(trailers): add a "key_value_separator"
106 + + pretty format %(trailers): add a "keyonly"
107 + + pretty-format %(trailers): fix broken standalone "valueonly"
108 + + pretty format %(trailers) doc: avoid repetition
109 + + pretty format %(trailers) test: split a long line
110 +
111 + The "--format=%(trailers)" mechanism gets enhanced to make it
112 + easier to design output for machine consumption.
113 +
114 +
115 +* en/merge-ort-2 (2020-12-13) 7 commits
116 + (merged to 'next' on 2020-12-21 at ef5b184349)
117 + + merge-ort: add modify/delete handling and delayed output processing
118 + + merge-ort: add die-not-implemented stub handle_content_merge() function
119 + + merge-ort: add function grouping comments
120 + + merge-ort: add a paths_to_free field to merge_options_internal
121 + + merge-ort: add a path_conflict field to merge_options_internal
122 + + merge-ort: add a clear_internal_opts helper
123 + + merge-ort: add a few includes
124 + (this branch is used by en/merge-ort-3, en/merge-ort-recursive and en/ort-conflict-handling; uses en/merge-ort-impl.)
125 +
126 + More "ORT" merge strategy.
127 +
128 +
129 +* en/merge-ort-impl (2020-12-13) 21 commits
130 + (merged to 'next' on 2020-12-21 at c551d7bda9)
131 + + merge-ort: free data structures in merge_finalize()
132 + + merge-ort: add implementation of record_conflicted_index_entries()
133 + + tree: enable cmp_cache_name_compare() to be used elsewhere
134 + + merge-ort: add implementation of checkout()
135 + + merge-ort: basic outline for merge_switch_to_result()
136 + + merge-ort: step 3 of tree writing -- handling subdirectories as we go
137 + + merge-ort: step 2 of tree writing -- function to create tree object
138 + + merge-ort: step 1 of tree writing -- record basenames, modes, and oids
139 + + merge-ort: have process_entries operate in a defined order
140 + + merge-ort: add a preliminary simple process_entries() implementation
141 + + merge-ort: avoid recursing into identical trees
142 + + merge-ort: record stage and auxiliary info for every path
143 + + merge-ort: compute a few more useful fields for collect_merge_info
144 + + merge-ort: avoid repeating fill_tree_descriptor() on the same tree
145 + + merge-ort: implement a very basic collect_merge_info()
146 + + merge-ort: add an err() function similar to one from merge-recursive
147 + + merge-ort: use histogram diff
148 + + merge-ort: port merge_start() from merge-recursive
149 + + merge-ort: add some high-level algorithm structure
150 + + merge-ort: setup basic internal data structures
151 + + Merge branch 'en/strmap' into en/merge-ort-impl
152 + (this branch is used by en/merge-ort-2, en/merge-ort-3, en/merge-ort-recursive and en/ort-conflict-handling.)
153 +
154 + The merge backend "done right" starts to emerge.
155 +
156 +
157 +* en/merge-ort-recursive (2020-12-16) 4 commits
158 + (merged to 'next' on 2020-12-22 at 0dbf60011f)
159 + + merge-ort: implement merge_incore_recursive()
160 + + merge-ort: make clear_internal_opts() aware of partial clearing
161 + + merge-ort: copy a few small helper functions from merge-recursive.c
162 + + commit: move reverse_commit_list() from merge-recursive
163 + (this branch uses en/merge-ort-2 and en/merge-ort-impl; is tangled with en/merge-ort-3 and en/ort-conflict-handling.)
164 +
165 + The ORT merge strategy learned to synthesize virtual ancestor tree
166 + by recursively merging multiple merge bases together, just like the
167 + recursive backend has done for years.
168 +
169 +
170 +* es/perf-export-fix (2020-12-22) 1 commit
171 + (merged to 'next' on 2020-12-22 at d06b0379d9)
172 + + t/perf: avoid unnecessary test_export() recursion
173 +
174 + Tweak unneeded recursion from a test framework helper function.
175 +
176 +
177 +* es/worktree-repair-both-moved (2020-12-21) 1 commit
178 + (merged to 'next' on 2020-12-22 at 9eaae4f5c0)
179 + + worktree: teach `repair` to fix multi-directional breakage
180 +
181 + "git worktree repair" learned to deal with the case where both the
182 + repository and the worktree moved.
183 +
184 +
185 +* fc/pull-merge-rebase (2020-12-15) 5 commits
186 + (merged to 'next' on 2020-12-21 at acce13e5c4)
187 + + pull: display default warning only when non-ff
188 + + pull: correct condition to trigger non-ff advice
189 + + pull: get rid of unnecessary global variable
190 + + pull: give the advice for choosing rebase/merge much later
191 + + pull: refactor fast-forward check
192 +
193 + When a user does not tell "git pull" to use rebase or merge, the
194 + command gives a loud message telling a user to choose between
195 + rebase or merge but creates a merge anyway, forcing users who would
196 + want to rebase to redo the operation. Fix an early part of this
197 + problem by tightening the condition to give the message---there is
198 + no reason to stop or force the user to choose between rebase or
199 + merge if the history fast-forwards.
200 +
201 +
202 +* fc/t6030-bisect-reset-removes-auxiliary-files (2020-12-21) 1 commit
203 + (merged to 'next' on 2020-12-22 at 2ab78ef1e1)
204 + + test: bisect-porcelain: fix location of files
205 +
206 + A 3-year old test that was not testing anything useful has been
207 + corrected.
208 +
209 +
210 +* pk/subsub-fetch-fix-take-2 (2020-12-09) 1 commit
211 + (merged to 'next' on 2020-12-14 at ccc01a5f66)
212 + + submodules: fix of regression on fetching of non-init subsub-repo
213 +
214 + "git fetch --recurse-submodules" fix (second attempt).
215 +
216 +
217 +* tb/pack-bitmap (2020-12-08) 24 commits
218 + (merged to 'next' on 2020-12-15 at 773268c2fb)
219 + + pack-bitmap-write: better reuse bitmaps
220 + + pack-bitmap-write: relax unique revwalk condition
221 + + pack-bitmap-write: use existing bitmaps
222 + + pack-bitmap: factor out 'add_commit_to_bitmap()'
223 + + pack-bitmap: factor out 'bitmap_for_commit()'
224 + + pack-bitmap-write: ignore BITMAP_FLAG_REUSE
225 + + pack-bitmap-write: build fewer intermediate bitmaps
226 + + pack-bitmap.c: check reads more aggressively when loading
227 + + pack-bitmap-write: rename children to reverse_edges
228 + + t5310: add branch-based checks
229 + + commit: implement commit_list_contains()
230 + + bitmap: implement bitmap_is_subset()
231 + + pack-bitmap-write: fill bitmap with commit history
232 + + pack-bitmap-write: pass ownership of intermediate bitmaps
233 + + pack-bitmap-write: reimplement bitmap writing
234 + + ewah: add bitmap_dup() function
235 + + ewah: implement bitmap_or()
236 + + ewah: make bitmap growth less aggressive
237 + + ewah: factor out bitmap growth
238 + + rev-list: die when --test-bitmap detects a mismatch
239 + + t5310: drop size of truncated ewah bitmap
240 + + pack-bitmap: bounds-check size of cache extension
241 + + pack-bitmap: fix header size check
242 + + ewah/ewah_bitmap.c: avoid open-coding ALLOC_GROW()
243 +
244 + Various improvements to the codepath that writes out pack bitmaps.
245 +
246 +--------------------------------------------------
247 +[Stalled]
248 +
249 +* ss/submodule-add-in-c (2020-12-15) 3 commits
250 + . t7400: add test to check 'submodule add' for tracked paths
251 + . submodule: port submodule subcommand 'add' from shell to C
252 + . dir: change the scope of function 'directory_exists_in_index()'
253 +
254 + "git submodule add" being rewritten in C.
255 +
256 + Expecting a reroll.
257 + The patches are split incorrectly; part of 1/3 belongs to 2/3
258 + cf. <nycvar.QRO.7.76.6.2012190104140.56@tvgsbejvaqbjf.bet>
259 + It seems to introduce a segfault on 'seen'.
260 + cf. <xmqqft3xflw7.fsf@gitster.c.googlers.com>
261 +
262 +
263 +* mt/grep-sparse-checkout (2020-12-06) 10 commits
264 + - t7817: do not depend on any specific default branch name
265 + - config: add setting to ignore sparsity patterns in some cmds
266 + - grep: honor sparse checkout patterns
267 + - config: correctly read worktree configs in submodules
268 + - config: make do_git_config_sequence receive a 'struct repository'
269 + - t/helper/test-config: unify exit labels
270 + - t/helper/test-config: diagnose missing arguments
271 + - t/helper/test-config: be consistent with exit codes
272 + - t1308-config-set: avoid false positives when using test-config
273 + - doc: grep: unify info on configuration variables
274 + (this branch is used by mt/rm-sparse-checkout.)
275 +
276 + "git grep" has been tweaked to be limited to the sparse checkout
277 + paths.
278 +
279 + Break out and fast-track bugfix from the remainder of the topic.
280 + cf. <CABPp-BFkACtF6LHkFJNt9dTOmwfQbf8ZO=BTrPYwPSmbqc9+hg@mail.gmail.com>
281 +
282 +
283 +* mt/rm-sparse-checkout (2020-12-08) 1 commit
284 + - rm: honor sparse checkout patterns
285 + (this branch uses mt/grep-sparse-checkout.)
286 +
287 + "git rm" follows suit to "git grep" to ignore paths outside the
288 + sparsity pattern when the sparse checkout feature is in use.
289 +
290 + Need to wait for how these fit in larger picture.
291 + cf. <CABPp-BGMX3wb7LiS1HkJpGveoW3J1oR0vVHbKTF5+qYLRF+59g@mail.gmail.com>
292 + cf. <CABPp-BFkACtF6LHkFJNt9dTOmwfQbf8ZO=BTrPYwPSmbqc9+hg@mail.gmail.com>
293 +
294 +
295 +* jk/symlinked-dotgitx-files (2020-10-23) 9 commits
296 + - docs: document symlink restrictions for .git* files
297 + - fsck: complain when .gitattributes or .gitignore is a symlink
298 + - verify_path(): disallow symlinks in .gitattributes and .gitignore
299 + - t0060: test obscured .gitattributes and .gitignore matching
300 + - t7450: test .gitmodules symlink matching against obscured names
301 + - t7450: test verify_path() handling of gitmodules
302 + - t7415: rename to expand scope
303 + - fsck_tree(): wrap some long lines
304 + - fsck_tree(): fix shadowed variable
305 +
306 + "git fsck" and the corresponding check done during the transport
307 + learned to ensure that in-tree files like `.gitignore` and
308 + `.gitattributes` are not symbolic links.
309 +
310 + It seems that there are real projects with .gitignore recorded as
311 + symlinks, which may need to loosen the fsck setting. Do we need to
312 + introduce a class that is separate from symlinked .gitmodules that
313 + has potential consequences that is more/less grave, so that these
314 + projects can opt out of the new checks?
315 +
316 +
317 +* sm/curl-retry (2020-10-13) 3 commits
318 + - http: automatically retry some requests
319 + - replace CURLOPT_FILE With CURLOPT_WRITEDATA
320 + - remote-curl: add testing for intelligent retry for HTTP
321 +
322 + The http transport has been taught to retry a failed request that
323 + may reasonably be retried.
324 +
325 + Expecting a reroll.
326 + cf. <20201015000410.GB328643@google.com>
327 + cf. <CAM4o00eefXK2CJ_FxwwVPpBKL01JsJANf+SdjCtw_0NVV82L+Q@mail.gmail.com>
328 +
329 +
330 +* sv/t7001-modernize (2020-09-25) 11 commits
331 + - t7001: move cleanup code from outside the tests into them
332 + - t7001: use `test` rather than `[`
333 + - t7001: use here-docs instead of echo
334 + - t7001: put each command on a separate line
335 + - t7001: use ': >' rather than 'touch'
336 + - t7001: change (cd <path> && git foo) to (git -C <path> foo)
337 + - t7001: remove whitespace after redirect operators
338 + - t7001: change the style for cd according to subshell
339 + - t7001: remove unnecessary blank lines
340 + - t7001: use TAB instead of spaces
341 + - t7001: convert tests from the old style to the current style
342 +
343 + Test script modernization.
344 +
345 + Expecting a reroll.
346 + cf. <20200925170256.11490-1-shubhunic@gmail.com>
347 +
348 +
349 +* ar/fetch-transfer-ipversion (2020-09-16) 1 commit
350 + - config: option transfer.ipversion to set transport protocol version for network fetches
351 +
352 + Adds transfer.ipversion configuration variable.
353 +
354 + Needs more work.
355 +
356 +
357 +* jc/war-on-dashed-git (2020-12-21) 2 commits
358 + - fixup??? git: catch an attempt to run "git-foo"
359 + - git: catch an attempt to run "git-foo"
360 +
361 + The first step to remove on-disk binaries for built-in subcommands
362 + by soliciting objections.
363 +
364 + On hold for now.
365 +
366 +
367 +* mk/use-size-t-in-zlib (2018-10-15) 1 commit
368 + - zlib.c: use size_t for size
369 +
370 + The wrapper to call into zlib followed our long tradition to use
371 + "unsigned long" for sizes of regions in memory, which have been
372 + updated to use "size_t".
373 +
374 +
375 +* ag/merge-strategies-in-c (2020-11-24) 13 commits
376 + - sequencer: use the "octopus" merge strategy without forking
377 + - sequencer: use the "resolve" strategy without forking
378 + - merge: use the "octopus" strategy without forking
379 + - merge: use the "resolve" strategy without forking
380 + - merge-octopus: rewrite in C
381 + - merge-recursive: move better_branch_name() to merge.c
382 + - merge-resolve: rewrite in C
383 + - merge-index: don't fork if the requested program is `git-merge-one-file'
384 + - merge-index: libify merge_one_path() and merge_all()
385 + - merge-one-file: rewrite in C
386 + - update-index: move add_cacheinfo() to read-cache.c
387 + - t6060: modify multiple files to expose a possible issue with merge-index
388 + - t6407: modernise tests
389 +
390 + The resolve and octopus merge strategy backends have been rewritten
391 + in C.
392 +
393 + Got enough review comments to get updated.
394 +
395 +--------------------------------------------------
396 +[Cooking]
397 +
398 +* vv/send-email-with-less-secure-apps-access (2021-01-07) 1 commit
399 + - git-send-email.txt: mention less secure app access with Gmail
400 +
401 + Doc update.
402 +
403 + Will merge to 'next'.
404 +
405 +
406 +* ab/branch-sort (2021-01-07) 7 commits
407 - branch: show "HEAD detached" first under reverse sort
51 - - branch: use the "detached_head_first" sorting option
52 - - ref-filter: add a "detached_head_first" sorting option
408 + - branch: sort detached HEAD based on a flag
409 + - ref-filter: move ref_sorting flags to a bitfield
410 + - ref-filter: move "cmp_fn" assignment into "else if" arm
411 + - ref-filter: add braces to if/else if/else chain
412 - branch tests: add to --sort tests
413 - branch: change "--local" to "--list" in comment
414
@@ -59,7 +418,7 @@ Release tarballs are available at:
418 Will merge to 'next'.
419
420
62 -* ab/coc-update-to-2.0 (2021-01-04) 3 commits
421 +* ab/coc-update-to-2.0 (2021-01-07) 3 commits
422 - CoC: update to version 2.0 + local changes
423 - CoC: explicitly take any whitespace breakage
424 - CoC: Update word-wrapping to match upstream
@@ -73,27 +432,29 @@ Release tarballs are available at:
432
433
434 * ar/t6016-modernise (2021-01-04) 1 commit
76 - - t6016: move to lib-log-graph.sh framework
435 + (merged to 'next' on 2021-01-08 at 45f1b43e88)
436 + + t6016: move to lib-log-graph.sh framework
437
438 Test update.
439
80 - Will merge to 'next'.
440 + Will merge to 'master'.
441
442
83 -* dl/reflog-with-single-entry (2021-01-06) 2 commits
443 +* dl/reflog-with-single-entry (2021-01-07) 2 commits
444 - refs: allow @{n} to work with n-sized reflog
445 - refs: factor out set_read_ref_cutoffs()
446
447 After expiring a reflog and making a single commit, the reflog for
448 the branch would record a single entry that knows both @{0} and
89 - @{1}, but we failed to answer "what commit we was on?", i.e. @{1}
449 + @{1}, but we failed to answer "what commit were we on?", i.e. @{1}
450
451
92 -* ds/cache-tree-basics (2021-01-04) 9 commits
452 +* ds/cache-tree-basics (2021-01-07) 10 commits
453 - cache-tree: speed up consecutive path comparisons
454 - cache-tree: use ce_namelen() instead of strlen()
455 - index-format: discuss recursion of cached-tree better
96 - - index-format: update preamble to cached tree extension
456 + - index-format: update preamble to cache tree extension
457 + - index-format: use 'cache tree' over 'cached tree'
458 - cache-tree: trace regions for prime_cache_tree
459 - cache-tree: trace regions for I/O
460 - cache-tree: use trace2 in cache_tree_update()
@@ -104,20 +465,23 @@ Release tarballs are available at:
465 extension in the index.
466
467
107 -* ds/for-each-repo-noopfix (2021-01-06) 1 commit
468 +* ds/for-each-repo-noopfix (2021-01-07) 1 commit
469 - for-each-repo: do nothing on empty config
470
471 "git for-each-repo --config=<var> <cmd>" should not run <cmd> for
472 any repository when the configuration variable <var> is not defined
473 even once.
474
475 + Will merge to 'next'.
476 +
477
478 * ds/trace2-topo-walk (2021-01-04) 1 commit
116 - - revision: trace topo-walk statistics
479 + (merged to 'next' on 2021-01-08 at 794c8f37ee)
480 + + revision: trace topo-walk statistics
481
482 The topological walk codepath is covered by new trace2 stats.
483
120 - Will merge to 'next'.
484 + Will merge to 'master'.
485
486
487 * en/ort-conflict-handling (2021-01-04) 10 commits
@@ -131,22 +495,30 @@ Release tarballs are available at:
495 - merge-ort: implement unique_path() helper
496 - merge-ort: handle directory/file conflicts that remain
497 - merge-ort: handle D/F conflict where directory disappears due to merge
134 - (this branch uses en/merge-ort-2 and en/merge-ort-impl; is tangled with en/merge-ort-3 and en/merge-ort-recursive.)
498 +
499 + ORT merge strategy learns more support for merge conflicts.
500
501
502 * fc/completion-aliases-support (2021-01-04) 4 commits
138 - - completion: add proper public __git_complete
139 - - test: completion: add tests for __git_complete
140 - - completion: bash: improve function detection
141 - - completion: bash: add __git_have_func helper
503 + (merged to 'next' on 2021-01-08 at b2714ff1a4)
504 + + completion: add proper public __git_complete
505 + + test: completion: add tests for __git_complete
506 + + completion: bash: improve function detection
507 + + completion: bash: add __git_have_func helper
508 +
509 + Bash completion (in contrib/) update to make it easier for
510 + end-users to add completion for their custom "git" subcommands.
511 +
512 + Will merge to 'master'.
513
514
515 * ma/doc-pack-format-varint-for-sizes (2021-01-04) 1 commit
145 - - pack-format.txt: document sizes at start of delta data
516 + (merged to 'next' on 2021-01-08 at 8a448c50dd)
517 + + pack-format.txt: document sizes at start of delta data
518
519 Doc update.
520
149 - Will merge to 'next'.
521 + Will merge to 'master'.
522
523
524 * ma/more-opaque-lock-file (2021-01-06) 5 commits
@@ -162,24 +534,26 @@ Release tarballs are available at:
534
535
536 * ma/sha1-is-a-hash (2021-01-04) 4 commits
165 - - hash-lookup: rename from sha1-lookup
166 - - sha1-lookup: rename `sha1_pos()` as `hash_pos()`
167 - - object-file.c: rename from sha1-file.c
168 - - object-name.c: rename from sha1-name.c
537 + (merged to 'next' on 2021-01-08 at a25537f7c3)
538 + + hash-lookup: rename from sha1-lookup
539 + + sha1-lookup: rename `sha1_pos()` as `hash_pos()`
540 + + object-file.c: rename from sha1-file.c
541 + + object-name.c: rename from sha1-name.c
542
543 Retire more names with "sha1" in it.
544
172 - Will merge to 'next'.
545 + Will merge to 'master'.
546
547
548 * ma/t1300-cleanup (2021-01-04) 3 commits
176 - - t1300: don't needlessly work with `core.foo` configs
177 - - t1300: remove duplicate test for `--file no-such-file`
178 - - t1300: remove duplicate test for `--file ../foo`
549 + (merged to 'next' on 2021-01-08 at 51aaae39a1)
550 + + t1300: don't needlessly work with `core.foo` configs
551 + + t1300: remove duplicate test for `--file no-such-file`
552 + + t1300: remove duplicate test for `--file ../foo`
553
554 Code clean-up.
555
182 - Will merge to 'next'.
556 + Will merge to 'master'.
557
558
559 * mt/t4129-with-setgid-dir (2021-01-06) 1 commit
@@ -194,226 +568,68 @@ Release tarballs are available at:
568
569
570 * nk/perf-fsmonitor-cleanup (2021-01-06) 1 commit
197 - - p7519: allow running without watchman prereq
198 -
199 - Test fix.
200 -
201 - Will merge to 'next'.
202 -
203 -
204 -* pb/doc-modules-git-work-tree-typofix (2021-01-04) 1 commit
205 - - gitmodules.txt: fix 'GIT_WORK_TREE' variable name
206 -
207 - Doc fix.
208 -
209 - Will merge to 'next'.
210 -
211 -
212 -* pb/mergetool-tool-help-fix (2021-01-06) 1 commit
213 - - mergetool--lib: fix '--tool-help' to correctly show available tools
214 -
215 - Fix 2.29 regression where "git mergetool --tool-help" fails to list
216 - all the available tools.
217 -
218 - Will merge to 'next'.
219 -
220 -
221 -* rs/rebase-commit-validation (2021-01-04) 1 commit
222 - - rebase: verify commit parameter
223 -
224 - Diagnose command line error early.
225 -
226 - Will merge to 'next'.
227 -
228 -
229 -* sg/t7800-difftool-robustify (2021-01-04) 1 commit
230 - . t7800-difftool: don't accidentally match tmp dirs
571 + (merged to 'next' on 2021-01-08 at 1837d6c30b)
572 + + p7519: allow running without watchman prereq
573
574 Test fix.
575
234 - Not working on Windows.
235 - cf. https://github.com/git/git/runs/1660588243?check_suite_focus=true#step:7:4186
236 -
237 -
238 -* ta/doc-typofix (2021-01-04) 1 commit
239 - - doc: fix some typos
240 -
241 - Doc fix.
242 -
243 - Will merge to 'next'.
244 -
245 -
246 -* zh/arg-help-format (2021-01-06) 2 commits
247 - - builtin/*: update usage format
248 - - parse-options: format argh like error messages
249 -
250 - Clean up option descriptions in "git cmd --help".
251 -
252 - Will merge to 'next'.
253 -
254 ---------------------------------------------------
255 -[Stalled]
256 -
257 -* ss/submodule-add-in-c (2020-12-15) 3 commits
258 - . t7400: add test to check 'submodule add' for tracked paths
259 - . submodule: port submodule subcommand 'add' from shell to C
260 - . dir: change the scope of function 'directory_exists_in_index()'
261 -
262 - "git submodule add" being rewritten in C.
263 -
264 - Expecting a reroll.
265 - The patches are split incorrectly; part of 1/3 belongs to 2/3
266 - cf. <nycvar.QRO.7.76.6.2012190104140.56@tvgsbejvaqbjf.bet>
267 - It seems to introduce a segfault on 'seen'.
268 - cf. <xmqqft3xflw7.fsf@gitster.c.googlers.com>
269 -
270 -
271 -* mt/grep-sparse-checkout (2020-12-06) 10 commits
272 - - t7817: do not depend on any specific default branch name
273 - - config: add setting to ignore sparsity patterns in some cmds
274 - - grep: honor sparse checkout patterns
275 - - config: correctly read worktree configs in submodules
276 - - config: make do_git_config_sequence receive a 'struct repository'
277 - - t/helper/test-config: unify exit labels
278 - - t/helper/test-config: diagnose missing arguments
279 - - t/helper/test-config: be consistent with exit codes
280 - - t1308-config-set: avoid false positives when using test-config
281 - - doc: grep: unify info on configuration variables
282 - (this branch is used by mt/rm-sparse-checkout.)
283 -
284 - "git grep" has been tweaked to be limited to the sparse checkout
285 - paths.
286 -
287 -
288 -* mt/rm-sparse-checkout (2020-12-08) 1 commit
289 - - rm: honor sparse checkout patterns
290 - (this branch uses mt/grep-sparse-checkout.)
291 -
292 - "git rm" follows suit to "git grep" to ignore paths outside the
293 - sparsity pattern when the sparse checkout feature is in use.
294 -
295 - Need to wait for how these fit in larger picture.
296 - cf. <CABPp-BGMX3wb7LiS1HkJpGveoW3J1oR0vVHbKTF5+qYLRF+59g@mail.gmail.com>
297 -
298 -
299 -* jk/symlinked-dotgitx-files (2020-10-23) 9 commits
300 - (merged to 'next' on 2020-10-26 at c1dd37b024)
301 - + docs: document symlink restrictions for .git* files
302 - + fsck: complain when .gitattributes or .gitignore is a symlink
303 - + verify_path(): disallow symlinks in .gitattributes and .gitignore
304 - + t0060: test obscured .gitattributes and .gitignore matching
305 - + t7450: test .gitmodules symlink matching against obscured names
306 - + t7450: test verify_path() handling of gitmodules
307 - + t7415: rename to expand scope
308 - + fsck_tree(): wrap some long lines
309 - + fsck_tree(): fix shadowed variable
310 -
311 - Originally merged to 'next' on 2020-10-23
312 -
313 - "git fsck" and the corresponding check done during the transport
314 - learned to ensure that in-tree files like `.gitignore` and
315 - `.gitattributes` are not symbolic links.
316 -
317 - It seems that there are real projects with .gitignore recorded as
318 - symlinks, which may need to loosen the fsck setting. Do we need to
319 - introduce a class that is separate from symlinked .gitmodules that
320 - probably is with potential consequences that is more/less grave?
321 -
322 - Will eject out of 'next' when rewinding the branch.
323 -
324 -
325 -* sm/curl-retry (2020-10-13) 3 commits
326 - - http: automatically retry some requests
327 - - replace CURLOPT_FILE With CURLOPT_WRITEDATA
328 - - remote-curl: add testing for intelligent retry for HTTP
329 -
330 - The http transport has been taught to retry a failed request that
331 - may reasonably be retried.
332 -
333 - Expecting a reroll.
334 - cf. <20201015000410.GB328643@google.com>
335 - cf. <CAM4o00eefXK2CJ_FxwwVPpBKL01JsJANf+SdjCtw_0NVV82L+Q@mail.gmail.com>
576 + Will merge to 'master'.
577
578
338 -* sv/t7001-modernize (2020-09-25) 11 commits
339 - - t7001: move cleanup code from outside the tests into them
340 - - t7001: use `test` rather than `[`
341 - - t7001: use here-docs instead of echo
342 - - t7001: put each command on a separate line
343 - - t7001: use ': >' rather than 'touch'
344 - - t7001: change (cd <path> && git foo) to (git -C <path> foo)
345 - - t7001: remove whitespace after redirect operators
346 - - t7001: change the style for cd according to subshell
347 - - t7001: remove unnecessary blank lines
348 - - t7001: use TAB instead of spaces
349 - - t7001: convert tests from the old style to the current style
579 +* pb/doc-modules-git-work-tree-typofix (2021-01-04) 1 commit
580 + (merged to 'next' on 2021-01-08 at a67ab3e96a)
581 + + gitmodules.txt: fix 'GIT_WORK_TREE' variable name
582
351 - Test script modernization.
583 + Doc fix.
584
353 - Expecting a reroll.
354 - cf. <20200925170256.11490-1-shubhunic@gmail.com>
585 + Will merge to 'master'.
586
587
357 -* ar/fetch-transfer-ipversion (2020-09-16) 1 commit
358 - - config: option transfer.ipversion to set transport protocol version for network fetches
588 +* pb/mergetool-tool-help-fix (2021-01-06) 1 commit
589 + - mergetool--lib: fix '--tool-help' to correctly show available tools
590
360 - Adds transfer.ipversion configuration variable.
591 + Fix 2.29 regression where "git mergetool --tool-help" fails to list
592 + all the available tools.
593
362 - Needs more work.
594 + Will merge to 'next'.
595
596
365 -* vv/send-email-with-less-secure-apps-access (2020-08-29) 1 commit
366 - - Documentation/git-send-email.txt: Mention less secure app access might need to enable.
597 +* rs/rebase-commit-validation (2021-01-04) 1 commit
598 + (merged to 'next' on 2021-01-08 at 2c63eb1cc8)
599 + + rebase: verify commit parameter
600
368 - Doc update.
601 + Diagnose command line error early.
602
370 - Expecting a reroll.
371 - cf. <xmqqwo1hi9nv.fsf@gitster.c.googlers.com>
372 - cf. <xmqqft85i72s.fsf@gitster.c.googlers.com>
603 + Will merge to 'master'.
604
605
375 -* jc/war-on-dashed-git (2020-12-21) 2 commits
376 - - fixup??? git: catch an attempt to run "git-foo"
377 - - git: catch an attempt to run "git-foo"
606 +* sg/t7800-difftool-robustify (2021-01-04) 1 commit
607 + . t7800-difftool: don't accidentally match tmp dirs
608
379 - The first step to remove on-disk binaries for built-in subcommands
380 - by soliciting objections.
609 + Test fix.
610
382 - On hold for now.
611 + Not working on Windows.
612 + cf. https://github.com/git/git/runs/1660588243?check_suite_focus=true#step:7:4186
613
614
385 -* mk/use-size-t-in-zlib (2018-10-15) 1 commit
386 - - zlib.c: use size_t for size
615 +* ta/doc-typofix (2021-01-04) 1 commit
616 + (merged to 'next' on 2021-01-08 at 1e579ef94f)
617 + + doc: fix some typos
618
388 - The wrapper to call into zlib followed our long tradition to use
389 - "unsigned long" for sizes of regions in memory, which have been
390 - updated to use "size_t".
619 + Doc fix.
620
392 ---------------------------------------------------
393 -[Needs Review]
621 + Will merge to 'master'.
622
395 -* ag/merge-strategies-in-c (2020-11-24) 13 commits
396 - - sequencer: use the "octopus" merge strategy without forking
397 - - sequencer: use the "resolve" strategy without forking
398 - - merge: use the "octopus" strategy without forking
399 - - merge: use the "resolve" strategy without forking
400 - - merge-octopus: rewrite in C
401 - - merge-recursive: move better_branch_name() to merge.c
402 - - merge-resolve: rewrite in C
403 - - merge-index: don't fork if the requested program is `git-merge-one-file'
404 - - merge-index: libify merge_one_path() and merge_all()
405 - - merge-one-file: rewrite in C
406 - - update-index: move add_cacheinfo() to read-cache.c
407 - - t6060: modify multiple files to expose a possible issue with merge-index
408 - - t6407: modernise tests
623
410 - The resolve and octopus merge strategy backends have been rewritten
411 - in C.
624 +* zh/arg-help-format (2021-01-06) 2 commits
625 + (merged to 'next' on 2021-01-08 at 208c98620c)
626 + + builtin/*: update usage format
627 + + parse-options: format argh like error messages
628
413 - Needs review.
629 + Clean up option descriptions in "git cmd --help".
630 +
631 + Will merge to 'master'.
632
415 ---------------------------------------------------
416 -[Cooking]
633
634 * ak/corrected-commit-date (2021-01-04) 11 commits
635 - doc: add corrected commit date info
@@ -431,16 +647,8 @@ Release tarballs are available at:
647 The commit-graph learned to use corrected commit dates instead of
648 the generation number to help topological revision traversal.
649
434 - Getting there.
435 -
436 -
437 -* es/perf-export-fix (2020-12-22) 1 commit
438 - (merged to 'next' on 2020-12-22 at d06b0379d9)
439 - + t/perf: avoid unnecessary test_export() recursion
440 -
441 - Tweak unneeded recursion from a test framework helper function.
442 -
443 - Will merge to 'master'.
650 + Getting there, but not needs more help to find and resolve segv.
651 + cf. <1adabda6-b80b-d543-f6c0-570dadbe589b@gmail.com>
652
653
654 * dl/p4-encode-after-kw-expansion (2020-12-23) 1 commit
@@ -465,31 +673,12 @@ Release tarballs are available at:
673
674
675 * ew/decline-core-abbrev (2020-12-23) 1 commit
468 - - core.abbrev=no disables abbreviations
676 + (merged to 'next' on 2021-01-08 at 630dd186a4)
677 + + core.abbrev=no disables abbreviations
678
679 Allow the configuration to specify no abbreviation regardless of
680 the hash algorithm.
681
473 - Will merge to 'next'.
474 -
475 -
476 -* es/worktree-repair-both-moved (2020-12-21) 1 commit
477 - (merged to 'next' on 2020-12-22 at 9eaae4f5c0)
478 - + worktree: teach `repair` to fix multi-directional breakage
479 -
480 - "git worktree repair" learned to deal with the case where both the
481 - repository and the worktree moved.
482 -
483 - Will merge to 'master'.
484 -
485 -
486 -* fc/t6030-bisect-reset-removes-auxiliary-files (2020-12-21) 1 commit
487 - (merged to 'next' on 2020-12-22 at 2ab78ef1e1)
488 - + test: bisect-porcelain: fix location of files
489 -
490 - A 3-year old test that was not testing anything useful has been
491 - corrected.
492 -
682 Will merge to 'master'.
683
684
@@ -504,6 +693,8 @@ Release tarballs are available at:
693
694 Piecemeal of rewrite of "git bisect" in C continues.
695
696 + What's the status of this thing?
697 +
698
699 * jt/clone-unborn-head (2020-12-22) 3 commits
700 - clone: respect remote unborn HEAD
@@ -515,6 +706,8 @@ Release tarballs are available at:
706 did not convey the information necessary to do so when copying an
707 empty repository. The protocol v2 learned how to do so.
708
709 + What's the status of this thing?
710 +
711
712 * fc/bash-completion-post-2.29 (2020-12-23) 4 commits
713 - completion: bash: add correct suffix in variables
@@ -525,12 +718,6 @@ Release tarballs are available at:
718 Seems to break tests on Windows
719
720
528 -* jc/config-pretend-gitdir (2020-12-15) 1 commit
529 - - config: --pretend-git-dir for includeIf:gitdir
530 -
531 - WIP
532 -
533 -
721 * jc/deprecate-pack-redundant (2020-12-15) 1 commit
722 - pack-redundant: gauge the usage before proposing its removal
723
@@ -538,20 +725,7 @@ Release tarballs are available at:
725 stale with almost unusable performance issues, gets used, as we no
726 longer want to recommend its use (instead just "repack -d" instead).
727
541 -
542 -* en/merge-ort-recursive (2020-12-16) 4 commits
543 - (merged to 'next' on 2020-12-22 at 0dbf60011f)
544 - + merge-ort: implement merge_incore_recursive()
545 - + merge-ort: make clear_internal_opts() aware of partial clearing
546 - + merge-ort: copy a few small helper functions from merge-recursive.c
547 - + commit: move reverse_commit_list() from merge-recursive
548 - (this branch uses en/merge-ort-2 and en/merge-ort-impl; is tangled with en/merge-ort-3 and en/ort-conflict-handling.)
549 -
550 - The ORT merge strategy learned to synthesize virtual ancestor tree
551 - by recursively merging multiple merge bases together, just like the
552 - recursive backend has done for years.
553 -
554 - Will merge to 'master'.
728 + Will merge to 'next'.
729
730
731 * mt/parallel-checkout-part-1 (2020-12-16) 9 commits
@@ -571,21 +745,24 @@ Release tarballs are available at:
745
746
747 * en/merge-ort-3 (2020-12-15) 11 commits
574 - - merge-ort: add implementation of type-changed rename handling
575 - - merge-ort: add implementation of normal rename handling
576 - - merge-ort: add implementation of rename collisions
577 - - merge-ort: add implementation of rename/delete conflicts
578 - - merge-ort: add implementation of both sides renaming differently
579 - - merge-ort: add implementation of both sides renaming identically
580 - - merge-ort: add basic outline for process_renames()
581 - - merge-ort: implement compare_pairs() and collect_renames()
582 - - merge-ort: implement detect_regular_renames()
583 - - merge-ort: add initial outline for basic rename detection
584 - - merge-ort: add basic data structures for handling renames
585 - (this branch uses en/merge-ort-2 and en/merge-ort-impl; is tangled with en/merge-ort-recursive and en/ort-conflict-handling.)
748 + (merged to 'next' on 2021-01-08 at fe481b9627)
749 + + merge-ort: add implementation of type-changed rename handling
750 + + merge-ort: add implementation of normal rename handling
751 + + merge-ort: add implementation of rename collisions
752 + + merge-ort: add implementation of rename/delete conflicts
753 + + merge-ort: add implementation of both sides renaming differently
754 + + merge-ort: add implementation of both sides renaming identically
755 + + merge-ort: add basic outline for process_renames()
756 + + merge-ort: implement compare_pairs() and collect_renames()
757 + + merge-ort: implement detect_regular_renames()
758 + + merge-ort: add initial outline for basic rename detection
759 + + merge-ort: add basic data structures for handling renames
760 + (this branch is used by en/ort-directory-rename.)
761
762 Rename detection is added to the "ORT" merge strategy.
763
764 + Will merge to 'master'.
765 +
766
767 * ps/config-env-pairs (2021-01-06) 8 commits
768 - config: allow specifying config entries via envvar pairs
@@ -653,42 +830,13 @@ Release tarballs are available at:
830
831
832 * bc/rev-parse-path-format (2020-12-12) 2 commits
656 - - rev-parse: add option for absolute or relative path formatting
657 - - abspath: add a function to resolve paths with missing components
833 + (merged to 'next' on 2021-01-08 at 7d51587b7f)
834 + + rev-parse: add option for absolute or relative path formatting
835 + + abspath: add a function to resolve paths with missing components
836
837 "git rev-parse" can be explicitly told to give output as absolute
838 or relative path.
839
662 - Will merge to 'next'.
663 -
664 -
665 -* en/merge-ort-impl (2020-12-13) 21 commits
666 - (merged to 'next' on 2020-12-21 at c551d7bda9)
667 - + merge-ort: free data structures in merge_finalize()
668 - + merge-ort: add implementation of record_conflicted_index_entries()
669 - + tree: enable cmp_cache_name_compare() to be used elsewhere
670 - + merge-ort: add implementation of checkout()
671 - + merge-ort: basic outline for merge_switch_to_result()
672 - + merge-ort: step 3 of tree writing -- handling subdirectories as we go
673 - + merge-ort: step 2 of tree writing -- function to create tree object
674 - + merge-ort: step 1 of tree writing -- record basenames, modes, and oids
675 - + merge-ort: have process_entries operate in a defined order
676 - + merge-ort: add a preliminary simple process_entries() implementation
677 - + merge-ort: avoid recursing into identical trees
678 - + merge-ort: record stage and auxiliary info for every path
679 - + merge-ort: compute a few more useful fields for collect_merge_info
680 - + merge-ort: avoid repeating fill_tree_descriptor() on the same tree
681 - + merge-ort: implement a very basic collect_merge_info()
682 - + merge-ort: add an err() function similar to one from merge-recursive
683 - + merge-ort: use histogram diff
684 - + merge-ort: port merge_start() from merge-recursive
685 - + merge-ort: add some high-level algorithm structure
686 - + merge-ort: setup basic internal data structures
687 - + Merge branch 'en/strmap' into en/merge-ort-impl
688 - (this branch is used by en/merge-ort-2, en/merge-ort-3, en/merge-ort-recursive and en/ort-conflict-handling.)
689 -
690 - The merge backend "done right" starts to emerge.
691 -
840 Will merge to 'master'.
841
842
@@ -755,48 +903,35 @@ Release tarballs are available at:
903
904
905 * ab/mktag (2021-01-06) 23 commits
758 - - mktag: add a --[no-]strict option
759 - - mktag: mark strings for translation
760 - - mktag: convert to parse-options
761 - - mktag: allow omitting the header/body \n separator
762 - - mktag: allow turning off fsck.extraHeaderEntry
763 - - fsck: make fsck_config() re-usable
764 - - mktag: use fsck instead of custom verify_tag()
765 - - mktag: use puts(str) instead of printf("%s\n", str)
766 - - mktag: remove redundant braces in one-line body "if"
767 - - mktag: use default strbuf_read() hint
768 - - mktag tests: test verify_object() with replaced objects
769 - - mktag tests: improve verify_object() test coverage
770 - - mktag tests: test "hash-object" compatibility
771 - - mktag tests: stress test whitespace handling
772 - - mktag tests: run "fsck" after creating "mytag"
773 - - mktag tests: don't create "mytag" twice
774 - - mktag tests: don't redirect stderr to a file needlessly
775 - - mktag tests: remove needless SHA-1 hardcoding
776 - - mktag tests: use "test_commit" helper
777 - - mktag tests: don't needlessly use a subshell
778 - - mktag doc: update to explain why to use this
779 - - mktag doc: grammar fix, when exists -> when it exists
780 - - mktag doc: say <hash> not <sha1>
906 + (merged to 'next' on 2021-01-08 at 6f9e11ad97)
907 + + mktag: add a --[no-]strict option
908 + + mktag: mark strings for translation
909 + + mktag: convert to parse-options
910 + + mktag: allow omitting the header/body \n separator
911 + + mktag: allow turning off fsck.extraHeaderEntry
912 + + fsck: make fsck_config() re-usable
913 + + mktag: use fsck instead of custom verify_tag()
914 + + mktag: use puts(str) instead of printf("%s\n", str)
915 + + mktag: remove redundant braces in one-line body "if"
916 + + mktag: use default strbuf_read() hint
917 + + mktag tests: test verify_object() with replaced objects
918 + + mktag tests: improve verify_object() test coverage
919 + + mktag tests: test "hash-object" compatibility
920 + + mktag tests: stress test whitespace handling
921 + + mktag tests: run "fsck" after creating "mytag"
922 + + mktag tests: don't create "mytag" twice
923 + + mktag tests: don't redirect stderr to a file needlessly
924 + + mktag tests: remove needless SHA-1 hardcoding
925 + + mktag tests: use "test_commit" helper
926 + + mktag tests: don't needlessly use a subshell
927 + + mktag doc: update to explain why to use this
928 + + mktag doc: grammar fix, when exists -> when it exists
929 + + mktag doc: say <hash> not <sha1>
930
931 "git mktag" validates its input using its own rules before writing
932 a tag object---it has been updated to share the logic with "git
933 fsck".
934
786 - Will merge to 'next'.
787 -
788 -
789 -* ab/trailers-extra-format (2020-12-09) 5 commits
790 - (merged to 'next' on 2020-12-14 at 9fc731944e)
791 - + pretty format %(trailers): add a "key_value_separator"
792 - + pretty format %(trailers): add a "keyonly"
793 - + pretty-format %(trailers): fix broken standalone "valueonly"
794 - + pretty format %(trailers) doc: avoid repetition
795 - + pretty format %(trailers) test: split a long line
796 -
797 - The "--format=%(trailers)" mechanism gets enhanced to make it
798 - easier to design output for machine consumption.
799 -
935 Will merge to 'master'.
936
937
@@ -813,91 +948,18 @@ Release tarballs are available at:
948
949 File-level rename detection updates.
950
816 -
817 -* en/merge-ort-2 (2020-12-13) 7 commits
818 - (merged to 'next' on 2020-12-21 at ef5b184349)
819 - + merge-ort: add modify/delete handling and delayed output processing
820 - + merge-ort: add die-not-implemented stub handle_content_merge() function
821 - + merge-ort: add function grouping comments
822 - + merge-ort: add a paths_to_free field to merge_options_internal
823 - + merge-ort: add a path_conflict field to merge_options_internal
824 - + merge-ort: add a clear_internal_opts helper
825 - + merge-ort: add a few includes
826 - (this branch is used by en/merge-ort-3, en/merge-ort-recursive and en/ort-conflict-handling; uses en/merge-ort-impl.)
827 -
828 - More "ORT" merge strategy.
829 -
830 - Will merge to 'master'.
831 -
832 -
833 -* fc/pull-merge-rebase (2020-12-15) 5 commits
834 - (merged to 'next' on 2020-12-21 at acce13e5c4)
835 - + pull: display default warning only when non-ff
836 - + pull: correct condition to trigger non-ff advice
837 - + pull: get rid of unnecessary global variable
838 - + pull: give the advice for choosing rebase/merge much later
839 - + pull: refactor fast-forward check
840 -
841 - When a user does not tell "git pull" to use rebase or merge, the
842 - command gives a loud message telling a user to choose between
843 - rebase or merge but creates a merge anyway, forcing users who would
844 - want to rebase to redo the operation. Fix an early part of this
845 - problem by tightening the condition to give the message---there is
846 - no reason to stop or force the user to choose between rebase or
847 - merge if the history fast-forwards.
848 -
849 - Will merge to 'master'.
850 -
851 -
852 -* pk/subsub-fetch-fix-take-2 (2020-12-09) 1 commit
853 - (merged to 'next' on 2020-12-14 at ccc01a5f66)
854 - + submodules: fix of regression on fetching of non-init subsub-repo
855 -
856 - "git fetch --recurse-submodules" fix (second attempt).
857 -
858 - Will merge to 'master'.
951 + Will merge to 'next'.
952
953
954 * en/stash-apply-sparse-checkout (2020-12-01) 3 commits
862 - - stash: fix stash application in sparse-checkouts
863 - - stash: remove unnecessary process forking
864 - - t7012: add a testcase demonstrating stash apply bugs in sparse checkouts
955 + (merged to 'next' on 2021-01-08 at cae5b73d99)
956 + + stash: fix stash application in sparse-checkouts
957 + + stash: remove unnecessary process forking
958 + + t7012: add a testcase demonstrating stash apply bugs in sparse checkouts
959
960 "git stash" did not work well in a sparsely checked out working
961 tree.
962
869 - Will merge to 'next'.
870 -
871 -
872 -* tb/pack-bitmap (2020-12-08) 24 commits
873 - (merged to 'next' on 2020-12-15 at 773268c2fb)
874 - + pack-bitmap-write: better reuse bitmaps
875 - + pack-bitmap-write: relax unique revwalk condition
876 - + pack-bitmap-write: use existing bitmaps
877 - + pack-bitmap: factor out 'add_commit_to_bitmap()'
878 - + pack-bitmap: factor out 'bitmap_for_commit()'
879 - + pack-bitmap-write: ignore BITMAP_FLAG_REUSE
880 - + pack-bitmap-write: build fewer intermediate bitmaps
881 - + pack-bitmap.c: check reads more aggressively when loading
882 - + pack-bitmap-write: rename children to reverse_edges
883 - + t5310: add branch-based checks
884 - + commit: implement commit_list_contains()
885 - + bitmap: implement bitmap_is_subset()
886 - + pack-bitmap-write: fill bitmap with commit history
887 - + pack-bitmap-write: pass ownership of intermediate bitmaps
888 - + pack-bitmap-write: reimplement bitmap writing
889 - + ewah: add bitmap_dup() function
890 - + ewah: implement bitmap_or()
891 - + ewah: make bitmap growth less aggressive
892 - + ewah: factor out bitmap growth
893 - + rev-list: die when --test-bitmap detects a mismatch
894 - + t5310: drop size of truncated ewah bitmap
895 - + pack-bitmap: bounds-check size of cache extension
896 - + pack-bitmap: fix header size check
897 - + ewah/ewah_bitmap.c: avoid open-coding ALLOC_GROW()
898 -
899 - Various improvements to the codepath that writes out pack bitmaps.
900 -
963 Will merge to 'master'.
964
965
@@ -939,16 +1001,17 @@ Release tarballs are available at:
1001
1002
1003 * ds/maintenance-part-4 (2021-01-05) 4 commits
942 - - maintenance: use Windows scheduled tasks
943 - - maintenance: use launchctl on macOS
944 - - maintenance: include 'cron' details in docs
945 - - maintenance: extract platform-specific scheduling
1004 + (merged to 'next' on 2021-01-08 at 1f98c859ea)
1005 + + maintenance: use Windows scheduled tasks
1006 + + maintenance: use launchctl on macOS
1007 + + maintenance: include 'cron' details in docs
1008 + + maintenance: extract platform-specific scheduling
1009
1010 Follow-up on the "maintenance part-3" which introduced scheduled
1011 maintenance tasks to support platforms whose native scheduling
1012 methods are not 'cron'.
1013
951 - Will merge to 'next'.
1014 + Will merge to 'master'.
1015
1016
1017 * sj/untracked-files-in-submodule-directory-is-not-dirty (2020-12-08) 1 commit
@@ -959,3 +1022,15 @@ Release tarballs are available at:
1022 that the "-dirty" indicator would align with "git describe --dirty",
1023 which does not consider having untracked files in the working tree
1024 as source of dirtiness. The inconsistency has been fixed.
1025 +
1026 + Will merge to 'next'.
1027 +
1028 +--------------------------------------------------
1029 +[Discarded]
1030 +
1031 +* jc/config-pretend-gitdir (2020-12-15) 1 commit
1032 + . config: --pretend-git-dir for includeIf:gitdir
1033 +
1034 + It turns out that the original "problem" that inspired the feature
1035 + was working as designed.
1036 + cf. <CAPQE4+rhWT9kgusNXOw5cnJ-oFq++4G1FMaXvQ3wppQ0GE0hSA@mail.gmail.com>