diff --git a/whats-cooking.txt b/whats-cooking.txt index ee63b9195b..719f6400ed 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,10 +1,10 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Dec 2019, #02; Thu, 5) -X-master-at: 083378cc35c4dbcc607e4cdd24a5fca440163d17 -X-next-at: f85fac6f6eedeb72469441dac97a7b59b027bf1f +Subject: What's cooking in git.git (Dec 2019, #03; Tue, 10) +X-master-at: 83f90b8666dffdc13ddedebd3c91bf4ae7307d24 +X-next-at: c3465028122a735d0278f138f606ef64549fd8a8 -What's cooking in git.git (Dec 2019, #02; Thu, 5) +What's cooking in git.git (Dec 2019, #03; Tue, 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 '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still holding onto them. -The third batch of topics are now in 'master'. +The fifth batch of topics are now in 'master', on top of merging the +big security-related updates to the older maintenance tracks. You can find the changes described here in the integration branches of the repositories listed at @@ -22,258 +23,41 @@ of the repositories listed at -------------------------------------------------- [Graduated to "master"] -* dd/rebase-merge-reserves-onto-label (2019-11-20) 1 commit - (merged to 'next' on 2019-11-21 at a6e4e5af0a) - + sequencer: handle rebase-merges for "onto" message - (this branch uses js/rebase-r-safer-label.) +* ag/sequencer-continue-leakfix (2019-11-30) 1 commit + (merged to 'next' on 2019-12-05 at 923a6a7ab6) + + sequencer: fix a memory leak in sequencer_continue() - The logic to avoid duplicate label names generated by "git rebase - --rebase-merges" forgot that the machinery itself uses "onto" as a - label name, which must be avoided by auto-generated labels, which - has been corrected. + Leakfix. -* dl/range-diff-with-notes (2019-11-21) 10 commits - (merged to 'next' on 2019-11-25 at dd6dad97c1) - + format-patch: pass notes configuration to range-diff - + range-diff: pass through --notes to `git log` - + range-diff: output `## Notes ##` header - + t3206: range-diff compares logs with commit notes - + t3206: s/expected/expect/ - + t3206: disable parameter substitution in heredoc - + t3206: remove spaces after redirect operators - + pretty-options.txt: --notes accepts a ref instead of treeish - + rev-list-options.txt: remove reference to --show-notes - + argv-array: add space after `while` +* am/pathspec-from-file (2019-11-20) 6 commits + (merged to 'next' on 2019-11-27 at ee131b80fb) + + commit: support the --pathspec-from-file option + + doc: commit: synchronize description + + reset: support the `--pathspec-from-file` option + + doc: reset: synchronize description + + pathspec: add new function to parse file + + parse-options.h: add new options `--pathspec-from-file`, `--pathspec-file-nul` + (this branch is used by am/pathspec-f-f-checkout and es/pathspec-f-f-grep.) - "git range-diff" learned to take the "--notes=" and the - "--no-notes" options to control the commit notes included in the - log message that gets compared. + A few commands learned to take the pathspec from the + standard input or a named file, instead of taking it as the command + line arguments. -* dl/t5520-cleanup (2019-11-21) 15 commits - (merged to 'next' on 2019-11-27 at 523d920acf) - + t5520: replace `! git` with `test_must_fail git` - + t5520: remove redundant lines in test cases - + t5520: replace $(cat ...) comparison with test_cmp - + t5520: don't put git in upstream of pipe - + t5520: test single-line files by git with test_cmp - + t5520: use test_cmp_rev where possible - + t5520: replace test -{n,z} with test-lib functions - + t5520: use test_line_count where possible - + t5520: remove spaces after redirect operator - + t5520: replace test -f with test-lib functions - + t5520: let sed open its own input - + t5520: use sq for test case names - + t5520: improve test style - + t: teach test_cmp_rev to accept ! for not-equals - + t0000: test multiple local assignment +* as/t7812-missing-redirects-fix (2019-12-01) 2 commits + (merged to 'next' on 2019-12-05 at aa89a7945f) + + t7812: expect failure for grep -i with invalid UTF-8 data + + t7812: add missing redirects - Test cleanup. + Test fix. -* ec/fetch-mark-common-refs-trace2 (2019-11-20) 1 commit - (merged to 'next' on 2019-11-25 at c2b8e1546c) - + fetch: add trace2 instrumentation +* bc/t9001-zsh-in-posix-emulation-mode (2019-11-30) 1 commit + (merged to 'next' on 2019-12-05 at d0ce4bcc90) + + t9001: avoid including non-trailing NUL bytes in variables - Trace2 annotation. - - -* ep/guard-kset-tar-headers (2019-11-07) 1 commit - (merged to 'next' on 2019-11-21 at 6c9574b01d) - + kset.h, tar.h: add missing header guard to prevent multiple inclusion - - Code clean-up. - - -* hi/gpg-optional-pkfp-fix (2019-11-23) 2 commits - (merged to 'next' on 2019-11-25 at b0d668176f) - + gpg-interface: limit search for primary key fingerprint - + gpg-interface: refactor the free-and-xmemdupz pattern - (this branch is used by hi/gpg-use-check-signature.) - - The code to parse GPG output used to assume incorrectly that the - finterprint for the primary key would always be present for a valid - signature, which has been corrected. - - -* hv/assume-priumax-is-available-anywhere (2019-11-25) 1 commit - (merged to 'next' on 2019-11-27 at caac4f633d) - + git-compat-util.h: drop the `PRIuMAX` and other fallback definitions - - We have had compatibility fallback macro definitions for "PRIuMAX", - "PRIu32", etc. but did not for "PRIdMAX", while the code used the - last one apparently without any hiccup reported recently. The - fallback macro definitions for these macros that must - appear in C99 systems have been removed. - - -* jc/azure-ci-osx-fix-fix (2019-11-20) 1 commit - (merged to 'next' on 2019-11-25 at 7de6356e67) - + ci(osx): update homebrew-cask repository with less noise - - CI jobs for macOS has been made less chatty when updating perforce - package used during testing. - - -* jh/userdiff-python-async (2019-11-20) 1 commit - (merged to 'next' on 2019-11-25 at 74e4a4ed9f) - + userdiff: support Python async functions - - The userdiff machinery has been taught that "async def" is another - way to begin a "function" in Python. - - -* jk/fail-show-toplevel-outside-working-tree (2019-11-20) 1 commit - (merged to 'next' on 2019-11-25 at cd97ae38bc) - + rev-parse: make --show-toplevel without a worktree an error - - "git rev-parse --show-toplevel" run outside of any working tree did - not error out, which has been corrected. - - -* js/builtin-add-i (2019-11-18) 9 commits - (merged to 'next' on 2019-11-21 at caefa55b89) - + built-in add -i: implement the `help` command - + built-in add -i: use color in the main loop - + built-in add -i: support `?` (prompt help) - + built-in add -i: show unique prefixes of the commands - + built-in add -i: implement the main loop - + built-in add -i: color the header in the `status` command - + built-in add -i: implement the `status` command - + diff: export diffstat interface - + Start to implement a built-in version of `git add --interactive` - (this branch is used by js/builtin-add-i-cmds.) - - The beginning of rewriting "git add -i" in C. - - -* js/git-svn-use-rebase-merges (2019-11-23) 1 commit - (merged to 'next' on 2019-11-25 at 9585fe30f8) - + git svn: stop using `rebase --preserve-merges` - - Prepare further for "rebase --preserve-merges" deprecation. - - -* js/pkt-line-h-typofix (2019-12-02) 1 commit - (merged to 'next' on 2019-12-02 at 8f36a354ae) - + pkt-line: fix a typo - - Typofix. - - -* js/rebase-r-safer-label (2019-11-18) 2 commits - (merged to 'next' on 2019-11-21 at 791d51b0d7) - + rebase -r: let `label` generate safer labels - + rebase-merges: move labels' whitespace mangling into `label_oid()` - (this branch is used by dd/rebase-merge-reserves-onto-label.) - - A label used in the todo list that are generated by "git rebase - --rebase-merges" is used as a part of a refname; the logic to come - up with the label has been tightened to avoid names that cannot be - used as such. - - -* mg/doc-submodule-status-cached (2019-11-24) 1 commit - (merged to 'next' on 2019-11-25 at fa833392a3) - + doc: document 'git submodule status --cached' - - "git submodule status" and "git submodule status --cached" show - different things, but the documentation did not cover them - correctly, which has been corrected. - - -* mg/submodule-status-from-a-subdirectory (2019-11-25) 1 commit - (merged to 'next' on 2019-11-27 at 24cb2d79ff) - + submodule: fix 'submodule status' when called from a subdirectory - - "git submodule status" that is run from a subdirectory of the - superproject did not work well, which has been corrected. - - -* mh/clear-topo-walk-upon-reset (2019-11-25) 2 commits - (merged to 'next' on 2019-11-27 at 15871c1c2a) - + revision: free topo_walk_info before creating a new one in init_topo_walk - + revision: clear the topo-walk flags in reset_revision_walk - - The revision walking machinery uses resources like per-object flag - bits that need to be reset before a new iteration of walking - begins, but the resources related to topological walk were not - cleared correctly, which has been corrected. - - -* nl/reset-patch-takes-a-tree (2019-11-25) 1 commit - (merged to 'next' on 2019-11-25 at 34dc348eaf) - + reset: parse rev as tree-ish in patch mode - - "git reset --patch $object" without any pathspec should allow a - tree object to be given, but incorrectly required a committish, - which has been corrected. - - -* pb/submodule-update-fetches (2019-11-24) 1 commit - (merged to 'next' on 2019-11-25 at 7736f98351) - + doc: mention that 'git submodule update' fetches missing commits - - Doc update. - - -* pw/sequencer-compare-with-right-parent-to-check-empty-commits (2019-11-23) 1 commit - (merged to 'next' on 2019-11-25 at a4e4f06286) - + sequencer: fix empty commit check when amending - - The sequencer machinery compared the HEAD and the state it is - attempting to commit to decide if the result would be a no-op - commit, even when amending a commit, which was incorrect, and - has been corrected. - - -* sg/test-bool-env (2019-11-23) 2 commits - (merged to 'next' on 2019-11-27 at e1874e422f) - + t5608-clone-2gb.sh: turn GIT_TEST_CLONE_2GB into a bool - + tests: add 'test_bool_env' to catch non-bool GIT_TEST_* values - - Recently we have declared that GIT_TEST_* variables take the - usual boolean values (it used to be that some used "non-empty - means true" and taking GIT_TEST_VAR=YesPlease as true); make - sure we notice and fail when non-bool strings are given to - these variables. - - -* sg/unpack-progress-throughput (2019-11-20) 1 commit - (merged to 'next' on 2019-11-25 at 0418db6a27) - + builtin/unpack-objects.c: show throughput progress - - "git unpack-objects" used to show progress based only on the number - of received and unpacked objects, which stalled when it has to - handle an unusually large object. It now shows the throughput as - well. - - -* us/unpack-trees-fsmonitor (2019-11-21) 1 commit - (merged to 'next' on 2019-11-27 at 4c06f74957) - + unpack-trees: skip stat on fsmonitor-valid files - - Users of oneway_merge() (like "reset --hard") learned to take - advantage of fsmonitor to avoid unnecessary lstat(2) calls. - --------------------------------------------------- -[New Topics] - -* am/pathspec-f-f-checkout (2019-12-04) 7 commits - - checkout, restore: support the --pathspec-from-file option - - doc: restore: synchronize description - - doc: checkout: synchronize description - - doc: checkout: fix broken text reference - - doc: checkout: remove duplicate synopsis - - add: support the --pathspec-from-file option - - cmd_add: prepare for next patch - (this branch uses am/pathspec-from-file; is tangled with es/pathspec-f-f-grep.) - - A few more commands learned the "--pathspec-from-file" command line - option. - - Will merge to 'next'. + Test portability fix. * dl/lore-is-the-archive (2019-12-04) 3 commits @@ -286,56 +70,369 @@ of the repositories listed at Publicize lore.kernel.org mailing list archive and use URLs pointing into it to refer to notable messages in the documentation. + +* dl/pretty-reference (2019-11-20) 11 commits + (merged to 'next' on 2019-12-05 at 0972133ad2) + + SubmittingPatches: use `--pretty=reference` + + pretty: implement 'reference' format + + pretty: add struct cmt_fmt_map::default_date_mode_type + + pretty: provide short date format + + t4205: cover `git log --reflog -z` blindspot + + pretty.c: inline initalize format_context + + revision: make get_revision_mark() return const pointer + + completion: complete `tformat:` pretty format + + SubmittingPatches: remove dq from commit reference + + pretty-formats.txt: use generic terms for hash + + SubmittingPatches: use generic terms for hash + + "git log" family learned "--pretty=reference" that gives the name + of a commit in the format that is often used to refer to it in log + messages. + + +* dl/submodule-set-url (2019-10-30) 1 commit + (merged to 'next' on 2019-12-05 at a164eccad1) + + submodule: teach set-url subcommand + + "git submodule" learned a subcommand "set-url". + + +* ds/commit-graph-delay-gen-progress (2019-11-27) 2 commits + (merged to 'next' on 2019-12-05 at 9252a4b1b6) + + commit-graph: use start_delayed_progress() + + progress: create GIT_PROGRESS_DELAY + + One kind of progress messages were always given during commit-graph + generation, instead of following the "if it takes more than two + seconds, show progress" pattern, which has been corrected. + + +* em/test-skip-regex-illseq (2019-11-30) 1 commit + (merged to 'next' on 2019-12-05 at 85c7940aeb) + + t4210: skip i18n tests that don't work on FreeBSD + + Test portability fix. + + +* hi/gpg-use-check-signature (2019-11-30) 1 commit + (merged to 'next' on 2019-12-05 at 35fc8e839a) + + gpg-interface: prefer check_signature() for GPG verification + + Hide lower-level verify_signed-buffer() API as a pure helper to + implement the public check_signature() function, in order to + encourage new callers to use the correct and more strict + validation. + + +* hi/grep-do-not-return-void (2019-11-30) 1 commit + (merged to 'next' on 2019-12-02 at 4409c73cfa) + + grep: don't return an expression from pcre2_free() + + Code cleanup. + + +* jk/lore-is-the-archive (2019-11-30) 2 commits + (merged to 'next' on 2019-12-02 at 603a2b0105) + + doc: replace public-inbox links with lore.kernel.org + + doc: recommend lore.kernel.org over public-inbox.org + (this branch is used by dl/lore-is-the-archive.) + + Doc update for the mailing list archiving and nntp service. + + +* jk/perf-wo-git-dot-pm (2019-11-27) 1 commit + (merged to 'next' on 2019-12-05 at 6d9e3930ec) + + t/perf: don't depend on Git.pm + + Test cleanup. + + +* jk/send-pack-check-negative-with-quick (2019-11-30) 1 commit + (merged to 'next' on 2019-12-02 at 2b01214601) + + send-pack: use OBJECT_INFO_QUICK to check negative objects + + Performance tweak on "git push" into a repository with many refs + that point at objects we have never heard of. + + +* js/mingw-inherit-only-std-handles (2019-12-02) 6 commits + (merged to 'next' on 2019-12-05 at 289f13054b) + + mingw: forbid translating ERROR_SUCCESS to an errno value + (merged to 'next' on 2019-12-02 at 798a952eca) + + mingw: do set `errno` correctly when trying to restrict handle inheritance + (merged to 'next' on 2019-11-27 at 4736894af6) + + mingw: restrict file handle inheritance only on Windows 7 and later + + mingw: spawned processes need to inherit only standard handles + + mingw: work around incorrect standard handles + + mingw: demonstrate that all file handles are inherited by child processes + + Work around a issue where a FD that is left open when spawning a + child process and is kept open in the child can interfere with the + operation in the parent process on Windows. + + +* jt/clone-recursesub-ref-advise (2019-12-03) 2 commits + (merged to 'next' on 2019-12-05 at fc071dddfe) + + submodule--helper: advise on fatal alternate error + + Doc: explain submodule.alternateErrorStrategy + + The interaction between "git clone --recurse-submodules" and + alternate object store was ill-designed. The documentation and + code have been taught to make more clear recommendations when the + users see failures. + + +* po/bundle-doc-clonable (2019-10-21) 1 commit + (merged to 'next' on 2019-12-02 at bd7fa24ad6) + + Doc: Bundle file usage + + Doc update. + + +* ra/rebase-i-more-options (2019-11-25) 7 commits + (merged to 'next' on 2019-11-27 at e8a6d1e281) + + rebase -i: finishing touches to --reset-author-date + + rebase: add --reset-author-date + + rebase -i: support --ignore-date + + sequencer: rename amend_author to author_to_rename + + rebase -i: support --committer-date-is-author-date + + sequencer: allow callers of read_author_script() to ignore fields + + rebase -i: add --ignore-whitespace flag + + "git rebase -i" learned a few options that are known by "git + rebase" proper. + + +* rs/simplify-prepare-cmd (2019-11-27) 1 commit + (merged to 'next' on 2019-12-02 at 12e1a9e935) + + run-command: use prepare_git_cmd() in prepare_cmd() + + Code cleanup. + + +* rs/test-cleanup (2019-11-30) 7 commits + (merged to 'next' on 2019-12-02 at eabc2e30f5) + + t7811: don't create unused file + + t9300: don't create unused file + + test: use test_must_be_empty F instead of test_cmp empty F + + test: use test_must_be_empty F instead of test -z $(cat F) + + t1400: use test_must_be_empty + + t1410: use test_line_count + + t1512: use test_line_count + + Test cleanup. + + +* rs/use-skip-prefix-more (2019-11-27) 5 commits + (merged to 'next' on 2019-12-02 at a2124db23e) + + name-rev: use skip_prefix() instead of starts_with() + + push: use skip_prefix() instead of starts_with() + + shell: use skip_prefix() instead of starts_with() + + fmt-merge-msg: use skip_prefix() instead of starts_with() + + fetch: use skip_prefix() instead of starts_with() + + Code cleanup. + + +* sg/assume-no-todo-update-in-cherry-pick (2019-11-24) 1 commit + (merged to 'next' on 2019-11-27 at 6908186f85) + + sequencer: don't re-read todo for revert and cherry-pick + + While running "revert" or "cherry-pick --edit" for multiple + commits, a recent regression incorrectly detected "nothing to + commit, working tree clean", instead of replaying the commits, + which has been corrected. + + +* sg/osx-force-gcc-9 (2019-11-29) 1 commit + (merged to 'next' on 2019-12-02 at 4916f80e5e) + + ci: build Git with GCC 9 in the 'osx-gcc' build job + + TravisCI update. + + +* sg/test-squelch-noise-in-commit-bulk (2019-11-27) 1 commit + (merged to 'next' on 2019-12-05 at 7819efee07) + + test-lib-functions: suppress a 'git rev-parse' error in 'test_commit_bulk' + + Code cleanup. + + +* tg/perf-remove-stale-result (2019-11-27) 1 commit + (merged to 'next' on 2019-12-05 at 466f07fb63) + + perf-lib: use a single filename for all measurement types + + PerfTest fix to avoid stale result mixed up with the latest round + of test results. + +-------------------------------------------------- +[New Topics] + +* at/rebase-fork-point-regression-fix (2019-12-09) 1 commit + - rebase: fix --fork-point with short refname + + The "--fork-point" mode of "git rebase" regressed when the command + was rewritten in C back in 2.20 era, which has been corrected. + + Waiting for discussion to settle. + + +* dl/range-diff-with-notes (2019-12-06) 3 commits + (merged to 'next' on 2019-12-10 at af8f441807) + + range-diff: clear `other_arg` at end of function + + range-diff: mark pointers as const + + t3206: fix incorrect test name + + Code clean-up. + Will merge to 'master'. -* dl/rebase-with-autobase (2019-12-05) 5 commits - - rebase: fix format.useAutoBase breakage - - format-patch: teach --no-base - - t4014: use test_config() - - format-patch: fix indentation - - t3400: demonstrate failure with format.useAutoBase +* js/add-i-a-bit-more-tests (2019-12-06) 7 commits + (merged to 'next' on 2019-12-10 at d7ffb75a43) + + apply --allow-overlap: fix a corner case + + git add -p: use non-zero exit code when the diff generation failed + + t3701: verify that the diff.algorithm config setting is handled + + t3701: verify the shown messages when nothing can be added + + t3701: add a test for the different `add -p` prompts + + t3701: avoid depending on the TTY prerequisite + + t3701: add a test for advanced split-hunk editing + (this branch uses js/builtin-add-i-cmds.) - "git rebase" did not work well when format.useAutoBase - configuration variable is set, which has been corrected. + Test coverage update in preparation for further work on "git add -i". - Will merge to 'next'. + Will merge to 'master'. -* es/pathspec-f-f-grep (2019-12-04) 1 commit - - grep: support the --pathspec-from-file option - (this branch uses am/pathspec-from-file; is tangled with am/pathspec-f-f-checkout.) +* pw/advise-rebase-skip (2019-12-06) 9 commits + - rebase -i: leave CHERRY_PICK_HEAD when there are conflicts + - rebase: fix advice when a fixup creates an empty commit + - commit: give correct advice for empty commit during a rebase + - commit: encapsulate determine_whence() for sequencer + - commit: use enum value for multiple cherry-picks + - sequencer: write CHERRY_PICK_HEAD for reword and edit + - cherry-pick: check commit error messages + - cherry-pick: add test for `--skip` advice in `git commit` + - t3404: use test_cmp_rev - "git grep" learned the "--pathspec-from-file" command line - option. + The mechanism to prevent "git commit" from making an empty commit + or amending during an interrupted cherry-pick was broken during the + rewrite of "git rebase" in C, which has been corrected. - Waiting for review response. + Needs review. + The tip two are still RFC. -* rs/xdiff-ignore-ws-w-func-context (2019-12-05) 1 commit - - xdiff: unignore changes in function context +* sg/t9300-robustify (2019-12-06) 2 commits + (merged to 'next' on 2019-12-10 at dee7a9a945) + + t9300-fast-import: don't hang if background fast-import exits too early + + t9300-fast-import: store the PID in a variable instead of pidfile - The "diff" machinery learned not to lose added/removed blank lines - in the context when --ignore-blank-lines and --function-context are - used at the same time. + The test on "fast-import" used to get stuck when "fast-import" died + in the middle. - Will merge to 'next'. + Will merge to 'master'. -* ag/edit-todo-drop-check (2019-12-04) 2 commits - - rebase-interactive: warn if commit is dropped with `rebase --edit-todo' - - sequencer: move check_todo_list_from_file() to rebase-interactive.c - (this branch uses ag/sequencer-todo-updates.) +* dl/format-patch-notes-config-fixup (2019-12-09) 5 commits + (merged to 'next' on 2019-12-10 at 2d8830090f) + + format-patch: move git_config() before repo_init_revisions() + + format-patch: use --notes behavior for format.notes + + notes: extract logic into set_display_notes() + + notes: create init_display_notes() helper + + notes: rename to load_display_notes() - Allow the rebase.missingCommitsCheck configuration to kick in when - "rebase --edit-todo" and "rebase --continue" restarts the procedure. + "git format-patch" can take a set of configured format.notes values + to specify which notes refs to use in the log message part of the + output. The behaviour of this was not consistent with multiple + --notes command line options, which has been corrected. - Seems to break when merged to 'pu'. + Will merge to 'master'. +* dr/branch-usage-casefix (2019-12-09) 1 commit + (merged to 'next' on 2019-12-10 at ad8a629fc6) + + l10n: minor case fix in 'git branch' '--unset-upstream' description + + Message fix. + + Will merge to 'master'. + + +* js/t3404-indent-fix (2019-12-09) 1 commit + (merged to 'next' on 2019-12-10 at 3a705a40d6) + + t3404: fix indentation + + Test cleanup. + + Will merge to 'master'. + + +* rs/archive-zip-code-cleanup (2019-12-09) 1 commit + (merged to 'next' on 2019-12-10 at 5a0b530805) + + archive-zip: use enum for compression method + + Code cleanup. + + Will merge to 'master'. + + +* rs/commit-export-env-simplify (2019-12-09) 1 commit + (merged to 'next' on 2019-12-10 at 591b24162c) + + commit: use strbuf_add() to add a length-limited string + + Code cleanup. + + Will merge to 'master'. + + +* rs/patch-id-use-oid-to-hex (2019-12-09) 1 commit + (merged to 'next' on 2019-12-10 at cf403a83da) + + patch-id: use oid_to_hex() to print multiple object IDs + + Code cleanup. + + Will merge to 'master'. + -------------------------------------------------- [Stalled] +* ma/config-bool-valex (2019-11-14) 8 commits + - builtin/config: die if "value_regex" doesn't canonicalize as boolean + - builtin/config: warn if "value_regex" doesn't canonicalize as boolean + - builtin/config: canonicalize "value_regex" with `--type=bool-or-int` + - builtin/config: canonicalize "value_regex" with `--type=bool` + - builtin/config: collect "value_regexp" data in a struct + - builtin/config: extract `handle_value_regex()` from `get_value()` + - t1300: modernize part of script + - config: make `git_parse_maybe_bool_text()` public + + "git config" can be told to affect the existing entries that + "match" the given value via its value_regex argument. It learned + to normalize the value set in the configuration and the value given + from the command line before computing they "match", e.g. "true" in + the configuration file can now match with "yes" given from the + command line. + + Needs a bit more work? + cf. + + +* ds/fsmonitor-testing (2019-12-09) 8 commits + - test-lib: clear watchman watches at test completion + - t7519: disable external GIT_TEST_FSMONITOR variable + - t7063: disable fsmonitor with status cache + - tests: disable fsmonitor in submodule tests + - t3030-merge-recursive.sh: disable fsmonitor when tweaking GIT_WORK_TREE + - t1301-shared-repo.sh: disable FSMONITOR + - fsmonitor: do not output to stderr for tests + - fsmonitor: disable in a bare repo + + Updates around testing fsmoitor integration. + + cf. + + * mt/threaded-grep-in-object-store (2019-10-02) 11 commits - grep: move driver pre-load out of critical section - grep: re-enable threads in non-worktree case @@ -357,28 +454,6 @@ of the repositories listed at cf. -* po/bundle-doc-clonable (2019-10-21) 1 commit - (merged to 'next' on 2019-12-02 at bd7fa24ad6) - + Doc: Bundle file usage - - Doc update. - - Will merge to 'master'. - - -* js/advise-rebase-skip (2019-10-23) 3 commits - - commit: give correct advice for empty commit during a rebase - - sequencer: export the function to get the path of `.git/rebase-merge/` - - cherry-pick: add test for `--skip` advice in `git commit` - - The logic used in "git commit" to give hints and errors depending - on what operation was in progress learned to distinguish rebase and - cherry-pick better. - - Kicked back to 'pu'. - cf. - - * vn/reset-deleted-ita (2019-07-26) 1 commit - reset: unstage empty deleted ita files @@ -432,18 +507,78 @@ of the repositories listed at -------------------------------------------------- [Cooking] -* ds/commit-graph-delay-gen-progress (2019-11-27) 2 commits - (merged to 'next' on 2019-12-05 at 9252a4b1b6) - + commit-graph: use start_delayed_progress() - + progress: create GIT_PROGRESS_DELAY +* ra/t5150-depends-on-perl (2019-11-27) 1 commit + . t5150: skip request-pull test if Perl is disabled - One kind of progress messages were always given during commit-graph - generation, instead of following the "if it takes more than two - seconds, show progress" pattern, which has been corrected. + Some Porcelain commands are written in Perl, and tests on them are + expected not to work when the platform lacks a working perl. + + Redo. + + +* am/pathspec-f-f-checkout (2019-12-04) 7 commits + (merged to 'next' on 2019-12-10 at 6b018bd997) + + checkout, restore: support the --pathspec-from-file option + + doc: restore: synchronize description + + doc: checkout: synchronize description + + doc: checkout: fix broken text reference + + doc: checkout: remove duplicate synopsis + + add: support the --pathspec-from-file option + + cmd_add: prepare for next patch + + A few more commands learned the "--pathspec-from-file" command line + option. Will merge to 'master'. +* dl/rebase-with-autobase (2019-12-05) 5 commits + (merged to 'next' on 2019-12-06 at 2d72b8cffe) + + rebase: fix format.useAutoBase breakage + + format-patch: teach --no-base + + t4014: use test_config() + + format-patch: fix indentation + + t3400: demonstrate failure with format.useAutoBase + + "git rebase" did not work well when format.useAutoBase + configuration variable is set, which has been corrected. + + Will merge to 'master'. + + +* es/pathspec-f-f-grep (2019-12-06) 1 commit + - grep: support the --pathspec-from-file option + + "git grep" learned the "--pathspec-from-file" command line + option. + + Waiting for review responses. + cf. <20191204203911.237056-1-emilyshaffer@google.com> + + +* rs/xdiff-ignore-ws-w-func-context (2019-12-05) 1 commit + (merged to 'next' on 2019-12-06 at e0522318ac) + + xdiff: unignore changes in function context + + The "diff" machinery learned not to lose added/removed blank lines + in the context when --ignore-blank-lines and --function-context are + used at the same time. + + Will merge to 'master'. + + +* ag/edit-todo-drop-check (2019-12-06) 2 commits + - rebase-interactive: warn if commit is dropped with `rebase --edit-todo' + - sequencer: move check_todo_list_from_file() to rebase-interactive.c + (this branch uses ag/sequencer-todo-updates.) + + Allow the rebase.missingCommitsCheck configuration to kick in when + "rebase --edit-todo" and "rebase --continue" restarts the procedure. + + Broken. + cf. <64aa4049-ee35-df4c-1e6c-80707f4f9070@gmail.com> + + * ds/sparse-cone (2019-11-22) 19 commits - sparse-checkout: check for dirty status - sparse-checkout: update working directory in-process for 'init' @@ -473,199 +608,36 @@ of the repositories listed at * dl/test-cleanup (2019-12-04) 26 commits - - t7700: stop losing return codes of git commands - - t7700: make references to SHA-1 generic - - t7700: replace egrep with grep - - t7700: consolidate code into test_has_duplicate_object() - - t7700: consolidate code into test_no_missing_in_packs() - - t7700: s/test -f/test_path_is_file/ - - t7700: move keywords onto their own line - - t7700: remove spaces after redirect operators - - t7700: drop redirections to /dev/null - - t7501: stop losing return codes of git commands - - t7501: remove spaces after redirect operators - - t5703: stop losing return codes of git commands - - t5703: simplify one-time-sed generation logic - - t5317: use ! grep to check for no matching lines - - t5317: stop losing return codes of git commands - - t4138: stop losing return codes of git commands - - t4015: use test_write_lines() - - t4015: stop losing return codes of git commands - - t3600: comment on inducing SIGPIPE in `git rm` - - t3600: stop losing return codes of git commands - - t3600: use test_line_count() where possible - - t3301: stop losing return codes of git commands - - t0090: stop losing return codes of git commands - - t0014: remove git command upstream of pipe - - apply-one-time-sed.sh: modernize style - - lib-bash.sh: move `then` onto its own line + (merged to 'next' on 2019-12-06 at 9129e71939) + + t7700: stop losing return codes of git commands + + t7700: make references to SHA-1 generic + + t7700: replace egrep with grep + + t7700: consolidate code into test_has_duplicate_object() + + t7700: consolidate code into test_no_missing_in_packs() + + t7700: s/test -f/test_path_is_file/ + + t7700: move keywords onto their own line + + t7700: remove spaces after redirect operators + + t7700: drop redirections to /dev/null + + t7501: stop losing return codes of git commands + + t7501: remove spaces after redirect operators + + t5703: stop losing return codes of git commands + + t5703: simplify one-time-sed generation logic + + t5317: use ! grep to check for no matching lines + + t5317: stop losing return codes of git commands + + t4138: stop losing return codes of git commands + + t4015: use test_write_lines() + + t4015: stop losing return codes of git commands + + t3600: comment on inducing SIGPIPE in `git rm` + + t3600: stop losing return codes of git commands + + t3600: use test_line_count() where possible + + t3301: stop losing return codes of git commands + + t0090: stop losing return codes of git commands + + t0014: remove git command upstream of pipe + + apply-one-time-sed.sh: modernize style + + lib-bash.sh: move `then` onto its own line Test cleanup. - Will merge to 'next'. - - -* tg/perf-remove-stale-result (2019-11-27) 1 commit - (merged to 'next' on 2019-12-05 at 466f07fb63) - + perf-lib: use a single filename for all measurement types - - PerfTest fix to avoid stale result mixed up with the latest round - of test results. - - Will merge to 'master'. - - -* ds/fsmonitor-testing (2019-11-22) 11 commits - - test-lib: clear watchman watches at test completion - - t7519: disable external GIT_TEST_FSMONITOR variable - - t7063: disable fsmonitor with status cache - - tests: disable fsmonitor in submodule tests - - t3600-rm.sh: disable fsmonitor when deleting populated submodule - - t3030-merge-recursive.sh: disable fsmonitor when tweaking GIT_WORK_TREE - - fsmonitor: disable fsmonitor with worktrees - - t1510-repo-setup.sh: disable fsmonitor if no .git dir - - t1301-shared-repo.sh: disable FSMONITOR - - fsmonitor: do not output to stderr for tests - - fsmonitor: disable in a bare repo - - Updates around testing fsmoitor integration. - - On Hold. - cf. - - -* js/mingw-inherit-only-std-handles (2019-12-02) 6 commits - (merged to 'next' on 2019-12-05 at 289f13054b) - + mingw: forbid translating ERROR_SUCCESS to an errno value - (merged to 'next' on 2019-12-02 at 798a952eca) - + mingw: do set `errno` correctly when trying to restrict handle inheritance - (merged to 'next' on 2019-11-27 at 4736894af6) - + mingw: restrict file handle inheritance only on Windows 7 and later - + mingw: spawned processes need to inherit only standard handles - + mingw: work around incorrect standard handles - + mingw: demonstrate that all file handles are inherited by child processes - - Work around a issue where a FD that is left open when spawning a - child process and is kept open in the child can interfere with the - operation in the parent process on Windows. - - Will merge to 'master'. - - -* sg/assume-no-todo-update-in-cherry-pick (2019-11-24) 1 commit - (merged to 'next' on 2019-11-27 at 6908186f85) - + sequencer: don't re-read todo for revert and cherry-pick - - While running "revert" or "cherry-pick --edit" for multiple - commits, a recent regression incorrectly detected "nothing to - commit, working tree clean", instead of replaying the commits, - which has been corrected. - - Will merge to 'master'. - - -* as/t7812-missing-redirects-fix (2019-12-01) 2 commits - (merged to 'next' on 2019-12-05 at aa89a7945f) - + t7812: expect failure for grep -i with invalid UTF-8 data - + t7812: add missing redirects - - Test fix. - - Will merge to 'master'. - - -* jk/perf-wo-git-dot-pm (2019-11-27) 1 commit - (merged to 'next' on 2019-12-05 at 6d9e3930ec) - + t/perf: don't depend on Git.pm - - Test cleanup. - - Will merge to 'master'. - - -* jt/clone-recursesub-ref-advise (2019-12-03) 2 commits - (merged to 'next' on 2019-12-05 at fc071dddfe) - + submodule--helper: advise on fatal alternate error - + Doc: explain submodule.alternateErrorStrategy - - The interaction between "git clone --recurse-submodules" and - alternate object store was ill-designed. The documentation and - code have been taught to make more clear recommendations when the - users see failures. - - Will merge to 'master'. - - -* ra/t5150-depends-on-perl (2019-11-27) 1 commit - . t5150: skip request-pull test if Perl is disabled - - Some Porcelain commands are written in Perl, and tests on them are - expected not to work when the platform lacks a working perl. - - Redo. - - -* rs/simplify-prepare-cmd (2019-11-27) 1 commit - (merged to 'next' on 2019-12-02 at 12e1a9e935) - + run-command: use prepare_git_cmd() in prepare_cmd() - - Code cleanup. - - Will merge to 'master'. - - -* rs/test-cleanup (2019-11-30) 7 commits - (merged to 'next' on 2019-12-02 at eabc2e30f5) - + t7811: don't create unused file - + t9300: don't create unused file - + test: use test_must_be_empty F instead of test_cmp empty F - + test: use test_must_be_empty F instead of test -z $(cat F) - + t1400: use test_must_be_empty - + t1410: use test_line_count - + t1512: use test_line_count - - Test cleanup. - - Will merge to 'master'. - - -* rs/use-skip-prefix-more (2019-11-27) 5 commits - (merged to 'next' on 2019-12-02 at a2124db23e) - + name-rev: use skip_prefix() instead of starts_with() - + push: use skip_prefix() instead of starts_with() - + shell: use skip_prefix() instead of starts_with() - + fmt-merge-msg: use skip_prefix() instead of starts_with() - + fetch: use skip_prefix() instead of starts_with() - - Code cleanup. - - Will merge to 'master'. - - -* sg/test-squelch-noise-in-commit-bulk (2019-11-27) 1 commit - (merged to 'next' on 2019-12-05 at 7819efee07) - + test-lib-functions: suppress a 'git rev-parse' error in 'test_commit_bulk' - - Code cleanup. - - Will merge to 'master'. - - -* ag/sequencer-continue-leakfix (2019-11-30) 1 commit - (merged to 'next' on 2019-12-05 at 923a6a7ab6) - + sequencer: fix a memory leak in sequencer_continue() - - Leakfix. - - Will merge to 'master'. - - -* bc/t9001-zsh-in-posix-emulation-mode (2019-11-30) 1 commit - (merged to 'next' on 2019-12-05 at d0ce4bcc90) - + t9001: avoid including non-trailing NUL bytes in variables - - Test portability fix. - Will merge to 'master'. @@ -692,108 +664,33 @@ of the repositories listed at Will merge to 'master'. -* em/test-skip-regex-illseq (2019-11-30) 1 commit - (merged to 'next' on 2019-12-05 at 85c7940aeb) - + t4210: skip i18n tests that don't work on FreeBSD - - Test portability fix. - - Will merge to 'master'. - - -* hi/gpg-use-check-signature (2019-11-30) 1 commit - (merged to 'next' on 2019-12-05 at 35fc8e839a) - + gpg-interface: prefer check_signature() for GPG verification - - Hide lower-level verify_signed-buffer() API as a pure helper to - implement the public check_signature() function, in order to - encourage new callers to use the correct and more strict - validation. - - Will merge to 'master'. - - -* hi/grep-do-not-return-void (2019-11-30) 1 commit - (merged to 'next' on 2019-12-02 at 4409c73cfa) - + grep: don't return an expression from pcre2_free() - - Code cleanup. - - Will merge to 'master'. - - -* jk/lore-is-the-archive (2019-11-30) 2 commits - (merged to 'next' on 2019-12-02 at 603a2b0105) - + doc: replace public-inbox links with lore.kernel.org - + doc: recommend lore.kernel.org over public-inbox.org - (this branch is used by dl/lore-is-the-archive.) - - Doc update for the mailing list archiving and nntp service. - - Will merge to 'master'. - - -* jk/send-pack-check-negative-with-quick (2019-11-30) 1 commit - (merged to 'next' on 2019-12-02 at 2b01214601) - + send-pack: use OBJECT_INFO_QUICK to check negative objects - - Performance tweak on "git push" into a repository with many refs - that point at objects we have never heard of. - - Will merge to 'master'. - - -* sg/osx-force-gcc-9 (2019-11-29) 1 commit - (merged to 'next' on 2019-12-02 at 4916f80e5e) - + ci: build Git with GCC 9 in the 'osx-gcc' build job - - TravisCI update. - - Will merge to 'master'. - - -* dl/pretty-reference (2019-11-20) 11 commits - (merged to 'next' on 2019-12-05 at 0972133ad2) - + SubmittingPatches: use `--pretty=reference` - + pretty: implement 'reference' format - + pretty: add struct cmt_fmt_map::default_date_mode_type - + pretty: provide short date format - + t4205: cover `git log --reflog -z` blindspot - + pretty.c: inline initalize format_context - + revision: make get_revision_mark() return const pointer - + completion: complete `tformat:` pretty format - + SubmittingPatches: remove dq from commit reference - + pretty-formats.txt: use generic terms for hash - + SubmittingPatches: use generic terms for hash - - "git log" family learned "--pretty=ref" that gives the name of a - commit in the format that is often used to refer to it in log - messages. - - Will merge to 'master'. - - * hw/doc-in-header (2019-11-18) 20 commits - - trace2: move doc to trace2.h - - submodule-config: move doc to submodule-config.h - - tree-walk: move doc to tree-walk.h - - trace: move doc to trace.h - - run-command: move doc to run-command.h - - parse-options: add link to doc file in parse-options.h - - credential: move doc to credential.h - - argv-array: move doc to argv-array.h - - cache: move doc to cache.h - - sigchain: move doc to sigchain.h - - pathspec: move doc to pathspec.h - - revision: move doc to revision.h - - attr: move doc to attr.h - - refs: move doc to refs.h - - remote: move doc to remote.h and refspec.h - - sha1-array: move doc to sha1-array.h - - merge: move doc to ll-merge.h - - graph: move doc to graph.h and graph.c - - dir: move doc to dir.h - - diff: move doc to diff.h and diffcore.h + (merged to 'next' on 2019-12-10 at 75ae310f9a) + + trace2: move doc to trace2.h + + submodule-config: move doc to submodule-config.h + + tree-walk: move doc to tree-walk.h + + trace: move doc to trace.h + + run-command: move doc to run-command.h + + parse-options: add link to doc file in parse-options.h + + credential: move doc to credential.h + + argv-array: move doc to argv-array.h + + cache: move doc to cache.h + + sigchain: move doc to sigchain.h + + pathspec: move doc to pathspec.h + + revision: move doc to revision.h + + attr: move doc to attr.h + + refs: move doc to refs.h + + remote: move doc to remote.h and refspec.h + + sha1-array: move doc to sha1-array.h + + merge: move doc to ll-merge.h + + graph: move doc to graph.h and graph.c + + dir: move doc to dir.h + + diff: move doc to diff.h and diffcore.h + + Move material from Documentation/technical/api-*.txt to header + files. + + Will merge to 'master'. * js/builtin-add-i-cmds (2019-12-01) 9 commits @@ -807,6 +704,7 @@ of the repositories listed at + built-in add -i: prepare for multi-selection commands + built-in add -i: allow filtering the modified files list + add-interactive: make sure to release `rev.prune_data` + (this branch is used by js/add-i-a-bit-more-tests.) "git add -i" that is getting rewritten in C has been extended to cover subcommands other than the "patch". @@ -814,30 +712,10 @@ of the repositories listed at Will merge to 'master'. -* ma/config-bool-valex (2019-11-14) 8 commits - - builtin/config: die if "value_regex" doesn't canonicalize as boolean - - builtin/config: warn if "value_regex" doesn't canonicalize as boolean - - builtin/config: canonicalize "value_regex" with `--type=bool-or-int` - - builtin/config: canonicalize "value_regex" with `--type=bool` - - builtin/config: collect "value_regexp" data in a struct - - builtin/config: extract `handle_value_regex()` from `get_value()` - - t1300: modernize part of script - - config: make `git_parse_maybe_bool_text()` public - - "git config" can be told to affect the existing entries that - "match" the given value via its value_regex argument. It learned - to normalize the value set in the configuration and the value given - from the command line before computing they "match", e.g. "true" in - the configuration file can now match with "yes" given from the - command line. - - Needs a bit more work? - cf. - - -* sg/name-rev-wo-recursion (2019-11-13) 13 commits +* sg/name-rev-wo-recursion (2019-12-09) 14 commits - name-rev: cleanup name_ref() - name-rev: eliminate recursion in name_rev() + - name-rev: use 'name->tip_name' instead of 'tip_name' - name-rev: drop name_rev()'s 'generation' and 'distance' parameters - name-rev: restructure creating/updating 'struct rev_name' instances - name-rev: restructure parsing commits and applying date cutoff @@ -852,52 +730,8 @@ of the repositories listed at Redo "git name-rev" to avoid recursive calls. - Looks more-or-less ready for 'next'? - cf. <20191127181322.171734-1-jonathantanmy@google.com> - cf. <20191127180210.168901-1-jonathantanmy@google.com> - cf. <20191112103821.30265-1-szeder.dev@gmail.com> - - -* am/pathspec-from-file (2019-11-20) 6 commits - (merged to 'next' on 2019-11-27 at ee131b80fb) - + commit: support the --pathspec-from-file option - + doc: commit: synchronize description - + reset: support the `--pathspec-from-file` option - + doc: reset: synchronize description - + pathspec: add new function to parse file - + parse-options.h: add new options `--pathspec-from-file`, `--pathspec-file-nul` - (this branch is used by am/pathspec-f-f-checkout and es/pathspec-f-f-grep.) - - A few commands learned to take the pathspec from the - standard input or a named file, instead of taking it as the command - line arguments. - - Will merge to 'master'. - - -* ra/rebase-i-more-options (2019-11-25) 7 commits - (merged to 'next' on 2019-11-27 at e8a6d1e281) - + rebase -i: finishing touches to --reset-author-date - + rebase: add --reset-author-date - + rebase -i: support --ignore-date - + sequencer: rename amend_author to author_to_rename - + rebase -i: support --committer-date-is-author-date - + sequencer: allow callers of read_author_script() to ignore fields - + rebase -i: add --ignore-whitespace flag - - "git rebase -i" learned a few options that are known by "git - rebase" proper. - - Will merge to 'master'. - - -* dl/submodule-set-url (2019-10-30) 1 commit - (merged to 'next' on 2019-12-05 at a164eccad1) - + submodule: teach set-url subcommand - - "git submodule" learned a subcommand "set-url". - - Will merge to 'master'. + Will merge to 'next'. + cf. <20191209115258.9281-1-szeder.dev@gmail.com> * ag/sequencer-todo-updates (2019-11-25) 5 commits @@ -932,3 +766,17 @@ of the repositories listed at Hold. There is an update to these patches that currently are on 'next'. cf. <20191115180319.113991-1-jonathantanmy@google.com> + +-------------------------------------------------- +[Discarded] + +* js/advise-rebase-skip (2019-10-23) 3 commits + . commit: give correct advice for empty commit during a rebase + . sequencer: export the function to get the path of `.git/rebase-merge/` + . cherry-pick: add test for `--skip` advice in `git commit` + + The logic used in "git commit" to give hints and errors depending + on what operation was in progress learned to distinguish rebase and + cherry-pick better. + + Superseded by pw/advise-rebase-skip