What's cooking (2020/01 #01)

Junio C Hamano committed Jan 2, 2020 at 15:02 UTC 6707daf50aa8285eef21e9cd527dec519e0474f6
1 file changed +339 -422
whats-cooking.txt
+339 -422
@@ -1,10 +1,10 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Dec 2019, #05; Thu, 26)
4 -X-master-at: 0a76bd7381ec0dbb7c43776eb6d1ac906bca29e6
5 -X-next-at: ca9f1ec99ff3ed584eec58c085a342c9c37d2919
3 +Subject: What's cooking in git.git (Jan 2020, #01; Thu, 2)
4 +X-master-at: 8679ef24ed64018bb62170c43ce73e0261c0600a
5 +X-next-at: 88dfdc41939891b16a5f8d00053e9c81d6d73f4e
6
7 -What's cooking in git.git (Dec 2019, #05; Thu, 26)
7 +What's cooking in git.git (Jan 2020, #01; Thu, 2)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
@@ -12,7 +12,8 @@ Here are the topics that have been cooking. Commits prefixed with
12 '+' are in 'next'. The ones marked with '.' do not appear in any of
13 the integration branches, but I am still holding onto them.
14
15 -The early preview for the upcoming Git 2.25 has been tagged.
15 +The first release candidate for this cycle v2.25.0-rc1 has been
16 +tagged.
17
18 You can find the changes described here in the integration branches
19 of the repositories listed at
@@ -22,340 +23,19 @@ of the repositories listed at
23 --------------------------------------------------
24 [Graduated to "master"]
25
25 -* am/pathspec-f-f-checkout (2019-12-04) 7 commits
26 - (merged to 'next' on 2019-12-10 at 6b018bd997)
27 - + checkout, restore: support the --pathspec-from-file option
28 - + doc: restore: synchronize <pathspec> description
29 - + doc: checkout: synchronize <pathspec> description
30 - + doc: checkout: fix broken text reference
31 - + doc: checkout: remove duplicate synopsis
32 - + add: support the --pathspec-from-file option
33 - + cmd_add: prepare for next patch
34 -
35 - A few more commands learned the "--pathspec-from-file" command line
36 - option.
37 -
38 -
39 -* am/pathspec-from-file (2019-12-18) 1 commit
40 - (merged to 'next' on 2019-12-19 at e250cc9b88)
41 - + commit: forbid --pathspec-from-file --all
42 -
43 - An earlier series to teach "--pathspec-from-file" to "git commit"
44 - forgot to make the option incompatible with "--all", which has been
45 - corrected.
46 -
47 -
48 -* dl/format-patch-notes-config-fixup (2019-12-18) 8 commits
49 - (merged to 'next' on 2019-12-19 at 1abc6941e0)
50 - + notes.h: fix typos in comment
51 - (merged to 'next' on 2019-12-16 at e4da5b93bb)
52 - + notes: break set_display_notes() into smaller functions
53 - + config/format.txt: clarify behavior of multiple format.notes
54 - (merged to 'next' on 2019-12-10 at 2d8830090f)
55 - + format-patch: move git_config() before repo_init_revisions()
56 - + format-patch: use --notes behavior for format.notes
57 - + notes: extract logic into set_display_notes()
58 - + notes: create init_display_notes() helper
59 - + notes: rename to load_display_notes()
60 -
61 - "git format-patch" can take a set of configured format.notes values
62 - to specify which notes refs to use in the log message part of the
63 - output. The behaviour of this was not consistent with multiple
64 - --notes command line options, which has been corrected.
65 -
66 -
67 -* ds/sparse-cone (2019-12-20) 21 commits
68 - (merged to 'next' on 2019-12-20 at 4f33a10613)
69 - + sparse-checkout: improve OS ls compatibility
70 - (merged to 'next' on 2019-12-16 at c840c1d816)
71 - + sparse-checkout: respect core.ignoreCase in cone mode
72 - + sparse-checkout: check for dirty status
73 - + sparse-checkout: update working directory in-process for 'init'
74 - + sparse-checkout: cone mode should not interact with .gitignore
75 - + sparse-checkout: write using lockfile
76 - + sparse-checkout: use in-process update for disable subcommand
77 - + sparse-checkout: update working directory in-process
78 - + sparse-checkout: sanitize for nested folders
79 - + unpack-trees: add progress to clear_ce_flags()
80 - + unpack-trees: hash less in cone mode
81 - + sparse-checkout: init and set in cone mode
82 - + sparse-checkout: use hashmaps for cone patterns
83 - + sparse-checkout: add 'cone' mode
84 - + trace2: add region in clear_ce_flags
85 - + sparse-checkout: create 'disable' subcommand
86 - + sparse-checkout: add '--stdin' option to set subcommand
87 - + sparse-checkout: 'set' subcommand
88 - + clone: add --sparse mode
89 - + sparse-checkout: create 'init' subcommand
90 - + sparse-checkout: create builtin with 'list' subcommand
91 -
92 - Management of sparsely checked-out working tree has gained a
93 - dedicated "sparse-checkout" command.
94 -
95 -
96 -* en/fill-directory-fixes (2019-12-20) 9 commits
97 - (merged to 'next' on 2019-12-20 at 671cf755f4)
98 - + dir.c: use st_add3() for allocation size
99 - (merged to 'next' on 2019-12-19 at 80ad3150d6)
100 - + dir: consolidate similar code in treat_directory()
101 - + dir: synchronize treat_leading_path() and read_directory_recursive()
102 - + dir: fix checks on common prefix directory
103 - + dir: break part of read_directory_recursive() out for reuse
104 - + dir: exit before wildcard fall-through if there is no wildcard
105 - + dir: remove stray quote character in comment
106 - + Revert "dir.c: make 'git-status --ignored' work within leading directories"
107 - + t3011: demonstrate directory traversal failures
108 -
109 - Assorted fixes to the directory traversal API.
110 -
111 -
112 -* ja/doc-markup-cleanup (2019-12-13) 2 commits
113 - (merged to 'next' on 2019-12-19 at 61abb4a06d)
114 - + doc: indent multi-line items in list
115 - + doc: remove non pure ASCII characters
116 -
117 - Doc cleanup.
118 -
119 -
120 -* jc/drop-gen-hdrs (2019-12-13) 1 commit
121 - (merged to 'next' on 2019-12-19 at 4867cc601b)
122 - + Makefile: drop GEN_HDRS
123 -
124 - Code cleanup.
125 -
126 -
127 -* js/add-p-in-c (2019-12-13) 19 commits
128 - (merged to 'next' on 2019-12-19 at c0deed90ab)
129 - + built-in add -p: show helpful hint when nothing can be staged
130 - + built-in add -p: only show the applicable parts of the help text
131 - + built-in add -p: implement the 'q' ("quit") command
132 - + built-in add -p: implement the '/' ("search regex") command
133 - + built-in add -p: implement the 'g' ("goto") command
134 - + built-in add -p: implement hunk editing
135 - + strbuf: add a helper function to call the editor "on an strbuf"
136 - + built-in add -p: coalesce hunks after splitting them
137 - + built-in add -p: implement the hunk splitting feature
138 - + built-in add -p: show different prompts for mode changes and deletions
139 - + built-in app -p: allow selecting a mode change as a "hunk"
140 - + built-in add -p: handle deleted empty files
141 - + built-in add -p: support multi-file diffs
142 - + built-in add -p: offer a helpful error message when hunk navigation failed
143 - + built-in add -p: color the prompt and the help text
144 - + built-in add -p: adjust hunk headers as needed
145 - + built-in add -p: show colored hunks by default
146 - + built-in add -i: wire up the new C code for the `patch` command
147 - + built-in add -i: start implementing the `patch` functionality in C
148 - (this branch is used by js/patch-mode-in-others-in-c.)
149 -
150 - The effort to move "git-add--interactive" to C continues.
151 -
152 -
153 -* ln/userdiff-elixir (2019-12-13) 1 commit
154 - (merged to 'next' on 2019-12-17 at fcd1f5f18b)
155 - + userdiff: remove empty subexpression from elixir regex
156 -
157 - Hotfix.
158 -
159 -
160 -* mr/bisect-save-pointer-to-const-string (2019-12-17) 1 commit
161 - (merged to 'next' on 2019-12-19 at 03bb33ae74)
162 - + bisect--helper: convert `*_warning` char pointers to char arrays.
163 -
164 - Code cleanup.
165 -
166 -
167 -* mr/bisect-use-after-free (2019-12-11) 1 commit
168 - (merged to 'next' on 2019-12-17 at 64cd5c4622)
169 - + bisect--helper: avoid use-after-free
170 -
171 - Use-after-free fix.
172 -
173 -
174 -* pb/submodule-doc-xref (2019-12-11) 1 commit
175 - (merged to 'next' on 2019-12-19 at 3b52089f77)
176 - + gitmodules: link to gitsubmodules guide
177 -
178 - Doc update.
179 -
180 -
181 -* ra/t5150-depends-on-perl (2019-11-27) 1 commit
182 - (merged to 'next' on 2019-12-16 at 69bb280692)
183 - + t5150: skip request-pull test if Perl is disabled
184 -
185 - Some Porcelain commands are written in Perl, and tests on them are
186 - expected not to work when the platform lacks a working perl.
187 -
188 -
189 -* rb/p4-lfs (2019-12-11) 1 commit
190 - (merged to 'next' on 2019-12-19 at 0e6e76a524)
191 - + git-p4: honor lfs.storage configuration variable
192 -
193 - "git p4" used to ignore lfs.storage configuration variable, which
194 - has been corrected.
195 -
196 -
197 -* rs/ref-read-cleanup (2019-12-11) 2 commits
198 - (merged to 'next' on 2019-12-19 at 9eb61e8d53)
199 - + remote: pass NULL to read_ref_full() because object ID is not needed
200 - + refs: pass NULL to refs_read_ref_full() because object ID is not needed
201 -
202 - Code cleanup.
203 -
204 -
205 -* rs/test-cleanup (2019-12-18) 5 commits
206 - (merged to 'next' on 2019-12-19 at 116f80bacd)
207 - + t6030: don't create unused file
208 - + t5580: don't create unused file
209 - + t3501: don't create unused file
210 - + t7004: don't create unused file
211 - + t4256: don't create unused file
212 -
213 - Test cleanup.
214 -
215 -
216 -* rs/xdiff-ignore-ws-w-func-context (2019-12-19) 1 commit
217 - (merged to 'next' on 2019-12-19 at 9e0cb7aa55)
218 - + t4015: improve coverage of function context test
219 -
220 - Extend test coverage for a recent fix.
221 -
222 -
223 -* sg/name-rev-wo-recursion (2019-12-09) 14 commits
224 - (merged to 'next' on 2019-12-16 at ce57cd054f)
225 - + name-rev: cleanup name_ref()
226 - + name-rev: eliminate recursion in name_rev()
227 - + name-rev: use 'name->tip_name' instead of 'tip_name'
228 - + name-rev: drop name_rev()'s 'generation' and 'distance' parameters
229 - + name-rev: restructure creating/updating 'struct rev_name' instances
230 - + name-rev: restructure parsing commits and applying date cutoff
231 - + name-rev: pull out deref handling from the recursion
232 - + name-rev: extract creating/updating a 'struct name_rev' into a helper
233 - + t6120: add a test to cover inner conditions in 'git name-rev's name_rev()
234 - + name-rev: use sizeof(*ptr) instead of sizeof(type) in allocation
235 - + name-rev: avoid unnecessary cast in name_ref()
236 - + name-rev: use strbuf_strip_suffix() in get_rev_name()
237 - + t6120-describe: modernize the 'check_describe' helper
238 - + t6120-describe: correct test repo history graph in comment
239 -
240 - Redo "git name-rev" to avoid recursive calls.
241 -
242 ---------------------------------------------------
243 -[New Topics]
244 -
245 -* hw/commit-advise-while-rejecting (2019-12-19) 1 commit
246 - - commit: honor advice.statusHints when rejecting an empty commit
247 -
248 - "git commit" gives output similar to "git status" when there is
249 - nothing to commit, but without honoring the advise.statusHints
250 - configuration variable, which has been corrected.
251 -
252 -
253 -* yz/p4-py3 (2019-12-17) 14 commits
254 - - ci: also run linux-gcc pipeline with python3.5 environment
255 - - git-p4: use python3's input() everywhere
256 - - git-p4: simplify regex pattern generation for parsing diff-tree
257 - - git-p4: use dict.items() iteration for python3 compatibility
258 - - git-p4: use functools.reduce instead of reduce
259 - - git-p4: fix freezing while waiting for fast-import progress
260 - - git-p4: use marshal format version 2 when sending to p4
261 - - git-p4: open .gitp4-usercache.txt in text mode
262 - - git-p4: convert path to unicode before processing them
263 - - git-p4: encode/decode communication with git for python3
264 - - git-p4: encode/decode communication with p4 for python3
265 - - git-p4: remove string type aliasing
266 - - git-p4: change the expansion test from basestring to list
267 - - git-p4: make python2.7 the oldest supported version
268 -
269 - Update "git p4" to work with Python 3.
270 -
271 -
272 -* hi/gpg-mintrustlevel (2019-12-24) 1 commit
273 - - gpg-interface: add minTrustLevel as a configuration option
274 -
275 - gpg.minTrustLevel configuration variable has been introduced to
276 - tell various signature verification codepaths the required minimum
277 - trust level.
278 -
279 - Will merge to 'next'.
280 -
281 -
282 -* sg/completion-worktree (2019-12-19) 6 commits
283 - (merged to 'next' on 2019-12-25 at 42c895ab3b)
284 - + completion: list paths and refs for 'git worktree add'
285 - + completion: list existing working trees for 'git worktree' subcommands
286 - + completion: simplify completing 'git worktree' subcommands and options
287 - + completion: return the index of found word from __git_find_on_cmdline()
288 - + completion: clean up the __git_find_on_cmdline() helper function
289 - + t9902-completion: add tests for the __git_find_on_cmdline() helper
290 -
291 - The command line completion (in contrib/) learned to complete
292 - subcommands and arguments to "git worktree".
293 -
294 - Will cook in 'next'.
295 -
296 -
297 -* dl/credential-netrc (2019-12-20) 2 commits
298 - (merged to 'next' on 2019-12-25 at 1fd27f81ac)
299 - + contrib/credential/netrc: work outside a repo
300 - + contrib/credential/netrc: make PERL_PATH configurable
301 -
302 - Sample credential helper for using .netrc has been updated to work
303 - out of the box.
304 -
305 - Will cook in 'next'.
306 -
307 -
308 -* dl/test-must-fail-fixes (2019-12-20) 15 commits
309 - (merged to 'next' on 2019-12-25 at 3ef7c70bc5)
310 - + t1507: inline full_name()
311 - + t1507: run commands within test_expect_success
312 - + t1507: stop losing return codes of git commands
313 - + t1501: remove use of `test_might_fail cp`
314 - + t1409: use test_path_is_missing()
315 - + t1409: let sed open its own input file
316 - + t1307: reorder `nongit test_must_fail`
317 - + t1306: convert `test_might_fail rm` to `rm -f`
318 - + t0020: use ! check_packed_refs_marked
319 - + t0020: don't use `test_must_fail has_cr`
320 - + t0003: don't use `test_must_fail attr_check`
321 - + t0003: use test_must_be_empty()
322 - + t0003: use named parameters in attr_check()
323 - + t0000: replace test_must_fail with run_sub_test_lib_test_err()
324 - + t/lib-git-p4: use test_path_is_missing()
325 -
326 - Test clean-up.
26 +* bk/p4-misc-usability (2019-12-16) 2 commits
27 + (merged to 'next' on 2019-12-25 at b4789bcb08)
28 + + git-p4: show detailed help when parsing options fail
29 + + git-p4: yes/no prompts should sanitize user text
30 + (this branch is used by bk/p4-exception-cleanup.)
31
328 - Will cook in 'next'.
32 + Miscellaneous small UX improvements on "git-p4".
33
34
35 * em/freebsd-cirrus-ci (2019-12-20) 1 commit
36 (merged to 'next' on 2019-12-25 at b6b609fbf0)
37 + CI: add FreeBSD CI support via Cirrus-CI
38
335 - Will merge to 'master'.
336 -
337 -
338 -* en/rebase-backend (2019-12-26) 15 commits
339 - - rebase: change the default backend from "am" to "merge"
340 - - rebase: make the backend configurable via config setting
341 - - rebase tests: repeat some tests using the merge backend instead of am
342 - - rebase tests: mark tests specific to the am-backend with --am
343 - - git-prompt: change the prompt for interactive-based rebases
344 - - rebase: add an --am option
345 - - rebase: move incompatibility checks between backend options a bit earlier
346 - - git-rebase.txt: add more details about behavioral differences of backends
347 - - rebase: allow more types of rebases to fast-forward
348 - - t3432: make these tests work with either am or merge backends
349 - - rebase: fix handling of restrict_revision
350 - - rebase: make sure to pass along the quiet flag to the sequencer
351 - - rebase, sequencer: remove the broken GIT_QUIET handling
352 - - t3406: simplify an already simple test
353 - - rebase: extend the options for handling of empty commits
354 -
355 - "git rebase" has learned to use the sequencer backend by default,
356 - while allowing "--am" option to go back to the traditional "am"
357 - backend.
358 -
39
40 * en/rebase-signoff-fix (2019-12-20) 1 commit
41 (merged to 'next' on 2019-12-25 at 96d84920b5)
@@ -364,103 +44,134 @@ of the repositories listed at
44 "git rebase --signoff" stopped working when the command was written
45 in C, which has been corrected.
46
367 - Will merge to 'master'.
47
48 +* js/mingw-reserved-filenames (2019-12-21) 2 commits
49 + (merged to 'next' on 2019-12-30 at 5b814fd785)
50 + + mingw: refuse paths containing reserved names
51 + + mingw: short-circuit the conversion of `/dev/null` to UTF-16
52
370 -* bc/hash-independent-tests-part-7 (2019-12-24) 20 commits
371 - - t5604: make hash independent
372 - - t5601: switch into repository to hash object
373 - - t5562: use $ZERO_OID
374 - - t5540: make hash size independent
375 - - t5537: make hash size independent
376 - - t5530: compute results based on object length
377 - - t5512: abstract away SHA-1-specific constants
378 - - t5510: make hash size independent
379 - - t5504: make hash algorithm independent
380 - - t5324: make hash size independent
381 - - t5319: make test work with SHA-256
382 - - t5319: change invalid offset for SHA-256 compatibility
383 - - t5318: update for SHA-256
384 - - t4300: abstract away SHA-1-specific constants
385 - - t4204: make hash size independent
386 - - t4202: abstract away SHA-1-specific constants
387 - - t4200: make hash size independent
388 - - t4134: compute appropriate length constant
389 - - t4066: compute index line in diffs
390 - - t4054: make hash-size independent
53 + Forbid pathnames that the platform's filesystem cannot represent on
54 + MinGW.
55
392 - Preparation of test scripts for the day when the object names will
393 - use SHA-256 continues.
56
395 - Will merge to 'next'.
57 +* js/use-test-tool-on-path (2019-12-27) 1 commit
58 + (merged to 'next' on 2019-12-30 at fe59c1996d)
59 + + t3008: find test-tool through path lookup
60
61 + Test fix.
62
398 -* js/mingw-reserved-filenames (2019-12-21) 2 commits
399 - - mingw: refuse paths containing reserved names
400 - - mingw: short-circuit the conversion of `/dev/null` to UTF-16
63 +--------------------------------------------------
64 +[New Topics]
65
402 - Forbid pathnames that the platform's filesystem cannot represent on
403 - MinGW.
66 +* dl/merge-autostash (2019-12-26) 17 commits
67 + - pull: pass --autostash to merge
68 + - t5520: make test_pull_autostash() accept expect_parent_num
69 + - merge: teach --autostash option
70 + - sequencer: unlink autostash in apply_autostash()
71 + - sequencer: extract perform_autostash() from rebase
72 + - rebase: generify create_autostash()
73 + - rebase: extract create_autostash()
74 + - reset: extract reset_head() from rebase
75 + - rebase: generify reset_head()
76 + - rebase: use apply_autostash() from sequencer.c
77 + - sequencer: make apply_rebase() accept a path
78 + - rebase: use read_oneliner()
79 + - sequencer: make read_oneliner() extern
80 + - sequencer: configurably warn on non-existent files
81 + - sequencer: use file strbuf for read_oneliner()
82 + - t7600: use test_write_lines()
83 + - Makefile: alphabetically sort += lists
84 +
85 + "git merge" learns the "--autostash" option.
86 +
87 +
88 +* dl/test-must-fail-fixes-2 (2019-12-27) 16 commits
89 + - t4124: let sed open its own files
90 + - t4124: only mark git command with test_must_fail
91 + - t3507: use test_path_is_missing()
92 + - t3507: fix indentation
93 + - t3504: do check for conflict marker after failed cherry-pick
94 + - t3419: stop losing return code of git command
95 + - t3415: increase granularity of test_auto_{fixup,squash}()
96 + - t3415: stop losing return codes of git commands
97 + - t3310: extract common no_notes_merge_left()
98 + - t3030: use test_path_is_missing()
99 + - t2018: replace "sha" with "oid"
100 + - t2018: don't lose return code of git commands
101 + - t2018: teach do_checkout() to accept `!` arg
102 + - t2018: use test_must_fail for failing git commands
103 + - t2018: add space between function name and ()
104 + - t2018: remove trailing space from test description
105 +
106 + Test updates.
107 +
108 + Not quite.
109 + cf. <CAPig+cQo1nbRo=n8-XOtycGijj3k1y_Zozu7VW-WTSBB9LncqQ@mail.gmail.com>
110 + cf. <86lfqt36ah.fsf@gmail.com>
111 +
112 +
113 +* jn/promote-proto2-to-default (2019-12-27) 5 commits
114 + - fetch: default to protocol version 2
115 + - protocol test: let protocol.version override GIT_TEST_PROTOCOL_VERSION
116 + - test: request GIT_TEST_PROTOCOL_VERSION=0 when appropriate
117 + - config doc: protocol.version is not experimental
118 + - fetch test: use more robust test for filtered objects
119 + (this branch uses jn/test-lint-one-shot-export-to-shell-function.)
120 +
121 + The transport protocol version 2 becomes the default one.
122 +
123 +
124 +* ds/sparse-list-in-cone-mode (2019-12-30) 2 commits
125 + - sparse-checkout: document interactions with submodules
126 + - sparse-checkout: list directories in cone mode
127 +
128 + "git sparse-checkout list" subcommand learned to give its output in
129 + a more concise form when the "cone" mode is in effect.
130
405 - Will merge to 'next' and then to 'master'.
131 + Will merge to 'next'.
132
133
408 -* bk/p4-exception-cleanup (2019-12-16) 2 commits
409 - - git-p4: failure because of RCS keywords should show help
410 - - git-p4: wrap patchRCSKeywords test to revert changes on failure
411 - (this branch uses bk/p4-misc-usability.)
134 +* am/test-pathspec-f-f-error-cases (2020-01-02) 1 commit
135 + - t: add tests for error conditions with --pathspec-from-file
136
137 + More tests.
138
414 -* ew/packfile-syscall-optim (2019-12-26) 2 commits
415 - - packfile: replace lseek+read with pread
416 - - packfile: remove redundant fcntl F_GETFD/F_SETFD
139 + Will merge to 'next'.
140
418 - Code cleanup.
141
420 - Will merge to 'next'.
142 +* ds/sparse-cone (2020-01-02) 1 commit
143 + - sparse-checkout: use extern for global variables
144
145 + Code cleanup.
146
423 -* jn/test-lint-one-shot-export-to-shell-function (2019-12-26) 2 commits
424 - - t/check-non-portable-shell: detect "FOO= shell_func", too
425 - - fetch test: avoid use of "VAR= cmd" with a shell function
426 - (this branch is used by jn/promote-proto2-to-default.)
147 + Will merge to 'next' and then to 'master'.
148
428 - The test-lint machinery knew to check "VAR=VAL shell_function"
429 - construct, but did not check "VAR= shell_funciton", which has been
430 - corrected.
149
432 - Will merge to 'next'.
150 +* en/merge-recursive-oid-eq-simplify (2020-01-02) 1 commit
151 + - merge-recursive: remove unnecessary oid_eq function
152
153 + Code cleanup.
154
435 -* js/add-p-leftover-bits (2019-12-24) 9 commits
436 - - ci: include the built-in `git add -i` in the `linux-gcc` job
437 - - built-in add -p: handle Escape sequences more efficiently
438 - - built-in add -p: handle Escape sequences in interactive.singlekey mode
439 - - built-in add -p: respect the `interactive.singlekey` config setting
440 - - terminal: add a new function to read a single keystroke
441 - - terminal: accommodate Git for Windows' default terminal
442 - - terminal: make the code of disable_echo() reusable
443 - - built-in add -p: handle diff.algorithm
444 - - built-in add -p: support interactive.diffFilter
445 - (this branch uses js/patch-mode-in-others-in-c.)
155 + Will merge to 'next'.
156
157
448 -* js/mingw-loosen-overstrict-tree-entry-checks (2019-12-26) 1 commit
449 - - mingw: only test index entries for backslashes, not tree entries
158 +* jt/sha1-file-remove-oi-skip-cached (2020-01-02) 1 commit
159 + - sha1-file: remove OBJECT_INFO_SKIP_CACHED
160
451 - An earlier update to Git for Windows declared that a tree object is
452 - invalid if it has a path component with backslash in it, which was
453 - overly strict, which has been corrected. The only protection the
454 - Windows users need is to prevent such path (or any path that their
455 - filesystem cannot check out) from entering the index.
161 + has_object_file() said "no" given an object registered to the
162 + system via pretend_object_file(), making it inconsistent with
163 + read_object_file(), causing lazy fetch to attempt fetching an
164 + empty tree from promisor remotes.
165
166 + Will merge to 'next'.
167
168
459 -* pb/clarify-line-log-doc (2019-12-26) 2 commits
460 - - doc: log, gitk: line-log arguments must exist in starting revision
461 - - doc: log, gitk: document accepted line-log diff formats
169 +* ds/commit-graph-set-size-mult (2020-01-02) 1 commit
170 + - commit-graph: prefer default size_mult when given zero
171
463 - Doc update.
172 + The code to write split commit-graph file(s) upon fetching computed
173 + bogus value for the parameter used in splitting the resulting
174 + files, which has been corrected.
175
176 Will merge to 'next'.
177
@@ -608,6 +319,220 @@ of the repositories listed at
319 --------------------------------------------------
320 [Cooking]
321
322 +* hw/commit-advise-while-rejecting (2019-12-19) 1 commit
323 + (merged to 'next' on 2019-12-30 at e26700d582)
324 + + commit: honor advice.statusHints when rejecting an empty commit
325 +
326 + "git commit" gives output similar to "git status" when there is
327 + nothing to commit, but without honoring the advise.statusHints
328 + configuration variable, which has been corrected.
329 +
330 + Will cook in 'next'.
331 +
332 +
333 +* yz/p4-py3 (2019-12-17) 14 commits
334 + (merged to 'next' on 2019-12-30 at cd67de932d)
335 + + ci: also run linux-gcc pipeline with python3.5 environment
336 + + git-p4: use python3's input() everywhere
337 + + git-p4: simplify regex pattern generation for parsing diff-tree
338 + + git-p4: use dict.items() iteration for python3 compatibility
339 + + git-p4: use functools.reduce instead of reduce
340 + + git-p4: fix freezing while waiting for fast-import progress
341 + + git-p4: use marshal format version 2 when sending to p4
342 + + git-p4: open .gitp4-usercache.txt in text mode
343 + + git-p4: convert path to unicode before processing them
344 + + git-p4: encode/decode communication with git for python3
345 + + git-p4: encode/decode communication with p4 for python3
346 + + git-p4: remove string type aliasing
347 + + git-p4: change the expansion test from basestring to list
348 + + git-p4: make python2.7 the oldest supported version
349 +
350 + Update "git p4" to work with Python 3.
351 +
352 + Will cook in 'next'.
353 +
354 +
355 +* hi/gpg-mintrustlevel (2019-12-27) 1 commit
356 + (merged to 'next' on 2019-12-30 at 6c790280d2)
357 + + gpg-interface: add minTrustLevel as a configuration option
358 +
359 + gpg.minTrustLevel configuration variable has been introduced to
360 + tell various signature verification codepaths the required minimum
361 + trust level.
362 +
363 + Will cook in 'next'.
364 +
365 +
366 +* sg/completion-worktree (2019-12-19) 6 commits
367 + (merged to 'next' on 2019-12-25 at 42c895ab3b)
368 + + completion: list paths and refs for 'git worktree add'
369 + + completion: list existing working trees for 'git worktree' subcommands
370 + + completion: simplify completing 'git worktree' subcommands and options
371 + + completion: return the index of found word from __git_find_on_cmdline()
372 + + completion: clean up the __git_find_on_cmdline() helper function
373 + + t9902-completion: add tests for the __git_find_on_cmdline() helper
374 +
375 + The command line completion (in contrib/) learned to complete
376 + subcommands and arguments to "git worktree".
377 +
378 + Will cook in 'next'.
379 +
380 +
381 +* dl/credential-netrc (2019-12-20) 2 commits
382 + (merged to 'next' on 2019-12-25 at 1fd27f81ac)
383 + + contrib/credential/netrc: work outside a repo
384 + + contrib/credential/netrc: make PERL_PATH configurable
385 +
386 + Sample credential helper for using .netrc has been updated to work
387 + out of the box.
388 +
389 + Will cook in 'next'.
390 +
391 +
392 +* dl/test-must-fail-fixes (2019-12-20) 15 commits
393 + (merged to 'next' on 2019-12-25 at 3ef7c70bc5)
394 + + t1507: inline full_name()
395 + + t1507: run commands within test_expect_success
396 + + t1507: stop losing return codes of git commands
397 + + t1501: remove use of `test_might_fail cp`
398 + + t1409: use test_path_is_missing()
399 + + t1409: let sed open its own input file
400 + + t1307: reorder `nongit test_must_fail`
401 + + t1306: convert `test_might_fail rm` to `rm -f`
402 + + t0020: use ! check_packed_refs_marked
403 + + t0020: don't use `test_must_fail has_cr`
404 + + t0003: don't use `test_must_fail attr_check`
405 + + t0003: use test_must_be_empty()
406 + + t0003: use named parameters in attr_check()
407 + + t0000: replace test_must_fail with run_sub_test_lib_test_err()
408 + + t/lib-git-p4: use test_path_is_missing()
409 +
410 + Test clean-up.
411 +
412 + Will cook in 'next'.
413 +
414 +
415 +* en/rebase-backend (2019-12-26) 15 commits
416 + (merged to 'next' on 2019-12-30 at 5b58e268d6)
417 + + rebase: change the default backend from "am" to "merge"
418 + + rebase: make the backend configurable via config setting
419 + + rebase tests: repeat some tests using the merge backend instead of am
420 + + rebase tests: mark tests specific to the am-backend with --am
421 + + git-prompt: change the prompt for interactive-based rebases
422 + + rebase: add an --am option
423 + + rebase: move incompatibility checks between backend options a bit earlier
424 + + git-rebase.txt: add more details about behavioral differences of backends
425 + + rebase: allow more types of rebases to fast-forward
426 + + t3432: make these tests work with either am or merge backends
427 + + rebase: fix handling of restrict_revision
428 + + rebase: make sure to pass along the quiet flag to the sequencer
429 + + rebase, sequencer: remove the broken GIT_QUIET handling
430 + + t3406: simplify an already simple test
431 + + rebase: extend the options for handling of empty commits
432 +
433 + "git rebase" has learned to use the sequencer backend by default,
434 + while allowing "--am" option to go back to the traditional "am"
435 + backend.
436 +
437 + Will cook in 'next'.
438 +
439 +
440 +* bc/hash-independent-tests-part-7 (2019-12-24) 20 commits
441 + (merged to 'next' on 2019-12-30 at 0eedb894ba)
442 + + t5604: make hash independent
443 + + t5601: switch into repository to hash object
444 + + t5562: use $ZERO_OID
445 + + t5540: make hash size independent
446 + + t5537: make hash size independent
447 + + t5530: compute results based on object length
448 + + t5512: abstract away SHA-1-specific constants
449 + + t5510: make hash size independent
450 + + t5504: make hash algorithm independent
451 + + t5324: make hash size independent
452 + + t5319: make test work with SHA-256
453 + + t5319: change invalid offset for SHA-256 compatibility
454 + + t5318: update for SHA-256
455 + + t4300: abstract away SHA-1-specific constants
456 + + t4204: make hash size independent
457 + + t4202: abstract away SHA-1-specific constants
458 + + t4200: make hash size independent
459 + + t4134: compute appropriate length constant
460 + + t4066: compute index line in diffs
461 + + t4054: make hash-size independent
462 +
463 + Preparation of test scripts for the day when the object names will
464 + use SHA-256 continues.
465 +
466 + Will cook in 'next'.
467 +
468 +
469 +* bk/p4-exception-cleanup (2019-12-16) 2 commits
470 + - git-p4: failure because of RCS keywords should show help
471 + - git-p4: wrap patchRCSKeywords test to revert changes on failure
472 +
473 + Will discard for now.
474 +
475 +
476 +* ew/packfile-syscall-optim (2019-12-26) 2 commits
477 + (merged to 'next' on 2019-12-30 at ada15abf22)
478 + + packfile: replace lseek+read with pread
479 + + packfile: remove redundant fcntl F_GETFD/F_SETFD
480 +
481 + Code cleanup.
482 +
483 + Will cook in 'next'.
484 +
485 +
486 +* jn/test-lint-one-shot-export-to-shell-function (2019-12-27) 3 commits
487 + (merged to 'next' on 2019-12-30 at d08f039473)
488 + + fetch test: mark test of "skipping" haves as v0-only
489 + + t/check-non-portable-shell: detect "FOO= shell_func", too
490 + + fetch test: avoid use of "VAR= cmd" with a shell function
491 + (this branch is used by jn/promote-proto2-to-default.)
492 +
493 + The test-lint machinery knew to check "VAR=VAL shell_function"
494 + construct, but did not check "VAR= shell_funciton", which has been
495 + corrected.
496 +
497 + Will cook in 'next'.
498 +
499 +
500 +* js/add-p-leftover-bits (2019-12-24) 9 commits
501 + - ci: include the built-in `git add -i` in the `linux-gcc` job
502 + - built-in add -p: handle Escape sequences more efficiently
503 + - built-in add -p: handle Escape sequences in interactive.singlekey mode
504 + - built-in add -p: respect the `interactive.singlekey` config setting
505 + - terminal: add a new function to read a single keystroke
506 + - terminal: accommodate Git for Windows' default terminal
507 + - terminal: make the code of disable_echo() reusable
508 + - built-in add -p: handle diff.algorithm
509 + - built-in add -p: support interactive.diffFilter
510 + (this branch uses js/patch-mode-in-others-in-c.)
511 +
512 +
513 +* js/mingw-loosen-overstrict-tree-entry-checks (2020-01-02) 1 commit
514 + (merged to 'next' on 2020-01-02 at 3088a0ccf1)
515 + + mingw: only test index entries for backslashes, not tree entries
516 +
517 + An earlier update to Git for Windows declared that a tree object is
518 + invalid if it has a path component with backslash in it, which was
519 + overly strict, which has been corrected. The only protection the
520 + Windows users need is to prevent such path (or any path that their
521 + filesystem cannot check out) from entering the index.
522 +
523 + Will merge to 'master'.
524 +
525 +
526 +* pb/clarify-line-log-doc (2019-12-26) 2 commits
527 + (merged to 'next' on 2019-12-30 at 7a4e15a436)
528 + + doc: log, gitk: line-log arguments must exist in starting revision
529 + + doc: log, gitk: document accepted line-log diff formats
530 +
531 + Doc update.
532 +
533 + Will cook in 'next'.
534 +
535 +
536 * pw/advise-rebase-skip (2019-12-06) 9 commits
537 - rebase -i: leave CHERRY_PICK_HEAD when there are conflicts
538 - rebase: fix advice when a fixup creates an empty commit
@@ -623,34 +548,24 @@ of the repositories listed at
548 or amending during an interrupted cherry-pick was broken during the
549 rewrite of "git rebase" in C, which has been corrected.
550
626 - Needs review.
551 + What's the status of this one?
552 The tip two are still RFC.
553
554
630 -* bk/p4-misc-usability (2019-12-16) 2 commits
631 - (merged to 'next' on 2019-12-25 at b4789bcb08)
632 - + git-p4: show detailed help when parsing options fail
633 - + git-p4: yes/no prompts should sanitize user text
634 - (this branch is used by bk/p4-exception-cleanup.)
635 -
636 - Miscellaneous small UX improvements on "git-p4".
637 -
638 - Will merge to 'master'.
639 -
640 -
555 * js/patch-mode-in-others-in-c (2019-12-21) 7 commits
642 - - commit --interactive: make it work with the built-in `add -i`
643 - - built-in add -p: implement the "worktree" patch modes
644 - - built-in add -p: implement the "checkout" patch modes
645 - - built-in stash: use the built-in `git add -p` if so configured
646 - - legacy stash -p: respect the add.interactive.usebuiltin setting
647 - - built-in add -p: implement the "stash" and "reset" patch modes
648 - - built-in add -p: prepare for patch modes other than "stage"
556 + (merged to 'next' on 2019-12-30 at a767b89288)
557 + + commit --interactive: make it work with the built-in `add -i`
558 + + built-in add -p: implement the "worktree" patch modes
559 + + built-in add -p: implement the "checkout" patch modes
560 + + built-in stash: use the built-in `git add -p` if so configured
561 + + legacy stash -p: respect the add.interactive.usebuiltin setting
562 + + built-in add -p: implement the "stash" and "reset" patch modes
563 + + built-in add -p: prepare for patch modes other than "stage"
564 (this branch is used by js/add-p-leftover-bits.)
565
566 The effort to move "git-add--interactive" to C continues.
567
653 - Will merge to 'next'.
568 + Will cook in 'next'.
569
570
571 * jk/packfile-reuse-cleanup (2019-10-23) 9 commits
@@ -684,3 +599,5 @@ of the repositories listed at
599 cherry-pick better.
600
601 Superseded by pw/advise-rebase-skip
602 +
603 +