What's cooking (2021/05 #02)

Junio C Hamano committed May 12, 2021 at 15:08 UTC 4e475162e431aada7a525bda5189519976104f07
1 file changed +520 -619
whats-cooking.txt
+520 -619
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (May 2021, #01; Thu, 6)
4 -X-master-at: 7e391989789db82983665667013a46eabc6fc570
5 -X-next-at: 1ce651569ca7e0a65f24af9c9548363d83d99866
3 +Subject: What's cooking in git.git (May 2021, #02; Wed, 12)
4 +X-master-at: df6c4f722c94641d5a9ea5496511f7043433abc2
5 +X-next-at: a26e31b5bc8c25bf0f70407da361b41b06153806
6
7 -What's cooking in git.git (May 2021, #01; Thu, 6)
7 +What's cooking in git.git (May 2021, #02; Wed, 12)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with '-' are
@@ -43,162 +43,45 @@ Release tarballs are available at:
43 --------------------------------------------------
44 [Graduated to 'master']
45
46 -* ab/pathname-encoding-doc (2021-04-20) 1 commit
47 - (merged to 'next' on 2021-04-20 at a90562c59f)
48 - + doc: clarify the filename encoding in git diff
49 -
50 - Clarify that pathnames recorded in Git trees are most often (but
51 - not necessarily) encoded in UTF-8.
52 -
53 -
54 -* ds/maintenance-prefetch-fix (2021-04-16) 4 commits
55 - (merged to 'next' on 2021-04-16 at 0a1818e235)
56 - + maintenance: respect remote.*.skipFetchAll
57 - + maintenance: use 'git fetch --prefetch'
58 - + fetch: add --prefetch option
59 - + maintenance: simplify prefetch logic
60 -
61 - The prefetch task in "git maintenance" assumed that "git fetch"
62 - from any remote would fetch all its local branches, which would
63 - fetch too much if the user is interested in only a subset of
64 - branches there.
65 -
66 -
67 -* ds/sparse-index (2021-03-30) 21 commits
68 - (merged to 'next' on 2021-04-07 at f1290a7929)
69 - + p2000: add sparse-index repos
70 - + sparse-index: loose integration with cache_tree_verify()
71 - + cache-tree: integrate with sparse directory entries
72 - + sparse-checkout: disable sparse-index
73 - + sparse-checkout: toggle sparse index from builtin
74 - + sparse-index: add index.sparse config option
75 - + sparse-index: check index conversion happens
76 - + unpack-trees: allow sparse directories
77 - + submodule: sparse-index should not collapse links
78 - + sparse-index: convert from full to sparse
79 - + sparse-index: add 'sdir' index extension
80 - + sparse-checkout: hold pattern list in index
81 - + unpack-trees: ensure full index
82 - + test-tool: don't force full index
83 - + test-read-cache: print cache entries with --table
84 - + t1092: compare sparse-checkout to sparse-index
85 - + sparse-index: implement ensure_full_index()
86 - + sparse-index: add guard to ensure full index
87 - + t1092: clean up script quoting
88 - + t/perf: add performance test for sparse operations
89 - + sparse-index: design doc and format update
90 - (this branch is used by ds/sparse-index-protections and ds/status-with-sparse-index.)
91 -
92 - Both in-core and on-disk index has been updated to optionally omit
93 - individual entries and replace them with the tree object that
94 - corresponds to the directory that contains them when the "cone"
95 - mode of sparse checkout is in use.
96 -
97 -
98 -* ds/sparse-index-protections (2021-04-14) 26 commits
99 - (merged to 'next' on 2021-04-17 at f1c40f89ba)
100 - + name-hash: use expand_to_path()
101 - + sparse-index: expand_to_path()
102 - + name-hash: don't add directories to name_hash
103 - + revision: ensure full index
104 - + resolve-undo: ensure full index
105 - + read-cache: ensure full index
106 - + pathspec: ensure full index
107 - + merge-recursive: ensure full index
108 - + entry: ensure full index
109 - + dir: ensure full index
110 - + update-index: ensure full index
111 - + stash: ensure full index
112 - + rm: ensure full index
113 - + merge-index: ensure full index
114 - + ls-files: ensure full index
115 - + grep: ensure full index
116 - + fsck: ensure full index
117 - + difftool: ensure full index
118 - + commit: ensure full index
119 - + checkout: ensure full index
120 - + checkout-index: ensure full index
121 - + add: ensure full index
122 - + cache: move ensure_full_index() to cache.h
123 - + read-cache: expand on query into sparse-directory entry
124 - + *: remove 'const' qualifier for struct index_state
125 - + sparse-index: API protection strategy
126 - (this branch is used by ds/status-with-sparse-index; uses ds/sparse-index.)
127 -
128 - Builds on top of the sparse-index infrastructure to mark operations
129 - that are not ready to mark with the sparse index, causing them to
130 - fall back on fully-populated index that they always have worked with.
131 -
132 -
133 -* hn/refs-trace-errno (2021-04-12) 1 commit
134 - (merged to 'next' on 2021-04-20 at 0816e49d22)
135 - + refs: print errno for read_raw_ref if GIT_TRACE_REFS is set
136 -
137 - Show errno in the trace output in the error codepath that calls
138 - read_raw_ref method.
139 -
140 -
141 -* jk/promisor-optim (2021-04-13) 3 commits
142 - (merged to 'next' on 2021-04-15 at 41f303ef9b)
143 - + revision: avoid parsing with --exclude-promisor-objects
144 - + lookup_unknown_object(): take a repository argument
145 - + is_promisor_object(): free tree buffer after parsing
146 - (this branch is used by rs/repack-without-loosening-promised-objects.)
147 -
148 - Handling of "promisor packs" that allows certain objects to be
149 - missing and lazily retrievable has been optimized (a bit).
150 -
151 -
152 -* mt/parallel-checkout-part-2 (2021-04-19) 5 commits
153 - (merged to 'next' on 2021-04-20 at d4779b8864)
154 - + parallel-checkout: add design documentation
155 - + parallel-checkout: support progress displaying
156 - + parallel-checkout: add configuration options
157 - + parallel-checkout: make it truly parallel
158 - + unpack-trees: add basic support for parallel checkout
159 - (this branch is used by mt/parallel-checkout-part-3.)
160 -
161 - The checkout machinery has been taught to perform the actual
162 - write-out of the files in parallel when able.
163 -
164 -
165 -* mt/pkt-write-errors (2021-04-15) 1 commit
166 - (merged to 'next' on 2021-04-16 at 4a82d89ff3)
167 - + pkt-line: do not report packet write errors twice
168 -
169 - When packet_write() fails, we gave an extra error message
170 - unnecessarily, which has been corrected.
171 -
172 -
173 -* ow/push-quiet-set-upstream (2021-04-15) 1 commit
174 - (merged to 'next' on 2021-04-16 at 9466d4ef38)
175 - + transport: respect verbosity when setting upstream
176 -
177 - "git push --quiet --set-upstream" was not quiet when setting the
178 - upstream branch configuration, which has been corrected.
179 -
180 -
181 -* so/log-diff-merge (2021-04-16) 5 commits
182 - (merged to 'next' on 2021-04-17 at 6c1eba8ee3)
183 - + doc/diff-options: document new --diff-merges features
184 - + diff-merges: introduce log.diffMerges config variable
185 - + diff-merges: adapt -m to enable default diff format
186 - + diff-merges: refactor set_diff_merges()
187 - + diff-merges: introduce --diff-merges=on
188 -
189 - "git log" learned "--diff-merges=<style>" option, with an
190 - associated configuration variable log.diffMerges.
191 -
192 -
193 -* vs/completion-with-set-u (2021-04-16) 1 commit
194 - (merged to 'next' on 2021-04-20 at 179933f961)
195 - + completion: avoid aliased command lookup error in nounset mode
196 -
197 - Effort to make the command line completion (in contrib/) safe with
198 - "set -u" continues.
46 +* ab/doc-lint (2021-04-10) 7 commits
47 + (merged to 'next' on 2021-04-30 at 285b9c4d64)
48 + + docs: fix linting issues due to incorrect relative section order
49 + + doc lint: lint relative section order
50 + + doc lint: lint and fix missing "GIT" end sections
51 + + doc lint: fix bugs in, simplify and improve lint script
52 + + doc lint: Perl "strict" and "warnings" in lint-gitlink.perl
53 + + Documentation/Makefile: make doc.dep dependencies a variable again
54 + + Documentation/Makefile: make $(wildcard howto/*.txt) a var
55 +
56 + Dev support.
57 +
58 +
59 +* ab/pretty-date-format-tests (2021-04-27) 2 commits
60 + (merged to 'next' on 2021-04-30 at bd2d680c23)
61 + + pretty tests: give --date/format tests a better description
62 + + pretty tests: simplify %aI/%cI date format test
63 + (this branch is used by zh/pretty-date-human.)
64 +
65 + Tweak a few tests for "log --format=..." that show timestamps in
66 + various formats.
67 +
68 +
69 +* ab/rebase-no-reschedule-failed-exec (2021-04-10) 2 commits
70 + (merged to 'next' on 2021-04-30 at 97d56cc674)
71 + + rebase: don't override --no-reschedule-failed-exec with config
72 + + rebase tests: camel-case rebase.rescheduleFailedExec consistently
73 +
74 + "git rebase --[no-]reschedule-failed-exec" did not work well with
75 + its configuration variable, which has been corrected.
76 +
77 +
78 +* ab/svn-tests-set-e-fix (2021-04-12) 2 commits
79 + (merged to 'next' on 2021-04-30 at 41f7907187)
80 + + svn tests: refactor away a "set -e" in test body
81 + + svn tests: remove legacy re-setup from init-clone test
82 +
83 + Test clean-up.
84
200 ---------------------------------------------------
201 -[New Topics]
85
86 * ad/cygwin-no-backslashes-in-paths (2021-04-30) 1 commit
87 (merged to 'next' on 2021-04-30 at e2cf03a8aa)
@@ -206,23 +89,72 @@ Release tarballs are available at:
89
90 Cygwin pathname handling fix.
91
209 - Will merge to 'master'.
92
93 +* ah/plugleaks (2021-04-28) 12 commits
94 + (merged to 'next' on 2021-04-30 at ccb3984029)
95 + + builtin/rm: avoid leaking pathspec and seen
96 + + builtin/rebase: release git_format_patch_opt too
97 + + builtin/for-each-ref: free filter and UNLEAK sorting.
98 + + mailinfo: also free strbuf lists when clearing mailinfo
99 + + builtin/checkout: clear pending objects after diffing
100 + + builtin/check-ignore: clear_pathspec before returning
101 + + builtin/bugreport: don't leak prefixed filename
102 + + branch: FREE_AND_NULL instead of NULL'ing real_ref
103 + + bloom: clear each bloom_key after use
104 + + ls-files: free max_prefix when done
105 + + wt-status: fix multiple small leaks
106 + + revision: free remainder of old commit list in limit_list
107
212 -* hn/refs-errno-cleanup (2021-04-30) 8 commits
213 - - refs: explicitly propagate errno from refs_read_raw_ref
214 - - refs: stop setting EINVAL and ELOOP in symref resolution
215 - - refs: clear errno return in refs_resolve_ref_unsafe()
216 - - refs: add failure_errno to refs_read_raw_ref() signature
217 - - refs: make errno output explicit for refs_resolve_ref_unsafe
218 - - refs: make errno output explicit for read_raw_ref_fn
219 - - refs/files-backend: stop setting errno from lock_ref_oid_basic
220 - - refs: remove EINVAL specification from the errno sideband in read_raw_ref_fn
108 + Plug various leans reported by LSAN.
109
222 - Futz with the way 'errno' is relied on in the refs API to carry the
223 - failure modes up the callchain.
110
225 - Waiting for reviews.
111 +* bc/hash-transition-interop-part-1 (2021-04-27) 13 commits
112 + (merged to 'next' on 2021-05-03 at 19dba33d17)
113 + + hex: print objects using the hash algorithm member
114 + + hex: default to the_hash_algo on zero algorithm value
115 + + builtin/pack-objects: avoid using struct object_id for pack hash
116 + + commit-graph: don't store file hashes as struct object_id
117 + + builtin/show-index: set the algorithm for object IDs
118 + + hash: provide per-algorithm null OIDs
119 + + hash: set, copy, and use algo field in struct object_id
120 + + builtin/pack-redundant: avoid casting buffers to struct object_id
121 + + Use the final_oid_fn to finalize hashing of object IDs
122 + + hash: add a function to finalize object IDs
123 + + http-push: set algorithm when reading object ID
124 + + Always use oidread to read into struct object_id
125 + + hash: add an algo member to struct object_id
126 +
127 + SHA-256 transition.
128 +
129 +
130 +* dl/complete-stash (2021-03-24) 3 commits
131 + (merged to 'next' on 2021-03-24 at ce573a99cc)
132 + + git-completion.bash: use __gitcomp_builtin() in _git_stash()
133 + + git-completion.bash: extract from else in _git_stash()
134 + + git-completion.bash: pass $__git_subcommand_idx from __git_main()
135 + (this branch is used by dl/complete-stash-updates.)
136 +
137 + The command line completion (in contrib/) for "git stash" has been
138 + updated.
139 +
140 +
141 +* dl/complete-stash-updates (2021-04-27) 4 commits
142 + (merged to 'next' on 2021-05-03 at 8901a9c431)
143 + + git-completion.bash: consolidate cases in _git_stash()
144 + + git-completion.bash: use $__git_cmd_idx in more places
145 + + git-completion.bash: rename to $__git_cmd_idx
146 + + git-completion.bash: separate some commands onto their own line
147 + (this branch uses dl/complete-stash.)
148 +
149 + Further update the command line completion (in contrib/) for "git
150 + stash".
151 +
152 +
153 +* hn/trace-reflog-expiry (2021-04-27) 1 commit
154 + (merged to 'next' on 2021-04-30 at 6bc9a79b61)
155 + + refs/debug: trace into reflog expiry too
156 +
157 + The reflog expiry machinery has been taught to emit trace events.
158
159
160 * jc/test-allows-local (2021-05-03) 1 commit
@@ -231,8 +163,6 @@ Release tarballs are available at:
163
164 Document that our test can use "local" keyword.
165
234 - Will merge to 'master'.
235 -
166
167 * jk/doc-format-patch-skips-merges (2021-05-03) 1 commit
168 (merged to 'next' on 2021-05-04 at cac68f7193)
@@ -240,8 +170,6 @@ Release tarballs are available at:
170
171 Document that "format-patch" skips merges.
172
243 - Will merge to 'master'.
244 -
173
174 * jk/pack-objects-negative-options-fix (2021-05-03) 5 commits
175 (merged to 'next' on 2021-05-04 at 4a61f68cf0)
@@ -255,7 +183,16 @@ Release tarballs are available at:
183 --window and --depth should not accept negative values; the input
184 validation has been tightened.
185
258 - Will merge to 'master'.
186 +
187 +* jk/prune-with-bitmap-fix (2021-04-29) 2 commits
188 + (merged to 'next' on 2021-04-30 at bede558f31)
189 + + prune: save reachable-from-recent objects with bitmaps
190 + + pack-bitmap: clean up include_check after use
191 +
192 + When the reachability bitmap is in effect, the "do not lose
193 + recently created objects and those that are reachable from them"
194 + safety to protect us from races were disabled by mistake, which has
195 + been corrected.
196
197
198 * jk/symlinked-dotgitx-cleanup (2021-05-04) 9 commits
@@ -273,7 +210,82 @@ Release tarballs are available at:
210 Various test and documentation updates about .gitsomething paths
211 that are symlinks.
212
276 - Will merge to 'master'.
213 +
214 +* js/merge-already-up-to-date-message-reword (2021-05-03) 2 commits
215 + (merged to 'next' on 2021-05-04 at b2e696ecd7)
216 + + merge: fix swapped "up to date" message components
217 + + merge(s): apply consistent punctuation to "up to date" messages
218 +
219 + A few variants of informational message "Already up-to-date" has
220 + been rephrased.
221 +
222 +
223 +* jz/apply-3way-first-message-fix (2021-04-29) 1 commit
224 + (merged to 'next' on 2021-04-30 at 829167e135)
225 + + apply: adjust messages to account for --3way changes
226 +
227 + When we swapped the order of --3way fallback, we forgot to adjust
228 + the message we give when the first method fails and the second
229 + method is attempted (which used to be "direct application failed
230 + hence we try 3way", now it is the other way around).
231 +
232 +
233 +* ll/clone-reject-shallow (2021-05-05) 1 commit
234 + (merged to 'next' on 2021-05-06 at 4a165ffc96)
235 + + t5601: mark protocol v2-only test
236 +
237 + Fix tests when forced to use v0 protocol.
238 +
239 +
240 +* ls/subtree (2021-04-28) 30 commits
241 + (merged to 'next' on 2021-05-03 at 12c5fe8677)
242 + + subtree: be stricter about validating flags
243 + + subtree: push: allow specifying a local rev other than HEAD
244 + + subtree: allow 'split' flags to be passed to 'push'
245 + + subtree: allow --squash to be used with --rejoin
246 + + subtree: give the docs a once-over
247 + + subtree: have $indent actually affect indentation
248 + + subtree: don't let debug and progress output clash
249 + + subtree: add comments and sanity checks
250 + + subtree: remove duplicate check
251 + + subtree: parse revs in individual cmd_ functions
252 + + subtree: use "^{commit}" instead of "^0"
253 + + subtree: don't fuss with PATH
254 + + subtree: use "$*" instead of "$@" as appropriate
255 + + subtree: use more explicit variable names for cmdline args
256 + + subtree: use git-sh-setup's `say`
257 + + subtree: use `git merge-base --is-ancestor`
258 + + subtree: drop support for git < 1.7
259 + + subtree: more consistent error propagation
260 + + subtree: don't have loose code outside of a function
261 + + subtree: t7900: add porcelain tests for 'pull' and 'push'
262 + + subtree: t7900: add a test for the -h flag
263 + + subtree: t7900: rename last_commit_message to last_commit_subject
264 + + subtree: t7900: fix 'verify one file change per commit'
265 + + subtree: t7900: delete some dead code
266 + + subtree: t7900: use 'test' for string equality
267 + + subtree: t7900: comment subtree_test_create_repo
268 + + subtree: t7900: use consistent formatting
269 + + subtree: t7900: use test-lib.sh's test_count
270 + + subtree: t7900: update for having the default branch name be 'main'
271 + + .gitignore: ignore 'git-subtree' as a build artifact
272 +
273 + "git subtree" updates.
274 +
275 +
276 +* mt/add-rm-in-sparse-checkout (2021-04-08) 7 commits
277 + (merged to 'next' on 2021-04-30 at ddead90eaf)
278 + + rm: honor sparse checkout patterns
279 + + add: warn when asked to update SKIP_WORKTREE entries
280 + + refresh_index(): add flag to ignore SKIP_WORKTREE entries
281 + + pathspec: allow to ignore SKIP_WORKTREE entries on index matching
282 + + add: make --chmod and --renormalize honor sparse checkouts
283 + + t3705: add tests for `git add` in sparse checkouts
284 + + add: include magic part of pathspec on --refresh error
285 + (this branch is used by ds/status-with-sparse-index.)
286 +
287 + "git add" and "git rm" learned not to touch those paths that are
288 + outside of sparse checkout.
289
290
291 * nc/submodule-update-quiet (2021-05-03) 1 commit
@@ -283,28 +295,69 @@ Release tarballs are available at:
295 "git submodule update --quiet" did not propagate the quiet option
296 down to underlying "git fetch", which has been corrected.
297
286 - Will merge to 'master'.
298
299 +* po/diff-patch-doc (2021-04-28) 1 commit
300 + (merged to 'next' on 2021-04-30 at 58af0f4b5e)
301 + + doc: point to diff attribute in patch format docs
302
289 -* en/ort-perf-batch-11 (2021-05-04) 13 commits
290 - - merge-ort, diffcore-rename: employ cached renames when possible
291 - - merge-ort: handle interactions of caching and rename/rename(1to1) cases
292 - - merge-ort: add helper functions for using cached renames
293 - - merge-ort: preserve cached renames for the appropriate side
294 - - merge-ort: avoid accidental API mis-use
295 - - merge-ort: add code to check for whether cached renames can be reused
296 - - merge-ort: populate caches of rename detection results
297 - - merge-ort: add data structures for in-memory caching of rename detection
298 - - t6429: testcases for remembering renames
299 - - fast-rebase: write conflict state to working tree, index, and HEAD
300 - - fast-rebase: change assert() to BUG()
301 - - Documentation/technical: describe remembering renames optimization
302 - - t6423: rename file within directory that other side renamed
303 + Doc update.
304
304 - Optimize out repeated rename detection in a sequence of mergy
305 - operations.
305
307 - Waiting for reviews.
306 +* ps/config-env-option-with-separate-value (2021-04-30) 2 commits
307 + (merged to 'next' on 2021-04-30 at 46fbcd08c1)
308 + + git: support separate arg for `--config-env`'s value
309 + + git.txt: fix synopsis of `--config-env` missing the equals sign
310 +
311 + "git --config-env var=val cmd" weren't accepted (only
312 + --config-env=var=val was).
313 +
314 +
315 +* ps/config-global-override (2021-04-27) 4 commits
316 + (merged to 'next' on 2021-04-30 at 5ce435d98f)
317 + + t1300: fix unset of GIT_CONFIG_NOSYSTEM leaking into subsequent tests
318 + (merged to 'next' on 2021-04-20 at 82578c696d)
319 + + config: allow overriding of global and system configuration
320 + + config: unify code paths to get global config paths
321 + + config: rename `git_etc_config()`
322 +
323 + Replace GIT_CONFIG_NOSYSTEM mechanism to decline from reading the
324 + system-wide configuration file with GIT_CONFIG_SYSTEM that lets
325 + users specify from which file to read the system-wide configuration
326 + (setting it to an empty file would essentially be the same as
327 + setting NOSYSTEM), and introduce GIT_CONFIG_GLOBAL to override the
328 + per-user configuration in $HOME/.gitconfig.
329 +
330 +
331 +* ps/rev-list-object-type-filter (2021-04-19) 8 commits
332 + (merged to 'next' on 2021-04-30 at fa0ceacde4)
333 + + rev-list: allow filtering of provided items
334 + + pack-bitmap: implement combined filter
335 + + pack-bitmap: implement object type filter
336 + + list-objects: implement object type filter
337 + + list-objects: support filtering by tag and commit
338 + + list-objects: move tag processing into its own function
339 + + revision: mark commit parents as NOT_USER_GIVEN
340 + + uploadpack.txt: document implication of `uploadpackfilter.allow`
341 +
342 + "git rev-list" learns the "--filter=object:type=<type>" option,
343 + which can be used to exclude objects of the given kind from the
344 + packfile generated by pack-objects.
345 +
346 +
347 +* rj/bisect-skip-honor-terms (2021-04-30) 1 commit
348 + (merged to 'next' on 2021-05-04 at f7c11bba06)
349 + + bisect--helper: use BISECT_TERMS in 'bisect skip' command
350 +
351 + "git bisect skip" when custom words are used for new/old did not
352 + work, which has been corrected.
353 +
354 +
355 +* rs/repack-without-loosening-promised-objects (2021-04-28) 1 commit
356 + (merged to 'next' on 2021-05-03 at 6681b49209)
357 + + repack: avoid loosening promisor objects in partial clones
358 +
359 + "git repack -A -d" in a partial clone unnecessarily loosened
360 + objects in promisor pack.
361
362
363 * si/zsh-complete-comment-fix (2021-05-04) 1 commit
@@ -313,109 +366,195 @@ Release tarballs are available at:
366
367 Portability fix for command line completion script (in contrib/).
368
369 +
370 +* zh/format-ref-array-optim (2021-04-20) 2 commits
371 + (merged to 'next' on 2021-04-30 at b6c835cc51)
372 + + ref-filter: reuse output buffer
373 + + ref-filter: get rid of show_ref_array_item
374 +
375 + "git (branch|tag) --format=..." has been micro-optimized.
376 +
377 +
378 +* zh/pretty-date-human (2021-04-27) 1 commit
379 + (merged to 'next' on 2021-04-30 at 2320ad8fb0)
380 + + pretty: provide human date format
381 + (this branch uses ab/pretty-date-format-tests.)
382 +
383 + "git log --format=..." placeholders learned %ah/%ch placeholders to
384 + request the --date=human output.
385 +
386 +
387 +* zh/trailer-cmd (2021-05-04) 2 commits
388 + (merged to 'next' on 2021-05-04 at fb677877f7)
389 + + trailer: add new .cmd config option
390 + + docs: correct descript of trailer.<token>.command
391 +
392 + The way the command line specified by the trailer.<token>.command
393 + configuration variable receives the end-user supplied value was
394 + both error prone and misleading. An alternative to achieve the
395 + same goal in a safer and more intuitive way has been added, as
396 + the trailer.<token>.cmd configuration variable, to replace it.
397 +
398 +--------------------------------------------------
399 +[New Topics]
400 +
401 +* mt/clean-clean (2021-05-07) 1 commit
402 + (merged to 'next' on 2021-05-07 at 51e40b7ddd)
403 + + clean: remove unnecessary variable
404 +
405 + Code clean-up.
406 +
407 + Will merge to 'master'.
408 +
409 +
410 +* ah/merge-ort-i18n (2021-05-11) 1 commit
411 + (merged to 'next' on 2021-05-12 at bda497af01)
412 + + merge-ort: split "distinct types" message into two translatable messages
413 +
414 + An i18n fix.
415 +
416 Will merge to 'master'.
417
418
319 -* dd/mailinfo-quoted-cr (2021-05-05) 5 commits
320 - - am: learn to process quoted lines that ends with CRLF
321 - - mailinfo: strip quoted CR on users' wish
322 - - mailinfo: skip quoted CR on user's wish
323 - - mailinfo: warn if CR found in base64/quoted-printable email
324 - - mailinfo: avoid magic number in option parsing
419 +* en/dir-traversal (2021-05-12) 8 commits
420 + - dir: update stale description of treat_directory()
421 + - dir: traverse into untracked directories if they may have ignored subfiles
422 + - dir: avoid unnecessary traversal into ignored directory
423 + - t3001, t7300: add testcase showcasing missed directory traversal
424 + - t7300: add testcase showing unnecessary traversal into ignored directory
425 + - ls-files: error out on -i unless -o or -c are specified
426 + - dir: report number of visited directories and paths with trace2
427 + - dir: convert trace calls to trace2 equivalents
428 +
429 + "git clean" and "git ls-files -i" had confusion around working on
430 + or showing ignored paths inside an ignored directory, which has
431 + been corrected.
432 +
433 + Will merge to 'next'?
434 +
435
326 - "git mailinfo" (hence "git am") learned the "--quoted-cr" option to
327 - control how lines ending with CRLF wrapped in base64 or qp are
328 - handled.
436 +* ma/typofixes (2021-05-10) 2 commits
437 + (merged to 'next' on 2021-05-12 at 99cc0d265e)
438 + + pretty-formats.txt: add missing space
439 + + git-repack.txt: remove spurious ")"
440
330 - Expecting a reroll.
331 - cf. <YJK/ieA7fzB+h01t@danh.dev>
441 + A couple of trivial typofixes.
442
443 + Will merge to 'master'.
444
334 -* ll/clone-reject-shallow (2021-05-05) 1 commit
335 - (merged to 'next' on 2021-05-06 at 4a165ffc96)
336 - + t5601: mark protocol v2-only test
445
338 - Fix tests when forced to use v0 protocol.
446 +* zh/ref-filter-push-remote-fix (2021-05-12) 1 commit
447 + - ref-filter: fix read invalid union member bug
448
340 - Will merge to 'master'.
449 + The handling of "%(push)" formatting element of "for-each-ref" and
450 + friends was broken when the same codepath started handling
451 + "%(push:<what>)", which has been corrected.
452
453 + Will merge to 'next'?
454
343 -* ab/perl-makefile-cleanup (2021-05-06) 4 commits
344 - - perl: use mock i18n functions under NO_GETTEXT=Y
345 - - Makefile: regenerate *.pm on NO_PERL_CPAN_FALLBACKS change
346 - - Makefile: regenerate perl/build/* if GIT-PERL-DEFINES changes
347 - - Makefile: don't re-define PERL_DEFINES
455
349 - Build procedure clean-up.
456 +* lh/maintenance-leakfix (2021-05-12) 1 commit
457 + - maintenance: fix two memory leaks
458
459 Will merge to 'next'.
460
461
354 -* ab/sparse-index-cleanup (2021-05-06) 1 commit
355 - - sparse-index.c: remove set_index_sparse_config()
462 +* so/log-m-implies-p (2021-05-11) 7 commits
463 + - diff-merges: let -m imply -p
464 + - diff-merges: rename "combined_imply_patch" to "merges_imply_patch"
465 + - stash list: stop passing "-m" to "git list"
466 + - git-svn: stop passing "-m" to "git rev-list"
467 + - t4062: diff-index -S can take its string as a separate arg
468 + - diff-merges: move specific diff-index "-m" handling to diff-index
469 + - t4013: add test for "git diff-index -m"
470
357 - Code clean-up.
471 + The "-m" option in "git log -m" that does not specify which format,
472 + if any, of diff is desired did not have any visible effect; it now
473 + implies some form of diff (by default "--patch") is produced.
474
359 - Will merge to 'next'.
475 + Expecting a reroll.
476 + cf. <871radwfl7.fsf@osv.gnss.ru>
477
478
362 -* ab/streaming-simplify (2021-05-06) 5 commits
363 - - streaming.c: move {open,close,read} from vtable to "struct git_istream"
364 - - streaming.c: stop passing around "object_info *" to open()
365 - - streaming.c: remove {open,close,read}_method_decl() macros
366 - - streaming.c: remove enum/function/vtbl indirection
367 - - streaming.c: avoid forward declarations
479 +* wc/packed-ref-removal-cleanup (2021-05-11) 1 commit
480 + - refs: cleanup directories when deleting packed ref
481
369 - Code clean-up.
482 + When "git update-ref -d" removes a ref that is packed, it left
483 + empty directories under $GIT_DIR/refs/ for
484
485 Will merge to 'next'.
486
487
374 -* ab/trace2-squelch-bcc-warning (2021-05-05) 1 commit
375 - - trace2: refactor to avoid gcc warning under -O3
488 +* ew/sha256-clone-remote-curl-fix (2021-05-12) 1 commit
489 + - remote-curl: fix clone on sha256 repos
490
377 - Workaround compiler warnings.
491 + "git clone" from SHA256 repository by Git built with SHA-1 as the
492 + default hash algorithm over the dumb HTTP protocol did not
493 + correctly set up the resulting repository, which has been corrected.
494
495 + Will merge to 'next'.
496
380 -* jk/p4-locate-branch-point-optim (2021-05-06) 2 commits
381 - - git-p4: speed up search for branch parent
382 - - git-p4: ensure complex branches are cloned correctly
497
384 - "git p4" learned to find branch points more efficiently.
498 +* bc/doc-asciidoctor-to-man-wo-xmlto (2021-05-12) 2 commits
499 + - doc: remove GNU_ROFF option
500 + - doc: add an option to have Asciidoctor build man pages directly
501
386 - Will merge to 'next'.
502 + An option to render the manual pages via AsciiDoctor bypassing
503 + xmlto has been introduced.
504
505 + Will merge to 'next'?
506
389 -* ow/no-dryrun-in-add-i (2021-05-06) 1 commit
390 - - add: die if both --dry-run and --interactive are given
507 +--------------------------------------------------
508 +[Stalled]
509
392 - "git add -i --dry-run" does not dry-run, which was surprising. The
393 - combination of options has taught to error out.
510 +* ag/merge-strategies-in-c (2021-03-17) 15 commits
511 + - sequencer: use the "octopus" merge strategy without forking
512 + - sequencer: use the "resolve" strategy without forking
513 + - merge: use the "octopus" strategy without forking
514 + - merge: use the "resolve" strategy without forking
515 + - merge-octopus: rewrite in C
516 + - merge-recursive: move better_branch_name() to merge.c
517 + - merge-resolve: rewrite in C
518 + - merge-one-file: rewrite in C
519 + - update-index: move add_cacheinfo() to read-cache.c
520 + - merge-index: add a new way to invoke `git-merge-one-file'
521 + - merge-index: drop the index
522 + - merge-index: libify merge_one_path() and merge_all()
523 + - t6060: add tests for removed files
524 + - t6060: modify multiple files to expose a possible issue with merge-index
525 + - t6407: modernise tests
526
395 - Will merge to 'next'.
527 + The resolve and octopus merge strategy backends have been rewritten
528 + in C.
529
530 + Expecting a (hopefully final) reroll.
531 + cf. <nycvar.QRO.7.76.6.2103241142220.50@tvgsbejvaqbjf.bet>
532
398 -* pw/patience-diff-clean-up (2021-05-05) 2 commits
399 - (merged to 'next' on 2021-05-06 at 1ce651569c)
400 - + patience diff: remove unused variable
401 - + patience diff: remove unnecessary string comparisons
533
403 - Code clean-up.
534 +* tv/p4-fallback-encoding (2021-04-30) 1 commit
535 + - git-p4: git-p4.fallbackEncoding to specify non UTF-8 charset
536
405 - Will merge to 'master'.
537 + "git p4" learns the fallbackEncoding configuration variable to
538 + safely accept changeset descriptions that aren't written in UTF-8.
539
540
408 -* pw/word-diff-zero-width-matches (2021-05-05) 1 commit
409 - (merged to 'next' on 2021-05-06 at e5653da568)
410 - + word diff: handle zero length matches
541 +* ds/status-with-sparse-index (2021-04-28) 10 commits
542 + - fsmonitor: test with sparse index
543 + - status: use sparse-index throughout
544 + - status: skip sparse-checkout percentage with sparse-index
545 + - dir.c: accept a directory as part of cone-mode patterns
546 + - unpack-trees: stop recursing into sparse directories
547 + - unpack-trees: compare sparse directories correctly
548 + - unpack-trees: preserve cache_bottom
549 + - t1092: add tests for status/add and sparse files
550 + - Merge branch 'mt/add-rm-in-sparse-checkout' into ds/status-with-sparse-index
551 + - Merge branch 'ds/sparse-index-protections' into ds/status-with-sparse-index
552
412 - The word-diff mode has been taught to work better with a word
413 - regexp that can match an empty string.
553 + "git status" codepath learned to work with sparsely populated index
554 + without hydrating it fully.
555
415 - Will merge to 'master'.
556 + What's the status of this thing?
557
417 ---------------------------------------------------
418 -[Stalled]
558
559 * jh/rfc-builtin-fsmonitor (2021-05-04) 24 commits
560 - fsmonitor: only enable it in non-bare repositories
@@ -447,31 +586,7 @@ Release tarballs are available at:
586 for our use.
587
588
450 -* ag/merge-strategies-in-c (2021-03-17) 15 commits
451 - - sequencer: use the "octopus" merge strategy without forking
452 - - sequencer: use the "resolve" strategy without forking
453 - - merge: use the "octopus" strategy without forking
454 - - merge: use the "resolve" strategy without forking
455 - - merge-octopus: rewrite in C
456 - - merge-recursive: move better_branch_name() to merge.c
457 - - merge-resolve: rewrite in C
458 - - merge-one-file: rewrite in C
459 - - update-index: move add_cacheinfo() to read-cache.c
460 - - merge-index: add a new way to invoke `git-merge-one-file'
461 - - merge-index: drop the index
462 - - merge-index: libify merge_one_path() and merge_all()
463 - - t6060: add tests for removed files
464 - - t6060: modify multiple files to expose a possible issue with merge-index
465 - - t6407: modernise tests
466 -
467 - The resolve and octopus merge strategy backends have been rewritten
468 - in C.
469 -
470 - Expecting a (hopefully final) reroll.
471 - cf. <nycvar.QRO.7.76.6.2103241142220.50@tvgsbejvaqbjf.bet>
472 -
473 -
474 -* ab/describe-tests-fix (2021-04-29) 5 commits
589 +* ab/describe-tests-fix (2021-05-11) 5 commits
590 - describe tests: support -C in "check_describe"
591 - describe tests: fix nested "test_expect_success" call
592 - describe tests: don't rely on err.actual from "check_describe"
@@ -484,7 +599,7 @@ Release tarballs are available at:
599 Waiting for the base topic to solidify.
600
601
487 -* ab/pickaxe-pcre2 (2021-04-29) 22 commits
602 +* ab/pickaxe-pcre2 (2021-05-11) 22 commits
603 - xdiff-interface: replace discard_hunk_line() with a flag
604 - xdiff users: use designated initializers for out_line
605 - pickaxe -G: don't special-case create/delete
@@ -558,227 +673,178 @@ Release tarballs are available at:
673 --------------------------------------------------
674 [Cooking]
675
561 -* dl/complete-stash-updates (2021-04-27) 4 commits
562 - (merged to 'next' on 2021-05-03 at 8901a9c431)
563 - + git-completion.bash: consolidate cases in _git_stash()
564 - + git-completion.bash: use $__git_cmd_idx in more places
565 - + git-completion.bash: rename to $__git_cmd_idx
566 - + git-completion.bash: separate some commands onto their own line
567 - (this branch uses dl/complete-stash.)
568 -
569 - Further update the command line completion (in contrib/) for "git
570 - stash".
571 -
572 - Will merge to 'master'.
573 -
574 -
575 -* ab/pretty-date-format-tests (2021-04-27) 2 commits
576 - (merged to 'next' on 2021-04-30 at bd2d680c23)
577 - + pretty tests: give --date/format tests a better description
578 - + pretty tests: simplify %aI/%cI date format test
579 - (this branch is used by zh/pretty-date-human.)
580 -
581 - Tweak a few tests for "log --format=..." that show timestamps in
582 - various formats.
583 -
584 - Will merge to 'master'.
585 -
586 -
587 -* ds/status-with-sparse-index (2021-04-28) 10 commits
588 - - fsmonitor: test with sparse index
589 - - status: use sparse-index throughout
590 - - status: skip sparse-checkout percentage with sparse-index
591 - - dir.c: accept a directory as part of cone-mode patterns
592 - - unpack-trees: stop recursing into sparse directories
593 - - unpack-trees: compare sparse directories correctly
594 - - unpack-trees: preserve cache_bottom
595 - - t1092: add tests for status/add and sparse files
596 - - Merge branch 'mt/add-rm-in-sparse-checkout' into ds/status-with-sparse-index
597 - - Merge branch 'ds/sparse-index-protections' into ds/status-with-sparse-index
598 - (this branch uses mt/add-rm-in-sparse-checkout.)
599 -
600 - "git status" codepath learned to work with sparsely populated index
601 - without hydrating it fully.
602 -
603 -
604 -* hn/trace-reflog-expiry (2021-04-27) 1 commit
605 - (merged to 'next' on 2021-04-30 at 6bc9a79b61)
606 - + refs/debug: trace into reflog expiry too
607 -
608 - The reflog expiry machinery has been taught to emit trace events.
609 -
610 - Will merge to 'master'.
611 -
612 -
613 -* jk/prune-with-bitmap-fix (2021-04-29) 2 commits
614 - (merged to 'next' on 2021-04-30 at bede558f31)
615 - + prune: save reachable-from-recent objects with bitmaps
616 - + pack-bitmap: clean up include_check after use
617 -
618 - When the reachability bitmap is in effect, the "do not lose
619 - recently created objects and those that are reachable from them"
620 - safety to protect us from races were disabled by mistake, which has
621 - been corrected.
622 -
623 - Will merge to 'master'.
624 -
676 +* ab/trace2-squelch-gcc-warning (2021-05-11) 1 commit
677 + - trace2: refactor to avoid gcc warning under -O3
678
626 -* js/merge-already-up-to-date-message-reword (2021-05-03) 2 commits
627 - (merged to 'next' on 2021-05-04 at b2e696ecd7)
628 - + merge: fix swapped "up to date" message components
629 - + merge(s): apply consistent punctuation to "up to date" messages
679 + Workaround compiler warnings.
680
631 - A few variants of informational message "Already up-to-date" has
632 - been rephrased.
681 + cf. <YJrIMbr6VkYGQMfs@coredump.intra.peff.net>
682
634 - Will merge to 'master'.
683
684 +* hn/refs-errno-cleanup (2021-04-30) 8 commits
685 + - refs: explicitly propagate errno from refs_read_raw_ref
686 + - refs: stop setting EINVAL and ELOOP in symref resolution
687 + - refs: clear errno return in refs_resolve_ref_unsafe()
688 + - refs: add failure_errno to refs_read_raw_ref() signature
689 + - refs: make errno output explicit for refs_resolve_ref_unsafe
690 + - refs: make errno output explicit for read_raw_ref_fn
691 + - refs/files-backend: stop setting errno from lock_ref_oid_basic
692 + - refs: remove EINVAL specification from the errno sideband in read_raw_ref_fn
693
637 -* jz/apply-3way-first-message-fix (2021-04-29) 1 commit
638 - (merged to 'next' on 2021-04-30 at 829167e135)
639 - + apply: adjust messages to account for --3way changes
694 + Futz with the way 'errno' is relied on in the refs API to carry the
695 + failure modes up the callchain.
696
641 - When we swapped the order of --3way fallback, we forgot to adjust
642 - the message we give when the first method fails and the second
643 - method is attempted (which used to be "direct application failed
644 - hence we try 3way", now it is the other way around).
697 + Waiting for reviews.
698
646 - Will merge to 'master'.
699
700 +* en/ort-perf-batch-11 (2021-05-04) 13 commits
701 + - merge-ort, diffcore-rename: employ cached renames when possible
702 + - merge-ort: handle interactions of caching and rename/rename(1to1) cases
703 + - merge-ort: add helper functions for using cached renames
704 + - merge-ort: preserve cached renames for the appropriate side
705 + - merge-ort: avoid accidental API mis-use
706 + - merge-ort: add code to check for whether cached renames can be reused
707 + - merge-ort: populate caches of rename detection results
708 + - merge-ort: add data structures for in-memory caching of rename detection
709 + - t6429: testcases for remembering renames
710 + - fast-rebase: write conflict state to working tree, index, and HEAD
711 + - fast-rebase: change assert() to BUG()
712 + - Documentation/technical: describe remembering renames optimization
713 + - t6423: rename file within directory that other side renamed
714
649 -* ls/fast-export-signed (2021-05-03) 5 commits
650 - - fast-export, fast-import: add support for signed-commits
651 - - fast-export: do not modify memory from get_commit_buffer
652 - - git-fast-export.txt: clarify why 'verbatim' may not be a good idea
653 - - fast-export: rename --signed-tags='warn' to 'warn-verbatim'
654 - - git-fast-import.txt: add missing LF in the BNF
715 + Optimize out repeated rename detection in a sequence of mergy
716 + operations.
717
656 - "git fast-export" offers a way to control how signed tags are
657 - handled; the mechanism has been extended to allow specifying how
658 - signed commits are handled as well.
718 + Waiting for reviews.
719
660 - Expecting a reroll.
661 - cf. <xmqqa6pca0pv.fsf@gitster.g>, <xmqq1rao9zev.fsf@gitster.g>
720
721 +* dd/mailinfo-quoted-cr (2021-05-10) 6 commits
722 + (merged to 'next' on 2021-05-12 at a4bcfd18b9)
723 + + am: learn to process quoted lines that ends with CRLF
724 + + mailinfo: allow stripping quoted CR without warning
725 + + mailinfo: allow squelching quoted CRLF warning
726 + + mailinfo: warn if CRLF found in decoded base64/QP email
727 + + mailinfo: stop parsing options manually
728 + + mailinfo: load default metainfo_charset lazily
729
664 -* ls/subtree (2021-04-28) 30 commits
665 - (merged to 'next' on 2021-05-03 at 12c5fe8677)
666 - + subtree: be stricter about validating flags
667 - + subtree: push: allow specifying a local rev other than HEAD
668 - + subtree: allow 'split' flags to be passed to 'push'
669 - + subtree: allow --squash to be used with --rejoin
670 - + subtree: give the docs a once-over
671 - + subtree: have $indent actually affect indentation
672 - + subtree: don't let debug and progress output clash
673 - + subtree: add comments and sanity checks
674 - + subtree: remove duplicate check
675 - + subtree: parse revs in individual cmd_ functions
676 - + subtree: use "^{commit}" instead of "^0"
677 - + subtree: don't fuss with PATH
678 - + subtree: use "$*" instead of "$@" as appropriate
679 - + subtree: use more explicit variable names for cmdline args
680 - + subtree: use git-sh-setup's `say`
681 - + subtree: use `git merge-base --is-ancestor`
682 - + subtree: drop support for git < 1.7
683 - + subtree: more consistent error propagation
684 - + subtree: don't have loose code outside of a function
685 - + subtree: t7900: add porcelain tests for 'pull' and 'push'
686 - + subtree: t7900: add a test for the -h flag
687 - + subtree: t7900: rename last_commit_message to last_commit_subject
688 - + subtree: t7900: fix 'verify one file change per commit'
689 - + subtree: t7900: delete some dead code
690 - + subtree: t7900: use 'test' for string equality
691 - + subtree: t7900: comment subtree_test_create_repo
692 - + subtree: t7900: use consistent formatting
693 - + subtree: t7900: use test-lib.sh's test_count
694 - + subtree: t7900: update for having the default branch name be 'main'
695 - + .gitignore: ignore 'git-subtree' as a build artifact
730 + "git mailinfo" (hence "git am") learned the "--quoted-cr" option to
731 + control how lines ending with CRLF wrapped in base64 or qp are
732 + handled.
733
697 - "git subtree" updates.
734 + Will merge to 'master'.
735 +
736 +
737 +* ab/perl-makefile-cleanup (2021-05-06) 4 commits
738 + (merged to 'next' on 2021-05-10 at 23b48398e6)
739 + + perl: use mock i18n functions under NO_GETTEXT=Y
740 + + Makefile: regenerate *.pm on NO_PERL_CPAN_FALLBACKS change
741 + + Makefile: regenerate perl/build/* if GIT-PERL-DEFINES changes
742 + + Makefile: don't re-define PERL_DEFINES
743 +
744 + Build procedure clean-up.
745
746 Will merge to 'master'.
747
748
702 -* mt/parallel-checkout-part-3 (2021-05-05) 8 commits
703 - - ci: run test round with parallel-checkout enabled
704 - - parallel-checkout: add tests related to .gitattributes
705 - - t0028: extract encoding helpers to lib-encoding.sh
706 - - parallel-checkout: add tests related to path collisions
707 - - parallel-checkout: add tests for basic operations
708 - - checkout-index: add parallel checkout support
709 - - builtin/checkout.c: complete parallel checkout support
710 - - make_transient_cache_entry(): optionally alloc from mem_pool
749 +* ab/sparse-index-cleanup (2021-05-06) 1 commit
750 + (merged to 'next' on 2021-05-10 at bbb0239571)
751 + + sparse-index.c: remove set_index_sparse_config()
752
712 - The final part of "parallel checkout".
753 + Code clean-up.
754
714 - Will merge to 'next'.
755 + Will merge to 'master'.
756
757
717 -* po/diff-patch-doc (2021-04-28) 1 commit
718 - (merged to 'next' on 2021-04-30 at 58af0f4b5e)
719 - + doc: point to diff attribute in patch format docs
758 +* ab/streaming-simplify (2021-05-06) 5 commits
759 + (merged to 'next' on 2021-05-07 at 0992a78c75)
760 + + streaming.c: move {open,close,read} from vtable to "struct git_istream"
761 + + streaming.c: stop passing around "object_info *" to open()
762 + + streaming.c: remove {open,close,read}_method_decl() macros
763 + + streaming.c: remove enum/function/vtbl indirection
764 + + streaming.c: avoid forward declarations
765
721 - Doc update.
766 + Code clean-up.
767
768 Will merge to 'master'.
769
770
726 -* rj/bisect-skip-honor-terms (2021-04-30) 1 commit
727 - (merged to 'next' on 2021-05-04 at f7c11bba06)
728 - + bisect--helper: use BISECT_TERMS in 'bisect skip' command
771 +* jk/p4-locate-branch-point-optim (2021-05-06) 2 commits
772 + (merged to 'next' on 2021-05-07 at 0fa60c3af3)
773 + + git-p4: speed up search for branch parent
774 + + git-p4: ensure complex branches are cloned correctly
775
730 - "git bisect skip" when custom words are used for new/old did not
731 - work, which has been corrected.
776 + "git p4" learned to find branch points more efficiently.
777
778 Will merge to 'master'.
779
780
736 -* tv/p4-fallback-encoding (2021-04-30) 1 commit
737 - - git-p4: git-p4.fallbackEncoding to specify non UTF-8 charset
781 +* ow/no-dryrun-in-add-i (2021-05-07) 1 commit
782 + (merged to 'next' on 2021-05-07 at e822750e3a)
783 + + add: die if both --dry-run and --interactive are given
784
739 - "git p4" learns the fallbackEncoding configuration variable to
740 - safely accept changeset descriptions that aren't written in UTF-8.
785 + "git add -i --dry-run" does not dry-run, which was surprising. The
786 + combination of options has taught to error out.
787
788 + Will merge to 'master'.
789
743 -* zh/pretty-date-human (2021-04-27) 1 commit
744 - (merged to 'next' on 2021-04-30 at 2320ad8fb0)
745 - + pretty: provide human date format
746 - (this branch uses ab/pretty-date-format-tests.)
790
748 - "git log --format=..." placeholders learned %ah/%ch placeholders to
749 - request the --date=human output.
791 +* pw/patience-diff-clean-up (2021-05-05) 2 commits
792 + (merged to 'next' on 2021-05-06 at 1ce651569c)
793 + + patience diff: remove unused variable
794 + + patience diff: remove unnecessary string comparisons
795 +
796 + Code clean-up.
797
798 Will merge to 'master'.
799
800
754 -* dl/complete-stash (2021-03-24) 3 commits
755 - (merged to 'next' on 2021-03-24 at ce573a99cc)
756 - + git-completion.bash: use __gitcomp_builtin() in _git_stash()
757 - + git-completion.bash: extract from else in _git_stash()
758 - + git-completion.bash: pass $__git_subcommand_idx from __git_main()
759 - (this branch is used by dl/complete-stash-updates.)
801 +* pw/word-diff-zero-width-matches (2021-05-05) 1 commit
802 + (merged to 'next' on 2021-05-06 at e5653da568)
803 + + word diff: handle zero length matches
804
761 - The command line completion (in contrib/) for "git stash" has been
762 - updated.
805 + The word-diff mode has been taught to work better with a word
806 + regexp that can match an empty string.
807
808 Will merge to 'master'.
809
810
767 -* ba/object-info (2021-04-20) 1 commit
768 - - object-info: support for retrieving object info
811 +* ls/fast-export-signed (2021-05-03) 5 commits
812 + - fast-export, fast-import: add support for signed-commits
813 + - fast-export: do not modify memory from get_commit_buffer
814 + - git-fast-export.txt: clarify why 'verbatim' may not be a good idea
815 + - fast-export: rename --signed-tags='warn' to 'warn-verbatim'
816 + - git-fast-import.txt: add missing LF in the BNF
817
770 - Over-the-wire protocol learns a new request type to ask for object
771 - sizes given a list of object names.
818 + "git fast-export" offers a way to control how signed tags are
819 + handled; the mechanism has been extended to allow specifying how
820 + signed commits are handled as well.
821
773 - Will merge to 'next'.
822 + Expecting a reroll.
823 + cf. <xmqqa6pca0pv.fsf@gitster.g>, <xmqq1rao9zev.fsf@gitster.g>
824
825
776 -* zh/format-ref-array-optim (2021-04-20) 2 commits
777 - (merged to 'next' on 2021-04-30 at b6c835cc51)
778 - + ref-filter: reuse output buffer
779 - + ref-filter: get rid of show_ref_array_item
826 +* mt/parallel-checkout-part-3 (2021-05-05) 8 commits
827 + (merged to 'next' on 2021-05-07 at 0393d61c0c)
828 + + ci: run test round with parallel-checkout enabled
829 + + parallel-checkout: add tests related to .gitattributes
830 + + t0028: extract encoding helpers to lib-encoding.sh
831 + + parallel-checkout: add tests related to path collisions
832 + + parallel-checkout: add tests for basic operations
833 + + checkout-index: add parallel checkout support
834 + + builtin/checkout.c: complete parallel checkout support
835 + + make_transient_cache_entry(): optionally alloc from mem_pool
836
781 - "git (branch|tag) --format=..." has been micro-optimized.
837 + The final part of "parallel checkout".
838 +
839 + Will merge to 'master'.
840 +
841 +
842 +* ba/object-info (2021-04-20) 1 commit
843 + (merged to 'next' on 2021-05-07 at e2cb0e4ef1)
844 + + object-info: support for retrieving object info
845 +
846 + Over-the-wire protocol learns a new request type to ask for object
847 + sizes given a list of object names.
848
849 Will merge to 'master'.
850
@@ -812,27 +878,6 @@ Release tarballs are available at:
878 Waiting for reviews.
879
880
815 -* ps/config-env-option-with-separate-value (2021-04-30) 2 commits
816 - (merged to 'next' on 2021-04-30 at 46fbcd08c1)
817 - + git: support separate arg for `--config-env`'s value
818 - + git.txt: fix synopsis of `--config-env` missing the equals sign
819 -
820 - "git --config-env var=val cmd" weren't accepted (only
821 - --config-env=var=val was).
822 -
823 - Will merge to 'master'.
824 -
825 -
826 -* rs/repack-without-loosening-promised-objects (2021-04-28) 1 commit
827 - (merged to 'next' on 2021-05-03 at 6681b49209)
828 - + repack: avoid loosening promisor objects in partial clones
829 -
830 - "git repack -A -d" in a partial clone unnecessarily loosened
831 - objects in promisor pack.
832 -
833 - Will merge to 'master'.
834 -
835 -
881 * jt/push-negotiation (2021-05-05) 6 commits
882 (merged to 'next' on 2021-05-06 at 644a1bc4ee)
883 + send-pack: support push negotiation
@@ -848,91 +893,6 @@ Release tarballs are available at:
893 Will merge to 'master'.
894
895
851 -* ab/doc-lint (2021-04-10) 7 commits
852 - (merged to 'next' on 2021-04-30 at 285b9c4d64)
853 - + docs: fix linting issues due to incorrect relative section order
854 - + doc lint: lint relative section order
855 - + doc lint: lint and fix missing "GIT" end sections
856 - + doc lint: fix bugs in, simplify and improve lint script
857 - + doc lint: Perl "strict" and "warnings" in lint-gitlink.perl
858 - + Documentation/Makefile: make doc.dep dependencies a variable again
859 - + Documentation/Makefile: make $(wildcard howto/*.txt) a var
860 -
861 - Dev support.
862 -
863 - Will merge to 'master'.
864 -
865 -
866 -* ab/rebase-no-reschedule-failed-exec (2021-04-10) 2 commits
867 - (merged to 'next' on 2021-04-30 at 97d56cc674)
868 - + rebase: don't override --no-reschedule-failed-exec with config
869 - + rebase tests: camel-case rebase.rescheduleFailedExec consistently
870 -
871 - "git rebase --[no-]reschedule-failed-exec" did not work well with
872 - its configuration variable, which has been corrected.
873 -
874 - Will merge to 'master'.
875 -
876 -
877 -* ah/plugleaks (2021-04-28) 12 commits
878 - (merged to 'next' on 2021-04-30 at ccb3984029)
879 - + builtin/rm: avoid leaking pathspec and seen
880 - + builtin/rebase: release git_format_patch_opt too
881 - + builtin/for-each-ref: free filter and UNLEAK sorting.
882 - + mailinfo: also free strbuf lists when clearing mailinfo
883 - + builtin/checkout: clear pending objects after diffing
884 - + builtin/check-ignore: clear_pathspec before returning
885 - + builtin/bugreport: don't leak prefixed filename
886 - + branch: FREE_AND_NULL instead of NULL'ing real_ref
887 - + bloom: clear each bloom_key after use
888 - + ls-files: free max_prefix when done
889 - + wt-status: fix multiple small leaks
890 - + revision: free remainder of old commit list in limit_list
891 -
892 - Plug various leans reported by LSAN.
893 -
894 - Will merge to 'master'.
895 -
896 -
897 -* bc/hash-transition-interop-part-1 (2021-04-27) 13 commits
898 - (merged to 'next' on 2021-05-03 at 19dba33d17)
899 - + hex: print objects using the hash algorithm member
900 - + hex: default to the_hash_algo on zero algorithm value
901 - + builtin/pack-objects: avoid using struct object_id for pack hash
902 - + commit-graph: don't store file hashes as struct object_id
903 - + builtin/show-index: set the algorithm for object IDs
904 - + hash: provide per-algorithm null OIDs
905 - + hash: set, copy, and use algo field in struct object_id
906 - + builtin/pack-redundant: avoid casting buffers to struct object_id
907 - + Use the final_oid_fn to finalize hashing of object IDs
908 - + hash: add a function to finalize object IDs
909 - + http-push: set algorithm when reading object ID
910 - + Always use oidread to read into struct object_id
911 - + hash: add an algo member to struct object_id
912 -
913 - SHA-256 transition.
914 -
915 - Will merge to 'master'.
916 -
917 -
918 -* ps/rev-list-object-type-filter (2021-04-19) 8 commits
919 - (merged to 'next' on 2021-04-30 at fa0ceacde4)
920 - + rev-list: allow filtering of provided items
921 - + pack-bitmap: implement combined filter
922 - + pack-bitmap: implement object type filter
923 - + list-objects: implement object type filter
924 - + list-objects: support filtering by tag and commit
925 - + list-objects: move tag processing into its own function
926 - + revision: mark commit parents as NOT_USER_GIVEN
927 - + uploadpack.txt: document implication of `uploadpackfilter.allow`
928 -
929 - "git rev-list" learns the "--filter=object:type=<type>" option,
930 - which can be used to exclude objects of the given kind from the
931 - packfile generated by pack-objects.
932 -
933 - Will merge to 'master'.
934 -
935 -
896 * tb/multi-pack-bitmaps (2021-04-10) 23 commits
897 - p5326: perf tests for MIDX bitmaps
898 - p5310: extract full and partial bitmap tests
@@ -966,17 +926,7 @@ Release tarballs are available at:
926 cf. <cover.1617991824.git.me@ttaylorr.com>
927
928
969 -* ab/svn-tests-set-e-fix (2021-04-12) 2 commits
970 - (merged to 'next' on 2021-04-30 at 41f7907187)
971 - + svn tests: refactor away a "set -e" in test body
972 - + svn tests: remove legacy re-setup from init-clone test
973 -
974 - Test clean-up.
975 -
976 - Will merge to 'master'.
977 -
978 -
979 -* ab/test-lib-updates (2021-04-29) 11 commits
929 +* ab/test-lib-updates (2021-05-11) 11 commits
930 - test-lib: split up and deprecate test_create_repo()
931 - test-lib: do not show advice about init.defaultBranch under --verbose
932 - test-lib: reformat argument list in test_create_repo()
@@ -1014,24 +964,6 @@ Release tarballs are available at:
964 cf. <YHYZTLl90rkWWVOr@google.com>, <87a6q22dei.fsf@evledraar.gmail.com>
965
966
1017 -* ps/config-global-override (2021-04-27) 4 commits
1018 - (merged to 'next' on 2021-04-30 at 5ce435d98f)
1019 - + t1300: fix unset of GIT_CONFIG_NOSYSTEM leaking into subsequent tests
1020 - (merged to 'next' on 2021-04-20 at 82578c696d)
1021 - + config: allow overriding of global and system configuration
1022 - + config: unify code paths to get global config paths
1023 - + config: rename `git_etc_config()`
1024 -
1025 - Replace GIT_CONFIG_NOSYSTEM mechanism to decline from reading the
1026 - system-wide configuration file with GIT_CONFIG_SYSTEM that lets
1027 - users specify from which file to read the system-wide configuration
1028 - (setting it to an empty file would essentially be the same as
1029 - setting NOSYSTEM), and introduce GIT_CONFIG_GLOBAL to override the
1030 - per-user configuration in $HOME/.gitconfig.
1031 -
1032 - Will merge to 'master'.
1033 -
1034 -
967 * mr/bisect-in-c-4 (2021-04-11) 4 commits
968 - bisect--helper: retire `--bisect-next-check` subcommand
969 - bisect--helper: reimplement `bisect_run` shell function in C
@@ -1047,37 +979,6 @@ Release tarballs are available at:
979 May want to boost the test coverage.
980
981
1050 -* mt/add-rm-in-sparse-checkout (2021-04-08) 7 commits
1051 - (merged to 'next' on 2021-04-30 at ddead90eaf)
1052 - + rm: honor sparse checkout patterns
1053 - + add: warn when asked to update SKIP_WORKTREE entries
1054 - + refresh_index(): add flag to ignore SKIP_WORKTREE entries
1055 - + pathspec: allow to ignore SKIP_WORKTREE entries on index matching
1056 - + add: make --chmod and --renormalize honor sparse checkouts
1057 - + t3705: add tests for `git add` in sparse checkouts
1058 - + add: include magic part of pathspec on --refresh error
1059 - (this branch is used by ds/status-with-sparse-index.)
1060 -
1061 - "git add" and "git rm" learned not to touch those paths that are
1062 - outside of sparse checkout.
1063 -
1064 - Will merge to 'master'.
1065 -
1066 -
1067 -* zh/trailer-cmd (2021-05-04) 2 commits
1068 - (merged to 'next' on 2021-05-04 at fb677877f7)
1069 - + trailer: add new .cmd config option
1070 - + docs: correct descript of trailer.<token>.command
1071 -
1072 - The way the command line specified by the trailer.<token>.command
1073 - configuration variable receives the end-user supplied value was
1074 - both error prone and misleading. An alternative to achieve the
1075 - same goal in a safer and more intuitive way has been added, as
1076 - the trailer.<token>.cmd configuration variable, to replace it.
1077 -
1078 - Will merge to 'master'.
1079 -
1080 -
982 * hn/reftable (2021-04-20) 28 commits
983 - t1404: annotate test cases with REFFILES
984 - t1401,t2011: parameterize HEAD.lock for REFTABLE