To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Nov 2020, #06; Mon, 30)
-X-master-at: 72ffeb997eaf999f6938b2a7e0d9a75dcceaa311
-X-next-at: 1209160524d6229d60c3301df9152cf1aa58ff6d
+Subject: What's cooking in git.git (Dec 2020, #01; Tue, 8)
+X-master-at: 3cf59784d42c4152a0b3de7bb7a75d0071e5f878
+X-next-at: 45daf8777d6d4c556d92b12832a851643ba4ce40
-What's cooking in git.git (Nov 2020, #06; Mon, 30)
+What's cooking in git.git (Dec 2020, #01; Tue, 8)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with '-' are
with '+' are in 'next'. The ones marked with '.' do not appear in any of
the integration branches, but I am still holding onto them.
+So far, the master branch accumulated 140+ merges of topic branches
+containing 400+ single-parent commits. We are getting close to -rc0
+and it is likely we'd have to keep some topics on 'next', rather
+than rushing them to result in a broken release, during the feature
+freeze. We have a bit less than 50 topics in flight, including some
+stalled ones, and I expect that we can merge less than half of them
+before -rc0.
+
Copies of the source code to Git live in many repositories, and the
-following is a list of the ones I push into. Some repositories have
-only a subset of branches.
+following is a list of the ones I push into or their mirrors. Some
+repositories have only a subset of branches.
With maint, master, next, seen, todo:
git://repo.or.cz/alt-git.git/
https://kernel.googlesource.com/pub/scm/git/git/
https://github.com/git/git/
+ https://gitlab.com/git-vcs/git/
With all the integration branches and topics broken out:
--------------------------------------------------
[Graduated to 'master']
-* ab/gc-keep-base-option (2020-11-21) 2 commits
- (merged to 'next' on 2020-11-25 at ac76ddcfe7)
- + gc: rename keep_base_pack variable for --keep-largest-pack
- + gc docs: change --keep-base-pack to --keep-largest-pack
+* ab/retire-parse-remote (2020-11-24) 4 commits
+ (merged to 'next' on 2020-11-25 at 644484d7df)
+ + submodule: fix fetch_in_submodule logic
+ (merged to 'next' on 2020-11-18 at 80d4d8290c)
+ + parse-remote: remove this now-unused library
+ + submodule: remove sh function in favor of helper
+ + submodule: use "fetch" logic instead of custom remote discovery
- Fix an option name in "gc" documentation.
+ "git-parse-remote" shell script library outlived its usefulness.
-* hn/sleep-millisec-decl (2020-11-24) 1 commit
- (merged to 'next' on 2020-11-25 at d11de8b987)
- + move sleep_millisec to git-compat-util.h
+* ds/config-literal-value (2020-11-25) 8 commits
+ (merged to 'next' on 2020-12-02 at 5de40589fc)
+ + config doc: value-pattern is not necessarily a regexp
+ + config: implement --fixed-value with --get*
+ + config: plumb --fixed-value into config API
+ + config: add --fixed-value option, un-implemented
+ + t1300: add test for --replace-all with value-pattern
+ + t1300: test "set all" mode with value-pattern
+ + config: replace 'value_regex' with 'value_pattern'
+ + config: convert multi_replace to flags
+ (this branch is used by ds/maintenance-part-3.)
- Move a definition of compatibility wrapper from cache.h to
- git-compat-util.h
+ Various subcommands of "git config" that takes value_regex
+ learn the "--literal-value" option to take the value_regex option
+ as a literal string.
-* jc/do-not-just-explain-but-update-your-patch (2020-11-24) 1 commit
- (merged to 'next' on 2020-11-25 at 1f5235d4e1)
- + MyFirstContribition: answering questions is not the end of the story
+* ds/maintenance-part-1 (2020-12-02) 1 commit
+ (merged to 'next' on 2020-12-02 at b06515515d)
+ + Makefile: mark git-maintenance as a builtin
- Expectation for the original contributor after responding to a
- review comment to use the explanation in a patch update has been
- described.
+ Build consistency fix.
-* js/pull-rebase-use-advise (2020-11-19) 1 commit
- (merged to 'next' on 2020-11-25 at 05db775119)
- + pull: colorize the hint about setting `pull.rebase`
+* ds/maintenance-part-2 (2020-12-02) 1 commit
+ (merged to 'next' on 2020-12-02 at 6739aa076c)
+ + t7900: speed up expensive test
- UI improvement.
+ Test fix.
-* js/t1309-master-to-topic (2020-11-19) 1 commit
- (merged to 'next' on 2020-11-25 at 044da285ef)
- + t1309: use a neutral branch name in the `onbranch` test cases
+* ds/maintenance-part-3 (2020-11-25) 2 commits
+ (merged to 'next' on 2020-12-02 at ee65a83d28)
+ + maintenance: use 'git config --fixed-value'
+ + Merge branch 'ds/config-literal-value' into ds/maintenance-part-3
+ (this branch uses ds/config-literal-value.)
- Test preparation.
+ "git maintenance" command had trouble working in a directory whose
+ pathname contained an ERE metacharacter like '+'.
-* js/t2106-cleanup (2020-11-18) 3 commits
- (merged to 'next' on 2020-11-23 at b1bcd5d8b2)
- + t2106: ensure that the checkout fails for the expected reason
- + t2106: make test independent of the current main branch name
- + t2106: adjust style to the current conventions
+* fc/random-cleanup (2020-12-02) 6 commits
+ (merged to 'next' on 2020-12-02 at 3cfe693eb8)
+ + gitignore: remove entry for git serve
+ + gitignore: drop duplicate entry for git-sh-i18n
+ + tests: lib-functions: trivial style cleanups
+ + test: completion: fix typos
+ + .gitignore: remove dangling file
+ + refspec: trivial cleanup
- A test script got cleaned up and then made not to depend on the
- value of init.defaultBranch.
+ Random cleanup.
-* js/t3040-cleanup (2020-11-18) 1 commit
- (merged to 'next' on 2020-11-23 at 88951eae2f)
- + t3040: remove stale note
+* fc/zsh-completion (2020-12-01) 1 commit
+ (merged to 'next' on 2020-12-02 at 78b7286a26)
+ + completion: zsh: fix file completion regression
- Cleanup.
+ Hotfix for a recent breakage.
-* js/t3404-master-to-primary (2020-11-24) 1 commit
- (merged to 'next' on 2020-11-25 at c2959cc831)
- + t3404: do not depend on any specific default branch name
+* jk/banned (2020-12-02) 2 commits
+ (merged to 'next' on 2020-12-02 at 3be67a4909)
+ + banned.h: mark ctime_r() and asctime_r() as banned
+ + banned.h: mark non-reentrant gmtime, etc as banned
- A test script got cleaned up and then made not to depend on the
- value of init.defaultBranch.
+ Non-reentrant time-related library functions and ctime/asctime with
+ awkward calling interfaces are banned from the codebase.
-* js/t4015-wo-master (2020-11-19) 1 commit
- (merged to 'next' on 2020-11-23 at b85c36ffb4)
- + t4015: let the test pass with any default branch name
+* jk/stop-pack-objects-when-fetch-is-killed (2020-12-01) 1 commit
+ (merged to 'next' on 2020-12-02 at 9e8b8e4b81)
+ + upload-pack: kill pack-objects helper on signal or exit
- A test script got cleaned up not to depend on the value of
- init.defaultBranch.
+ "git fetch" that is killed may leave a pack-objects process behind,
+ still computing to find a good compression, wasting cycles. This
+ has been corrected.
-* km/stash-error-message-fix (2020-11-24) 1 commit
- (merged to 'next' on 2020-11-25 at 9ef82d6aa7)
- + stash: add missing space to an error message
+* jk/stop-pack-objects-when-push-is-killed (2020-11-21) 1 commit
+ (merged to 'next' on 2020-11-25 at f73fb999cd)
+ + send-pack: kill pack-objects helper on signal or exit
- Error message fix.
+ "git push" that is killed may leave a pack-objects process behind,
+ still computing to find a good compression, wasting cycles. This
+ has been corrected.
-* mt/worktree-error-message-fix (2020-11-21) 1 commit
- (merged to 'next' on 2020-11-25 at bc887168ff)
- + worktree: fix order of arguments in error message
+* js/add-i-color-fix (2020-11-16) 11 commits
+ (merged to 'next' on 2020-11-30 at 5cb8202cd4)
+ + add -i: verify in the tests that colors can be overridden
+ + add -p: prefer color.diff.context over color.diff.plain
+ + add -i (Perl version): color header to match the C version
+ + add -i (built-in): use the same indentation as the Perl version
+ + add -p (built-in): do not color the progress indicator separately
+ + add -i (built-in): use correct names to load color.diff.* config
+ + add -i (built-in): prevent the `reset` "color" from being configured
+ + add -i: use `reset_color` consistently
+ + add -p (built-in): imitate `xdl_format_hunk_hdr()` generating hunk headers
+ + add -i (built-in): send error messages to stderr
+ + add -i (built-in): do show an error message for incorrect inputs
- Fix formulation of an error message with two placeholders in "git
- worktree add" subcommand.
+ "git add -i" failed to honor custom colors configured to show
+ patches, which has been corrected.
+ cf. <20201117015149.GC19433@coredump.intra.peff.net>
-* na/notes-displayref-is-not-boolean (2020-11-23) 2 commits
- (merged to 'next' on 2020-11-25 at b0dda46b56)
- + t3301: test proper exit response to no-value notes.displayRef.
- + notes.c: fix a segfault in notes_display_config()
+* js/trace2-session-id (2020-11-11) 11 commits
+ (merged to 'next' on 2020-12-02 at b6229e069f)
+ + receive-pack: log received client session ID
+ + send-pack: advertise session ID in capabilities
+ + upload-pack, serve: log received client session ID
+ + fetch-pack: advertise session ID in capabilities
+ + transport: log received server session ID
+ + serve: advertise session ID in v2 capabilities
+ + receive-pack: advertise session ID in v0 capabilities
+ + upload-pack: advertise session ID in v0 capabilities
+ + trace2: add a public function for getting the SID
+ + docs: new transfer.advertiseSID option
+ + docs: new capability to advertise session IDs
- Config parser fix for "git notes".
+ The transport layer was taught to optionally exchange the session
+ ID assigned by the trace2 subsystem during fetch/push transactions.
-* sa/credential-store-timeout (2020-11-25) 1 commit
- (merged to 'next' on 2020-11-25 at 7a9a4b68fd)
- + crendential-store: use timeout when locking file
+* jt/trace-error-on-warning (2020-11-24) 1 commit
+ (merged to 'next' on 2020-11-30 at 1ab8a970f8)
+ + usage: add trace2 entry upon warning()
- Multiple "credential-store" backends can race to lock the same
- file, causing everybody else but one to fail---reattempt locking
- with some timeout to reduce the rate of the failure.
+ Like die() and error(), a call to warning() will also trigger a
+ trace2 event.
+
+
+* ma/grep-init-default (2020-11-30) 4 commits
+ (merged to 'next' on 2020-12-02 at 6240fa114e)
+ + MyFirstObjectWalk: drop `init_walken_defaults()`
+ + grep: copy struct in one fell swoop
+ + grep: use designated initializers for `grep_defaults`
+ + grep: don't set up a "default" repo for grep
+
+ Code clean-up.
+
+
+* mt/do-not-use-scld-in-working-tree (2020-12-02) 1 commit
+ (merged to 'next' on 2020-12-02 at c1c0a6c31e)
+ + apply: don't use core.sharedRepository to create working tree files
+
+ "git apply" adjusted the permission bits of working-tree files and
+ directories according core.sharedRepository setting by mistake and
+ for a long time, which has been corrected.
---------------------------------------------------
-[New Topics]
* nk/perf-fsmonitor-cleanup (2020-11-30) 1 commit
- - perf/fsmonitor: use test_must_be_empty helper
+ (merged to 'next' on 2020-12-02 at 3096e954be)
+ + perf/fsmonitor: use test_must_be_empty helper
Test clean-up.
- Will merge to 'next'.
+
+* nm/imap-send-use-default-config (2020-12-01) 1 commit
+ (merged to 'next' on 2020-12-02 at 08f4f483b2)
+ + imap-send: parse default git config
+
+ "git imap-send" used to ignore configuration variables like
+ core.askpass; this has been corrected.
+
+
+* pb/pull-rebase-recurse-submodules (2020-11-16) 4 commits
+ (merged to 'next' on 2020-11-25 at 9837b50d7f)
+ + pull: check for local submodule modifications with the right range
+ + t5572: describe '--rebase' tests a little more
+ + t5572: add notes on a peculiar test
+ + pull --rebase: compute rebase arguments in separate function
+
+ "git pull --rebase --recurse-submodules" checked for local changes
+ in a wrong range and failed to run correctly when it should.
+
+
+* pk/subsub-fetch-fix (2020-12-02) 1 commit
+ (merged to 'next' on 2020-12-02 at b15a3da5d8)
+ + Revert "submodules: fix of regression on fetching of non-init subsub-repo"
+
+ An earlier attempt to fix "git fetch --recurse-submodules" broke
+ another use case; revert it until a better fix is found.
+
+
+* ps/update-ref-multi-transaction (2020-11-16) 4 commits
+ (merged to 'next' on 2020-11-30 at c1c3e23374)
+ + update-ref: disallow "start" for ongoing transactions
+ + p1400: use `git-update-ref --stdin` to test multiple transactions
+ + update-ref: allow creation of multiple transactions
+ + t1400: avoid touching refs on filesystem
+
+ "git update-ref --stdin" learns to take multiple transactions in a
+ single session.
* rs/fetch-pack-invalid-lockfile (2020-11-30) 1 commit
- - fetch-pack: disregard invalid pack lockfiles
+ (merged to 'next' on 2020-12-02 at 39356747b4)
+ + fetch-pack: disregard invalid pack lockfiles
"fetch-pack" could pass NULL pointer to unlink(2) when it sees an
invalid filename; the error checking has been tightened to make
this impossible.
- Will merge to 'next'.
-
* rs/maintenance-run-outside-repo (2020-11-30) 1 commit
- - maintenance: fix SEGFAULT when no repository
+ (merged to 'next' on 2020-12-02 at ccfbe5991d)
+ + maintenance: fix SEGFAULT when no repository
"git maintenance run/start/stop" needed to be run in a repository
to hold the lockfile they use, but didn't make sure they are
actually in a repository, which has been corrected.
+
+* sn/config-doc-typofix (2020-12-01) 1 commit
+ (merged to 'next' on 2020-12-02 at 2d62912243)
+ + config.txt: fix a typo (backslash != backquote)
+
+ Fix for an old typo.
+
+
+* tb/bugreport-no-localtime (2020-12-01) 1 commit
+ (merged to 'next' on 2020-12-02 at ca245d2b01)
+ + builtin/bugreport.c: use thread-safe localtime_r()
+
+ Use of non-reentrant localtime() has been removed.
+
+
+* tb/idx-midx-race-fix (2020-11-25) 2 commits
+ (merged to 'next' on 2020-11-30 at 493ded178e)
+ + midx.c: protect against disappearing packs
+ + packfile.c: protect against disappearing indexes
+
+ Processes that access packdata while the .idx file gets removed
+ (e.g. while repacking) did not fail or fall back gracefully as they
+ could.
+
+
+* tb/repack-simplify (2020-11-17) 3 commits
+ (merged to 'next' on 2020-11-25 at 79a98f2403)
+ + builtin/repack.c: don't move existing packs out of the way
+ + builtin/repack.c: keep track of what pack-objects wrote
+ + repack: make "exts" array available outside cmd_repack()
+
+ Simplify the logic to deal with a repack operation that ended up
+ creating the same packfile.
+
+--------------------------------------------------
+[New Topics]
+
+* ab/mktag (2020-12-01) 10 commits
+ - mktag doc: update to explain why to use this
+ - mktag: use fsck instead of custom verify_tag()
+ - fsck: add new "extra" checks for "mktag"
+ - mktag tests: improve verify_object() test coverage
+ - mktag tests: remove needless SHA-1 hardcoding
+ - mktag tests: don't needlessly use a subshell
+ - mktag: remove redundant braces in one-line body "if"
+ - mktag: reword write_object_file() error
+ - mktag: use default strbuf_read() hint
+ - mktag doc: say <hash> not <sha1>
+
+ "git mktag" validates its input using its own rules before writing
+ a tag object---it has been updated to share the logic with "git
+ fsck".
+
+ Expecting a reroll.
+
+
+* so/glossary-branch-is-not-necessarily-active (2020-12-02) 1 commit
+ (merged to 'next' on 2020-12-08 at 01805f8ab6)
+ + glossary: improve "branch" definition
+
+ The glossary described a branch as an "active" line of development,
+ which is misleading---a stale and non-moving branch is still a
+ branch.
+
+ Will merge to 'master'.
+
+
+* ae/doc-reproducible-html (2020-12-02) 1 commit
+ (merged to 'next' on 2020-12-08 at 263232f371)
+ + doc: make HTML manual reproducible
+
+ Newer versions of xsltproc can assign IDs in HTML documents it
+ generates in a consistent manner. Use the feature to help format
+ HTML version of the user manual reproducibly.
+
+ Will merge to 'master'.
+
+
+* ab/trailers-extra-format (2020-12-07) 5 commits
+ - pretty format %(trailers): add a "key_value_separator"
+ - pretty format %(trailers): add a "keyonly"
+ - pretty-format %(trailers): fix broken standalone "valueonly"
+ - pretty format %(trailers) doc: avoid repetition
+ - pretty format %(trailers) test: split a long line
+
+ The "--format=%(trailers)" mechanism gets enhanced to make it
+ easier to design output for machine consumption.
+
+
+* da/vs-build-iconv-fix (2020-12-04) 1 commit
+ (merged to 'next' on 2020-12-08 at 4c6c5054a3)
+ + ci(vs-build): stop passing the iconv library location explicitly
+
+ Build update.
+
+ Will merge to 'master'.
+
+
+* en/diffcore-rename (2020-12-07) 5 commits
+ - diffcore-rename: simplify and accelerate register_rename_src()
+ - diffcore-rename: reduce jumpiness in progress counters
+ - diffcore-rename: rename num_create to num_targets
+ - diffcore-rename: remove unnecessary if-clause
+ - diffcore-rename: avoid usage of global in too_many_rename_candidates()
+
+ File-level rename detection updates.
+
+ Needs review.
+
+
+* en/merge-ort-2 (2020-12-08) 7 commits
+ - merge-ort: add modify/delete handling and delayed output processing
+ - merge-ort: add die-not-implemented stub handle_content_merge() function
+ - merge-ort: add function grouping comments
+ - merge-ort: add a paths_to_free field to merge_options_internal
+ - merge-ort: add a path_conflict field to merge_options_internal
+ - merge-ort: add a clear_internal_opts helper
+ - merge-ort: add a few includes
+ (this branch uses en/merge-ort-impl.)
+
+ More "ORT" merge strategy.
+
+ Needs review.
+
+
+* fc/pull-merge-rebase (2020-12-08) 19 commits
+ - future: pull: enable ff-only mode by default
+ - pull: advice of future changes
+ - pull: add pull.mode=ff-only
+ - pull: add pull.mode
+ - pull: trivial memory fix
+ - test: pull-options: revert unnecessary changes
+ - test: merge-pull-config: trivial cleanup
+ - pull: move configurations fetches
+ - rebase: add REBASE_DEFAULT
+ - pull: show warning with --ff
+ - pull: introduce --merge option
+ - pull: trivial whitespace style fix
+ - pull: display default warning only when non-ff
+ - pull: move default warning
+ - pull: trivial cleanup
+ - pull: cleanup autostash check
+ - pull: refactor fast-forward check
+ - pull: improve default warning
+ - doc: pull: explain what is a fast-forward
+
+ When a user does not tell "git pull" to use rebase or merge, the
+ command gives a loud message telling a user to choose between
+ rebase or merge but creates a merge anyway, forcing users who would
+ want to rebase to redo the operation. Fix this by (1) tightening
+ the condition to give the message---there is no reason to stop or
+ force the user to choose between rebase or merge if the history
+ fast-forwards, and (2) failing the operation when the history does
+ not fast-forward, instead of making a merge, in such a case.
+
+
+* jk/check-config-parsing-error-in-upload-pack (2020-12-03) 1 commit
+ (merged to 'next' on 2020-12-08 at b618c7d956)
+ + upload-pack: propagate return value from object filter config callback
+
+ Tighten error checking in the codepath that responds to "git fetch".
+
+ Will merge to 'master'.
+
+
+* jk/multi-line-indent-style-fix (2020-12-03) 1 commit
+ (merged to 'next' on 2020-12-08 at e6d1026437)
+ + style: indent multiline "if" conditions to align
+
+ Style fix.
+
+ Will merge to 'master'.
+
+
+* jk/oid-array-cleanup (2020-12-07) 9 commits
+ - commit-graph: use size_t for array allocation and indexing
+ - commit-graph: replace packed_oid_list with oid_array
+ - commit-graph: drop count_distinct_commits() function
+ - oid-array: provide a for-loop iterator
+ - oid-array: make sort function public
+ - cache.h: move hash/oid functions to hash.h
+ - t0064: make duplicate tests more robust
+ - t0064: drop sha1 mention from filename
+ - oid-array.h: drop sha1 mention from header guard
+
+ Code clean-up.
+
+ Will merge to 'next'.
+
+
+* js/cmake-extra-built-ins-fix (2020-12-04) 1 commit
+ (merged to 'next' on 2020-12-08 at f29945cb35)
+ + cmake: determine list of extra built-ins dynamically
+
+ VSbuild fix.
+
+ Will merge to 'master'.
+
+
+* js/t5526-with-no-particular-primary-branch-name (2020-12-04) 2 commits
+ (merged to 'next' on 2020-12-08 at b16af9417c)
+ + t5526: drop the prereq expecting the default branch name `main`
+ + t5526: avoid depending on a specific default branch name
+
+ Test update.
+
+ Will merge to 'master'.
+
+
+* js/t6300-hardcode-main (2020-12-07) 1 commit
+ - t6300: avoid using the default name of the initial branch
+
+ Test update.
+
+ Will merge to 'next'.
+
+
+* js/t7064-master-to-initial (2020-12-08) 1 commit
+ - t7064: avoid relying on a specific default branch name
+
+ Test update.
+
+ Will merge to 'next'.
+
+
+* pk/subsub-fetch-fix-take-2 (2020-12-08) 1 commit
+ - submodules: fix of regression on fetching of non-init subsub-repo
+
+ "git fetch --recurse-submodules" fix.
+
+
+* rj/make-clean (2020-12-08) 5 commits
+ - Makefile: don't use a versioned temp distribution directory
+ - Makefile: don't try to clean old debian build product
+ - gitweb/Makefile: conditionally include ../GIT-VERSION-FILE
+ - Documentation/Makefile: conditionally include ../GIT-VERSION-FILE
+ - Documentation/Makefile: conditionally include doc.dep
+
+ Build optimization.
+
+ Will merge to 'next'.
+
+
+* tb/partial-clone-filters-fix (2020-12-03) 2 commits
+ - upload-pack.c: don't free allowed_filters util pointers
+ - builtin/clone.c: don't ignore transport_fetch_refs() errors
+
+ Fix potential server side resource deallocation issues when
+ responding to a partial clone request.
+
Will merge to 'next'.
--------------------------------------------------
[Stalled]
-* mt/grep-sparse-checkout (2020-09-10) 9 commits
+* mt/grep-sparse-checkout (2020-12-06) 10 commits
+ - t7817: do not depend on any specific default branch name
- config: add setting to ignore sparsity patterns in some cmds
- grep: honor sparse checkout patterns
- config: correctly read worktree configs in submodules
paths.
-* mt/rm-sparse-checkout (2020-11-16) 1 commit
+* mt/rm-sparse-checkout (2020-12-08) 1 commit
- rm: honor sparse checkout patterns
(this branch uses mt/grep-sparse-checkout.)
probably is with potential consequences that is more/less grave?
-* es/config-hooks (2020-10-16) 8 commits
+* es/config-hooks (2020-12-07) 34 commits
+ - run-command: stop thinking about hooks
+ - receive-pack: convert receive hooks to hook.h
+ - post-update: use hook.h library
+ - proc-receive: acquire hook list from hook.h
+ - receive-pack: convert 'update' hook to hook.h
+ - reference-transaction: look for hooks in config
+ - transport: convert pre-push hook to use config
+ - hook: convert 'post-rewrite' hook to config
+ - hooks: convert 'post-checkout' hook to hook library
+ - git-p4: use 'git hook' to run hooks
+ - receive-pack: convert push-to-checkout hook to hook.h
+ - read-cache: convert post-index-change hook to use config
+ - rebase: teach pre-rebase to use hook.h
+ - gc: use hook library for pre-auto-gc hook
+ - merge: use config-based hooks for post-merge hook
+ - am: convert applypatch hooks to use config
+ - commit: use config-based hooks
+ - hooks: allow callers to capture output
+ - run-command: allow capturing of collated output
+ - hook: provide stdin by string_list or callback
+ - run-command: add stdin callback for parallelization
+ - hook: allow specifying working directory for hooks
+ - hook: allow parallel hook execution
+ - run-command: allow stdin for run_processes_parallel
+ - hook: support passing stdin to hooks
- hook: replace find_hook() with hook_exists()
- hook: add 'run' subcommand
- parse-options: parse into strvec
- hook: implement hookcmd.<name>.skip
+ - hook: respect hook.runHookDir
- hook: include hookdir hook in list
- hook: add list command
- hook: scaffolding for git-hook subcommand
The "hooks defined in config" topic.
+ Seems to break some tests in 'seen'.
+
* hn/reftable (2020-10-01) 13 commits
. reftable: "test-tool dump-reftable" command.
Needs review.
-* en/merge-ort-impl (2020-11-11) 21 commits
+* en/merge-ort-impl (2020-12-06) 21 commits
- merge-ort: free data structures in merge_finalize()
- - merge-ort: add implementation of record_unmerged_index_entries()
+ - merge-ort: add implementation of record_conflicted_index_entries()
- tree: enable cmp_cache_name_compare() to be used elsewhere
- merge-ort: add implementation of checkout()
- merge-ort: basic outline for merge_switch_to_result()
- merge-ort: add some high-level algorithm structure
- merge-ort: setup basic internal data structures
- Merge branch 'en/strmap' into en/merge-ort-impl
+ (this branch is used by en/merge-ort-2.)
+
+ Needs review.
+
+
+* ag/merge-strategies-in-c (2020-11-24) 13 commits
+ - sequencer: use the "octopus" merge strategy without forking
+ - sequencer: use the "resolve" strategy without forking
+ - merge: use the "octopus" strategy without forking
+ - merge: use the "resolve" strategy without forking
+ - merge-octopus: rewrite in C
+ - merge-recursive: move better_branch_name() to merge.c
+ - merge-resolve: rewrite in C
+ - merge-index: don't fork if the requested program is `git-merge-one-file'
+ - merge-index: libify merge_one_path() and merge_all()
+ - merge-one-file: rewrite in C
+ - update-index: move add_cacheinfo() to read-cache.c
+ - t6060: modify multiple files to expose a possible issue with merge-index
+ - t6407: modernise tests
+
+ The resolve and octopus merge strategy backends have been rewritten
+ in C.
Needs review.
- A reroll exists.
- cf. <pull.923.git.git.1606635803.gitgitgadget@gmail.com>
--------------------------------------------------
[Cooking]
-* en/stash-apply-sparse-checkout (2020-11-21) 3 commits
+* en/stash-apply-sparse-checkout (2020-12-01) 3 commits
- stash: fix stash application in sparse-checkouts
- stash: remove unnecessary process forking
- t7012: add a testcase demonstrating stash apply bugs in sparse checkouts
-
-* jk/stop-pack-objects-when-push-is-killed (2020-11-21) 1 commit
- (merged to 'next' on 2020-11-25 at f73fb999cd)
- + send-pack: kill pack-objects helper on signal or exit
-
- Receiving "git push" that is killed may leave zombie pack-objects
- process behind, which has been corrected.
-
- Will merge to 'master'.
-
-
-* ma/grep-init-default (2020-11-30) 4 commits
- - MyFirstObjectWalk: drop `init_walken_defaults()`
- - grep: copy struct in one fell swoop
- - grep: use designated initializers for `grep_defaults`
- - grep: don't set up a "default" repo for grep
-
- Code clean-up.
-
- Will merge to 'next'.
+ "git stash" did not work well in a sparsely checked out working
+ tree.
* fc/atmark-in-refspec (2020-11-30) 3 commits
- - refspec: make @ a synonym of HEAD
- - tests: push: trivial cleanup
- - tests: push: improve cleanup of HEAD tests
+ (merged to 'next' on 2020-12-08 at bfded23c1c)
+ + refspec: make @ a synonym of HEAD
+ + tests: push: trivial cleanup
+ + tests: push: improve cleanup of HEAD tests
"@" sometimes worked (e.g. "git push origin @:there") as a part of
- a refspec element, but "git push orign @" did not work, which has
+ a refspec element, but "git push origin @" did not work, which has
been corrected.
+ Will merge to 'master'.
+
* js/init-defaultbranch-advice (2020-11-24) 4 commits
- init: provide useful advice about init.defaultBranch
Our users are going to be trained to prepare for future change of
init.defaultBranch configuration variable.
-
-* jt/trace-error-on-warning (2020-11-24) 1 commit
- (merged to 'next' on 2020-11-30 at 1ab8a970f8)
- + usage: add trace2 entry upon warning()
-
- Like die() and error(), a call to warning() will also trigger a
- trace2 event.
-
- Will merge to 'master'.
+ Expecting a reroll.
+ cf. <xmqq8saqjx2n.fsf@gitster.c.googlers.com>
+ I think a new advice.defaultBranchName is a bad idea.
-* ps/config-env-pairs (2020-11-24) 2 commits
+* ps/config-env-pairs (2020-12-01) 4 commits
- config: allow specifying config entries via envvar pairs
+ - config: refactor parsing of GIT_CONFIG_PARAMETERS
- config: extract function to parse config pairs
+ - environment: make `getenv_safe()` non-static
Introduce a way to feed configuration variable-value pairs via
environment variables.
- Getting there.
- cf. <X74CigYS7AUtMo9Q@tanuki>
-
-
-* tb/idx-midx-race-fix (2020-11-25) 2 commits
- (merged to 'next' on 2020-11-30 at 493ded178e)
- + midx.c: protect against disappearing packs
- + packfile.c: protect against disappearing indexes
-
- Processes that access packdata while the .idx file gets removed
- (e.g. while repacking) did not fail or fall back gracefully as they
- could.
-
- Will merge to 'master'.
-
-
-* rs/stop-pack-objects-when-fetch-is-killed (2020-11-25) 1 commit
- - upload-pack: kill pack-objects helper on signal or exit
-
- "git upload-pack" that is killed may leave zombie pack-objects
- process behind, which has been corrected.
+ Will discard.
+ I am leaning toward dropping this new feature. The review
+ discussion seems to me that we are not convinced that this is
+ better than the suggested --config-env approach.
+ cf. <20201125224737.GK389879@camp.crustytoothpaste.net>
- Needs to be replaced with signed-off and/or improved version.
-
-* tb/pack-bitmap (2020-11-21) 24 commits
+* tb/pack-bitmap (2020-12-08) 24 commits
- pack-bitmap-write: better reuse bitmaps
- - pack-bitmap-write: relax unique rewalk condition
+ - pack-bitmap-write: relax unique revwalk condition
- pack-bitmap-write: use existing bitmaps
- pack-bitmap: factor out 'add_commit_to_bitmap()'
- pack-bitmap: factor out 'bitmap_for_commit()'
- pack-bitmap-write: rename children to reverse_edges
- t5310: add branch-based checks
- commit: implement commit_list_contains()
- - bitmap: add bitmap_diff_nonzero()
+ - bitmap: implement bitmap_is_subset()
- pack-bitmap-write: fill bitmap with commit history
- pack-bitmap-write: pass ownership of intermediate bitmaps
- pack-bitmap-write: reimplement bitmap writing
- t5310: drop size of truncated ewah bitmap
- pack-bitmap: bounds-check size of cache extension
- pack-bitmap: fix header size check
- - ewah/ewah_bitmap.c: grow buffer past 1
+ - ewah/ewah_bitmap.c: avoid open-coding ALLOC_GROW()
Various improvement to the codepath that writes out pack bitmaps.
- Needs a bit of reshuffling?
- cf. <X7xzWClGr3bM3wcg@coredump.intra.peff.net>
-
-
-* ab/retire-parse-remote (2020-11-24) 4 commits
- (merged to 'next' on 2020-11-25 at 644484d7df)
- + submodule: fix fetch_in_submodule logic
- (merged to 'next' on 2020-11-18 at 80d4d8290c)
- + parse-remote: remove this now-unused library
- + submodule: remove sh function in favor of helper
- + submodule: use "fetch" logic instead of custom remote discovery
-
- "git-parse-remote" shell script library outlived its usefulness.
-
- Will merge to 'master'.
-
-
-* pb/pull-rebase-recurse-submodules (2020-11-16) 4 commits
- (merged to 'next' on 2020-11-25 at 9837b50d7f)
- + pull: check for local submodule modifications with the right range
- + t5572: describe '--rebase' tests a little more
- + t5572: add notes on a peculiar test
- + pull --rebase: compute rebase arguments in separate function
-
- "git pull --rebase --recurse-submodules" checked for local changes
- in a wrong range and failed to run correctly when it should.
-
- Will merge to 'master'.
-
-
-* tb/repack-simplify (2020-11-17) 3 commits
- (merged to 'next' on 2020-11-25 at 79a98f2403)
- + builtin/repack.c: don't move existing packs out of the way
- + builtin/repack.c: keep track of what pack-objects wrote
- + repack: make "exts" array available outside cmd_repack()
-
- Simplify the logic to deal with a repack operation that ended up
- creating the same packfile.
-
- Will merge to 'master'.
+ Will merge to 'next'?
* dd/help-autocorrect-never (2020-11-25) 1 commit
- - help.c: help.autocorrect=never means "do not compute suggestions"
+ (merged to 'next' on 2020-12-08 at f1531ab641)
+ + help.c: help.autocorrect=never means "do not compute suggestions"
"git $cmd $args", when $cmd is not a recognised subcommand, by
default tries to see if $cmd is a typo of an existing subcommand
to find a likely typo, by setting the configuration variable to
'never'.
- Getting there.
- cf. <xmqqft4xdubq.fsf_-_@gitster.c.googlers.com>
+ Will merge to 'master'.
* js/default-branch-name-tests-final-stretch (2020-11-19) 29 commits
"git init" creates.
-* ds/config-literal-value (2020-11-25) 8 commits
- - config doc: value-pattern is not necessarily a regexp
- - config: implement --fixed-value with --get*
- - config: plumb --fixed-value into config API
- - config: add --fixed-value option, un-implemented
- - t1300: add test for --replace-all with value-pattern
- - t1300: test "set all" mode with value-pattern
- - config: replace 'value_regex' with 'value_pattern'
- - config: convert multi_replace to flags
- (this branch is used by ds/maintenance-part-3.)
-
- Various subcommands of "git config" that takes value_regex
- learn the "--literal-value" option to take the value_regex option
- as a literal string.
-
- Expecting a (hopefully final) reroll.
-
-
-* ds/maintenance-part-3 (2020-11-25) 2 commits
- - maintenance: use 'git config --fixed-value'
- - Merge branch 'ds/config-literal-value' into ds/maintenance-part-3
- (this branch uses ds/config-literal-value.)
-
- "git maintenance" command had trouble working in a directory whose
- pathname contained an ERE metacharacter like '+'.
-
- Blocked by ds/config-literal-value.
-
-
-* ag/merge-strategies-in-c (2020-11-24) 13 commits
- - sequencer: use the "octopus" merge strategy without forking
- - sequencer: use the "resolve" strategy without forking
- - merge: use the "octopus" strategy without forking
- - merge: use the "resolve" strategy without forking
- - merge-octopus: rewrite in C
- - merge-recursive: move better_branch_name() to merge.c
- - merge-resolve: rewrite in C
- - merge-index: don't fork if the requested program is `git-merge-one-file'
- - merge-index: libify merge_one_path() and merge_all()
- - merge-one-file: rewrite in C
- - update-index: move add_cacheinfo() to read-cache.c
- - t6060: modify multiple files to expose a possible issue with merge-index
- - t6407: modernise tests
-
- The resolve and octopus merge strategy backends have been rewritten
- in C.
-
- Needs review.
-
-
-* ps/update-ref-multi-transaction (2020-11-16) 4 commits
- (merged to 'next' on 2020-11-30 at c1c3e23374)
- + update-ref: disallow "start" for ongoing transactions
- + p1400: use `git-update-ref --stdin` to test multiple transactions
- + update-ref: allow creation of multiple transactions
- + t1400: avoid touching refs on filesystem
-
- "git update-ref --stdin" learns to take multiple transactions in a
- single session.
-
- Will merge to 'master'.
-
-
-* js/add-i-color-fix (2020-11-16) 11 commits
- (merged to 'next' on 2020-11-30 at 5cb8202cd4)
- + add -i: verify in the tests that colors can be overridden
- + add -p: prefer color.diff.context over color.diff.plain
- + add -i (Perl version): color header to match the C version
- + add -i (built-in): use the same indentation as the Perl version
- + add -p (built-in): do not color the progress indicator separately
- + add -i (built-in): use correct names to load color.diff.* config
- + add -i (built-in): prevent the `reset` "color" from being configured
- + add -i: use `reset_color` consistently
- + add -p (built-in): imitate `xdl_format_hunk_hdr()` generating hunk headers
- + add -i (built-in): send error messages to stderr
- + add -i (built-in): do show an error message for incorrect inputs
-
- "git add -i" failed to honor custom colors configured to show
- patches, which has been corrected.
-
- Will merge to 'master'.
- cf. <20201117015149.GC19433@coredump.intra.peff.net>
-
-
-* js/trace2-session-id (2020-11-11) 11 commits
- - receive-pack: log received client session ID
- - send-pack: advertise session ID in capabilities
- - upload-pack, serve: log received client session ID
- - fetch-pack: advertise session ID in capabilities
- - transport: log received server session ID
- - serve: advertise session ID in v2 capabilities
- - receive-pack: advertise session ID in v0 capabilities
- - upload-pack: advertise session ID in v0 capabilities
- - trace2: add a public function for getting the SID
- - docs: new transfer.advertiseSID option
- - docs: new capability to advertise session IDs
-
- The transport layer was taught to optionally exchange the session
- ID assigned by the trace2 subsystem during fetch/push transactions.
-
- Will merge to 'next'.
-
-
-* ds/maintenance-part-4 (2020-11-24) 4 commits
+* ds/maintenance-part-4 (2020-12-01) 6 commits
+ - t7900: make macOS-specific test work on Windows
+ - t7900: fix test failures when invoked individually via --run
- maintenance: use Windows scheduled tasks
- maintenance: use launchctl on macOS
- maintenance: include 'cron' details in docs
maintenance tasks to support platforms whose native scheduling
methods are not 'cron'.
+ Almost there.
+ cf. <CAPig+cQ6vZzbb36t5Kn=NM9wXC8i1MpcGXfK=QwnNRoTQsQP0A@mail.gmail.com>
-* sj/untracked-files-in-submodule-directory-is-not-dirty (2020-10-26) 1 commit
+
+* sj/untracked-files-in-submodule-directory-is-not-dirty (2020-12-08) 1 commit
- diff: do not show submodule with untracked files as "-dirty"
"git diff" showed a submodule working tree with untracked cruft as
which does not consider having untracked files in the working tree
as source of dirtiness. The inconsistency has been fixed.
- Needs doc update and also adjusting "git status".
-
* ak/corrected-commit-date (2020-10-08) 10 commits
- doc: add corrected commit date info