To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Apr 2020, #03; Tue, 28)
-X-master-at: 86ab15cb154862b6fa5cc646dac27532f881e1fb
-X-next-at: 6140810f5a86d69e4bee74d360b936fb4a8a3b1f
+Subject: What's cooking in git.git (Apr 2020, #04; Thu, 30)
+X-master-at: d61d20c9b413225793f8a0b491bbbec61c184e26
+X-next-at: e9eca65c58678cd6523f72e8b97b77f978a3477e
-What's cooking in git.git (Apr 2020, #03; Tue, 28)
+What's cooking in git.git (Apr 2020, #04; Thu, 30)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
--------------------------------------------------
[Graduated to "master"]
-* ag/rebase-merge-allow-ff-under-abbrev-command (2020-03-30) 2 commits
- (merged to 'next' on 2020-04-15 at b4679f7c7c)
- + t3432: test `--merge' with `rebase.abbreviateCommands = true', too
- + sequencer: don't abbreviate a command if it doesn't have a short form
-
- "git rebase" with the merge backend did not work well when the
- rebase.abbreviateCommands configuration was set.
-
-
-* ag/sequencer-i18n-messages (2020-03-28) 1 commit
- (merged to 'next' on 2020-04-15 at d6b38d12cf)
- + sequencer: mark messages for translation
-
- Message fix.
-
-
-* ak/run-command-on-cygwin-fix (2020-03-27) 1 commit
- (merged to 'next' on 2020-04-15 at 9e98b82a7f)
- + run-command: trigger PATH lookup properly on Cygwin
-
- Utitiles run via the run_command() API were not spawned correctly
- on Cygwin, when the paths to them are given as a full path with
- backslashes.
-
-
-* ar/test-style-fixes (2020-03-22) 2 commits
- (merged to 'next' on 2020-04-15 at 50ed75bccf)
- + t: fix whitespace around &&
- + t9500: remove spaces after redirect operators
-
- Style fixes.
-
-
-* bc/constant-memequal (2020-04-22) 2 commits
- (merged to 'next' on 2020-04-22 at 6d2b10b1e7)
- + receive-pack: compilation fix
- (merged to 'next' on 2020-04-20 at 31180dae7d)
- + builtin/receive-pack: use constant-time comparison for HMAC value
-
- Validation of push certificate has been made more robust against
- timing attacks.
-
-
-* bc/faq (2020-03-30) 1 commit
- (merged to 'next' on 2020-04-15 at 2d4c46ca7a)
- + docs: add a FAQ
-
- Doc update.
-
-
-* bk/p4-pre-edit-changelist (2020-02-14) 7 commits
- (merged to 'next' on 2020-04-15 at 3e7cecd445)
- + git-p4: add RCS keyword status message
- + git-p4: add p4 submit hooks
- + git-p4: restructure code in submit
- + git-p4: add --no-verify option
- + git-p4: add p4-pre-submit exit text
- + git-p4: create new function run_git_hook
- + git-p4: rewrite prompt to be Windows compatible
-
- "git p4" learned four new hooks and also "--no-verify" option to
- bypass them (and the existing "p4-pre-submit" hook).
-
-
-* dd/no-gpg-sign (2020-04-03) 6 commits
- (merged to 'next' on 2020-04-15 at 3a326e99af)
- + Documentation: document merge option --no-gpg-sign
- + Documentation: merge commit-tree --[no-]gpg-sign
- + Documentation: reword commit --no-gpg-sign
- + Documentation: document am --no-gpg-sign
- + cherry-pick/revert: honour --no-gpg-sign in all case
- + rebase.c: honour --no-gpg-sign
-
- "git rebase" learned the "--no-gpg-sign" option to countermand
- commit.gpgSign the user may have.
-
-
-* dd/test-with-busybox (2020-03-26) 8 commits
- (merged to 'next' on 2020-04-15 at 8177191066)
- + t5703: feed raw data into test-tool unpack-sideband
- + t4124: tweak test so that non-compliant diff(1) can also be used
- + t7063: drop non-POSIX argument "-ls" from find(1)
- + t5616: use rev-parse instead to get HEAD's object_id
- + t5003: skip conversion test if unzip -a is unavailable
- + t5003: drop the subshell in test_lazy_prereq
- + test-lib-functions: test_cmp: eval $GIT_TEST_CMP
- + t4061: use POSIX compliant regex(7)
+* dd/ci-musl-libc (2020-04-06) 6 commits
+ + travis: build and test on Linux with musl libc and busybox
+ + ci/linux32: libify install-dependencies step
+ + ci: refactor docker runner script
+ + ci/linux32: parameterise command to switch arch
+ + ci/lib-docker: preserve required environment variables
+ + ci: make MAKEFLAGS available inside the Docker container in the Linux32 job
(this branch is used by dd/ci-swap-azure-pipelines-with-github-actions.)
- Various tests have been updated to work around issues found with
- shell utilities that come with busybox etc.
-
-
-* dl/libify-a-few (2020-03-24) 2 commits
- (merged to 'next' on 2020-04-20 at 84eb704a32)
- + Lib-ify prune-packed
- + Lib-ify fmt-merge-msg
-
- Code in builtin/*, i.e. those can only be called from within
- built-in subcommands, that implements bulk of a couple of
- subcommands have been moved to libgit.a so that they could be used
- by others.
-
-
-* dl/test-must-fail-fixes-3 (2020-03-27) 8 commits
- (merged to 'next' on 2020-04-15 at dd0130c158)
- + t5801: teach compare_refs() to accept !
- + t5612: stop losing return codes of git commands
- + t5612: don't use `test_must_fail test_cmp`
- + t5607: reorder `nongit test_must_fail`
- + t5550: simplify no matching line check
- + t5512: stop losing return codes of git commands
- + t5512: stop losing git exit code in here-docs
- + t5512: don't use `test_must_fail test_cmp`
-
- Test clean-up continues.
-
-
-* dl/wrapper-fix-indentation (2020-03-28) 1 commit
- (merged to 'next' on 2020-04-15 at e6b9c16b1b)
- + wrapper: indent with tabs
-
- Coding style fix.
-
-
-* dr/doc-recurse-submodules (2020-04-06) 5 commits
- (merged to 'next' on 2020-04-20 at 601e10f9a1)
- + doc: --recurse-submodules mostly applies to active submodules
- + doc: be more precise on (fetch|push).recurseSubmodules
- + doc: explain how to deactivate submodule.recurse completely
- + doc: document --recurse-submodules for reset and restore
- + doc: list all commands affected by submodule.recurse
-
- Documentation updates around the "--recurse-submodules" option.
-
-
-* dr/midx-avoid-int-underflow (2020-03-28) 1 commit
- (merged to 'next' on 2020-04-15 at eb2343a5eb)
- + midx.c: fix an integer underflow
-
- When fed a midx that records no objects, some codepaths tried to
- loop from 0 through (num_objects-1), which, due to integer
- arithmetic wrapping around, made it nonsense operation with out of
- bounds array accesses. The code has been corrected to reject such
- an midx file.
-
-
-* ds/commit-graph-expiry-fix (2020-04-01) 1 commit
- (merged to 'next' on 2020-04-20 at 4afb3de947)
- + commit-graph: fix buggy --expire-time option
-
- "git commit-graph write --expire-time=<timestamp>" did not use the
- given timestamp correctly, which has been corrected.
-
-
-* ds/doc-clone-filter (2020-03-22) 1 commit
- (merged to 'next' on 2020-04-15 at 16276689b3)
- + clone: document --filter options
-
- Doc update.
-
-
-* ds/log-exclude-decoration-config (2020-04-16) 2 commits
- (merged to 'next' on 2020-04-22 at 7dc5fae7d9)
- + log: add log.excludeDecoration config option
- + log-tree: make ref_filter_match() a helper method
-
- The "--decorate-refs" and "--decorate-refs-exclude" options "git
- log" takes have learned a companion configuration variable
- log.excludeDecoration that sits at the lowest priority in the
- family.
-
-
-* ds/revision-show-pulls (2020-04-10) 1 commit
- (merged to 'next' on 2020-04-15 at 89b4d86a3a)
- + revision: --show-pulls adds helpful merges
-
- "git log" learned "--show-pulls" that helps pathspec limited
- history views; a merge commit that takes the whole change from a
- side branch, which is normally omitted from the output, is shown
- in addition to the commits that introduce real changes.
-
-
-* ds/t5319-touch-fix (2020-04-01) 1 commit
- (merged to 'next' on 2020-04-20 at 41ccdb3fcd)
- + t5319: replace 'touch -m' with 'test-tool chmtime'
-
- Tests update to use "test-chmtime" instead of "touch -t".
-
-
-* eb/format-patch-no-encode-headers (2020-04-07) 1 commit
- (merged to 'next' on 2020-04-15 at 368840cd6c)
- + format-patch: teach --no-encode-email-headers
-
- The output from "git format-patch" uses RFC 2047 encoding for
- non-ASCII letters on From: and Subject: headers, so that it can
- directly be fed to e-mail programs. A new option has been added
- to produce these headers in raw.
-
-
-* eb/mboxrd-doc (2020-04-15) 1 commit
- (merged to 'next' on 2020-04-22 at 8935542c17)
- + Documentation: explain "mboxrd" pretty format
-
- Doc update.
-
-
-* en/pull-do-not-rebase-after-fast-forwarding (2020-03-27) 1 commit
- (merged to 'next' on 2020-04-15 at 3aa725ff45)
- + pull: avoid running both merge and rebase
-
- "git pull --rebase" tried to run a rebase even after noticing that
- the pull results in a fast-forward and no rebase is needed nor
- sensible, for the past few years due to a mistake nobody noticed.
-
-
-* en/rebase-doc-hooks-called-by-accident (2020-04-05) 1 commit
- (merged to 'next' on 2020-04-20 at 1011f8a876)
- + git-rebase.txt: add another hook to the hooks section, and explain more
-
- "git rebase" happens to call some hooks meant for "checkout" and
- "commit" by this was not a designed behaviour than historical
- accident. This has been documented.
-
-
-* en/rebase-no-keep-empty (2020-04-11) 3 commits
- (merged to 'next' on 2020-04-15 at 9908cee7c0)
- + rebase: fix an incompatible-options error message
- + rebase: reinstate --no-keep-empty
- + rebase -i: mark commits that begin empty in todo editor
- (this branch is used by jt/rebase-allow-duplicate.)
-
- "git rebase" (again) learns to honor "--no-keep-empty", which lets
- the user to discard commits that are empty from the beginning (as
- opposed to the ones that become empty because of rebasing). The
- interactive rebase also marks commits that are empty in the todo.
-
-
-* en/sequencer-reflog-action (2020-04-07) 1 commit
- (merged to 'next' on 2020-04-15 at 6c635bdaa1)
- + sequencer: honor GIT_REFLOG_ACTION
-
- "git rebase -i" did not leave the reflog entries correctly.
-
-
-* jc/allow-strlen-substitution-in-shell-scripts (2020-03-29) 1 commit
- (merged to 'next' on 2020-04-15 at 262424efdc)
- + CodingGuidelines: allow ${#posix} == strlen($posix)
-
- Coding guideline update.
-
-
-* jc/doc-test-leaving-early (2020-03-29) 1 commit
- (merged to 'next' on 2020-04-20 at 4bd94585d1)
- + t/README: suggest how to leave test early with failure
-
- Document the recommended way to abort a failing test early (e.g. by
- exiting a loop), which is to say "return 1".
-
-
-* jc/gnu-hurd-lets-fread-read-dirs (2020-04-22) 1 commit
- (merged to 'next' on 2020-04-22 at 8cd50b8150)
- + config.mak.uname: Define FREAD_READS_DIRECTORIES for GNU/Hurd
-
- GNU/Hurd is also among the ones that need the fopen() wrapper.
-
-
-* jc/log-no-mailmap (2020-03-16) 3 commits
- (merged to 'next' on 2020-04-20 at b43968e73e)
- + log: give --[no-]use-mailmap a more sensible synonym --[no-]mailmap
- + clone: reorder --recursive/--recurse-submodules
- + parse-options: teach "git cmd -h" to show alias as alias
-
- "git log" learns "--[no-]mailmap" as a synonym to "--[no-]use-mailmap"
-
-
-* jc/missing-ref-store-fix (2020-04-09) 2 commits
- (merged to 'next' on 2020-04-15 at 83caf48c7a)
- + repository: mark the "refs" pointer as private
- + sha1-name: do not assume that the ref store is initialized
-
- We've left the command line parsing of "git log :/a/b/" broken for
- about a full year without anybody noticing, which has been
- corrected.
-
-
-* jk/config-use-size-t (2020-04-10) 6 commits
- (merged to 'next' on 2020-04-20 at 4af9fea74f)
- + config: reject parsing of files over INT_MAX
- + config: use size_t to store parsed variable baselen
- + git_config_parse_key(): return baselen as size_t
- + config: drop useless length variable in write_pair()
- + parse_config_key(): return subsection len as size_t
- + remote: drop auto-strlen behavior of make_branch() and make_rewrite()
-
- The config API made mixed uses of int and size_t types to represent
- length of various pieces of text it parsed, which has been updated
- to use the correct type (i.e. size_t) throughout.
-
-
-* jk/credential-parsing-end-of-host-in-URL (2020-04-15) 1 commit
- (merged to 'next' on 2020-04-15 at 55bc3eb7cb)
- + credential: treat "?" and "#" in URLs as end of host
-
- Parsing of URL for the credential helper has been corrected.
-
-
-* jk/fast-import-use-hashmap (2020-04-06) 1 commit
- (merged to 'next' on 2020-04-20 at 76e8908efe)
- + fast-import: replace custom hash with hashmap.c
-
- The custom hash function used by "git fast-import" has been
- replaced with the one from hashmap.c, which gave us a nice
- performance boost.
-
-
-* jk/harden-protocol-v2-delim-handling (2020-03-29) 3 commits
- (merged to 'next' on 2020-04-15 at c983535405)
- + test-lib-functions: simplify packetize() stdin code
- + upload-pack: handle unexpected delim packets
- + test-lib-functions: make packetize() more efficient
-
- The server-end of the v2 protocol to serve "git clone" and "git
- fetch" was not prepared to see a delim packets at unexpected
- places, which led to a crash.
-
-
-* jk/oid-array-cleanups (2020-03-30) 7 commits
- (merged to 'next' on 2020-04-15 at d6155cd023)
- + oidset: stop referring to sha1-array
- + ref-filter: stop referring to "sha1 array"
- + bisect: stop referring to sha1_array
- + test-tool: rename sha1-array to oid-array
- + oid_array: rename source file from sha1-array
- + oid_array: use size_t for iteration
- + oid_array: use size_t for count and allocation
-
- Code cleanup.
-
-
-* jk/p5310-drop-non-bitmap-timing (2020-03-27) 1 commit
- (merged to 'next' on 2020-04-15 at 7aac76cab2)
- + p5310: stop timing non-bitmap pack-to-disk
-
- Perf-test update.
-
-
-* jk/t3419-drop-expensive-tests (2020-03-22) 1 commit
- (merged to 'next' on 2020-04-15 at a17ac8f996)
- + t3419: drop EXPENSIVE tests
-
- Test update.
-
-
-* jk/test-cleanup (2020-03-27) 2 commits
- (merged to 'next' on 2020-04-15 at bce8b2d5ed)
- + t/lib-*.sh: drop executable bit
- + t/lib-credential.sh: drop shebang line
-
- Test cleanup.
-
-
-* jk/use-quick-lookup-in-clone-for-tag-following (2020-04-01) 1 commit
- (merged to 'next' on 2020-04-15 at 11d6110e99)
- + clone: use "quick" lookup while following tags
-
- The logic to auto-follow tags by "git clone --single-branch" was
- not careful to avoid lazy-fetching unnecessary tags, which has been
- corrected.
-
-
-* jm/gitweb-fastcgi-utf8 (2020-03-29) 1 commit
- (merged to 'next' on 2020-04-15 at adb7f2373a)
- + gitweb: fix UTF-8 encoding when using CGI::Fast
-
- Gitweb update.
-
-
-* jn/demote-proto2-from-default (2020-04-22) 1 commit
- (merged to 'next' on 2020-04-22 at 1a5e0b221a)
- + Revert "fetch: default to protocol version 2"
-
- Those fetching over protocol v2 from linux-next and other kernel
- repositories are reporting that v2 often fetches way too much than
- needed.
-
-
-* js/flush-prompt-before-interative-input (2020-04-10) 2 commits
- (merged to 'next' on 2020-04-15 at 051407eb3a)
- + interactive: explicitly `fflush` stdout before expecting input
- + interactive: refactor code asking the user for interactive input
+ A new CI job to build and run test suite on linux with musl libc
+ has been added.
- The interactive input from various codepaths are consolidated and
- any prompt possibly issued earlier are fflush()ed before we read.
+* dd/ci-swap-azure-pipelines-with-github-actions (2020-04-10) 14 commits
+ (merged to 'next' on 2020-04-20 at 40d0486c23)
+ + ci: let GitHub Actions upload failed tests' directories
+ + ci: add a problem matcher for GitHub Actions
+ + tests: when run in Bash, annotate test failures with file name/line number
+ + ci: retire the Azure Pipelines definition
+ + README: add a build badge for the GitHub Actions runs
+ + ci: configure GitHub Actions for CI/PR
+ + ci: run gem with sudo to install asciidoctor
+ + ci: explicit install all required packages
+ + ci: fix the `jobname` of the `GETTEXT_POISON` job
+ + ci/lib: set TERM environment variable if not exist
+ + ci/lib: allow running in GitHub Actions
+ + ci/lib: if CI type is unknown, show the environment variables
+ + Merge branch 'dd/ci-musl-libc' into HEAD
+ + Merge branch 'dd/test-with-busybox' into HEAD
+ (this branch uses dd/ci-musl-libc.)
-* js/import-tars-do-not-make-phony-files-from-pax-headers (2020-03-24) 1 commit
- (merged to 'next' on 2020-04-15 at 408afae2c9)
- + import-tars: ignore the global PAX header
+ Update the CI configuration to use GitHub Actions, retiring the one
+ based on Azure Pipelines.
- The import-tars importer (in contrib/fast-import/) used to create
- phony files at the top-level of the repository when the archive
- contains global PAX headers, which made its own logic to detect and
- omit the common leading directory ineffective, which has been
- corrected.
+ Will merge to 'master', together with dd/ci-musl-libc.
-* js/mingw-fixes (2020-04-10) 3 commits
- (merged to 'next' on 2020-04-15 at 11a3d39d2b)
- + mingw: help debugging by optionally executing bash with strace
- + mingw: do not treat `COM0` as a reserved file name
- + mingw: use modern strftime implementation if possible
+* dl/merge-autostash (2020-04-10) 22 commits
+ (merged to 'next' on 2020-04-22 at 98b991e8f5)
+ + pull: pass --autostash to merge
+ + t5520: make test_pull_autostash() accept expect_parent_num
+ + merge: teach --autostash option
+ + sequencer: implement apply_autostash_oid()
+ + sequencer: implement save_autostash()
+ + sequencer: unlink autostash in apply_autostash()
+ + sequencer: extract perform_autostash() from rebase
+ + rebase: generify create_autostash()
+ + rebase: extract create_autostash()
+ + reset: extract reset_head() from rebase
+ + rebase: generify reset_head()
+ + rebase: use apply_autostash() from sequencer.c
+ + sequencer: rename stash_sha1 to stash_oid
+ + sequencer: make apply_autostash() accept a path
+ + rebase: use read_oneliner()
+ + sequencer: make read_oneliner() extern
+ + sequencer: configurably warn on non-existent files
+ + sequencer: make read_oneliner() accept flags
+ + sequencer: make file exists check more efficient
+ + sequencer: stop leaking buf
+ + t7600: use test_write_lines()
+ + Makefile: ASCII-sort += lists
+ (this branch is used by dl/merge-autostash-rebase-quit-fix.)
- Misc fixes for Windows.
+ "git merge" learns the "--autostash" option.
+ Will merge to 'master' together with the "rebase --quit" fix.
-* js/mingw-is-hidden-test-fix (2020-04-11) 3 commits
- (merged to 'next' on 2020-04-15 at 1e11f552f7)
- + t: restrict `is_hidden` to be called only on Windows
- + mingw: make test_path_is_hidden more robust
- + t: consolidate the `is_hidden` functions
- A Windows-specific test element has been made more robust against
- misuse from both user's environment and programmer's errors.
+* dl/merge-autostash-rebase-quit-fix (2020-04-28) 1 commit
+ (merged to 'next' on 2020-04-28 at 24dcf3edc1)
+ + rebase: save autostash entry into stash reflog on --quit
+ (this branch uses dl/merge-autostash.)
+ The stash entry created by "git rebase --autosquash" to keep the
+ initial dirty state were discarded by mistake upon "git rebase
+ --quit", which has been corrected.
-* js/mingw-isilon-nfs (2020-04-10) 1 commit
- (merged to 'next' on 2020-04-15 at 4bac536980)
- + mingw: cope with the Isilon network file system
- Will merge to 'master'.
+* en/fill-directory-exponential (2020-04-01) 12 commits
+ (merged to 'next' on 2020-04-22 at e2577e3dc9)
+ + completion: fix 'git add' on paths under an untracked directory
+ + Fix error-prone fill_directory() API; make it only return matches
+ + dir: replace double pathspec matching with single in treat_directory()
+ + dir: include DIR_KEEP_UNTRACKED_CONTENTS handling in treat_directory()
+ + dir: replace exponential algorithm with a linear one
+ + dir: refactor treat_directory to clarify control flow
+ + dir: fix confusion based on variable tense
+ + dir: fix broken comment
+ + dir: consolidate treat_path() and treat_one_path()
+ + dir: fix simple typo in comment
+ + t3000: add more testcases testing a variety of ls-files issues
+ + t7063: more thorough status checking
+ The directory traversal code had redundant recursive calls which
+ made its performance characteristics exponential with respect to
+ the depth of the tree, which was corrected.
-* js/stash-p-fix (2020-04-08) 2 commits
- (merged to 'next' on 2020-04-20 at 435bf60bd5)
- + stash -p: (partially) fix bug concerning split hunks
- + t3904: fix incorrect demonstration of a bug
- Allowing the user to split a patch hunk while "git stash -p" does
- not work well; a band-aid has been added to make this (partially)
- work better.
+* en/sparse-checkout (2020-03-27) 18 commits
+ (merged to 'next' on 2020-04-15 at 3e295e445d)
+ + sparse-checkout: provide a new reapply subcommand
+ + unpack-trees: failure to set SKIP_WORKTREE bits always just a warning
+ + unpack-trees: provide warnings on sparse updates for unmerged paths too
+ + unpack-trees: make sparse path messages sound like warnings
+ + unpack-trees: split display_error_msgs() into two
+ + unpack-trees: rename ERROR_* fields meant for warnings to WARNING_*
+ + unpack-trees: move ERROR_WOULD_LOSE_SUBMODULE earlier
+ + sparse-checkout: use improved unpack_trees porcelain messages
+ + sparse-checkout: use new update_sparsity() function
+ + unpack-trees: add a new update_sparsity() function
+ + unpack-trees: pull sparse-checkout pattern reading into a new function
+ + unpack-trees: do not mark a dirty path with SKIP_WORKTREE
+ + unpack-trees: allow check_updates() to work on a different index
+ + t1091: make some tests a little more defensive against failures
+ + unpack-trees: simplify pattern_list freeing
+ + unpack-trees: simplify verify_absent_sparse()
+ + unpack-trees: remove unused error type
+ + unpack-trees: fix minor typo in comment
+ "sparse-checkout" UI improvements.
-* js/subtree-doc-update-to-asciidoctor-2 (2020-04-08) 1 commit
- (merged to 'next' on 2020-04-20 at db1ed7a858)
- + subtree: fix build with AsciiDoctor 2
- Doc markup update.
+* ps/transactional-update-ref-stdin (2020-04-02) 9 commits
+ (merged to 'next' on 2020-04-22 at 5c92add109)
+ + update-ref: implement interactive transaction handling
+ + update-ref: read commands in a line-wise fashion
+ + update-ref: move transaction handling into `update_refs_stdin()`
+ + update-ref: pass end pointer instead of strbuf
+ + update-ref: drop unused argument for `parse_refname`
+ + update-ref: organize commands in an array
+ + strbuf: provide function to append whole lines
+ + git-update-ref.txt: add missing word
+ + refs: fix segfault when aborting empty transaction
+ "git update-ref --stdin" learned a handful of new verbs to let the
+ user control ref update transactions more explicitly, which helps
+ as an ingredient to implement two-phase commit-style atomic
+ ref-updates across multiple repositories.
-* js/t0007-typofix (2020-04-05) 1 commit
- (merged to 'next' on 2020-04-15 at ac9f86e08f)
- + t0007: fix a typo
+--------------------------------------------------
+[New Topics]
- Typofix in a test script.
+* cb/credential-store-warn-bogus-lines (2020-04-28) 2 commits
+ - credential-store: warn instead of fatal for bogus lines from store
+ - credential-store: document the file format a bit more
+ With the recent tightening of the code that is used to parse
+ various parts of a URL for use in the credential subsystem, a
+ hand-edited credential-store file causes the credential helper to
+ die, which is a bit too harsh to the users. Demote the error
+ behaviour to only warn and keep using well-formed lines instead.
-* js/test-junit-finalization-fix (2020-03-23) 1 commit
- (merged to 'next' on 2020-04-15 at 0d6a975146)
- + tests(junit-xml): avoid invalid XML
- Test fix.
+* dl/switch-c-option-in-error-message (2020-04-30) 1 commit
+ - switch: fix errors and comments related to -c and -C
+ In error messages that "git switch" mentions its option to create a
+ new branch, "-b/-B" options were shown, where "-c/-C" options
+ should be, which has been corrected.
-* js/tests-gpg-integration-on-windows (2020-03-26) 5 commits
- (merged to 'next' on 2020-04-15 at 48a13eb0b2)
- + tests: increase the verbosity of the GPG-related prereqs
- + tests: turn GPG, GPGSM and RFC1991 into lazy prereqs
- + tests: do not let lazy prereqs inside `test_expect_*` turn off tracing
- + t/lib-gpg.sh: stop pretending to be a stand-alone script
- + tests(gpg): allow the gpg-agent to start on Windows
+ Will merge to 'next'.
- Enable tests that require GnuPG on Windows.
+* es/bugreport-with-hooks (2020-04-30) 2 commits
+ - SQUASH???
+ - bugreport: collect list of populated hooks
+ (this branch uses es/bugreport.)
-* js/trace2-env-vars (2020-03-23) 1 commit
- (merged to 'next' on 2020-04-15 at 1aad0adfa0)
- + trace2: teach Git to log environment variables
+ "git bugreport" learned to report enabled hooks in the repository.
- Trace2 enhancement to allow logging of the environment variables.
+ Needs polishing the tests.
-* js/walk-doc-optim (2020-03-30) 1 commit
- (merged to 'next' on 2020-04-15 at ca36c04a23)
- + MyFirstObjectWalk: remove unnecessary conditional statement
+* tb/shallow-cleanup (2020-04-30) 4 commits
+ - shallow: use struct 'shallow_lock' for additional safety
+ - shallow.h: document '{commit,rollback}_shallow_file'
+ - shallow: extract a header file for shallow-related functions
+ - commit: make 'commit_graft_pos' non-static
+ (this branch uses tb/reset-shallow.)
Code cleanup.
+ Will merge to 'next'.
-* jt/avoid-prefetch-when-able-in-diff (2020-04-07) 4 commits
- (merged to 'next' on 2020-04-20 at 02b52c34bf)
- + diff: restrict when prefetching occurs
- + diff: refactor object read
- + diff: make diff_populate_filespec_options struct
- + promisor-remote: accept 0 as oid_nr in function
-
- "git diff" in a partial clone learned to avoid lazy loading blob
- objects in more casese when they are not needed.
-
-
-* jt/connectivity-check-optim-in-partial-clone (2020-03-29) 1 commit
- (merged to 'next' on 2020-04-15 at 1b3692b7fb)
- + connected: always use partial clone optimization
-
- Simplify the commit ancestry connectedness check in a partial clone
- repository in which "promised" objects are assumed to be obtainable
- lazily on-demand from promisor remote repositories.
-
-
-* jt/rebase-allow-duplicate (2020-04-11) 1 commit
- (merged to 'next' on 2020-04-15 at 56a9d83adf)
- + rebase --merge: optionally skip upstreamed commits
- (this branch uses en/rebase-no-keep-empty.)
-
- Allow "git rebase" to reapply all local commits, even if the may be
- already in the upstream, without checking first.
-
-
-* jx/atomic-push (2020-04-17) 5 commits
- (merged to 'next' on 2020-04-20 at 266d6934d8)
- + transport-helper: new method reject_atomic_push()
- + transport-helper: mark failure for atomic push
- + send-pack: mark failure of atomic push properly
- + t5543: never report what we do not push
- + send-pack: fix inconsistent porcelain output
-
- "git push --atomic" used to show failures for refs that weren't
- even pushed, which has been corrected.
-
-
-* lr/freshen-file-fix (2020-04-15) 1 commit
- (merged to 'next' on 2020-04-20 at e9370b0a81)
- + freshen_file(): use NULL `times' for implicit current-time
-
- The code that refreshes the last access and modified time of
- on-disk packfiles and loose object files have been updated.
-
-
-* lx/submodule-clear-variables (2020-04-02) 1 commit
- (merged to 'next' on 2020-04-20 at c18cd924c9)
- + git-submodule.sh: setup uninitialized variables
-
- The "git submodule" command did not initialize a few variables it
- internally uses and was affected by variable settings leaked from
- the environment.
-
-
-* ma/config-doc-fix (2020-04-09) 1 commit
- (merged to 'next' on 2020-04-15 at 256175ec38)
- + config.txt: move closing "----" to cover entire listing
-
- Doc update.
-
-
-* ma/doc-discard-docbook-xsl-1.73 (2020-03-31) 7 commits
- (merged to 'next' on 2020-04-20 at c280472e02)
- + user-manual.conf: don't specify [listingblock]
- + INSTALL: drop support for docbook-xsl before 1.74
- + manpage-normal.xsl: fold in manpage-base.xsl
- + manpage-bold-literal.xsl: stop using git.docbook.backslash
- + Doc: drop support for docbook-xsl before 1.73.0
- + Doc: drop support for docbook-xsl before 1.72.0
- + Doc: drop support for docbook-xsl before 1.71.1
-
- Raise the minimum required version of docbook-xsl package to 1.74,
- as 1.74.0 was from late 2008, which is more than 10 years old, and
- drop compatibility cruft from our documentation suite.
-
-
-* ma/simplify-merge-config-parsing (2020-04-11) 1 commit
- (merged to 'next' on 2020-04-15 at d2915301e4)
- + merge: use skip_prefix to parse config key
-
- Code simplification.
-
-
-* ms/doc-revision-illustration-fix (2020-04-21) 1 commit
- (merged to 'next' on 2020-04-22 at 245c0b78d5)
- + docs: fix minor glitch in illustration
-
- Docfix.
-
-
-* mt/grep-cquote-path (2020-04-20) 1 commit
- (merged to 'next' on 2020-04-22 at 55cf00e322)
- + grep: follow conventions for printing paths w/ unusual chars
-
- "git grep" did not quote a path with unusual character like other
- commands (like "git diff", "git status") do, but did quote when run
- from a subdirectory, both of which has been corrected.
-
-
-* mt/test-lib-bundled-short-options (2020-03-25) 1 commit
- (merged to 'next' on 2020-04-15 at 7fa0c56d91)
- + test-lib: allow short options to be bundled
-
- Minor test usability improvement.
-
-
-* pb/pull-fetch-doc (2020-04-05) 2 commits
- (merged to 'next' on 2020-04-15 at cf530f230f)
- + pull doc: correct outdated description of an example
- + pull doc: refer to a specific section in 'fetch' doc
-
- The more aggressive updates to remote-tracking branches we had for
- the past 7 years or so were not reflected in the documentation,
- which has been corrected.
-
-
-* pb/rebase-doc-typofix (2020-03-28) 1 commit
- (merged to 'next' on 2020-04-15 at 8cd8422990)
- + git-rebase.txt: fix typo
-
- Typofix.
-
-
-* rs/pull-options-sync-code-and-doc (2020-03-28) 2 commits
- (merged to 'next' on 2020-04-15 at d743f43034)
- + pull: pass documented fetch options on
- + pull: remove --update-head-ok from documentation
-
- "git pull" shares many options with underlying "git fetch", but
- some of them were not documented and some of those that would make
- sense to pass down were not passed down.
-
-
-* tb/diff-tree-with-notes (2020-04-20) 1 commit
- (merged to 'next' on 2020-04-22 at c06610c916)
- + diff-tree.c: load notes machinery when required
-
- "git diff-tree --pretty --notes" used to hit an assertion failure,
- as it forgot to initialize the notes subsystem.
-
-
-* tm/zsh-complete-switch-restore (2020-04-17) 1 commit
- (merged to 'next' on 2020-04-22 at 8c65d7f051)
- + complete: zsh: add missing sub cmd completion candidates
-
- zsh command line completion (in contrib/) update.
-
+--------------------------------------------------
+[Stalled]
-* vd/range-diff-with-custom-pretty-format-fix (2020-04-15) 2 commits
- (merged to 'next' on 2020-04-22 at da607b5dda)
- + range-diff: avoid negative string precision
- + range-diff: fix a crash in parsing git-log output
+* mk/use-size-t-in-zlib (2018-10-15) 1 commit
+ - zlib.c: use size_t for size
- "git range-diff" fixes.
- cf. <20200416010734.GE36156@syl.local>
+ The wrapper to call into zlib followed our long tradition to use
+ "unsigned long" for sizes of regions in memory, which have been
+ updated to use "size_t".
--------------------------------------------------
-[New Topics]
+[Cooking]
* bc/wildcard-credential (2020-04-27) 1 commit
(merged to 'next' on 2020-04-28 at 1a0d6b91dc)
Will merge to 'master'.
-* ah/userdiff-markdown (2020-04-23) 1 commit
+* ah/userdiff-markdown (2020-04-30) 1 commit
- userdiff: support Markdown
- Expecting a reroll.
- cf. <C28ZA0MZKHK6.2CCZPZF15D32W@what>
+ The userdiff patterns for Markdown documents have been added.
+
+ Will merge to 'next'.
* dd/sparse-fixes (2020-04-27) 4 commits
(merged to 'next' on 2020-04-28 at 9510639ae8)
+ shallow.c: use '{commit,rollback}_shallow_file'
+ t5537: use test_write_lines and indented heredocs for readability
+ (this branch is used by tb/shallow-cleanup.)
Fix in-core inconsistency after fetching into a shallow repository
that broke the code to write out commit-graph.
+ commit-graph.c: gracefully handle file descriptor exhaustion
+ t/test-lib.sh: make ULIMIT_FILE_DESCRIPTORS available to tests
+ commit-graph.c: don't use discarded graph_name in error
- (this branch uses tb/commit-graph-split-strategy.)
+ (this branch is tangled with tb/commit-graph-split-strategy.)
The commit-graph code exhausted file descriptors easily when it
does not have to.
Will merge to 'master'.
-* js/partial-urlmatch (2020-04-24) 3 commits
- - Sync with js/partial-urlmatch-2.17
+* js/partial-urlmatch-2.17 (2020-04-29) 3 commits
- credential: handle `credential.<partial-URL>.<key>` again
- credential: optionally allow partial URLs in credential_from_url_gently()
- (this branch uses js/partial-urlmatch-2.17.)
+ - credential: fix grammar
+ (this branch is used by js/partial-urlmatch.)
+
+ Recent updates broke parsing of "credential.<url>.<key>" where
+ <url> is not a full URL (e.g. [credential "https://"] helper = ...)
+ stopped working, which has been corrected.
+ Will merge to 'next'.
-* js/partial-urlmatch-2.17 (2020-04-24) 4 commits
- - SQUASH??? lose excess blank line to match the other side of the eventual merge
+
+* js/partial-urlmatch (2020-04-29) 3 commits
+ - Sync with js/partial-urlmatch-2.17
- credential: handle `credential.<partial-URL>.<key>` again
- credential: optionally allow partial URLs in credential_from_url_gently()
- - credential: fix grammar
- (this branch is used by js/partial-urlmatch.)
+ (this branch uses js/partial-urlmatch-2.17.)
+
+ The same as js/partial-urlmatch-2.17, built on more recent codebase
+ to avoid unnecessary merge conflicts.
+
+ Will merge to 'next'.
* eb/gitweb-more-trailers (2020-04-24) 1 commit
Will merge to 'master'.
-* jc/credential-store-file-format-doc (2020-04-27) 1 commit
- - credential-store: document the file format a bit more
-
-
* jk/complete-git-switch (2020-04-28) 11 commits
- completion: complete remote branches for git switch --track
- completion: recognize -c/-C when completing for git switch
Will merge to 'master'.
-* tb/commit-graph-perm-bits (2020-04-27) 6 commits
- - commit-graph.c: make 'commit-graph-chain's read-only
- - commit-graph.c: ensure graph layers respect core.sharedRepository
- - SQUASH??? force known umask if you are going to check the resulting mode bits
- - commit-graph.c: write non-split graphs as read-only
- - lockfile.c: introduce 'hold_lock_file_for_update_mode'
- - tempfile.c: introduce 'create_tempfile_mode'
+* tb/commit-graph-perm-bits (2020-04-29) 5 commits
+ (merged to 'next' on 2020-04-29 at 66a87c1fbc)
+ + commit-graph.c: make 'commit-graph-chain's read-only
+ + commit-graph.c: ensure graph layers respect core.sharedRepository
+ + commit-graph.c: write non-split graphs as read-only
+ + lockfile.c: introduce 'hold_lock_file_for_update_mode'
+ + tempfile.c: introduce 'create_tempfile_mode'
Some of the files commit-graph subsystem keeps on disk did not
correctly honor the core.sharedRepository settings and some were
left read-write.
- Expecting a reroll.
-
-
-* dl/merge-autostash-rebase-quit-fix (2020-04-28) 1 commit
- (merged to 'next' on 2020-04-28 at 24dcf3edc1)
- + rebase: save autostash entry into stash reflog on --quit
- (this branch uses dl/merge-autostash.)
-
- The stash entry created by "git rebase --autosquash" to keep the
- initial dirty state were discarded by mistake upon "git rebase
- --quit", which has been corrected.
-
Will merge to 'master'.
Will merge to 'master'.
---------------------------------------------------
-[Stalled]
-
-* mk/use-size-t-in-zlib (2018-10-15) 1 commit
- - zlib.c: use size_t for size
-
- The wrapper to call into zlib followed our long tradition to use
- "unsigned long" for sizes of regions in memory, which have been
- updated to use "size_t".
-
---------------------------------------------------
-[Cooking]
* dr/push-remoteref-fix (2020-04-23) 1 commit
- remote.c: fix handling of %(push:remoteref)
Will merge to 'master'.
-* dd/ci-swap-azure-pipelines-with-github-actions (2020-04-10) 14 commits
- (merged to 'next' on 2020-04-20 at 40d0486c23)
- + ci: let GitHub Actions upload failed tests' directories
- + ci: add a problem matcher for GitHub Actions
- + tests: when run in Bash, annotate test failures with file name/line number
- + ci: retire the Azure Pipelines definition
- + README: add a build badge for the GitHub Actions runs
- + ci: configure GitHub Actions for CI/PR
- + ci: run gem with sudo to install asciidoctor
- + ci: explicit install all required packages
- + ci: fix the `jobname` of the `GETTEXT_POISON` job
- + ci/lib: set TERM environment variable if not exist
- + ci/lib: allow running in GitHub Actions
- + ci/lib: if CI type is unknown, show the environment variables
- + Merge branch 'dd/ci-musl-libc' into HEAD
- + Merge branch 'dd/test-with-busybox' into HEAD
- (this branch uses dd/ci-musl-libc.)
-
- Update the CI configuration to use GitHub Actions, retiring the one
- based on Azure Pipelines.
-
- Will merge to 'master', together with dd/ci-musl-libc.
-
-
-* pw/rebase-i-more-options (2020-04-07) 7 commits
- - SQUASH??? - avoid test numbering crashes
- - t3433: improve coverage
- - Revert "sequencer: allow callers of read_author_script() to ignore fields"
- - rebase -i: fix --committer-date-is-author-date
- - t3433: only compare commit dates
- - t3433: remove loops from tests
- - Revert "Revert "Merge branch 'ra/rebase-i-more-options'""
+* pw/rebase-i-more-options (2020-04-29) 5 commits
+ - rebase: add --reset-author-date
+ - rebase -i: support --ignore-date
+ - sequencer: rename amend_author to author_to_free
+ - rebase -i: support --committer-date-is-author-date
+ - rebase -i: add --ignore-whitespace flag
"git rebase -i" learns a bit more options.
- Expecting a reroll.
- cf. <43d06bc0-b2ee-0ae6-f22c-9850e4033d45@gmail.com>
-
* ds/blame-on-bloom (2020-04-23) 6 commits
(merged to 'next' on 2020-04-28 at 6152eb2eb3)
Will merge to 'master'.
-* tb/commit-graph-split-strategy (2020-04-15) 7 commits
+* tb/commit-graph-split-strategy (2020-04-29) 8 commits
+ (merged to 'next' on 2020-04-29 at 99fa922569)
+ + Revert "commit-graph.c: introduce '--[no-]check-oids'"
+ commit-graph.c: introduce '--[no-]check-oids'
+ commit-graph.h: replace 'commit_hex' with 'commits'
+ oidset: introduce 'oidset_size'
+ builtin/commit-graph.c: introduce split strategy 'no-merge'
+ builtin/commit-graph.c: support for '--split[=<strategy>]'
+ t/helper/test-read-graph.c: support commit-graph chains
- (this branch is used by tb/commit-graph-fd-exhaustion-fix.)
+ (this branch is tangled with tb/commit-graph-fd-exhaustion-fix.)
"git commit-graph write" learned different ways to write out split
files.
- Will merge to 'master'.
+ Will merge to 'master' together with tb/commit-graph-fd-exhaustion-fix
* gs/commit-graph-path-filter (2020-04-09) 16 commits
outsource most of the ref updates to the new "proc-receive" hook.
-* dd/ci-musl-libc (2020-04-06) 6 commits
- + travis: build and test on Linux with musl libc and busybox
- + ci/linux32: libify install-dependencies step
- + ci: refactor docker runner script
- + ci/linux32: parameterise command to switch arch
- + ci/lib-docker: preserve required environment variables
- + ci: make MAKEFLAGS available inside the Docker container in the Linux32 job
- (this branch is used by dd/ci-swap-azure-pipelines-with-github-actions.)
-
- A new CI job to build and run test suite on linux with musl libc
- has been added.
-
- Will merge to 'master'.
-
-
* jk/build-with-right-curl (2020-04-05) 3 commits
(merged to 'next' on 2020-04-28 at 1718c25b44)
+ Makefile: avoid running curl-config unnecessarily
cf. <20200428033611.GB2369457@coredump.intra.peff.net>
-* ps/transactional-update-ref-stdin (2020-04-02) 9 commits
- (merged to 'next' on 2020-04-22 at 5c92add109)
- + update-ref: implement interactive transaction handling
- + update-ref: read commands in a line-wise fashion
- + update-ref: move transaction handling into `update_refs_stdin()`
- + update-ref: pass end pointer instead of strbuf
- + update-ref: drop unused argument for `parse_refname`
- + update-ref: organize commands in an array
- + strbuf: provide function to append whole lines
- + git-update-ref.txt: add missing word
- + refs: fix segfault when aborting empty transaction
-
- "git update-ref --stdin" learned a handful of new verbs to let the
- user control ref update transactions more explicitly, which helps
- as an ingredient to implement two-phase commit-style atomic
- ref-updates across multiple repositories.
-
- Will merge to 'master'.
-
-
-* en/fill-directory-exponential (2020-04-01) 12 commits
- (merged to 'next' on 2020-04-22 at e2577e3dc9)
- + completion: fix 'git add' on paths under an untracked directory
- + Fix error-prone fill_directory() API; make it only return matches
- + dir: replace double pathspec matching with single in treat_directory()
- + dir: include DIR_KEEP_UNTRACKED_CONTENTS handling in treat_directory()
- + dir: replace exponential algorithm with a linear one
- + dir: refactor treat_directory to clarify control flow
- + dir: fix confusion based on variable tense
- + dir: fix broken comment
- + dir: consolidate treat_path() and treat_one_path()
- + dir: fix simple typo in comment
- + t3000: add more testcases testing a variety of ls-files issues
- + t7063: more thorough status checking
-
- The directory traversal code had redundant recursive calls which
- made its performance characteristics exponential with respect to
- the depth of the tree, which was corrected.
-
- Will merge to 'master'.
-
-
-* en/sparse-checkout (2020-03-27) 18 commits
- (merged to 'next' on 2020-04-15 at 3e295e445d)
- + sparse-checkout: provide a new reapply subcommand
- + unpack-trees: failure to set SKIP_WORKTREE bits always just a warning
- + unpack-trees: provide warnings on sparse updates for unmerged paths too
- + unpack-trees: make sparse path messages sound like warnings
- + unpack-trees: split display_error_msgs() into two
- + unpack-trees: rename ERROR_* fields meant for warnings to WARNING_*
- + unpack-trees: move ERROR_WOULD_LOSE_SUBMODULE earlier
- + sparse-checkout: use improved unpack_trees porcelain messages
- + sparse-checkout: use new update_sparsity() function
- + unpack-trees: add a new update_sparsity() function
- + unpack-trees: pull sparse-checkout pattern reading into a new function
- + unpack-trees: do not mark a dirty path with SKIP_WORKTREE
- + unpack-trees: allow check_updates() to work on a different index
- + t1091: make some tests a little more defensive against failures
- + unpack-trees: simplify pattern_list freeing
- + unpack-trees: simplify verify_absent_sparse()
- + unpack-trees: remove unused error type
- + unpack-trees: fix minor typo in comment
-
- "sparse-checkout" UI improvements.
-
- Will merge to 'master'.
-
-
-* dl/merge-autostash (2020-04-10) 22 commits
- (merged to 'next' on 2020-04-22 at 98b991e8f5)
- + pull: pass --autostash to merge
- + t5520: make test_pull_autostash() accept expect_parent_num
- + merge: teach --autostash option
- + sequencer: implement apply_autostash_oid()
- + sequencer: implement save_autostash()
- + sequencer: unlink autostash in apply_autostash()
- + sequencer: extract perform_autostash() from rebase
- + rebase: generify create_autostash()
- + rebase: extract create_autostash()
- + reset: extract reset_head() from rebase
- + rebase: generify reset_head()
- + rebase: use apply_autostash() from sequencer.c
- + sequencer: rename stash_sha1 to stash_oid
- + sequencer: make apply_autostash() accept a path
- + rebase: use read_oneliner()
- + sequencer: make read_oneliner() extern
- + sequencer: configurably warn on non-existent files
- + sequencer: make read_oneliner() accept flags
- + sequencer: make file exists check more efficient
- + sequencer: stop leaking buf
- + t7600: use test_write_lines()
- + Makefile: ASCII-sort += lists
- (this branch is used by dl/merge-autostash-rebase-quit-fix.)
-
- "git merge" learns the "--autostash" option.
-
- Will merge to 'master' together with the "rebase --quit" fix.
-
-
* hn/reftable (2020-04-27) 12 commits
- t: use update-ref and show-ref to reading/writing refs
- Add some reftable testing infrastructure
+ bugreport: gather git version and build info
+ bugreport: add tool to generate debugging info
+ help: move list_config_help to builtin/help
+ (this branch is used by es/bugreport-with-hooks.)
The "bugreport" tool.
--------------------------------------------------
[Discarded]
-* jc/rebase-backend-keep-old-default (2020-03-10) 1 commit
- . rebase: do not switch the default to 'merge' just yet
-
- The "merge" backend of "git rebase" still has a few bugs and
- unexpected behaviour that need to be ironed out before it becomes
- the default. Let's switch the default back to the "apply" backend
- for now.
-
-
-* vn/reset-deleted-ita (2019-07-26) 1 commit
- . reset: unstage empty deleted ita files
-
- "git reset HEAD [<pathspec>]" did not reset an empty file that was
- added with the intent-to-add bit.
-
-
-* tb/commit-graph-split-merge (2020-03-24) 3 commits
- (merged to 'next' on 2020-03-31 at 2183baf09c)
- + builtin/commit-graph.c: support '--input=graphed'
- + builtin/commit-graph.c: introduce '--input=<source>'
- + builtin/commit-graph.c: support '--split[=<strategy>]'
-
- The code to write out the commit-graph has been taught a few
- options to control if the resulting graph chains should be merged
- or a single new incremental graph is created.
+* jc/credential-store-file-format-doc (2020-04-27) 1 commit
+ . credential-store: document the file format a bit more
- Discarded---tb/commit-graph-split-strategy supersedes this.
+ Now has become a part of Carlo's credential-store fix patches.