What's cooking (2020/02 #05)

Junio C Hamano committed Feb 25, 2020 at 14:48 UTC 67e92b69f8955cbfaad6450268730c0e2d16d995
1 file changed +373 -455
whats-cooking.txt
+373 -455
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Feb 2020, #04; Mon, 17)
4 -X-master-at: 51ebf55b9309824346a6589c9f3b130c6f371b8f
5 -X-next-at: 3043dbfab8cba19275c80425d1436651d4be4a4a
3 +Subject: What's cooking in git.git (Feb 2020, #05; Tue, 25)
4 +X-master-at: 2d2118b814c11f509e1aa76cb07110f7231668dc
5 +X-next-at: 5900a2a8f925f2c0ac44ac71f8d2c1959bdec53b
6
7 -What's cooking in git.git (Feb 2020, #04; Mon, 17)
7 +What's cooking in git.git (Feb 2020, #05; Tue, 25)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -23,439 +23,333 @@ of the repositories listed at
23 --------------------------------------------------
24 [Graduated to "master"]
25
26 -* ag/edit-todo-drop-check (2020-01-28) 2 commits
27 - (merged to 'next' on 2020-02-07 at 687c82cd3a)
28 - + rebase-interactive: warn if commit is dropped with `rebase --edit-todo'
29 - + sequencer: move check_todo_list_from_file() to rebase-interactive.c
30 - (this branch uses js/rebase-i-with-colliding-hash.)
31 -
32 - Allow the rebase.missingCommitsCheck configuration to kick in when
33 - "rebase --edit-todo" and "rebase --continue" restarts the procedure.
34 -
35 -
36 -* ag/rebase-avoid-unneeded-checkout (2020-01-24) 1 commit
37 - (merged to 'next' on 2020-02-07 at b08da07534)
38 - + rebase -i: stop checking out the tip of the branch to rebase
39 -
40 - "git rebase -i" (and friends) used to unnecessarily check out the
41 - tip of the branch to be rebased, which has been corrected.
42 -
43 -
44 -* bc/hash-independent-tests-part-8 (2020-02-07) 21 commits
45 - (merged to 'next' on 2020-02-11 at 127748e61a)
46 - + t6024: update for SHA-256
47 - + t6006: make hash size independent
48 - + t6000: abstract away SHA-1-specific constants
49 - + t5703: make test work with SHA-256
50 - + t5607: make hash size independent
51 - + t5318: update for SHA-256
52 - + t5515: make test hash independent
53 - + t5321: make test hash independent
54 - + t5313: make test hash independent
55 - + t5309: make test hash independent
56 - + t5302: make hash size independent
57 - + t4060: make test work with SHA-256
58 - + t4211: add test cases for SHA-256
59 - + t4211: move SHA-1-specific test cases into a directory
60 - + t4013: make test hash independent
61 - + t3311: make test work with SHA-256
62 - + t3310: make test work with SHA-256
63 - + t3309: make test work with SHA-256
64 - + t3308: make test work with SHA-256
65 - + t3206: make hash size independent
66 - + t/lib-pack: support SHA-256
67 -
68 - Preparation for SHA-256 migration continues.
69 -
70 -
71 -* dl/test-must-fail-fixes-2 (2020-01-27) 16 commits
72 - (merged to 'next' on 2020-02-07 at 535e019692)
73 - + t4124: only mark git command with test_must_fail
74 - + t3507: use test_path_is_missing()
75 - + t3507: fix indentation
76 - + t3504: do check for conflict marker after failed cherry-pick
77 - + t3419: stop losing return code of git command
78 - + t3415: increase granularity of test_auto_{fixup,squash}()
79 - + t3415: stop losing return codes of git commands
80 - + t3310: extract common notes_merge_files_gone()
81 - + t3030: use test_path_is_missing()
82 - + t2018: replace "sha" with "oid"
83 - + t2018: don't lose return code of git commands
84 - + t2018: teach do_checkout() to accept `!` arg
85 - + t2018: be more discerning when checking for expected exit codes
86 - + t2018: improve style of if-statement
87 - + t2018: add space between function name and ()
88 - + t2018: remove trailing space from test description
89 -
90 - Test updates.
91 -
92 -
93 -* ds/sparse-checkout-harden (2020-01-31) 15 commits
94 - (merged to 'next' on 2020-02-07 at 56c09b944f)
95 - + sparse-checkout: fix cone mode behavior mismatch
96 - + sparse-checkout: improve docs around 'set' in cone mode
97 - + sparse-checkout: escape all glob characters on write
98 - + sparse-checkout: use C-style quotes in 'list' subcommand
99 - + sparse-checkout: unquote C-style strings over --stdin
100 - + sparse-checkout: write escaped patterns in cone mode
101 - + sparse-checkout: properly match escaped characters
102 - + sparse-checkout: warn on globs in cone patterns
103 - + sparse-checkout: detect short patterns
104 - + sparse-checkout: cone mode does not recognize "**"
105 - + sparse-checkout: fix documentation typo for core.sparseCheckoutCone
106 - + clone: fix --sparse option with URLs
107 - + sparse-checkout: create leading directories
108 - + t1091: improve here-docs
109 - + t1091: use check_files to reduce boilerplate
110 - (this branch is used by ds/sparse-add.)
111 -
112 - Some rough edges in the sparse-checkout feature, especially around
113 - the cone mode, have been cleaned up.
114 -
115 -
116 -* es/outside-repo-errmsg-hints (2020-02-16) 1 commit
117 - (merged to 'next' on 2020-02-16 at ed78b064b4)
118 - + prefix_path: show gitdir when arg is outside repo
119 -
120 - Error message clarification.
121 -
122 -
123 -* hw/advice-add-nothing (2020-02-06) 2 commits
124 - (merged to 'next' on 2020-02-07 at 3c2a5c1868)
125 - + add: change advice config variables used by the add API
126 - (merged to 'next' on 2020-01-22 at 3fe4494fa6)
127 - + add: use advise function to display hints
128 -
129 - Two help messages given when "git add" notices the user gave it
130 - nothing to add have been updated to use advise() API.
131 -
132 -
133 -* jh/notes-fanout-fix (2020-02-04) 2 commits
134 - (merged to 'next' on 2020-02-07 at a4ec94aee0)
135 - + notes.c: fix off-by-one error when decreasing notes fanout
136 - + t3305: check notes fanout more carefully and robustly
137 -
138 - The code to automatically shrink the fan-out in the notes tree had
139 - an off-by-one bug, which has been killed.
140 -
141 -
142 -* jk/alloc-cleanups (2020-02-04) 4 commits
143 - (merged to 'next' on 2020-02-07 at f259621312)
144 - + tree-walk.c: break circular dependency with unpack-trees
145 - + traverse_trees(): use stack array for name entries
146 - + walker_fetch(): avoid raw array length computation
147 - + normalize_path_copy(): document "dst" size expectations
148 -
149 - Misc code clean-ups.
150 -
151 -
152 -* jk/diff-honor-wserrhighlight-in-plumbing (2020-01-31) 1 commit
153 - (merged to 'next' on 2020-02-07 at acb077fdcb)
154 - + diff: move diff.wsErrorHighlight to "basic" config
155 -
156 - The diff-* plumbing family of subcommands now pay attention to the
157 - diff.wsErrorHighlight configuration, which has been ignored before;
158 - this allows "git add -p" to also show the whitespace problems to
159 - the end user.
26 +* bw/remote-rename-update-config (2020-02-10) 6 commits
27 + (merged to 'next' on 2020-02-14 at 30b1a477de)
28 + + remote rename/remove: gently handle remote.pushDefault config
29 + + config: provide access to the current line number
30 + + remote rename/remove: handle branch.<name>.pushRemote config values
31 + + remote: clean-up config callback
32 + + remote: clean-up by returning early to avoid one indentation
33 + + pull --rebase/remote rename: document and honor single-letter abbreviations rebase types
34
35 + "git remote rename X Y" needs to adjust configuration variables
36 + (e.g. branch.<name>.remote) whose value used to be X to Y.
37 + branch.<name>.pushRemote is now also updated.
38
162 -* jk/doc-credential-helper (2020-02-14) 1 commit
163 - (merged to 'next' on 2020-02-16 at 0909d3f981)
164 - + doc: move credential helper info into gitcredentials(7)
39
166 - Docfix.
40 +* es/bright-colors (2020-02-11) 3 commits
41 + (merged to 'next' on 2020-02-14 at cc17dbc7e8)
42 + + color.c: alias RGB colors 8-15 to aixterm colors
43 + + color.c: support bright aixterm colors
44 + + color.c: refactor color_output arguments
45
46 + The basic 7 colors learned the brighter counterparts
47 + (e.g. "brightred").
48
169 -* jk/get-oid-error-message-i18n (2020-01-30) 3 commits
170 - (merged to 'next' on 2020-02-07 at 6bfe9235e5)
171 - + sha1-name: mark get_oid() error messages for translation
172 - + t1506: drop space after redirection operator
173 - + t1400: avoid "test" string comparisons
49
175 - A low-level API function get_oid(), that accepts various ways to
176 - name an object, used to issue end-user facing error messages
177 - without l10n, which has been updated to be translatable.
50 +* es/doc-mentoring (2020-02-14) 2 commits
51 + (merged to 'next' on 2020-02-17 at e3f3e316eb)
52 + + MyFirstContribution: rephrase contact info
53 + (merged to 'next' on 2020-02-05 at 3b05aabbcd)
54 + + MyFirstContribution: add avenues for getting help
55
56 + Doc for new contributors.
57
180 -* jk/index-pack-dupfix (2020-02-04) 1 commit
181 - (merged to 'next' on 2020-02-07 at e6d79d432b)
182 - + index-pack: downgrade twice-resolved REF_DELTA to die()
58 +--------------------------------------------------
59 +[New Topics]
60
184 - The index-pack code now diagnoses a bad input packstream that
185 - records the same object twice when it is used as delta base; the
186 - code used to declare a software bug when encountering such an
187 - input, but it is an input error.
61 +* am/mingw-poll-fix (2020-02-18) 1 commit
62 + - mingw: workaround for hangs when sending STDIN
63
64 + MinGW's poll() emulation has been improved.
65
190 -* jk/mailinfo-cleanup (2020-02-11) 4 commits
191 - (merged to 'next' on 2020-02-11 at ab9890fbcb)
192 - + mailinfo: factor out some repeated header handling
193 - + mailinfo: be more liberal with header whitespace
194 - + mailinfo: simplify parsing of header values
195 - + mailinfo: treat header values as C strings
196 - (this branch uses rs/strbuf-insertstr.)
66 + Needs review by Windows folks.
67
198 - Code clean-up.
68
69 +* en/check-ignore (2020-02-18) 1 commit
70 + (merged to 'next' on 2020-02-22 at f05a752211)
71 + + check-ignore: fix documentation and implementation to match
72
201 -* jk/packfile-reuse-cleanup (2020-01-23) 12 commits
202 - (merged to 'next' on 2020-02-07 at c543bc27fb)
203 - + pack-bitmap: don't rely on bitmap_git->reuse_objects
204 - + pack-objects: add checks for duplicate objects
205 - + pack-objects: improve partial packfile reuse
206 - + builtin/pack-objects: introduce obj_is_packed()
207 - + pack-objects: introduce pack.allowPackReuse
208 - + csum-file: introduce hashfile_total()
209 - + pack-bitmap: simplify bitmap_has_oid_in_uninteresting()
210 - + pack-bitmap: uninteresting oid can be outside bitmapped packfile
211 - + pack-bitmap: introduce bitmap_walk_contains()
212 - + ewah/bitmap: introduce bitmap_word_alloc()
213 - + packfile: expose get_delta_base()
214 - + builtin/pack-objects: report reused packfile objects
73 + "git check-ignore" did not work when the given path is explicitly
74 + marked as not ignored with a negative entry in the .gitignore file.
75
216 - The way "git pack-objects" reuses objects stored in existing pack
217 - to generate its result has been improved.
76 + Will merge to 'master'.
77
78
220 -* jn/promote-proto2-to-default (2020-01-15) 5 commits
221 - (merged to 'next' on 2020-02-07 at 5597fd726b)
222 - + fetch: default to protocol version 2
223 - + protocol test: let protocol.version override GIT_TEST_PROTOCOL_VERSION
224 - + test: request GIT_TEST_PROTOCOL_VERSION=0 when appropriate
225 - + config doc: protocol.version is not experimental
226 - + fetch test: use more robust test for filtered objects
79 +* en/t3433-rebase-stat-dirty-failure (2020-02-19) 2 commits
80 + (merged to 'next' on 2020-02-25 at 000d596d4c)
81 + + merge-recursive: fix the refresh logic in update_file_flags
82 + + t3433: new rebase testcase documenting a stat-dirty-like failure
83
228 - The transport protocol version 2 becomes the default one.
84 + The merge-recursive machinery failed to refresh the cache entry for
85 + a merge result in a couple of places, resulting in an unnecessary
86 + merge failure, which has been fixed.
87
88 + Will merge to 'master'.
89
231 -* js/mingw-open-in-gdb (2020-02-14) 1 commit
232 - (merged to 'next' on 2020-02-16 at 6670f36d73)
233 - + mingw: add a helper function to attach GDB to the current process
90
235 - Dev support.
91 +* jk/doc-diff-parallel (2020-02-18) 1 commit
92 + (merged to 'next' on 2020-02-19 at 62b2264fca)
93 + + doc-diff: use single-colon rule in rendering Makefile
94
95 + Update to doc-diff.
96
238 -* js/rebase-i-with-colliding-hash (2020-01-23) 3 commits
239 - (merged to 'next' on 2020-02-07 at 670ba07c4d)
240 - + rebase -i: also avoid SHA-1 collisions with missingCommitsCheck
241 - + rebase -i: re-fix short SHA-1 collision
242 - + parse_insn_line(): improve error message when parsing failed
243 - (this branch is used by ag/edit-todo-drop-check.)
97 + Will merge to 'master'.
98
245 - "git rebase -i" identifies existing commits in its todo file with
246 - their abbreviated object name, which could become ambigous as it
247 - goes to create new commits, and has a mechanism to avoid ambiguity
248 - in the main part of its execution. A few other cases however were
249 - not covered by the protection against ambiguity, which has been
250 - corrected.
99
100 +* jk/push-option-doc-markup-fix (2020-02-18) 1 commit
101 + (merged to 'next' on 2020-02-19 at 975e00fa99)
102 + + doc/config/push: use longer "--" line for preformatted example
103
253 -* js/test-avoid-pipe (2020-02-14) 1 commit
254 - (merged to 'next' on 2020-02-16 at 090cac9c23)
255 - + t9001, t9116: avoid pipes
104 + Doc markup fix.
105
257 - Test clean-up.
106 + Will merge to 'master'.
107
108
260 -* js/test-unc-fetch (2020-02-14) 1 commit
261 - (merged to 'next' on 2020-02-16 at a4ca01efef)
262 - + t5580: test cloning without file://, test fetching via UNC paths
109 +* ak/test-log-graph (2020-02-24) 2 commits
110 + (merged to 'next' on 2020-02-25 at 2b68666ffa)
111 + + lib-log-graph: consolidate colored graph cmp logic
112 + + lib-log-graph: consolidate test_cmp_graph logic
113
264 - Test updates.
114 + Test update.
115
116 + Will merge to 'master'.
117
267 -* js/test-write-junit-xml-fix (2020-02-12) 1 commit
268 - (merged to 'next' on 2020-02-16 at 2deb247550)
269 - + tests: fix --write-junit-xml with subshells
118
271 - Testfix.
119 +* ds/partial-clone-fixes (2020-02-22) 2 commits
120 + (merged to 'next' on 2020-02-25 at a26434bb7a)
121 + + partial-clone: avoid fetching when looking for objects
122 + + partial-clone: demonstrate bugs in partial fetch
123
124 + Fix for a bug revealed by a recent change to make the protocol v2
125 + the default.
126
274 -* jt/connectivity-check-optim-in-partial-clone (2020-01-30) 2 commits
275 - (merged to 'next' on 2020-02-07 at ca5102fa58)
276 - + fetch: forgo full connectivity check if --filter
277 - + connected: verify promisor-ness of partial clone
278 -
279 - Unneeded connectivity check is now disabled in a partial clone when
280 - fetching into it.
127 + Will merge to 'master'.
128
129
283 -* kw/fsmonitor-watchman-racefix (2020-01-23) 4 commits
284 - (merged to 'next' on 2020-02-07 at 3c42195a34)
285 - + fsmonitor: update documentation for hook version and watchman hooks
286 - + fsmonitor: add fsmonitor hook scripts for version 2
287 - + fsmonitor: handle version 2 of the hooks that will use opaque token
288 - + fsmonitor: change last update timestamp on the index_state to opaque token
289 -
290 - A new version of fsmonitor-watchman hook has been introduced, to
291 - avoid races.
292 -
293 -
294 -* ld/p4-cleanup-processes (2020-01-30) 7 commits
295 - (merged to 'next' on 2020-02-07 at e8c573f01c)
296 - + git-p4: avoid leak of file handle when cloning
297 - + git-p4: check for access to remote host earlier
298 - + git-p4: cleanup better on error exit
299 - + git-p4: create helper function importRevisions()
300 - + git-p4: disable some pylint warnings, to get pylint output to something manageable
301 - + git-p4: add P4CommandException to report errors talking to Perforce
302 - + git-p4: make closeStreams() idempotent
303 -
304 - p4 updates.
305 -
130 +* pb/am-show-current-patch (2020-02-20) 5 commits
131 + - am: support --show-current-patch=diff to retrieve .git/rebase-apply/patch
132 + - am: support --show-current-patch=raw as a synonym for--show-current-patch
133 + - am: convert "resume" variable to a struct
134 + - parse-options: convert "command mode" to a flag
135 + - parse-options: add testcases for OPT_CMDMODE()
136
307 -* mr/show-config-scope (2020-02-10) 10 commits
308 - (merged to 'next' on 2020-02-11 at 904bca086e)
309 - + config: add '--show-scope' to print the scope of a config value
310 - + submodule-config: add subomdule config scope
311 - + config: teach git_config_source to remember its scope
312 - + config: preserve scope in do_git_config_sequence
313 - + config: clarify meaning of command line scoping
314 - + config: split repo scope to local and worktree
315 - + config: make scope_name non-static and rename it
316 - + t1300: create custom config file without special characters
317 - + t1300: fix over-indented HERE-DOCs
318 - + config: fix typo in variable name
319 - (this branch is used by bw/remote-rename-update-config and es/bugreport.)
137 + "git am --short-current-patch" is a way to show the piece of e-mail
138 + for the stopped step, which is not suitable to directly feed "git
139 + apply" (it is designed to be a good "git am" input). It learned a
140 + new option to show only the patch part.
141
321 - "git config" learned to show in which "scope", in addition to in
322 - which file, each config setting comes from.
142
143 +* bc/wildcard-credential (2020-02-20) 5 commits
144 + (merged to 'next' on 2020-02-25 at ba3706cb90)
145 + + credential: allow wildcard patterns when matching config
146 + + credential: use the last matching username in the config
147 + + t0300: add tests for some additional cases
148 + + t1300: add test for urlmatch with multiple wildcards
149 + + mailmap: add an additional email address for brian m. carlson
150
325 -* mt/threaded-grep-in-object-store (2020-01-17) 12 commits
326 - (merged to 'next' on 2020-02-07 at e86bab09e1)
327 - + grep: use no. of cores as the default no. of threads
328 - + grep: move driver pre-load out of critical section
329 - + grep: re-enable threads in non-worktree case
330 - + grep: protect packed_git [re-]initialization
331 - + grep: allow submodule functions to run in parallel
332 - + submodule-config: add skip_if_read option to repo_read_gitmodules()
333 - + grep: replace grep_read_mutex by internal obj read lock
334 - + object-store: allow threaded access to object reading
335 - + replace-object: make replace operations thread-safe
336 - + grep: fix racy calls in grep_objects()
337 - + grep: fix race conditions at grep_submodule()
338 - + grep: fix race conditions on userdiff calls
339 -
340 - Traditionally, we avoided threaded grep while searching in objects
341 - (as opposed to files in the working tree) as accesses to the object
342 - layer is not thread-safe. This limitation is getting lifted.
151 + A configuration element used for credential subsystem can now use
152 + wildcard pattern to specify for which set of URLs the entry
153 + applies.
154
155 + Will merge to 'master'.
156
345 -* mt/use-passed-repo-more-in-funcs (2020-01-31) 7 commits
346 - (merged to 'next' on 2020-02-07 at 536709ab4b)
347 - + sha1-file: allow check_object_signature() to handle any repo
348 - + sha1-file: pass git_hash_algo to hash_object_file()
349 - + sha1-file: pass git_hash_algo to write_object_file_prepare()
350 - + streaming: allow open_istream() to handle any repo
351 - + pack-check: use given repo's hash_algo at verify_packfile()
352 - + cache-tree: use given repo's hash_algo at verify_one()
353 - + diff: make diff_populate_filespec() honor its repo argument
157
355 - Some codepaths were given a repository instance as a parameter to
356 - work in the repository, but passed the_repository instance to its
357 - callees, which has been cleaned up (somewhat).
158 +* es/recursive-single-branch-clone (2020-02-25) 2 commits
159 + - clone: pass --single-branch during --recurse-submodules
160 + - submodule--helper: use C99 named initializer
161 +
162 + "git clone --recurse-submodules --single-branch" now uses the same
163 + simgle-branch option when cloning the submodules.
164 +
165 + Will merge to 'next'.
166 +
167 +
168 +* jc/describe-misnamed-annotated-tag (2020-02-20) 1 commit
169 + - describe: force long format for a name based on a mislocated tag
170 +
171 + When "git describe C" finds an annotated tag with tagname A to be
172 + the best name to explain commit C, and the tag is stored in a
173 + "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the
174 + command gave a warning message but used A (not B) to describe C.
175 + If C is exactly at the tag, the desribe output would be "A", but
176 + "git rev-parse A^0" would not be equal as "git rev-parse C^0". The
177 + behaviour of the command has been changed to use the "long" form
178 + i.e. A-0-gOBJECTNAME, which is correctly interpreted by rev-parse.
179 +
180 +
181 +* jk/run-command-formatfix (2020-02-22) 1 commit
182 + (merged to 'next' on 2020-02-25 at 39ad6eeb86)
183 + + run-command.h: fix mis-indented struct member
184 +
185 + Code style cleanup.
186 +
187 + Will merge to 'master'.
188
359 -
360 -* pk/status-of-uncloned-submodule (2020-02-04) 3 commits
361 - (merged to 'next' on 2020-02-07 at f6349f5f5f)
362 - + t7400: testcase for submodule status on unregistered inner git repos
363 - + submodule: fix status of initialized but not cloned submodules
364 - + t7400: add a testcase for submodule status on empty dirs
365 -
366 - The way "git submodule status" reports an initialized but not yet
367 - populated submodule has not been reimplemented correctly when a
368 - part of the "git submodule" command was rewritten in C, which has
189 +
190 +* jn/reftable-doc (2020-02-22) 1 commit
191 + (merged to 'next' on 2020-02-25 at e128adbaf6)
192 + + reftable: file format documentation
193 +
194 + Doc update, in preparation for adding the reftable feature.
195 +
196 + Will merge to 'master'.
197 +
198 +
199 +* pb/recurse-submodules-fix (2020-02-19) 6 commits
200 + - t/lib-submodule-update: add test removing nested submodules
201 + - unpack-trees: check for missing submodule directory in merged_entry
202 + - unpack-trees: remove outdated description for verify_clean_submodule
203 + - t/lib-submodule-update: move a test to the right section
204 + - t/lib-submodule-update: remove outdated test description
205 + - t7112: remove mention of KNOWN_FAILURE_SUBMODULE_RECURSIVE_NESTED
206 +
207 +
208 +* rj/t1050-use-test-path-is-file (2020-02-24) 1 commit
209 + - t1050: replace test -f with test_path_is_file
210 +
211 + Code cleanup.
212 +
213 + Almost there.
214 +
215 +
216 +* bc/sha-256-part-1-of-4 (2020-02-25) 25 commits
217 + - SQUASH???
218 + - fast-import: add options for rewriting submodules
219 + - fast-import: add a generic function to iterate over marks
220 + - fast-import: make find_marks work on any mark set
221 + - fast-import: add helper function for inserting mark object entries
222 + - fast-import: permit reading multiple marks files
223 + - tag: store SHA-256 signatures in a header
224 + - gpg-interface: improve interface for parsing tags
225 + - commit: use expected signature header for SHA-256
226 + - worktree: allow repository version 1
227 + - init-db: move writing repo version into a function
228 + - builtin/init-db: add environment variable for new repo hash
229 + - builtin/init-db: allow specifying hash algorithm on command line
230 + - setup: allow check_repository_format to read repository format
231 + - t/helper: make repository tests hash independent
232 + - t/helper: initialize repository if necessary
233 + - t/helper/test-dump-split-index: initialize git repository
234 + - t6300: make hash algorithm independent
235 + - t6300: abstract away SHA-1-specific constants
236 + - t: use hash-specific lookup tables to define test constants
237 + - repository: require a build flag to use SHA-256
238 + - hex: add functions to parse hex object IDs in any algorithm
239 + - hex: introduce parsing variants taking hash algorithms
240 + - hash: implement and use a context cloning function
241 + - builtin/pack-objects: make hash agnostic
242 +
243 +
244 +* es/do-not-let-rebase-switch-to-protected-branch (2020-02-24) 2 commits
245 + - rebase: refuse to switch to branch already checked out elsewhere
246 + - t3400: make test clean up after itself
247 +
248 + "git rebase BASE BRANCH" rebased/updated the tip of BRANCH and
249 + checked it out, even when the BRANCH is checked out in a different
250 + worktree. This has been corrected.
251 +
252 + Will merge to 'next'.
253 +
254 +
255 +* es/worktree-avoid-duplication-fix (2020-02-24) 3 commits
256 + (merged to 'next' on 2020-02-25 at 74c612837a)
257 + + worktree: don't allow "add" validation to be fooled by suffix matching
258 + + worktree: add utility to find worktree by pathname
259 + + worktree: improve find_worktree() documentation
260 +
261 + "git worktree add" used to get confused that the director to be
262 + used to add a new worktreey, when given as a relative path, is
263 + different from an existing one. This has been corrected.
264 +
265 + Will merge to 'master'.
266 +
267 +
268 +* es/worktree-cleanup (2020-02-24) 1 commit
269 + (merged to 'next' on 2020-02-25 at 59bc458bcd)
270 + + worktree: drop unused code from get_main_worktree()
271 +
272 + Code cleanup.
273 +
274 + Will merge to 'master'.
275 +
276 +
277 +* hv/receive-denycurrent-everywhere (2020-02-24) 3 commits
278 + (merged to 'next' on 2020-02-25 at 84e35c4980)
279 + + receive.denyCurrentBranch: respect all worktrees
280 + + t5509: use a bare repository for test push target
281 + + get_main_worktree(): allow it to be called in the Git directory
282 +
283 + "git push" should stop from updating a branch that is checked out
284 + when receive.denyCurrentBranch configuration is set, but it failed
285 + to pay attention to checkouts in secondary worktrees. This has
286 been corrected.
287
288 + Will merge to 'master'.
289
372 -* rs/name-rev-memsave (2020-02-05) 11 commits
373 - (merged to 'next' on 2020-02-11 at 17616cb9b1)
374 - + name-rev: sort tip names before applying
375 - + name-rev: release unused name strings
376 - + name-rev: generate name strings only if they are better
377 - + name-rev: pre-size buffer in get_parent_name()
378 - + name-rev: factor out get_parent_name()
379 - + name-rev: put struct rev_name into commit slab
380 - + name-rev: don't _peek() in create_or_update_name()
381 - + name-rev: don't leak path copy in name_ref()
382 - + name-rev: respect const qualifier
383 - + name-rev: remove unused typedef
384 - + name-rev: rewrite create_or_update_name()
290
386 - Memory footprint and performance of "git name-rev" has been
387 - improved.
291 +* jk/nth-packed-object-id (2020-02-24) 10 commits
292 + - packfile: drop nth_packed_object_sha1()
293 + - packed_object_info(): use object_id internally for delta base
294 + - packed_object_info(): use object_id for returning delta base
295 + - pack-check: push oid lookup into loop
296 + - pack-check: convert "internal error" die to a BUG()
297 + - pack-bitmap: use object_id when loading on-disk bitmaps
298 + - pack-objects: use object_id struct in pack-reuse code
299 + - pack-objects: convert oe_set_delta_ext() to use object_id
300 + - pack-objects: read delta base oid into object_id struct
301 + - nth_packed_object_oid(): use customary integer return
302
303 + Code cleanup to use "struct object_id" more by replacing use of
304 + "char *sha1"
305
390 -* rs/parse-options-concat-dup (2020-02-10) 4 commits
391 - (merged to 'next' on 2020-02-11 at a1685687ab)
392 - + parse-options: simplify parse_options_dup()
393 - + parse-options: const parse_options_concat() parameters
394 - + parse-options: factor out parse_options_count()
395 - + parse-options: use COPY_ARRAY in parse_options_concat()
306 + Will merge to 'next'.
307
397 - Code clean-up.
308
309 +* kk/complete-diff-color-moved (2020-02-24) 1 commit
310 + - completion: add diff --color-moved[-ws]
311
400 -* rs/strbuf-insertstr (2020-02-10) 2 commits
401 - (merged to 'next' on 2020-02-11 at 5c89aa002f)
402 - + mailinfo: don't insert header prefix for handle_content_type()
403 - + strbuf: add and use strbuf_insertstr()
404 - (this branch is used by jk/mailinfo-cleanup.)
312 + Completion update.
313
406 - Code clean-up.
314 + Will merge to 'next'.
315
316
409 -* tb/commit-graph-object-dir (2020-02-04) 5 commits
410 - (merged to 'next' on 2020-02-07 at 5c85173df4)
411 - + commit-graph.h: use odb in 'load_commit_graph_one_fd_st'
412 - + commit-graph.c: remove path normalization, comparison
413 - + commit-graph.h: store object directory in 'struct commit_graph'
414 - + commit-graph.h: store an odb in 'struct write_commit_graph_context'
415 - + t5318: don't pass non-object directory to '--object-dir'
416 - (this branch is used by tb/commit-graph-split-merge.)
317 +* ma/test-cleanup (2020-02-24) 3 commits
318 + (merged to 'next' on 2020-02-25 at ce00c705a9)
319 + + t: drop debug `cat` calls
320 + + t9810: drop debug `cat` call
321 + + t4117: check for files using `test_path_is_file`
322
418 - The code to compute the commit-graph has been taught to use a more
419 - robust way to tell if two object directories refer to the same
420 - thing.
323 + Code cleanup.
324
422 ---------------------------------------------------
423 -[New Topics]
325 + Will merge to 'master'.
326
425 -* jk/object-filter-with-bitmap (2020-02-14) 15 commits
426 - (merged to 'next' on 2020-02-16 at 42425c3658)
427 - + pack-objects: support filters with bitmaps
428 - + pack-bitmap: implement BLOB_LIMIT filtering
429 - + pack-bitmap: implement BLOB_NONE filtering
430 - + bitmap: add bitmap_unset() function
431 - + rev-list: use bitmap filters for traversal
432 - + pack-bitmap: basic noop bitmap filter infrastructure
433 - + rev-list: allow commit-only bitmap traversals
434 - + t5310: factor out bitmap traversal comparison
435 - + rev-list: allow bitmaps when counting objects
436 - + rev-list: make --count work with --objects
437 - + rev-list: factor out bitmap-optimized routines
438 - + pack-bitmap: refuse to do a bitmap traversal with pathspecs
439 - + rev-list: fallback to non-bitmap traversal when filtering
440 - + pack-bitmap: fix leak of haves/wants object lists
441 - + pack-bitmap: factor out type iterator initialization
327
443 - The object reachability bitmap machinery and the partial cloning
444 - machinery were not prepared to work well together, because some
445 - object-filtering criteria partial clones use inherently rely on
446 - object traversal, but the bitmap machinery is an optimization to
447 - bypass that object traversal. There however are some cases that
448 - they can work together, and they were taught about this case.
328 +* rs/blame-typefix-for-fingerprint (2020-02-24) 1 commit
329 + (merged to 'next' on 2020-02-25 at 496309f50a)
330 + + blame: provide type of fingerprints pointer
331 +
332 + Code cleanup.
333
334 Will merge to 'master'.
335
336
453 -* hw/advise-ng (2020-02-16) 2 commits
454 - - advice: extract vadvise() from advise()
455 - - advice: refactor advise API
337 +* rs/micro-cleanups (2020-02-24) 2 commits
338 + (merged to 'next' on 2020-02-25 at eaa8fd097b)
339 + + use strpbrk(3) to search for characters from a given set
340 + + quote: use isalnum() to check for alphanumeric characters
341
457 - Revamping of the advise API to allow more systematic enumeration of
458 - advice knobs in the future.
342 + Code cleanup.
343 +
344 + Will merge to 'master'.
345 +
346 +
347 +* be/describe-multiroot (2020-02-25) 1 commit
348 + - describe: dont abort too early when searching tags
349 +
350 + "git describe" in a repository with multiple root commits sometimes
351 + gave up looking for the best tag to describe a given commit with
352 + too early, which has been adjusted.
353
354 --------------------------------------------------
355 [Stalled]
@@ -477,6 +371,7 @@ of the repositories listed at
371
372 What's the status of this one?
373 The tip two are still RFC.
374 + cf. <CABPp-BE_ktNmDB43N_qijzYzhXvsK8Fi7TJQ7goHu+MzGvdpBQ@mail.gmail.com>
375
376
377 * vn/reset-deleted-ita (2019-07-26) 1 commit
@@ -498,7 +393,50 @@ of the repositories listed at
393 --------------------------------------------------
394 [Cooking]
395
501 -* ds/sparse-add (2020-02-11) 4 commits
396 +* jk/object-filter-with-bitmap (2020-02-18) 16 commits
397 + (merged to 'next' on 2020-02-19 at d38487e23d)
398 + + rev-list --count: comment on the use of count_right++
399 + (merged to 'next' on 2020-02-16 at 42425c3658)
400 + + pack-objects: support filters with bitmaps
401 + + pack-bitmap: implement BLOB_LIMIT filtering
402 + + pack-bitmap: implement BLOB_NONE filtering
403 + + bitmap: add bitmap_unset() function
404 + + rev-list: use bitmap filters for traversal
405 + + pack-bitmap: basic noop bitmap filter infrastructure
406 + + rev-list: allow commit-only bitmap traversals
407 + + t5310: factor out bitmap traversal comparison
408 + + rev-list: allow bitmaps when counting objects
409 + + rev-list: make --count work with --objects
410 + + rev-list: factor out bitmap-optimized routines
411 + + pack-bitmap: refuse to do a bitmap traversal with pathspecs
412 + + rev-list: fallback to non-bitmap traversal when filtering
413 + + pack-bitmap: fix leak of haves/wants object lists
414 + + pack-bitmap: factor out type iterator initialization
415 +
416 + The object reachability bitmap machinery and the partial cloning
417 + machinery were not prepared to work well together, because some
418 + object-filtering criteria partial clones use inherently rely on
419 + object traversal, but the bitmap machinery is an optimization to
420 + bypass that object traversal. There however are some cases that
421 + they can work together, and they were taught about this case.
422 +
423 + Will merge to 'master'.
424 +
425 +
426 +* hw/advise-ng (2020-02-25) 3 commits
427 + - tag: use new advice API to check visibility
428 + - advice: revamp advise API
429 + - advice: extract vadvise() from advise()
430 +
431 + Revamping of the advise API to allow more systematic enumeration of
432 + advice knobs in the future.
433 +
434 + Getting there, but not quite.
435 +
436 +
437 +* ds/sparse-add (2020-02-20) 5 commits
438 + (merged to 'next' on 2020-02-25 at de68d14e77)
439 + + sparse-checkout: allow one-character directories in cone mode
440 (merged to 'next' on 2020-02-14 at 3799757bbe)
441 + sparse-checkout: work with Windows paths
442 + sparse-checkout: create 'add' subcommand
@@ -521,7 +459,7 @@ of the repositories listed at
459 cf. <xmqq36dtwcvw.fsf@gitster-ct.c.googlers.com>
460
461
524 -* hn/reftable (2020-02-10) 5 commits
462 +* hn/reftable (2020-02-18) 5 commits
463 . Reftable support for git-core
464 . Add reftable library
465 . refs: document how ref_iterator_advance_fn should handle symrefs
@@ -533,10 +471,11 @@ of the repositories listed at
471 has been implemented and integrated for improved performance and
472 atomicity.
473
536 - At v5.
474 + Temporarily ejected as this unfortunately conflicts with the
475 + SHA-256 topic.
476
477
539 -* es/bugreport (2020-02-14) 15 commits
478 +* es/bugreport (2020-02-20) 15 commits
479 - bugreport: summarize contents of alternates file
480 - bugreport: list contents of $OBJDIR/info
481 - bugreport: add packed object summary
@@ -555,8 +494,6 @@ of the repositories listed at
494
495 The "bugreport" tool.
496
558 - at v7.
559 -
497
498 * gs/commit-graph-path-filter (2020-02-12) 12 commits
499 - (bytesex breakage band-aid)
@@ -580,65 +517,27 @@ of the repositories listed at
517 Breakage due to byte-order dependency reported.
518
519
583 -* mr/bisect-in-c-1 (2020-02-10) 13 commits
584 - - bisect: libify `bisect_next_all`
585 - - bisect: libify `handle_bad_merge_base` and its dependents
586 - - bisect: libify `check_good_are_ancestors_of_bad` and its dependents
587 - - bisect: libify `check_merge_bases` and its dependents
588 - - bisect: libify `bisect_checkout`
589 - - bisect: libify `exit_if_skipped_commits` to `error_if_skipped*` and its dependents
590 - - bisect--helper: return error codes from `cmd_bisect__helper()`
591 - - bisect: add enum to represent bisect returning codes
592 - - bisect--helper: introduce new `decide_next()` function
593 - - run-command: make `exists_in_PATH()` non-static
594 - - bisect: use the standard 'if (!var)' way to check for 0
595 - - bisect--helper: change `retval` to `res`
596 - - bisect--helper: convert `vocab_*` char pointers to char arrays
520 +* mr/bisect-in-c-1 (2020-02-19) 12 commits
521 + (merged to 'next' on 2020-02-25 at 7e9e7950fd)
522 + + bisect: libify `bisect_next_all`
523 + + bisect: libify `handle_bad_merge_base` and its dependents
524 + + bisect: libify `check_good_are_ancestors_of_bad` and its dependents
525 + + bisect: libify `check_merge_bases` and its dependents
526 + + bisect: libify `bisect_checkout`
527 + + bisect: libify `exit_if_skipped_commits` to `error_if_skipped*` and its dependents
528 + + bisect--helper: return error codes from `cmd_bisect__helper()`
529 + + bisect: add enum to represent bisect returning codes
530 + + bisect--helper: introduce new `decide_next()` function
531 + + bisect: use the standard 'if (!var)' way to check for 0
532 + + bisect--helper: change `retval` to `res`
533 + + bisect--helper: convert `vocab_*` char pointers to char arrays
534
535 Underlying machinery of "git bisect--helper" is being refactored
536 into pieces that are more easily reused.
537
601 -
602 -* bw/remote-rename-update-config (2020-02-10) 6 commits
603 - (merged to 'next' on 2020-02-14 at 30b1a477de)
604 - + remote rename/remove: gently handle remote.pushDefault config
605 - + config: provide access to the current line number
606 - + remote rename/remove: handle branch.<name>.pushRemote config values
607 - + remote: clean-up config callback
608 - + remote: clean-up by returning early to avoid one indentation
609 - + pull --rebase/remote rename: document and honor single-letter abbreviations rebase types
610 -
611 - "git remote rename X Y" needs to adjust configuration variables
612 - (e.g. branch.<name>.remote) whose value used to be X to Y.
613 - branch.<name>.pushRemote is now also updated.
614 -
615 - Will merge to 'master'.
616 -
617 -
618 -* es/bright-colors (2020-02-11) 3 commits
619 - (merged to 'next' on 2020-02-14 at cc17dbc7e8)
620 - + color.c: alias RGB colors 8-15 to aixterm colors
621 - + color.c: support bright aixterm colors
622 - + color.c: refactor color_output arguments
623 -
624 - The basic 7 colors learned the brighter counterparts
625 - (e.g. "brightred").
626 -
538 Will merge to 'master'.
539
540
630 -* es/doc-mentoring (2020-02-14) 2 commits
631 - (merged to 'next' on 2020-02-17 at e3f3e316eb)
632 - + MyFirstContribution: rephrase contact info
633 - (merged to 'next' on 2020-02-05 at 3b05aabbcd)
634 - + MyFirstContribution: add avenues for getting help
635 -
636 - Doc for new contributors.
637 -
638 - Will merge to 'master'.
639 - cf. <xmqqr1yxnkab.fsf@gitster-ct.c.googlers.com>
640 -
641 -
541 * bk/p4-pre-edit-changelist (2020-02-14) 7 commits
542 - git-p4: add RCS keyword status message
543 - git-p4: add p4 submit hooks
@@ -667,7 +566,8 @@ of the repositories listed at
566 made its performance characteristics exponential wrt the depth of
567 the tree, which was corrected.
568
670 - Still RFC?
569 + Expecting an update.
570 + cf. <CABPp-BEnt4C_7XyxQKxk4aga=JjM9fXCE-7SFp7azO_v5-pQYw@mail.gmail.com>
571 cf. <pull.700.v2.git.git.1580495486.gitgitgadget@gmail.com>
572 cf. <CABPp-BF0SO92wxY-dM14Vxv6BGA5=T=CicdwbiaZ7c9w6-j2jQ@mail.gmail.com>
573
@@ -685,7 +585,7 @@ of the repositories listed at
585 cf. <20200212205028.GE4364@syl.local>
586
587
688 -* am/pathspec-f-f-more (2020-02-10) 8 commits
588 +* am/pathspec-f-f-more (2020-02-19) 8 commits
589 - stash push: support the --pathspec-from-file option
590 - stash: eliminate crude option parsing
591 - doc: stash: synchronize <pathspec> description
@@ -743,36 +643,54 @@ of the repositories listed at
643 Update "git p4" to work with Python 3.
644
645 Hold.
746 - Waiting for SoB on the last step.
646 + Waiting for SoB from Szeder on the last step.
647 cf. <xmqqk14qqj7n.fsf@gitster-ct.c.googlers.com>
648
649
650 * en/rebase-backend (2020-02-16) 20 commits
751 - - rebase: rename the two primary rebase backends
752 - - rebase: change the default backend from "am" to "merge"
753 - - rebase: make the backend configurable via config setting
754 - - rebase tests: repeat some tests using the merge backend instead of am
755 - - rebase tests: mark tests specific to the am-backend with --am
756 - - rebase: drop '-i' from the reflog for interactive-based rebases
757 - - git-prompt: change the prompt for interactive-based rebases
758 - - rebase: add an --am option
759 - - rebase: move incompatibility checks between backend options a bit earlier
760 - - git-rebase.txt: add more details about behavioral differences of backends
761 - - rebase: allow more types of rebases to fast-forward
762 - - t3432: make these tests work with either am or merge backends
763 - - rebase: fix handling of restrict_revision
764 - - rebase: make sure to pass along the quiet flag to the sequencer
765 - - rebase, sequencer: remove the broken GIT_QUIET handling
766 - - t3406: simplify an already simple test
767 - - rebase (interactive-backend): fix handling of commits that become empty
768 - - rebase (interactive-backend): make --keep-empty the default
769 - - t3404: directly test the behavior of interest
770 - - git-rebase.txt: update description of --allow-empty-message
651 + (merged to 'next' on 2020-02-22 at cae5eb0f18)
652 + + rebase: rename the two primary rebase backends
653 + + rebase: change the default backend from "am" to "merge"
654 + + rebase: make the backend configurable via config setting
655 + + rebase tests: repeat some tests using the merge backend instead of am
656 + + rebase tests: mark tests specific to the am-backend with --am
657 + + rebase: drop '-i' from the reflog for interactive-based rebases
658 + + git-prompt: change the prompt for interactive-based rebases
659 + + rebase: add an --am option
660 + + rebase: move incompatibility checks between backend options a bit earlier
661 + + git-rebase.txt: add more details about behavioral differences of backends
662 + + rebase: allow more types of rebases to fast-forward
663 + + t3432: make these tests work with either am or merge backends
664 + + rebase: fix handling of restrict_revision
665 + + rebase: make sure to pass along the quiet flag to the sequencer
666 + + rebase, sequencer: remove the broken GIT_QUIET handling
667 + + t3406: simplify an already simple test
668 + + rebase (interactive-backend): fix handling of commits that become empty
669 + + rebase (interactive-backend): make --keep-empty the default
670 + + t3404: directly test the behavior of interest
671 + + git-rebase.txt: update description of --allow-empty-message
672
673 "git rebase" has learned to use the sequencer backend by default,
674 while allowing "--am" option to go back to the traditional "am"
675 backend.
676
776 - The last step may be rushing things a bit and may want to be
777 - taken separately.
778 - cf. <pull.679.v5.git.git.1581802602.gitgitgadget@gmail.com>
677 + Will merge to 'master'.
678 + cf. <CABPp-BEnt4C_7XyxQKxk4aga=JjM9fXCE-7SFp7azO_v5-pQYw@mail.gmail.com>
679 +
680 +--------------------------------------------------
681 +[Discarded]
682 +
683 +* mt/describe-misnamed-annotated-tag (2020-02-18) 1 commit
684 + . describe: output tag's ref instead of embedded name
685 +
686 + When "git describe C" finds an annotated tag with tagname A to be
687 + the best name to explain commit C, and the tag is stored in a
688 + "wrong" place in the refs/tags hierarchy, e.g. refs/tags/B, the
689 + command gave a warning message but used A (not B) to describe C.
690 + If C is exactly at the tag, the desribe output would be "A", but
691 + "git rev-parse A^0" would not be equal as "git rev-parse C^0". The
692 + behaviour of the command has been changed to use "B" to describe C
693 + instead.
694 +
695 + This is not the only possible approach for the issue, and it is
696 + unknown if the proposed solution is the best one.