What's cooking (2021/02 #03)

Junio C Hamano committed Feb 17, 2021 at 16:05 UTC 767fa966fa09ec7aff9257ba65d2ab5ed961d39c
1 file changed +513 -539
whats-cooking.txt
+513 -539
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Feb 2021, #02; Wed, 10)
4 -X-master-at: f9f2520108bab26a750bcbb00518dc27672cf0a2
5 -X-next-at: 12f37433bd80c76d67aa57b8e233c31bae0a769d
3 +Subject: What's cooking in git.git (Feb 2021, #03; Wed, 17)
4 +X-master-at: 328c10930387d301560f7cbcd3351cc485a13381
5 +X-next-at: 45526154a57d15947cad7262230d0b935cedb9d3
6
7 -What's cooking in git.git (Feb 2021, #02; Wed, 10)
7 +What's cooking in git.git (Feb 2021, #03; Wed, 17)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with '-' are
@@ -12,9 +12,7 @@ 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 seventh batch of topics are in 'master'. On the 'maint' front,
16 -bunch of fixes that have already been in 'master' were merged there
17 -and the result has been tagged as Git 2.30.1.
15 +The eighth batch of topics are in 'master'.
16
17 Copies of the source code to Git live in many repositories, and the
18 following is a list of the ones I push into or their mirrors. Some
@@ -47,448 +45,390 @@ Release tarballs are available at:
45 --------------------------------------------------
46 [Graduated to 'master']
47
50 -* ab/detox-gettext-tests (2021-01-21) 3 commits
51 - (merged to 'next' on 2021-02-01 at 5573b4913c)
52 - + tests: remove uses of GIT_TEST_GETTEXT_POISON=false
53 - + tests: remove support for GIT_TEST_GETTEXT_POISON
54 - + ci: remove GETTEXT_POISON jobs
55 -
56 - Get rid of "GETTEXT_POISON" support altogether, which may or may
57 - not be controversial.
58 -
59 -
60 -* ab/grep-pcre-invalid-utf8 (2021-01-24) 2 commits
61 - (merged to 'next' on 2021-02-01 at 60be521876)
62 - + grep/pcre2: better support invalid UTF-8 haystacks
63 - + grep/pcre2 tests: don't rely on invalid UTF-8 data test
64 -
65 - Update support for invalid UTF-8 in PCRE2.
66 -
67 -
68 -* ab/lose-grep-debug (2021-01-26) 1 commit
69 - (merged to 'next' on 2021-01-31 at 9b7548efce)
70 - + grep/log: remove hidden --debug and --grep-debug options
71 -
72 - Lose the debugging aid that may have been useful in the past, but
73 - no longer is, in the "grep" codepaths.
74 -
75 -
76 -* ab/retire-pcre1 (2021-01-23) 2 commits
77 - (merged to 'next' on 2021-02-01 at 532a0a8228)
78 - + Remove support for v1 of the PCRE library
79 - + config.mak.uname: remove redundant NO_LIBPCRE1_JIT flag
80 -
81 - The support for deprecated PCRE1 library has been dropped.
82 -
83 -
84 -* ds/cache-tree-basics (2021-01-15) 10 commits
85 - (merged to 'next' on 2021-01-25 at 29ee74df7b)
86 - + cache-tree: speed up consecutive path comparisons
87 - + cache-tree: use ce_namelen() instead of strlen()
88 - + index-format: discuss recursion of cache-tree better
89 - + index-format: update preamble to cache tree extension
90 - + index-format: use 'cache tree' over 'cached tree'
91 - + cache-tree: trace regions for prime_cache_tree
92 - + cache-tree: trace regions for I/O
93 - + cache-tree: use trace2 in cache_tree_update()
94 - + unpack-trees: add trace2 regions
95 - + tree-walk: report recursion counts
96 - (this branch is used by ds/more-index-cleanups.)
97 -
98 - Document, clean-up and optimize the code around the cache-tree
99 - extension in the index.
100 -
101 -
102 -* ds/more-index-cleanups (2021-01-23) 9 commits
103 - (merged to 'next' on 2021-02-01 at bcdfa11e73)
104 - + t1092: test interesting sparse-checkout scenarios
105 - + test-lib: test_region looks for trace2 regions
106 - + sparse-checkout: load sparse-checkout patterns
107 - + name-hash: use trace2 regions for init
108 - + repository: add repo reference to index_state
109 - + fsmonitor: de-duplicate BUG()s around dirty bits
110 - + cache-tree: extract subtree_pos()
111 - + cache-tree: simplify verify_cache() prototype
112 - + cache-tree: clean up cache_tree_update()
113 -
114 - Cleaning various codepaths up.
115 -
116 -
117 -* en/ort-conflict-handling (2021-01-04) 10 commits
118 - (merged to 'next' on 2021-01-25 at 369c1516c4)
119 - + merge-ort: add handling for different types of files at same path
120 - + merge-ort: copy find_first_merges() implementation from merge-recursive.c
121 - + merge-ort: implement format_commit()
122 - + merge-ort: copy and adapt merge_submodule() from merge-recursive.c
123 - + merge-ort: copy and adapt merge_3way() from merge-recursive.c
124 - + merge-ort: flesh out implementation of handle_content_merge()
125 - + merge-ort: handle book-keeping around two- and three-way content merge
126 - + merge-ort: implement unique_path() helper
127 - + merge-ort: handle directory/file conflicts that remain
128 - + merge-ort: handle D/F conflict where directory disappears due to merge
129 - (this branch is used by en/merge-ort-perf.)
130 -
131 - ORT merge strategy learns more support for merge conflicts.
132 -
133 -
134 -* jk/p5303-sed-portability-fix (2021-01-29) 1 commit
135 - (merged to 'next' on 2021-01-31 at 5f2957e738)
136 - + p5303: avoid sed GNU-ism
137 -
138 - A perf script was made more portable.
139 -
140 -
141 -* jk/pretty-lazy-load-commit (2021-01-28) 1 commit
142 - (merged to 'next' on 2021-02-01 at acf7353a32)
143 - + pretty: lazy-load commit data when expanding user-format
48 +* ab/tests-various-fixup (2021-01-23) 10 commits
49 + (merged to 'next' on 2021-02-01 at a604a6e217)
50 + + rm tests: actually test for SIGPIPE in SIGPIPE test
51 + + archive tests: use a cheaper "zipinfo -h" invocation to get header
52 + + upload-pack tests: avoid a non-zero "grep" exit status
53 + + git-svn tests: rewrite brittle tests to use "--[no-]merges".
54 + + git svn mergeinfo tests: refactor "test -z" to use test_must_be_empty
55 + + git svn mergeinfo tests: modernize redirection & quoting style
56 + + cache-tree tests: explicitly test HEAD and index differences
57 + + cache-tree tests: use a sub-shell with less indirection
58 + + cache-tree tests: remove unused $2 parameter
59 + + cache-tree tests: refactor for modern test style
60
145 - Some pretty-format specifiers do not need the data in commit object
146 - (e.g. "%H"), but we were over-eager to load and parse it, which has
147 - been made even lazier.
61 + Various test updates.
62
63
150 -* jk/t0000-cleanups (2021-01-28) 4 commits
151 - (merged to 'next' on 2021-01-31 at 357f8fe097)
152 - + t0000: consistently use single quotes for outer tests
153 - + t0000: run cleaning test inside sub-test
154 - + t0000: run prereq tests inside sub-test
155 - + t0000: keep clean-up tests together
64 +* en/merge-ort-perf (2021-01-23) 6 commits
65 + (merged to 'next' on 2021-02-01 at ca3c07579b)
66 + + merge-ort: begin performance work; instrument with trace2_region_* calls
67 + + merge-ort: ignore the directory rename split conflict for now
68 + + merge-ort: fix massive leak
69 + + Merge branch 'en/ort-directory-rename' into en/merge-ort-perf
70 + + Merge branch 'en/ort-conflict-handling' into en/merge-ort-perf
71 + + Merge branch 'en/diffcore-rename' into en/merge-ort-perf
72 + (this branch uses en/ort-directory-rename.)
73
157 - Code clean-up.
74 + The "ort" merge strategy.
75
76
160 -* jk/use-oid-pos (2021-01-28) 6 commits
161 - (merged to 'next' on 2021-01-31 at 10ccafb739)
162 - + oid_pos(): access table through const pointers
163 - + hash_pos(): convert to oid_pos()
164 - + rerere: use strmap to store rerere directories
165 - + rerere: tighten rr-cache dirname check
166 - + rerere: check dirname format while iterating rr_cache directory
167 - + commit_graft_pos(): take an oid instead of a bare hash
77 +* en/ort-directory-rename (2021-01-20) 18 commits
78 + (merged to 'next' on 2021-02-01 at 5c1cdd13a1)
79 + + merge-ort: fix a directory rename detection bug
80 + + merge-ort: process_renames() now needs more defensiveness
81 + + merge-ort: implement apply_directory_rename_modifications()
82 + + merge-ort: add a new toplevel_dir field
83 + + merge-ort: implement handle_path_level_conflicts()
84 + + merge-ort: implement check_for_directory_rename()
85 + + merge-ort: implement apply_dir_rename() and check_dir_renamed()
86 + + merge-ort: implement compute_collisions()
87 + + merge-ort: modify collect_renames() for directory rename handling
88 + + merge-ort: implement handle_directory_level_conflicts()
89 + + merge-ort: implement compute_rename_counts()
90 + + merge-ort: copy get_renamed_dir_portion() from merge-recursive.c
91 + + merge-ort: add outline of get_provisional_directory_renames()
92 + + merge-ort: add outline for computing directory renames
93 + + merge-ort: collect which directories are removed in dirs_removed
94 + + merge-ort: initialize and free new directory rename data structures
95 + + merge-ort: add new data structures for directory rename detection
96 + + Merge branch 'en/merge-ort-3' into en/ort-directory-rename
97 + (this branch is used by en/merge-ort-perf.)
98
169 - Code clean-up to ensure our use of hashtables using object names as
170 - keys use the "struct object_id" objects, not the raw hash values.
99 + ORT merge strategy learns to infer "renamed directory" while
100 + merging.
101
102
173 -* jk/weather-balloon-require-variadic-macro (2021-01-27) 1 commit
174 - (merged to 'next' on 2021-01-31 at 8d5207bd85)
175 - + git-compat-util: always enable variadic macros
103 +* jk/complete-branch-force-delete (2021-02-03) 3 commits
104 + (merged to 'next' on 2021-02-03 at 6454bb89b5)
105 + + doc/git-branch: fix awkward wording for "-c"
106 + + completion: handle other variants of "branch -m"
107 + + completion: treat "branch -D" the same way as "branch -d"
108
177 - We've carried compatibility codepaths for compilers without
178 - variadic macros for quite some time, but the world may be ready for
179 - them to be removed. Force compilation failure on exotic platforms
180 - where variadic macros are not available to find out who screams in
181 - such a way that we can easily revert if it turns out that the world
182 - is not yet ready.
109 + The command line completion (in contrib/) completed "git branch -d"
110 + with branch names, but "git branch -D" offered tagnames in addition,
111 + which has been corrected. "git branch -M" had the same problem.
112
113
185 -* js/rebase-i-commit-cleanup-fix (2021-01-28) 1 commit
186 - (merged to 'next' on 2021-01-31 at 358f562e1f)
187 - + rebase -i: do leave commit message intact in fixup! chains
114 +* jv/upload-pack-filter-spec-quotefix (2021-02-02) 2 commits
115 + (merged to 'next' on 2021-02-03 at 2e34f74e3a)
116 + + t5544: clarify 'hook works with partial clone' test
117 + (merged to 'next' on 2021-01-31 at 789bf4154e)
118 + + upload-pack.c: fix filter spec quoting bug
119
189 - When "git rebase -i" processes "fixup" insn, there is no reason to
190 - clean up the commit log message, but we did the usual stripspace
191 - processing. This has been corrected.
120 + Fix in passing custom args from "git clone" to "upload-pack" on the
121 + other side.
122
123
194 -* jv/pack-objects-narrower-ref-iteration (2021-01-22) 1 commit
195 - (merged to 'next' on 2021-01-26 at 8a0d178c01)
196 - + builtin/pack-objects.c: avoid iterating all refs
124 +* tb/ci-run-cocci-with-18.04 (2021-02-08) 1 commit
125 + (merged to 'next' on 2021-02-09 at c50bc53527)
126 + + .github/workflows/main.yml: run static-analysis on bionic
127
198 - The "pack-objects" command needs to iterate over all the tags when
199 - automatic tag following is enabled, but it actually iterated over
200 - all refs and then discarded everything outside "refs/tags/"
201 - hierarchy, which was quite wasteful.
128 + The version of Ubuntu Linux used by default at GitHub Actions CI
129 + has been updated to one that lack coccinelle; until it gets fixed,
130 + work it around by sticking to the previous release (18.04).
131
132
204 -* pb/blame-funcname-range-userdiff (2021-01-30) 1 commit
205 - (merged to 'next' on 2021-01-31 at 107d10fe4f)
206 - + annotate-tests: quote variable expansions containing path names
133 +* tb/pack-revindex-on-disk (2021-01-28) 10 commits
134 + (merged to 'next' on 2021-02-01 at bd6a780213)
135 + + t5325: check both on-disk and in-memory reverse index
136 + + pack-revindex: ensure that on-disk reverse indexes are given precedence
137 + + t: support GIT_TEST_WRITE_REV_INDEX
138 + + t: prepare for GIT_TEST_WRITE_REV_INDEX
139 + + Documentation/config/pack.txt: advertise 'pack.writeReverseIndex'
140 + + builtin/pack-objects.c: respect 'pack.writeReverseIndex'
141 + + builtin/index-pack.c: write reverse indexes
142 + + builtin/index-pack.c: allow stripping arbitrary extensions
143 + + pack-write.c: prepare to write 'pack-*.rev' files
144 + + packfile: prepare for the existence of '*.rev' files
145 + (this branch is used by tb/reverse-midx.)
146
208 - Test fix.
147 + Introduce an on-disk file to record revindex for packdata, which
148 + traditionally was always created on the fly and only in-core.
149
150
211 -* pb/ci-matrix-wo-shortcut (2021-01-27) 1 commit
212 - (merged to 'next' on 2021-01-31 at 2384693758)
213 - + ci: do not cancel all jobs of a matrix if one fails
151 +* tb/precompose-prefix-too (2021-02-03) 1 commit
152 + (merged to 'next' on 2021-02-05 at 1dd43136b1)
153 + + MacOS: precompose_argv_prefix()
154
215 - Our setting of GitHub CI test jobs were a bit too eager to give up
216 - once there is even one failure found. Tweak the knob to allow
217 - other jobs keep running even when we see a failure, so that we can
218 - find more failures in a single run.
155 + When commands are started from a subdirectory, they may have to
156 + compare the path to the subdirectory (called prefix and found out
157 + from $(pwd)) with the tracked paths. On macOS, $(pwd) and
158 + readdir() yield decomposed path, while the tracked paths are
159 + usually normalized to the precomposed form, causing mismatch. This
160 + has been fixed by taking the same approach used to normalize the
161 + command line arguments.
162
163 +--------------------------------------------------
164 +[New Topics]
165
221 -* ph/use-delete-refs (2021-01-21) 1 commit
222 - (merged to 'next' on 2021-01-26 at e03486152e)
223 - + use delete_refs when deleting tags or branches
166 +* tb/reverse-midx (2021-02-10) 9 commits
167 + - pack-revindex: write multi-pack reverse indexes
168 + - pack-write.c: extract 'write_rev_file_order'
169 + - pack-revindex: read multi-pack reverse indexes
170 + - Documentation/technical: describe multi-pack reverse indexes
171 + - midx: make some functions non-static
172 + - midx: keep track of the checksum
173 + - midx: don't free midx_name early
174 + - midx: allow marking a pack as preferred
175 + - t/helper/test-read-midx.c: add '--show-objects'
176
225 - When removing many branches and tags, the code used to do so one
226 - ref at a time. There is another API it can use to delete multiple
227 - refs, and it makes quite a lot of performance difference when the
228 - refs are packed.
177 + An on-disk reverse-index to map the in-pack location of an object
178 + back to its object name across multiple packfiles is introduced.
179
180
231 -* rs/worktree-list-verbose (2021-01-30) 7 commits
232 - (merged to 'next' on 2021-02-01 at b57a6ce4c6)
233 - + worktree: teach `list` verbose mode
234 - + worktree: teach `list` to annotate prunable worktree
235 - + worktree: teach `list --porcelain` to annotate locked worktree
236 - + t2402: ensure locked worktree is properly cleaned up
237 - + worktree: teach worktree_lock_reason() to gently handle main worktree
238 - + worktree: teach worktree to lazy-load "prunable" reason
239 - + worktree: libify should_prune_worktree()
181 +* ab/detox-gettext-tests (2021-02-10) 4 commits
182 + - tests: remove most uses of test_i18ncmp
183 + - tests: remove last uses of C_LOCALE_OUTPUT
184 + - tests: remove most uses of C_LOCALE_OUTPUT
185 + - tests: remove last uses of GIT_TEST_GETTEXT_POISON=false
186
241 - `git worktree list` now annotates worktrees as prunable, shows
242 - locked and prunable attributes in --porcelain mode, and gained
243 - a --verbose option.
244 - cf. <CAPig+cTt-TyOR8kc6YvBVLpf-bgFdJ+FVYA2NvG_Vvn7tMbBkQ@mail.gmail.com>
187 + Removal of GIT_TEST_GETTEXT_POISON continues.
188
189 + Will merge to 'next'.
190
247 -* sg/t7800-difftool-robustify (2021-01-09) 1 commit
248 - (merged to 'next' on 2021-01-31 at fb72af8200)
249 - + t7800-difftool: don't accidentally match tmp dirs
250 -
251 - Test fix.
191
192 +* ab/diff-deferred-free (2021-02-11) 2 commits
193 + (merged to 'next' on 2021-02-12 at 5e24106122)
194 + + diff: plug memory leak from regcomp() on {log,diff} -I
195 + + diff: add an API for deferred freeing
196
254 -* sg/test-stress-jobs (2021-01-26) 1 commit
255 - (merged to 'next' on 2021-02-01 at 0b7aae84e3)
256 - + test-lib: prevent '--stress-jobs=X' from being ignored
197 + A small memleak in "diff -I<regexp>" has been corrected.
198
258 - Test framework fix.
259 -
260 -
261 -* so/log-diff-merge (2020-12-21) 32 commits
262 - (merged to 'next' on 2021-01-25 at 63977ef287)
263 - + t4013: add tests for --diff-merges=first-parent
264 - + doc/git-show: include --diff-merges description
265 - + doc/rev-list-options: document --first-parent changes merges format
266 - + doc/diff-generate-patch: mention new --diff-merges option
267 - + doc/git-log: describe new --diff-merges options
268 - + diff-merges: add '--diff-merges=1' as synonym for 'first-parent'
269 - + diff-merges: add old mnemonic counterparts to --diff-merges
270 - + diff-merges: let new options enable diff without -p
271 - + diff-merges: do not imply -p for new options
272 - + diff-merges: implement new values for --diff-merges
273 - + diff-merges: make -m/-c/--cc explicitly mutually exclusive
274 - + diff-merges: refactor opt settings into separate functions
275 - + diff-merges: get rid of now empty diff_merges_init_revs()
276 - + diff-merges: group diff-merge flags next to each other inside 'rev_info'
277 - + diff-merges: split 'ignore_merges' field
278 - + diff-merges: fix -m to properly override -c/--cc
279 - + t4013: add tests for -m failing to override -c/--cc
280 - + t4013: support test_expect_failure through ':failure' magic
281 - + diff-merges: revise revs->diff flag handling
282 - + diff-merges: handle imply -p on -c/--cc logic for log.c
283 - + diff-merges: introduce revs->first_parent_merges flag
284 - + diff-merges: new function diff_merges_set_dense_combined_if_unset()
285 - + diff-merges: new function diff_merges_suppress()
286 - + diff-merges: re-arrange functions to match the order they are called in
287 - + diff-merges: rename diff_merges_default_to_enable() to match semantics
288 - + diff-merges: move checks for first_parent_only out of the module
289 - + diff-merges: rename all functions to have common prefix
290 - + revision: move diff merges functions to its own diff-merges.c
291 - + revision: provide implementation for diff merges tweaks
292 - + revision: factor out initialization of diff-merge related settings
293 - + revision: factor out setup of diff-merge related settings
294 - + revision: factor out parsing of diff-merge related options
295 -
296 - "git log" learned a new "--diff-merges=<how>" option.
297 -
298 -
299 -* tb/ls-refs-optim (2021-01-22) 3 commits
300 - (merged to 'next' on 2021-01-26 at 09edbf7d9a)
301 - + ls-refs.c: traverse prefixes of disjoint "ref-prefix" sets
302 - + ls-refs.c: initialize 'prefixes' before using it
303 - + refs: expose 'for_each_fullref_in_prefixes'
304 -
305 - The ls-refs protocol operation has been optimized to narrow the
306 - sub-hierarchy of refs/ it walks to produce response.
307 -
308 -
309 -* zh/ls-files-deduplicate (2021-01-23) 3 commits
310 - (merged to 'next' on 2021-01-26 at af7522d2cf)
311 - + ls-files.c: add --deduplicate option
312 - + ls_files.c: consolidate two for loops into one
313 - + ls_files.c: bugfix for --deleted and --modified
314 -
315 - "git ls-files" can and does show multiple entries when the index is
316 - unmerged, which is a source for confusion unless -s/-u option is in
317 - use. A new option --deduplicate has been introduced.
199 + Will merge to 'master'.
200
319 ---------------------------------------------------
320 -[New Topics]
201
322 -* js/range-diff-one-side-only (2021-02-06) 6 commits
323 - (merged to 'next' on 2021-02-08 at 8c35ed8523)
324 - + range-diff: offer --left-only/--right-only options
325 - + range-diff: move the diffopt initialization down one layer
326 - + range-diff: combine all options in a single data structure
327 - + range-diff: simplify code spawning `git log`
328 - + range-diff: libify the read_patches() function again
329 - + range-diff: avoid leaking memory in two error code paths
202 +* ak/config-bad-bool-error (2021-02-11) 1 commit
203 + (merged to 'next' on 2021-02-12 at 76784be663)
204 + + config: improve error message for boolean config
205
331 - The "git range-diff" command learned "--(left|right)-only" option
332 - to show only one side of the compared range.
206 + The error message given when a configuration variable that is
207 + expected to have a boolean value has been improved.
208
209 Will merge to 'master'.
210
211
337 -* cm/rebase-i-updates (2021-02-10) 11 commits
338 - - doc/rebase -i: fix typo in the documentation of 'fixup' command
339 - - t/t3437: fixup the test 'multiple fixup -c opens editor once'
340 - - t/t3437: use named commits in the tests
341 - - t/t3437: simplify and document the test helpers
342 - - t/t3437: check the author date of fixed up commit
343 - - t/t3437: remove the dependency of 'expected-message' file from tests
344 - - t/t3437: fixup here-docs in the 'setup' test
345 - - t/lib-rebase: update the documentation of FAKE_LINES
346 - - rebase -i: clarify and fix 'fixup -c' rebase-todo help
347 - - sequencer: rename a few functions
348 - - sequencer: fixup the datatype of the 'flag' argument
349 - (this branch uses cm/rebase-i.)
212 +* jc/diffcore-rotate (2021-02-16) 1 commit
213 + - diff: --{rotate,skip}-to=<path>
214
351 - Follow-up fixes to "cm/rebase-i" topic.
215 + "git {diff,log} --{skip,rotate}-to=<path>" allows the user to
216 + discard diff output for early paths or move them to the end of the
217 + output.
218
353 - Will merge to 'next' after waiting for a few more days for comments.
219 + Will merge to 'next'.
220
221
356 -* cw/pack-vs-bigfilethreashold (2021-02-09) 2 commits
357 - - fixup! doc: mention bigFileThreshold for packing
358 - - doc: mention bigFileThreshold for packing
222 +* js/commit-graph-warning (2021-02-11) 1 commit
223 + (merged to 'next' on 2021-02-12 at e9faad550a)
224 + + commit-graph: when incompatible with graphs, indicate why
225
360 - Doc update.
226 + When certain features (e.g. grafts) used in the repository are
227 + incompatible with the use of the commit-graph, we used to silently
228 + turned commit-graph off; we now tell the user what we are doing.
229
362 - Expecting a reroll.
363 - cf. <F63929A8-7BC9-43A7-9E7B-118433F62588@gmx.ch>
230 + Will merge to 'master'.
231
232
366 -* ds/maintenance-pack-refs (2021-02-09) 2 commits
367 - - maintenance: incremental strategy runs pack-refs weekly
368 - - maintenance: add pack-refs task
233 +* js/reflog-expire-stale-fix (2021-02-11) 1 commit
234 + (merged to 'next' on 2021-02-12 at 899034efca)
235 + + reflog expire --stale-fix: be generous about missing objects
236
370 - "git maintenance" tool learned a new "pack-refs" maintenance task.
237 + "git reflog expire --stale-fix" can be used to repair the reflog by
238 + removing entries that refer to objects that have been pruned away,
239 + but was not careful to tolerate missing objects.
240
372 - Will merge to 'next' after waiting for a few more days for comments.
241 + Will merge to 'master'.
242
243
244 +* mz/doc-notes-are-not-anchors (2021-02-10) 1 commit
245 + - docs: clarify that refs/notes/ do not keep the attached objects alive
246
376 -* jk/mailmap-only-at-root (2021-02-10) 1 commit
377 - - mailmap: only look for .mailmap in work tree
378 -
379 - The .mailmap is documented to be read only from the root level of a
380 - working tree, but a stray file in a bare repository also was read
381 - by accident, which has been corrected.
247 + Objects that lost references can be pruned away, even when they
248 + have notes attached to it (and these notes will become dangling,
249 + which in turn can be pruned with "git notes prune"). This has been
250 + clarified in the documentation.
251
252 Will merge to 'next'.
253
254
386 -* jk/rev-list-disk-usage (2021-02-09) 3 commits
387 - - fixup! rev-list: add --disk-usage option for calculating disk usage
388 - - rev-list: add --disk-usage option for calculating disk usage
389 - - t: add --no-tag option to test_commit
255 +* en/diffcore-rename (2021-02-15) 8 commits
256 + - merge-ort: call diffcore_rename() directly
257 + - gitdiffcore doc: mention new preliminary step for rename detection
258 + - diffcore-rename: guide inexact rename detection based on basenames
259 + - diffcore-rename: complete find_basename_matches()
260 + - diffcore-rename: compute basenames of source and dest candidates
261 + - t4001: add a test comparing basename similarity and content similarity
262 + - diffcore-rename: filter rename_src list when possible
263 + - diffcore-rename: no point trying to find a match better than exact
264
391 - "git rev-list" command learned "--disk-usage" option.
265 + Performance optimization work on the rename detection continues.
266
267 + Will merge to 'next'.
268
394 -* jt/trace2-BUG (2021-02-09) 1 commit
395 - (merged to 'next' on 2021-02-09 at 94911ad676)
396 - + usage: trace2 BUG() invocations
269
398 - Even though invocations of "die()" were logged to the trace2
399 - system, "BUG()"s were not, which has been corrected.
270 +* ab/pickaxe-pcre2 (2021-02-16) 24 commits
271 + - pickaxe -G: don't special-case create/delete
272 + - pickaxe -G: terminate early on matching lines
273 + - xdiff-interface: support early exit in xdiff_outf()
274 + - xdiff-interface: allow early return from xdiff_emit_{line,hunk}_fn
275 + - pickaxe -S: slightly optimize contains()
276 + - pickaxe: rename variables in has_changes() for brevity
277 + - pickaxe -S: support content with NULs under --pickaxe-regex
278 + - pickaxe: assert that we must have a needle under -G or -S
279 + - pickaxe: refactor function selection in diffcore-pickaxe()
280 + - perf: add performance test for pickaxe
281 + - pickaxe/style: consolidate declarations and assignments
282 + - diff.h: move pickaxe fields together again
283 + - pickaxe: die when --find-object and --pickaxe-all are combined
284 + - pickaxe: die when -G and --pickaxe-regex are combined
285 + - pickaxe tests: test for -G, -S and --find-object incompatibility
286 + - pickaxe tests: add test for "log -S" not being a regex
287 + - pickaxe tests: add test for diffgrep_consume() internals
288 + - pickaxe tests: refactor to use test_commit --append --printf
289 + - test-lib functions: add --printf option to test_commit
290 + - test-lib-functions: reword "test_commit --append" docs
291 + - test-lib-functions: document and test test_commit --no-tag
292 + - grep/pcre2 tests: reword comments referring to kwset
293 + - Merge branch 'jk/rev-list-disk-usage' into ab/pickaxe-pcre2
294 + - Merge branch 'ab/test-lib' into ab/pickaxe-pcre2
295 + (this branch uses ab/test-lib and jk/rev-list-disk-usage.)
296 +
297 +
298 +* cm/rebase-i-fixup-amend-reword (2021-02-17) 6 commits
299 + - doc/git-commit: add documentation for fixup[amend|reword] options
300 + - t3437: use --fixup with options to create amend! commit
301 + - t7500: add tests for --fixup[amend|reword] options
302 + - commit: add a reword suboption to --fixup
303 + - commit: add amend suboption to --fixup to create amend! commit
304 + - sequencer: export subject_length()
305 + (this branch uses cm/rebase-i and cm/rebase-i-updates.)
306 +
307 + "git commit --fixup" learns to optionally create "amend!" and
308 + "reword!" commits, that use the log message in "fixup" commit
309 + as the message of the resulting commit.
310 +
311 +
312 +* dl/stash-show-untracked (2021-02-16) 4 commits
313 + - SQUASH???
314 + - SQUASH???
315 + - stash show: learn stash.showIncludeUntracked
316 + - stash show: teach --include-untracked and --only-untracked
317 + (this branch uses dl/stash-cleanup.)
318
401 - Will merge to 'master'.
319 + "git stash show" learned to optionally show untracked part of the
320 + stash.
321
322
404 -* mt/checkout-index-corner-cases (2021-02-09) 2 commits
405 - - checkout-index: omit entries with no tempname from --temp output
406 - - write_entry(): fix misuses of `path` in error messages
323 +* es/config-hooks-part-1 (2021-02-16) 17 commits
324 + - hooks: allow callers to capture output
325 + - run-command: allow capturing of collated output
326 + - hook: provide stdin by string_list or callback
327 + - run-command: add stdin callback for parallelization
328 + - hook: allow specifying working directory for hooks
329 + - hook: allow parallel hook execution
330 + - run-command: allow stdin for run_processes_parallel
331 + - hook: support passing stdin to hooks
332 + - hook: replace find_hook() with hook_exists()
333 + - hook: add 'run' subcommand
334 + - parse-options: parse into strvec
335 + - hook: implement hookcmd.<name>.skip
336 + - hook: respect hook.runHookDir
337 + - hook: include hookdir hook in list
338 + - hook: add list command
339 + - hook: scaffolding for git-hook subcommand
340 + - doc: propose hooks managed by the config
341 + (this branch is used by es/config-hooks.)
342
408 - The error codepath around the "--temp/--prefix" feature of "git
409 - checkout-index" has been improved.
343 + A way to specify hooks in the configuration files is introduced.
344
411 - Expecting additional tests.
345 + Will merge to 'next'.
346
347
414 -* mt/grep-cached-untracked (2021-02-09) 1 commit
415 - - grep: error out if --untracked is used with --cached
348 +* jh/fsmonitor-prework (2021-02-16) 11 commits
349 + - fsmonitor: refactor initialization of fsmonitor_last_update token
350 + - fsmonitor: allow all entries for a folder to be invalidated
351 + - fsmonitor: log FSMN token when reading and writing the index
352 + - fsmonitor: log invocation of FSMonitor hook to trace2
353 + - read-cache: log the number of scanned files to trace2
354 + - read-cache: log the number of lstat calls to trace2
355 + - preload-index: log the number of lstat calls to trace2
356 + - p7519: add trace logging during perf test
357 + - p7519: move watchman cleanup earlier in the test
358 + - p7519: fix watchman watch-list test on Windows
359 + - p7519: do not rely on "xargs -d" in test
360
417 - "git grep --untracked" is meant to be "let's ALSO find in these
418 - files on the filesystem" when looking for matches in the working
419 - tree files, and does not make any sense if the primary search is
420 - done against the index, or the tree objects. The "--cached" and
421 - "--untracked" options have been marked as mutually incompatible.
361 + Preliminary changes to fsmonitor integration.
362
363 Will merge to 'next'.
364
365
426 -* tb/ci-run-cocci-with-18.04 (2021-02-08) 1 commit
427 - (merged to 'next' on 2021-02-09 at c50bc53527)
428 - + .github/workflows/main.yml: run static-analysis on bionic
366 +* jk/open-dotgitx-with-nofollow (2021-02-16) 6 commits
367 + - mailmap: do not respect symlinks for in-tree .mailmap
368 + - exclude: do not respect symlinks for in-tree .gitignore
369 + - attr: do not respect symlinks for in-tree .gitattributes
370 + - exclude: add flags parameter to add_patterns()
371 + - attr: convert "macro_ok" into a flags field
372 + - add open_nofollow() helper
373
430 - The version of Ubuntu Linux used by default at GitHub Actions CI
431 - has been updated to one that lack coccinelle; until it gets fixed,
432 - work it around by sticking to the previous release (18.04).
374 + It does not make sense to make ".gitattributes", ".gitignore" and
375 + ".mailmap" symlinks, as they are supposed to be usable from the
376 + object store (think: bare repositories where HEAD:.mailmap etc. are
377 + used). When these files are symbolic links, we used to read the
378 + contents of the files pointed by them by mistake, which has been
379 + corrected.
380
434 - Will merge to 'master'.
381
382 +* js/doc-proto-v2-response-end (2021-02-17) 1 commit
383 + - doc: fix naming of response-end-pkt
384
437 -* ab/test-lib (2021-02-10) 12 commits
438 - - test-lib-functions: split out {debug,path,text} helpers
439 - - test-lib-functions: assert correct parameter count
440 - - test-lib-functions: remove bug-inducing "diagnostics" helper param
441 - - test libs: rename "diff-lib" to "lib-diff"
442 - - t/.gitattributes: sort lines
443 - - test-lib-functions: move function to lib-bitmap.sh
444 - - test libs: rename gitweb-lib.sh to lib-gitweb.sh
445 - - test libs: rename bundle helper to "lib-bundle.sh"
446 - - test-lib-functions: remove generate_zero_bytes() wrapper
447 - - test-lib-functions: move test_set_index_version() to its user
448 - - test lib: change "error" to "BUG" as appropriate
449 - - test-lib: remove check_var_migration
385 + Docfix.
386
451 - Test framework clean-up.
387 + Will merge to 'next'.
388
389
454 -* dl/stash-cleanup (2021-02-09) 7 commits
455 - - stash: declare ref_stash as an array
456 - - t3905: use test_cmp() to check file contents
457 - - t3905: replace test -s with test_file_not_empty
458 - - t3905: remove nested git in command substitution
459 - - t3905: move all commands into test cases
460 - - t3905: remove spaces after redirect operators
461 - - git-stash.txt: be explicit about subcommand options
390 +* ma/doc-markup-fix (2021-02-17) 2 commits
391 + - gitmailmap.txt: fix rendering of e-mail addresses
392 + - rev-list-options.txt: fix rendering of bonus paragraph
393
463 - Documentation, code and test clean-up around "git stash".
394 + Docfix.
395
465 - Will merge to 'next' and to 'master' soonish.
466 - This is an early part of a topic that added a new feature to the
467 - command, but the implementation is expected to need a handful of
468 - iterations; I split the preparatory part up to fast-track it.
396 + Will merge to 'next'.
397
398
471 -* ew/rev-parse-since-test (2021-02-10) 1 commit
472 - - t1500: ensure current --since= behavior remains
399 +* rs/blame-optim (2021-02-17) 1 commit
400 + - blame: remove unnecessary use of get_commit_info()
401
474 - Test to make sure "git rev-parse one-thing one-thing" gives
475 - the same thing twice (when one-thing is --since=X).
402 + Optimization in "git blame"
403
404 Will merge to 'next'.
405
406
480 -* js/fsck-name-objects-fix (2021-02-10) 2 commits
481 - - fsck --name-objects: be more careful parsing generation numbers
482 - - t1450: robustify `remove_object()`
407 +* rs/pretty-describe (2021-02-17) 2 commits
408 + - pretty: add merge and exclude options to %(describe)
409 + - pretty: add %(describe)
410
484 - Fix "git fsck --name-objects" which apparently has not been used by
485 - anybody who is motivated enough to report breakage.
486 -
487 - Will merge to 'next'.
411 + "git log --format='...'" learned "%(describe)" placeholder.
412
413 --------------------------------------------------
414 [Stalled]
415
416 +* ab/make-cleanup (2021-02-01) 6 commits
417 + - Makefile: add {program,xdiff,test,git}-objs & objects targets
418 + - Makefile: split OBJECTS into OBJECTS and GIT_OBJS
419 + - Makefile: sort OBJECTS assignment for subsequent change
420 + - Makefile: split up long OBJECTS line
421 + - Makefile: guard against TEST_OBJS in the environment
422 + - Makefile: remove "all" on "$(FUZZ_OBJS)"
423 +
424 + Reorganize Makefile to allow building git.o and other essential
425 + objects without extra stuff needed only for testing.
426 +
427 + Expecting a reroll (or retraction)
428 + cf. <YBuZVfnc0ECuoKkK@coredump.intra.peff.net>
429 + cf. <xmqq1rdzjuaa.fsf@gitster.c.googlers.com>
430 +
431 +
432 * jk/symlinked-dotgitx-files (2020-10-23) 9 commits
433 - docs: document symlink restrictions for .git* files
434 - fsck: complain when .gitattributes or .gitignore is a symlink
@@ -573,7 +513,177 @@ Release tarballs are available at:
513 --------------------------------------------------
514 [Cooking]
515
576 -* sv/t7001-modernize (2021-02-09) 10 commits
516 +* js/range-diff-one-side-only (2021-02-06) 6 commits
517 + (merged to 'next' on 2021-02-08 at 8c35ed8523)
518 + + range-diff: offer --left-only/--right-only options
519 + + range-diff: move the diffopt initialization down one layer
520 + + range-diff: combine all options in a single data structure
521 + + range-diff: simplify code spawning `git log`
522 + + range-diff: libify the read_patches() function again
523 + + range-diff: avoid leaking memory in two error code paths
524 +
525 + The "git range-diff" command learned "--(left|right)-only" option
526 + to show only one side of the compared range.
527 +
528 + Will merge to 'master'.
529 +
530 +
531 +* cm/rebase-i-updates (2021-02-10) 11 commits
532 + (merged to 'next' on 2021-02-12 at e29227780b)
533 + + doc/rebase -i: fix typo in the documentation of 'fixup' command
534 + + t/t3437: fixup the test 'multiple fixup -c opens editor once'
535 + + t/t3437: use named commits in the tests
536 + + t/t3437: simplify and document the test helpers
537 + + t/t3437: check the author date of fixed up commit
538 + + t/t3437: remove the dependency of 'expected-message' file from tests
539 + + t/t3437: fixup here-docs in the 'setup' test
540 + + t/lib-rebase: update the documentation of FAKE_LINES
541 + + rebase -i: clarify and fix 'fixup -c' rebase-todo help
542 + + sequencer: rename a few functions
543 + + sequencer: fixup the datatype of the 'flag' argument
544 + (this branch is used by cm/rebase-i-fixup-amend-reword; uses cm/rebase-i.)
545 +
546 + Follow-up fixes to "cm/rebase-i" topic.
547 +
548 + Will merge to 'master', together with "cm/rebase-i".
549 +
550 +
551 +* cw/pack-vs-bigfilethreashold (2021-02-09) 2 commits
552 + - fixup! doc: mention bigFileThreshold for packing
553 + - doc: mention bigFileThreshold for packing
554 +
555 + Doc update.
556 +
557 + Expecting a reroll.
558 + cf. <F63929A8-7BC9-43A7-9E7B-118433F62588@gmx.ch>
559 +
560 +
561 +* ds/maintenance-pack-refs (2021-02-09) 2 commits
562 + (merged to 'next' on 2021-02-11 at 36f56bc9ec)
563 + + maintenance: incremental strategy runs pack-refs weekly
564 + + maintenance: add pack-refs task
565 +
566 + "git maintenance" tool learned a new "pack-refs" maintenance task.
567 +
568 + Will merge to 'master'.
569 +
570 +
571 +* jk/mailmap-only-at-root (2021-02-10) 1 commit
572 + (merged to 'next' on 2021-02-10 at fbd122fd6c)
573 + + mailmap: only look for .mailmap in work tree
574 +
575 + The .mailmap is documented to be read only from the root level of a
576 + working tree, but a stray file in a bare repository also was read
577 + by accident, which has been corrected.
578 +
579 + Will merge to 'master'.
580 +
581 +
582 +* jk/rev-list-disk-usage (2021-02-11) 2 commits
583 + (merged to 'next' on 2021-02-11 at 6fb701f287)
584 + + rev-list: add --disk-usage option for calculating disk usage
585 + + t: add --no-tag option to test_commit
586 + (this branch is used by ab/pickaxe-pcre2.)
587 +
588 + "git rev-list" command learned "--disk-usage" option.
589 +
590 + Will merge to 'master'.
591 +
592 +
593 +* jt/trace2-BUG (2021-02-09) 1 commit
594 + (merged to 'next' on 2021-02-09 at 94911ad676)
595 + + usage: trace2 BUG() invocations
596 +
597 + Even though invocations of "die()" were logged to the trace2
598 + system, "BUG()"s were not, which has been corrected.
599 +
600 + Will merge to 'master'.
601 +
602 +
603 +* mt/checkout-index-corner-cases (2021-02-16) 2 commits
604 + - checkout-index: omit entries with no tempname from --temp output
605 + - write_entry(): fix misuses of `path` in error messages
606 +
607 + The error codepath around the "--temp/--prefix" feature of "git
608 + checkout-index" has been improved.
609 +
610 + Will merge to 'next'.
611 +
612 +
613 +* mt/grep-cached-untracked (2021-02-09) 1 commit
614 + (merged to 'next' on 2021-02-10 at e1fca79104)
615 + + grep: error out if --untracked is used with --cached
616 +
617 + "git grep --untracked" is meant to be "let's ALSO find in these
618 + files on the filesystem" when looking for matches in the working
619 + tree files, and does not make any sense if the primary search is
620 + done against the index, or the tree objects. The "--cached" and
621 + "--untracked" options have been marked as mutually incompatible.
622 +
623 + Will merge to 'master'.
624 +
625 +
626 +* ab/test-lib (2021-02-12) 11 commits
627 + (merged to 'next' on 2021-02-12 at 666a0422dc)
628 + + test-lib-functions: assert correct parameter count
629 + + test-lib-functions: remove bug-inducing "diagnostics" helper param
630 + + test libs: rename "diff-lib" to "lib-diff"
631 + + t/.gitattributes: sort lines
632 + + test-lib-functions: move function to lib-bitmap.sh
633 + + test libs: rename gitweb-lib.sh to lib-gitweb.sh
634 + + test libs: rename bundle helper to "lib-bundle.sh"
635 + + test-lib-functions: remove generate_zero_bytes() wrapper
636 + + test-lib-functions: move test_set_index_version() to its user
637 + + test lib: change "error" to "BUG" as appropriate
638 + + test-lib: remove check_var_migration
639 + (this branch is used by ab/pickaxe-pcre2.)
640 +
641 + Test framework clean-up.
642 +
643 + Will merge to 'master'.
644 +
645 +
646 +* dl/stash-cleanup (2021-02-11) 7 commits
647 + (merged to 'next' on 2021-02-11 at ae1cde1380)
648 + + stash: declare ref_stash as an array
649 + + t3905: use test_cmp() to check file contents
650 + + t3905: replace test -s with test_file_not_empty
651 + + t3905: remove nested git in command substitution
652 + + t3905: move all commands into test cases
653 + + t3905: remove spaces after redirect operators
654 + + git-stash.txt: be explicit about subcommand options
655 + (this branch is used by dl/stash-show-untracked.)
656 +
657 + Documentation, code and test clean-up around "git stash".
658 +
659 + Will merge to 'master'.
660 + This is an early part of a topic that added a new feature to the
661 + command, but the implementation is expected to need a handful of
662 + iterations; I split the preparatory part up to fast-track it.
663 +
664 +
665 +* ew/rev-parse-since-test (2021-02-10) 1 commit
666 + (merged to 'next' on 2021-02-11 at 2490918be8)
667 + + t1500: ensure current --since= behavior remains
668 +
669 + Test to make sure "git rev-parse one-thing one-thing" gives
670 + the same thing twice (when one-thing is --since=X).
671 +
672 + Will merge to 'master'.
673 +
674 +
675 +* js/fsck-name-objects-fix (2021-02-10) 2 commits
676 + (merged to 'next' on 2021-02-10 at 79afd7ebdc)
677 + + fsck --name-objects: be more careful parsing generation numbers
678 + + t1450: robustify `remove_object()`
679 +
680 + Fix "git fsck --name-objects" which apparently has not been used by
681 + anybody who is motivated enough to report breakage.
682 +
683 + Will merge to 'master'.
684 +
685 +
686 +* sv/t7001-modernize (2021-02-11) 10 commits
687 - t7001: use `test` rather than `[`
688 - t7001: use here-docs instead of echo
689 - t7001: put each command on a separate line
@@ -587,6 +697,8 @@ Release tarballs are available at:
697
698 Test script modernization.
699
700 + Expecting the final version with corrected author attribution.
701 +
702
703 * mt/grep-sparse-checkout (2021-02-09) 1 commit
704 - grep: honor sparse-checkout on working tree searches
@@ -598,18 +710,6 @@ Release tarballs are available at:
710 cf. <CABPp-BFkACtF6LHkFJNt9dTOmwfQbf8ZO=BTrPYwPSmbqc9+hg@mail.gmail.com>
711
712
601 -* ab/make-cleanup (2021-02-01) 6 commits
602 - - Makefile: add {program,xdiff,test,git}-objs & objects targets
603 - - Makefile: split OBJECTS into OBJECTS and GIT_OBJS
604 - - Makefile: sort OBJECTS assignment for subsequent change
605 - - Makefile: split up long OBJECTS line
606 - - Makefile: guard against TEST_OBJS in the environment
607 - - Makefile: remove "all" on "$(FUZZ_OBJS)"
608 -
609 - Reorganize Makefile to allow building git.o and other essential
610 - objects without extra stuff needed only for testing.
611 -
612 -
713 * ds/commit-graph-genno-fix (2021-02-01) 6 commits
714 (merged to 'next' on 2021-02-03 at b3a9e11efb)
715 + commit-graph: prepare commit graph
@@ -623,63 +723,54 @@ Release tarballs are available at:
723 Fix incremental update of commit-graph file around corrected commit
724 date data.
725
626 - Will merge to 'master'.
726 + Will merge to 'master', together with "ak/corrected-commit-date".
727
728
629 -* jh/simple-ipc (2021-02-01) 13 commits
729 +* jh/simple-ipc (2021-02-17) 12 commits
730 + - t0052: add simple-ipc tests and t/helper/test-simple-ipc tool
731 - simple-ipc: add Unix domain socket implementation
631 - - unix-socket: do not call die in unix_stream_connect()
632 - - unix-socket: add no-chdir option to unix_stream_listen()
633 - - unix-socket: add options to unix_stream_listen()
732 + - unix-socket: create `unix_stream_server__listen_with_lock()`
733 + - unix-socket: disallow chdir() when creating unix domain sockets
734 + - unix-socket: add backlog size option to unix_stream_listen()
735 - unix-socket: elimiate static unix_stream_socket() helper function
635 - - simple-ipc: add t/helper/test-simple-ipc and t0052
736 - simple-ipc: add win32 implementation
737 - simple-ipc: design documentation for new IPC mechanism
638 - - pkt-line: accept additional options in read_packetized_to_strbuf()
738 + - pkt-line: add options argument to read_packetized_to_strbuf()
739 - pkt-line: (optionally) libify the packet readers
640 - - pkt-line: optionally skip the flush packet in write_packetized_from_buf()
641 - - pkt-line: add write_packetized_from_buf2() that takes scratch buffer
642 - - pkt-line: promote static buffer in packet_write_gently() to callers
740 + - pkt-line: do not issue flush packets in write_packetized_*()
741 + - pkt-line: eliminate the need for static buffer in packet_write_gently()
742
743 A simple IPC interface gets introduced to build services like
744 fsmonitor on top.
745
746
747 * ab/pager-exit-log (2021-02-01) 4 commits
649 - - pager: properly log pager exit code when signalled
650 - - run-command: add braces for "if" block in wait_or_whine()
651 - - pager: test for exit code with and without SIGPIPE
652 - - pager: refactor wait_for_pager() function
748 + (merged to 'next' on 2021-02-12 at ffe9f2d364)
749 + + pager: properly log pager exit code when signalled
750 + + run-command: add braces for "if" block in wait_or_whine()
751 + + pager: test for exit code with and without SIGPIPE
752 + + pager: refactor wait_for_pager() function
753
754 When a pager spawned by us exited, the trace log did not record its
755 exit status correctly, which has been corrected.
756
657 -
658 -* jk/complete-branch-force-delete (2021-02-03) 3 commits
659 - (merged to 'next' on 2021-02-03 at 6454bb89b5)
660 - + doc/git-branch: fix awkward wording for "-c"
661 - + completion: handle other variants of "branch -m"
662 - + completion: treat "branch -D" the same way as "branch -d"
663 -
664 - The command line completion (in contrib/) completed "git branch -d"
665 - with branch names, but "git branch -D" offered tagnames in addition,
666 - which has been corrected. "git branch -M" had the same problem.
667 -
757 Will merge to 'master'.
758 + The original "what should we do with SIGPIPE?" question remains, though.
759
760
761 * ta/hash-function-transition-doc (2021-02-05) 6 commits
672 - - doc: use https links
673 - - doc hash-function-transition: move rationale upwards
674 - - doc hash-function-transition: fix incomplete sentence
675 - - doc hash-function-transition: use upper case consistently
676 - - doc hash-function-transition: use SHA-1 and SHA-256 consistently
677 - - doc hash-function-transition: fix asciidoc output
762 + (merged to 'next' on 2021-02-12 at f620f3cfd3)
763 + + doc: use https links
764 + + doc hash-function-transition: move rationale upwards
765 + + doc hash-function-transition: fix incomplete sentence
766 + + doc hash-function-transition: use upper case consistently
767 + + doc hash-function-transition: use SHA-1 and SHA-256 consistently
768 + + doc hash-function-transition: fix asciidoc output
769
770 Update formatting and grammar of the hash transition plan
771 documentation, plus some updates.
772
682 - Will merge to 'next' after waiting for comments for a few days.
773 + Will merge to 'master'.
774
775
776 * ds/chunked-file-api (2021-02-05) 17 commits
@@ -706,7 +797,7 @@ Release tarballs are available at:
797 by the multi-pack-index and commit-graph files have been factored
798 out, to help codepaths for both filetypes to become more rebust.
799
709 - Will merge to 'next' after waiting for a few days.
800 + Getting there.
801
802
803 * ds/merge-base-independent (2021-02-01) 5 commits
@@ -721,10 +812,11 @@ Release tarballs are available at:
812 done and was kept from the very beginning of the feature.
813
814
724 -* hv/trailer-formatting (2021-02-06) 3 commits
815 +* hv/trailer-formatting (2021-02-15) 4 commits
816 - ref-filter: use pretty.c logic for trailers
817 - pretty.c: capture invalid trailer argument
818 - pretty.c: refactor trailer logic to `format_set_trailers_options()`
819 + - t6300: use function to test trailer options
820
821 The logic to handle "trailer" related placeholders in the
822 "--format=" mechanisms in the "log" family and "for-each-ref"
@@ -746,21 +838,6 @@ Release tarballs are available at:
838 Will merge to 'master'.
839
840
749 -* tb/precompose-prefix-too (2021-02-03) 1 commit
750 - (merged to 'next' on 2021-02-05 at 1dd43136b1)
751 - + MacOS: precompose_argv_prefix()
752 -
753 - When commands are started from a subdirectory, they may have to
754 - compare the path to the subdirectory (called prefix and found out
755 - from $(pwd)) with the tracked paths. On macOS, $(pwd) and
756 - readdir() yield decomposed path, while the tracked paths are
757 - usually normalized to the precomposed form, causing mismatch. This
758 - has been fixed by taking the same approach used to normalize the
759 - command line arguments.
760 -
761 - Will merge to 'master'.
762 -
763 -
841 * cm/rebase-i (2021-01-29) 9 commits
842 (merged to 'next' on 2021-02-01 at 4f9aa6cec3)
843 + doc/git-rebase: add documentation for fixup [-C|-c] options
@@ -772,11 +849,11 @@ Release tarballs are available at:
849 + rebase -i: comment out squash!/fixup! subjects from squash message
850 + sequencer: factor out code to append squash message
851 + rebase -i: only write fixup-message when it's needed
775 - (this branch is used by cm/rebase-i-updates.)
852 + (this branch is used by cm/rebase-i-fixup-amend-reword and cm/rebase-i-updates.)
853
854 "rebase -i" is getting cleaned up and also enhanced.
855
779 - Will cook in 'next' while waiting for the 'updates' topic.
856 + Will merge to 'master', together with "cm/rebase-i-updates".
857
858
859 * tb/geometric-repack (2021-02-03) 8 commits
@@ -820,12 +897,15 @@ Release tarballs are available at:
897
898
899 * jx/t5411-unique-filenames (2021-01-22) 2 commits
823 - - t5411: refactor check of refs using test_cmp_refs
824 - - t5411: use different out file to prevent overwriting
900 + (merged to 'next' on 2021-02-11 at bc5c67f70f)
901 + + t5411: refactor check of refs using test_cmp_refs
902 + + t5411: use different out file to prevent overwriting
903
904 Avoid individual tests in t5411 from getting affected by each other
905 by forcing them to use separate output files during the test.
906
907 + Will merge to 'master'.
908 +
909
910 * jt/transfer-fsck-across-packs (2021-01-25) 5 commits
911 - SQUASH??? test fix
@@ -844,112 +924,22 @@ Release tarballs are available at:
924 objects that must be inspected later and check them in the calling
925 "fetch-pack" process.
926
927 + Expecting an update.
928
848 -* jv/upload-pack-filter-spec-quotefix (2021-02-02) 2 commits
849 - (merged to 'next' on 2021-02-03 at 2e34f74e3a)
850 - + t5544: clarify 'hook works with partial clone' test
851 - (merged to 'next' on 2021-01-31 at 789bf4154e)
852 - + upload-pack.c: fix filter spec quoting bug
853 -
854 - Fix in passing custom args from "git clone" to "upload-pack" on the
855 - other side.
856 -
857 - Will merge to 'master'.
929
859 -
860 -* ab/tests-various-fixup (2021-01-23) 10 commits
861 - (merged to 'next' on 2021-02-01 at a604a6e217)
862 - + rm tests: actually test for SIGPIPE in SIGPIPE test
863 - + archive tests: use a cheaper "zipinfo -h" invocation to get header
864 - + upload-pack tests: avoid a non-zero "grep" exit status
865 - + git-svn tests: rewrite brittle tests to use "--[no-]merges".
866 - + git svn mergeinfo tests: refactor "test -z" to use test_must_be_empty
867 - + git svn mergeinfo tests: modernize redirection & quoting style
868 - + cache-tree tests: explicitly test HEAD and index differences
869 - + cache-tree tests: use a sub-shell with less indirection
870 - + cache-tree tests: remove unused $2 parameter
871 - + cache-tree tests: refactor for modern test style
872 -
873 - Various test updates.
874 -
875 - Will merge to 'master'.
876 -
877 -
878 -* en/ort-directory-rename (2021-01-20) 18 commits
879 - (merged to 'next' on 2021-02-01 at 5c1cdd13a1)
880 - + merge-ort: fix a directory rename detection bug
881 - + merge-ort: process_renames() now needs more defensiveness
882 - + merge-ort: implement apply_directory_rename_modifications()
883 - + merge-ort: add a new toplevel_dir field
884 - + merge-ort: implement handle_path_level_conflicts()
885 - + merge-ort: implement check_for_directory_rename()
886 - + merge-ort: implement apply_dir_rename() and check_dir_renamed()
887 - + merge-ort: implement compute_collisions()
888 - + merge-ort: modify collect_renames() for directory rename handling
889 - + merge-ort: implement handle_directory_level_conflicts()
890 - + merge-ort: implement compute_rename_counts()
891 - + merge-ort: copy get_renamed_dir_portion() from merge-recursive.c
892 - + merge-ort: add outline of get_provisional_directory_renames()
893 - + merge-ort: add outline for computing directory renames
894 - + merge-ort: collect which directories are removed in dirs_removed
895 - + merge-ort: initialize and free new directory rename data structures
896 - + merge-ort: add new data structures for directory rename detection
897 - + Merge branch 'en/merge-ort-3' into en/ort-directory-rename
898 - (this branch is used by en/merge-ort-perf.)
899 -
900 - ORT merge strategy learns to infer "renamed directory" while
901 - merging.
902 -
903 - Will merge to 'master'.
904 -
905 -
906 -* bc/signed-objects-with-both-hashes (2021-02-09) 7 commits
907 - - SQUASH???
908 - - gpg-interface: remove other signature headers before verifying
909 - - ref-filter: hoist signature parsing
910 - - commit: allow parsing arbitrary buffers with headers
911 - - gpg-interface: improve interface for parsing tags
912 - - commit: ignore additional signatures when parsing signed commits
913 - - ref-filter: switch some uses of unsigned long to size_t
930 +* bc/signed-objects-with-both-hashes (2021-02-10) 6 commits
931 + (merged to 'next' on 2021-02-11 at 391cc85104)
932 + + gpg-interface: remove other signature headers before verifying
933 + + ref-filter: hoist signature parsing
934 + + commit: allow parsing arbitrary buffers with headers
935 + + gpg-interface: improve interface for parsing tags
936 + + commit: ignore additional signatures when parsing signed commits
937 + + ref-filter: switch some uses of unsigned long to size_t
938
939 Signed commits and tags now allow verification of objects, whose
940 two object names (one in SHA-1, the other in SHA-256) are both
941 signed.
942
919 - Looking good.
920 -
921 -
922 -* tb/pack-revindex-on-disk (2021-01-28) 10 commits
923 - (merged to 'next' on 2021-02-01 at bd6a780213)
924 - + t5325: check both on-disk and in-memory reverse index
925 - + pack-revindex: ensure that on-disk reverse indexes are given precedence
926 - + t: support GIT_TEST_WRITE_REV_INDEX
927 - + t: prepare for GIT_TEST_WRITE_REV_INDEX
928 - + Documentation/config/pack.txt: advertise 'pack.writeReverseIndex'
929 - + builtin/pack-objects.c: respect 'pack.writeReverseIndex'
930 - + builtin/index-pack.c: write reverse indexes
931 - + builtin/index-pack.c: allow stripping arbitrary extensions
932 - + pack-write.c: prepare to write 'pack-*.rev' files
933 - + packfile: prepare for the existence of '*.rev' files
934 -
935 - Introduce an on-disk file to record revindex for packdata, which
936 - traditionally was always created on the fly and only in-core.
937 -
938 - Will merge to 'master'.
939 -
940 -
941 -* en/merge-ort-perf (2021-01-23) 6 commits
942 - (merged to 'next' on 2021-02-01 at ca3c07579b)
943 - + merge-ort: begin performance work; instrument with trace2_region_* calls
944 - + merge-ort: ignore the directory rename split conflict for now
945 - + merge-ort: fix massive leak
946 - + Merge branch 'en/ort-directory-rename' into en/merge-ort-perf
947 - + Merge branch 'en/ort-conflict-handling' into en/merge-ort-perf
948 - + Merge branch 'en/diffcore-rename' into en/merge-ort-perf
949 - (this branch uses en/ort-directory-rename.)
950 -
951 - The "ort" merge strategy.
952 -
943 Will merge to 'master'.
944
945
@@ -971,7 +961,7 @@ Release tarballs are available at:
961 The commit-graph learned to use corrected commit dates instead of
962 the generation number to help topological revision traversal.
963
974 - Will merge to 'master' together with ds/commit-graph-genno-fix.
964 + Will merge to 'master', together with "ds/commit-graph-genno-fix".
965
966
967 * mr/bisect-in-c-4 (2021-02-03) 7 commits
@@ -1019,7 +1009,7 @@ Release tarballs are available at:
1009 Looking good.
1010
1011
1022 -* es/config-hooks (2020-12-21) 34 commits
1012 +* es/config-hooks (2021-02-16) 17 commits
1013 - run-command: stop thinking about hooks
1014 - receive-pack: convert receive hooks to hook.h
1015 - post-update: use hook.h library
@@ -1037,23 +1027,7 @@ Release tarballs are available at:
1027 - merge: use config-based hooks for post-merge hook
1028 - am: convert applypatch hooks to use config
1029 - commit: use config-based hooks
1040 - - hooks: allow callers to capture output
1041 - - run-command: allow capturing of collated output
1042 - - hook: provide stdin by string_list or callback
1043 - - run-command: add stdin callback for parallelization
1044 - - hook: allow specifying working directory for hooks
1045 - - hook: allow parallel hook execution
1046 - - run-command: allow stdin for run_processes_parallel
1047 - - hook: support passing stdin to hooks
1048 - - hook: replace find_hook() with hook_exists()
1049 - - hook: add 'run' subcommand
1050 - - parse-options: parse into strvec
1051 - - hook: implement hookcmd.<name>.skip
1052 - - hook: respect hook.runHookDir
1053 - - hook: include hookdir hook in list
1054 - - hook: add list command
1055 - - hook: scaffolding for git-hook subcommand
1056 - - doc: propose hooks managed by the config
1030 + (this branch uses es/config-hooks-part-1.)
1031
1032 The "hooks defined in config" topic.
1033