[ANNOUNCE] Git v2.34.0-rc0
Junio C Hamano
gitster at pobox.com
Sat Oct 30 01:17:41 BST 2021
An early preview release Git v2.34.0-rc0 is now available for
testing at the usual places. It is comprised of 760 non-merge
commits since v2.33.0, contributed by 86 people, 25 of which are
new faces [*].
The tarballs are found at:
https://www.kernel.org/pub/software/scm/git/testing/
The following public repositories all have a copy of the
'v2.34.0-rc0' tag and the 'master' branch that the tag points at:
url = https://git.kernel.org/pub/scm/git/git
url = https://kernel.googlesource.com/pub/scm/git/git
url = git://repo.or.cz/alt-git.git
url = https://github.com/gitster/git
New contributors whose contributions weren't in v2.33.0 are as follows.
Welcome to the Git development community!
Alan Blotz, Azeem Bande-Ali, Dr. Matthias St. Pierre, Eli
Schwartz, git.mexon at spamgourmet.com, Glen Choo, Joel Klinghed,
Johannes Altmanninger, Kim Altintop, Kyle Zhao, Mahi Kolla,
Marvin Häuser, Mickey Endito, Rob Browning, Robert Estelle,
Robert Leftwich, Tal Kelrich, Tassilo Horn, Thomas De Zeeuw,
USAMI Kenta, Victor Gambier, Victoria Dye, Wesley Schwengle,
Xingman Chen, and Zoker.
Returning contributors who helped this release are as follows.
Thanks for your continued support.
Ævar Arnfjörð Bjarmason, Alban Gruin, Alex Henrie, Andrzej
Hunt, Atharva Raykar, Bagas Sanjaya, Ben Boeckel, brian
m. carlson, Carlo Arenas, Carlo Marcelo Arenas Belón, Christian
Couder, David Aguilar, David Turner, Derrick Stolee, Đoàn
Trần Công Danh, Elijah Newren, Emily Shaffer, Eric Sunshine,
Eric Wong, Fabian Stelzer, Felipe Contreras, Greg Hurrell,
Han-Wen Nienhuys, Hariom Verma, Jacob Keller, Jacob Vosmaer,
Jeff Hostetler, Jeff King, Jiang Xin, Johannes Schindelin,
Johannes Sixt, Jonathan Nieder, Jonathan Tan, Josh Steadmon,
Junio C Hamano, Kaartic Sivaraam, Lénaïc Huard, Martin Ågren,
Matheus Tavares, Matheus Tavares Bernardino, Matthias Aßhauer,
Mike Hommey, Miriam Rubio, Orgad Shaneh, Patrick Steinhardt,
Philip Oakley, Philippe Blain, Phillip Wood, Pranit Bauva,
Randall S. Becker, René Scharfe, Sergey Organov, Shourya Shukla,
SZEDER Gábor, Takashi Iwai, Tanushree Tumane, Taylor Blau,
Teng Long, Todd Zullinger, Ulrich Windl, and ZheNing Hu.
[*] We are counting not just the authorship contribution but issue
reporting, mentoring, helping and reviewing that are recorded in
the commit trailers.
----------------------------------------------------------------
Git 2.34 Release Notes (draft)
==============================
Updates since Git 2.33
----------------------
Backward compatibility notes
* The "--preserve-merges" option of "git rebase" has been removed.
UI, Workflows & Features
* Pathname expansion (like "~username/") learned a way to specify a
location relative to Git installation (e.g. its $sharedir which is
$(prefix)/share), with "%(prefix)".
* Use `ort` instead of `recursive` as the default merge strategy.
* The userdiff pattern for "java" language has been updated.
* "git rebase" by default skips changes that are equivalent to
commits that are already in the history the branch is rebased onto;
give messages when this happens to let the users be aware of
skipped commits, and also teach them how to tell "rebase" to keep
duplicated changes.
* The advice message that "git cherry-pick" gives when it asks
conflicted replay of a commit to be resolved by the end user has
been updated.
* After "git clone --recurse-submodules", all submodules are cloned
but they are not by default recursed into by other commands. With
submodule.stickyRecursiveClone configuration set, submodule.recurse
configuration is set to true in a repository created by "clone"
with "--recurse-submodules" option.
* The logic for auto-correction of misspelt subcommands learned to go
interactive when the help.autocorrect configuration variable is set
to 'prompt'.
* "git maintenance" scheduler learned to use systemd timers as a
possible backend.
* "git diff --submodule=diff" showed failure from run_command() when
trying to run diff inside a submodule, when the user manually
removes the submodule directory.
* "git bundle unbundle" learned to show progress display.
* In cone mode, the sparse-index code path learned to remove ignored
files (like build artifacts) outside the sparse cone, allowing the
entire directory outside the sparse cone to be removed, which is
especially useful when the sparse patterns change.
* Taking advantage of the CGI interface, http-backend has been
updated to enable protocol v2 automatically when the other side
asks for it.
* The credential-cache helper has been adjusted to Windows.
* The error in "git help no-such-git-command" is handled better.
* The unicode character width table (used for output alignment) has
been updated.
* The ref iteration code used to optionally allow dangling refs to be
shown, which has been tightened up.
* "git add", "git mv", and "git rm" have been adjusted to avoid
updating paths outside of the sparse-checkout definition unless
the user specifies a "--sparse" option.
* "git repack" has been taught to generate multi-pack reachability
bitmaps.
* "git fsck" has been taught to report mismatch between expected and
actual types of an object better.
* Use ssh public crypto for object and push-cert signing.
Performance, Internal Implementation, Development Support etc.
* "git bisect" spawned "git show-branch" only to pretty-print the
title of the commit after checking out the next version to be
tested; this has been rewritten in C.
* "git add" can work better with the sparse index.
* Support for ancient versions of cURL library (pre 7.19.4) has been
dropped.
* A handful of tests that assumed implementation details of files
backend for refs have been cleaned up.
* trace2 logs learned to show parent process name to see in what
context Git was invoked.
* Loading of ref tips to prepare for common ancestry negotiation in
"git fetch-pack" has been optimized by taking advantage of the
commit graph when available.
* Remind developers that the userdiff patterns should be kept simple
and permissive, assuming that the contents they apply are always
syntactically correct.
* The current implementation of GIT_TEST_FAIL_PREREQS is broken in
that checking for the lack of a prerequisite would not work. Avoid
the use of "if ! test_have_prereq X" in a test script.
* The revision traversal API has been optimized by taking advantage
of the commit-graph, when available, to determine if a commit is
reachable from any of the existing refs.
* "git fetch --quiet" optimization to avoid useless computation of
info that will never be displayed.
* Callers from older advice_config[] based API has been updated to
use the newer advice_if_enabled() and advice_enabled() API.
* Teach "test_pause" and "debug" helpers to allow using the HOME and
TERM environment variables the user usually uses.
* "make INSTALL_STRIP=-s install" allows the installation step to use
"install -s" to strip the binaries as they get installed.
* Code that handles large number of refs in the "git fetch" code
path has been optimized.
* The reachability bitmap file used to be generated only for a single
pack, but now we've learned to generate bitmaps for history that
span across multiple packfiles.
* The code to make "git grep" recurse into submodules has been
updated to migrate away from the "add submodule's object store as
an alternate object store" mechanism (which is suboptimal).
* The tracing of process ancestry information has been enhanced.
* Reduce number of write(2) system calls while sending the
ref advertisement.
* Update the build procedure to use the "-pedantic" build when
DEVELOPER makefile macro is in effect.
* Large part of "git submodule add" gets rewritten in C.
* The run-command API has been updated so that the callers can easily
ask the file descriptors open for packfiles to be closed immediately
before spawning commands that may trigger auto-gc.
* An oddball OPTION_ARGUMENT feature has been removed from the
parse-options API.
* The mergesort implementation used to sort linked list has been
optimized.
* Remove external declaration of functions that no longer exist.
* "git multi-pack-index write --bitmap" learns to propagate the
hashcache from original bitmap to resulting bitmap.
* CI learns to run the leak sanitizer builds.
* "git grep --recurse-submodules" takes trees and blobs from the
submodule repository, but the textconv settings when processing a
blob from the submodule is not taken from the submodule repository.
A test is added to demonstrate the issue, without fixing it.
* Teach "git help -c" into helping the command line completion of
configuration variables.
* When "git cmd -h" shows more than one line of usage text (e.g.
the cmd subcommand may take sub-sub-command), parse-options API
learned to align these lines, even across i18n/l10n.
* Prevent "make sparse" from running for the source files that
haven't been modified.
* The codepath to write a new version of .midx multi-pack index files
has learned to release the mmaped memory holding the current
version of .midx before removing them from the disk, as some
platforms do not allow removal of a file that still has mapping.
* A new feature has been added to abort early in the test framework.
Fixes since v2.33
-----------------
* Input validation of "git pack-objects --stdin-packs" has been
corrected.
* Bugfix for common ancestor negotiation recently introduced in "git
push" code path.
* "git pull" had various corner cases that were not well thought out
around its --rebase backend, e.g. "git pull --ff-only" did not stop
but went ahead and rebased when the history on other side is not a
descendant of our history. The series tries to fix them up.
* "git apply" miscounted the bytes and failed to read to the end of
binary hunks.
* "git range-diff" code clean-up.
* "git commit --fixup" now works with "--edit" again, after it was
broken in v2.32.
* Use upload-artifacts v1 (instead of v2) for 32-bit linux, as the
new version has a blocker bug for that architecture.
* Checking out all the paths from HEAD during the last conflicted
step in "git rebase" and continuing would cause the step to be
skipped (which is expected), but leaves MERGE_MSG file behind in
$GIT_DIR and confuses the next "git commit", which has been
corrected.
* Various bugs in "git rebase -r" have been fixed.
* mmap() imitation used to call xmalloc() that dies upon malloc()
failure, which has been corrected to just return an error to the
caller to be handled.
* "git diff --relative" segfaulted and/or produced incorrect result
when there are unmerged paths.
* The delayed checkout code path in "git checkout" etc. were chatty
even when --quiet and/or --no-progress options were given.
* "git branch -D <branch>" used to refuse to remove a broken branch
ref that points at a missing commit, which has been corrected.
* Build update for Apple clang.
* The parser for the "--nl" option of "git column" has been
corrected.
* "git upload-pack" which runs on the other side of "git fetch"
forgot to take the ref namespaces into account when handling
want-ref requests.
* The sparse-index support can corrupt the index structure by storing
a stale and/or uninitialized data, which has been corrected.
* Buggy tests could damage repositories outside the throw-away test
area we created. We now by default export GIT_CEILING_DIRECTORIES
to limit the damage from such a stray test.
* Even when running "git send-email" without its own threaded
discussion support, a threading related header in one message is
carried over to the subsequent message to result in an unwanted
threading, which has been corrected.
* The output from "git fast-export", when its anonymization feature
is in use, showed an annotated tag incorrectly.
* Doc update plus improved error reporting.
* Recent "diff -m" changes broke "gitk", which has been corrected.
* Regression fix.
* The "git apply -3" code path learned not to bother the lower level
merge machinery when the three-way merge can be trivially resolved
without the content level merge. This fixes a regression caused by
recent "-3way first and fall back to direct application" change.
* The code that optionally creates the *.rev reverse index file has
been optimized to avoid needless computation when it is not writing
the file out.
* "git range-diff -I... <range> <range>" segfaulted, which has been
corrected.
* The order in which various files that make up a single (conceptual)
packfile has been reevaluated and straightened up. This matters in
correctness, as an incomplete set of files must not be shown to a
running Git.
* The "mode" word is useless in a call to open(2) that does not
create a new file. Such a call in the files backend of the ref
subsystem has been cleaned up.
* "git update-ref --stdin" failed to flush its output as needed,
which potentially led the conversation to a deadlock.
* When "git am --abort" fails to abort correctly, it still exited
with exit status of 0, which has been corrected.
* Correct nr and alloc members of strvec struct to be of type size_t.
* "git stash", where the tentative change involves changing a
directory to a file (or vice versa), was confused, which has been
corrected.
* "git clone" from a repository whose HEAD is unborn into a bare
repository didn't follow the branch name the other side used, which
is corrected.
* "git cvsserver" had a long-standing bug in its authentication code,
which has finally been corrected (it is unclear and is a separate
question if anybody is seriously using it, though).
* "git difftool --dir-diff" mishandled symbolic links.
* Sensitive data in the HTTP trace were supposed to be redacted, but
we failed to do so in HTTP/2 requests.
* "make clean" has been updated to remove leftover .depend/
directories, even when it is not told to use them to compute header
dependencies.
* Protocol v0 clients can get stuck parsing a malformed feature line.
* A few kinds of changes "git status" can show were not documented.
(merge d2a534c515 ja/doc-status-types-and-copies later to maint).
* The mergesort implementation used to sort linked list has been
optimized.
(merge c90cfc225b rs/mergesort later to maint).
* An editor session launched during a Git operation (e.g. during 'git
commit') can leave the terminal in a funny state. The code path
has updated to save the terminal state before, and restore it
after, it spawns an editor.
(merge 3d411afabc cm/save-restore-terminal later to maint).
* "git cat-file --batch" with the "--batch-all-objects" option is
supposed to iterate over all the objects found in a repository, but
it used to translate these object names using the replace mechanism,
which defeats the point of enumerating all objects in the repository.
This has been corrected.
(merge bf972896d7 jk/cat-file-batch-all-wo-replace later to maint).
* Recent sparse-index work broke safety against attempts to add paths
with trailing slashes to the index, which has been corrected.
(merge c8ad9d04c6 rs/make-verify-path-really-verify-again later to maint).
* The "--color-lines" and "--color-by-age" options of "git blame"
have been missing, which are now documented.
(merge 8c32856133 bs/doc-blame-color-lines later to maint).
* The PATH used in CI job may be too wide and let incompatible dlls
to be grabbed, which can cause the build&test to fail. Tighten it.
(merge 7491ef6198 js/windows-ci-path-fix later to maint).
* Avoid performance measurements from getting ruined by gc and other
housekeeping pauses interfering in the middle.
(merge be79131a53 rs/disable-gc-during-perf-tests later to maint).
* Stop "git add --dry-run" from creating new blob and tree objects.
(merge e578d0311d rs/add-dry-run-without-objects later to maint).
* "git commit" gave duplicated error message when the object store
was unwritable, which has been corrected.
(merge 4ef91a2d79 ab/fix-commit-error-message-upon-unwritable-object-store later to maint).
* Recent sparse-index addition, namely any use of index_name_pos(),
can expand sparse index entries and breaks any code that walks
cache-tree or existing index entries. One such instance of such a
breakage has been corrected.
* The xxdiff difftool backend can exit with status 128, which the
difftool-helper that launches the backend takes as a significant
failure, when it is not significant at all. Work it around.
(merge 571f4348dd da/mergetools-special-case-xxdiff-exit-128 later to maint).
* Improve test framework around unwritable directories.
(merge 5d22e18965 ab/test-cleanly-recreate-trash-directory later to maint).
* "git push" client talking to an HTTP server did not diagnose the
lack of the final status report from the other side correctly,
which has been corrected.
(merge c5c3486f38 jk/http-push-status-fix later to maint).
* Update "git archive" documentation and give explicit mention on the
compression level for both zip and tar.gz format.
(merge c4b208c309 bs/archive-doc-compression-level later to maint).
* Drop "git sparse-index" from the list of common commands.
(merge 6a9a50a8af sg/sparse-index-not-that-common-a-command later to maint).
* "git branch -c/-m new old" was not described to copy config, which
has been corrected.
(merge 8252ec300e jc/branch-copy-doc later to maint).
* Squelch over-eager warning message added during this cycle.
(merge 9e8fe7b1c7 jk/log-warn-on-bogus-encoding later to maint).
* Fix long-standing shell syntax error in the completion script.
(merge 46b0585286 re/completion-fix-test-equality later to maint).
* Other code cleanup, docfix, build fix, etc.
(merge f188160be9 ab/bundle-remove-verbose-option later to maint).
(merge 8c6b4332b4 rs/close-pack-leakfix later to maint).
(merge 51b04c05b7 bs/difftool-msg-tweak later to maint).
(merge dd20e4a6db ab/make-compdb-fix later to maint).
(merge 6ffb990dc4 os/status-docfix later to maint).
(merge 100c2da2d3 rs/p3400-lose-tac later to maint).
(merge 76f3b69896 tb/aggregate-ignore-leading-whitespaces later to maint).
(merge 6e4fd8bfcd tz/doc-link-to-bundle-format-fix later to maint).
(merge f6c013dfa1 jc/doc-commit-header-continuation-line later to maint).
(merge ec9a37d69b ab/pkt-line-cleanup later to maint).
(merge 8650c6298c ab/fix-make-lint-docs later to maint).
(merge 1c720357ce ab/test-lib-diff-cleanup later to maint).
(merge 6b615dbece ks/submodule-add-message-fix later to maint).
(merge 82a57cd13f ma/doc-git-version later to maint).
----------------------------------------------------------------
Changes since v2.33.0 are as follows:
Alex Henrie (1):
pull: abort if --ff-only is given and fast-forwarding is impossible
Andrzej Hunt (1):
connect: also update offset for features without values
Atharva Raykar (11):
submodule--helper: introduce add-config subcommand
submodule--helper: add options for compute_submodule_clone_url()
submodule--helper: refactor resolve_relative_url() helper
submodule--helper: remove repeated code in sync_submodule()
dir: libify and export helper functions from clone.c
submodule--helper: convert the bulk of cmd_add() to C
submodule--helper: remove add-clone subcommand
submodule--helper: remove add-config subcommand
submodule--helper: remove resolve-relative-url subcommand
submodule--helper: rename compute_submodule_clone_url()
submodule--helper: run update procedures from C
Azeem Bande-Ali (1):
help.c: help.autocorrect=prompt waits for user action
Bagas Sanjaya (8):
make: add INSTALL_STRIP option variable
Documentation: fix default directory of git bugreport -o
ls-files: use imperative mood for -X and -z option description
difftool: fix word spacing in the usage strings
blame: describe default output format
bisect--helper: add space between colon and following sentence
blame: document --color-* options
archive: describe compression level option
Ben Boeckel (2):
advice: add enum variants for missing advice variables
advice: remove read uses of most global `advice_` variables
Carlo Marcelo Arenas Belón (23):
build: update detect-compiler for newer Xcode version
builtin/merge: avoid -Wformat-extra-args from ancient Xcode
ci: run a pedantic build as part of the GitHub workflow
ci: update freebsd 12 cirrus job
ci: use upload-artifacts v1 for dockerized jobs
remote: avoid -Wunused-but-set-variable in gcc with -DNDEBUG
win32: allow building with pedantic mode enabled
developer: enable pedantic by default
t0301: fixes for windows compatibility
credential-cache: check for windows specific errors
git-compat-util: include declaration for unix sockets in windows
tree-diff: fix leak when not HAVE_ALLOCA_H
t0000: avoid masking git exit value through pipes
git-cvsserver: use crypt correctly to compare password hashes
git-cvsserver: protect against NULL in crypt(3)
Documentation: cleanup git-cvsserver
unicode: update the width tables to Unicode 14
simple-ipc: move definition of ipc_active_state outside of ifdef
lazyload.h: use an even more generic function pointer than FARPROC
Makefile: restrict -Wpedantic and -Wno-pedantic-ms-format better
terminal: teach git how to save/restore its terminal settings
editor: save and reset terminal after calling EDITOR
wrapper: remove xunsetenv()
David Aguilar (6):
difftool: fix symlink-file writing in dir-diff mode
difftool: create a tmpdir path without repeated slashes
difftool: refactor dir-diff to write files using helper functions
difftool: remove an unnecessary call to strbuf_release()
difftool: add a missing space to the run_dir_diff() comments
mergetools/xxdiff: prevent segfaults from stopping difftool
David Turner (3):
t4060: remove unused variable
diff --submodule=diff: do not fail on ever-initialied deleted submodules
diff --submodule=diff: don't print failure message twice
Derrick Stolee (35):
t1092: test merge conflicts outside cone
add: allow operating on a sparse-only index
pathspec: stop calling ensure_full_index
add: ignore outside the sparse-checkout in refresh()
add: remove ensure_full_index() with --renormalize
maintenance: skip bootout/bootstrap when plist is registered
t7519: rewrite sparse index test
sparse-index: silently return when not using cone-mode patterns
unpack-trees: fix nested sparse-dir search
sparse-index: silently return when cache tree fails
sparse-index: use WRITE_TREE_MISSING_OK
sparse-checkout: create helper methods
attr: be careful about sparse directories
sparse-index: add SPARSE_INDEX_MEMORY_ONLY flag
sparse-checkout: clear tracked sparse dirs
diff: ignore sparse paths in diffstat
merge: make sparse-aware with ORT
merge-ort: expand only for out-of-cone conflicts
t1092: add cherry-pick, rebase tests
sequencer: ensure full index if not ORT strategy
sparse-index: integrate with cherry-pick and rebase
t/perf/run: fix bin-wrappers computation
t3705: test that 'sparse_entry' is unstaged
t1092: behavior for adding sparse files
dir: select directories correctly
dir: fix pattern matching on dirs
add: fail when adding an untracked sparse file
add: skip tracked paths outside sparse-checkout cone
add: implement the --sparse option
add: update --chmod to skip sparse paths
add: update --renormalize to skip sparse paths
rm: add --sparse option
rm: skip sparse paths with missing SKIP_WORKTREE
mv: refuse to move sparse paths
advice: update message to suggest '--sparse'
Elijah Newren (48):
t7601: test interaction of merge/rebase/fast-forward flags and options
t7601: add tests of interactions with multiple merge heads and config
pull: since --ff-only overrides, handle it first
pull: make --rebase and --no-rebase override pull.ff=only
pull: abort by default when fast-forwarding is not possible
pull: update docs & code for option compatibility with rebasing
pull: fix handling of multiple heads
merge-ort: rename str{map,intmap,set}_func()
diffcore-rename: use a mem_pool for exact rename detection's hashmap
merge-ort: add pool_alloc, pool_calloc, and pool_strndup wrappers
merge-ort: set up a memory pool
merge-ort: switch our strmaps over to using memory pools
diffcore-rename, merge-ort: add wrapper functions for filepair alloc/dealloc
merge-ort: store filepairs and filespecs in our mem_pool
merge-ort: reuse path strings in pool_alloc_filespec
merge-ort: remove compile-time ability to turn off usage of memory pools
git-rebase.txt: correct antiquated claims about --rebase-merges
directory-rename-detection.txt: small updates due to merge-ort optimizations
Documentation: edit awkward references to `git merge-recursive`
merge-strategies.txt: update wording for the resolve strategy
merge-strategies.txt: do not imply using copy detection is desired
merge-strategies.txt: avoid giving special preference to patience algorithm
merge-strategies.txt: fix simple capitalization error
git-rebase.txt: correct out-of-date and misleading text about renames
merge-strategies.txt: add coverage of the `ort` merge strategy
Update error message and code comment
Change default merge backend from recursive to ort
Update docs for change of default merge backend
t3903: document a pair of directory/file bugs
stash: avoid feeding directories to update-index
stash: restore untracked files AFTER restoring tracked files
git-am.txt: clarify --abort behavior
t4151: add a few am --abort tests
am: fix incorrect exit status on am fail to abort
tests: remove leftover untracked files
trace2.h: fix trivial comment typo
merge-ort: fix completely wrong comment
t2500: add various tests for nuking untracked files
checkout, read-tree: fix leak of unpack_trees_options.dir
read-tree, merge-recursive: overwrite ignored files by default
unpack-trees: introduce preserve_ignored to unpack_trees_options
unpack-trees: make dir an internal-only struct
Remove ignored files by default when they are in the way
Change unpack_trees' 'reset' flag into an enum
unpack-trees: avoid nuking untracked dir in way of unmerged file
unpack-trees: avoid nuking untracked dir in way of locally deleted file
Comment important codepaths regarding nuking untracked files/dirs
Documentation: call out commands that nuke untracked files/directories
Emily Shaffer (3):
tr2: make process info collection platform-generic
tr2: log parent process name
hook.c: add a hook_exists() wrapper and use it in bugreport.c
Eric Wong (1):
doc/technical: update note about core.multiPackIndex
Fabian Stelzer (11):
ssh signing: preliminary refactoring and clean-up
ssh signing: add test prereqs
ssh signing: add ssh key format and signing code
ssh signing: retrieve a default key from ssh-agent
ssh signing: provide a textual signing_key_id
ssh signing: verify signatures using ssh-keygen
ssh signing: duplicate t7510 tests for commits
ssh signing: tests for logs, tags & push certs
ssh signing: test that gpg fails for unknown keys
ssh signing: fmt-merge-msg tests & config parse
ssh signing: clarify trustlevel usage in docs
Felipe Contreras (4):
completion: bash: fix prefix detection in branch.*
completion: bash: fix for suboptions with value
completion: bash: fix for multiple dash commands
completion: bash: add correct suffix in variables
Glen Choo (1):
MyFirstContribution: Document --range-diff option when writing v2
Greg Hurrell (1):
gitweb: use HEAD as secondary sort key in git_get_heads_list()
Han-Wen Nienhuys (14):
t6050: use git-update-ref rather than filesystem access
t1503: mark symlink test as REFFILES
t6120: use git-update-ref rather than filesystem access
t3320: use git-symbolic-ref rather than filesystem access
t2402: use ref-store test helper to create broken symlink
t1405: use 'git reflog exists' to check reflog existence
t1405: mark test for 'git pack-refs' as REFFILES
t1410: mark test as REFFILES
t7064: use update-ref -d to remove upstream branch
t6500: use "ls -1" to snapshot ref database state
t6001: avoid direct file system access
refs: remove EINVAL errno output from specification of read_raw_ref_fn
refs/files-backend: stop setting errno from lock_ref_oid_basic
refs: make errno output explicit for read_raw_ref_fn
Jacob Vosmaer (2):
pkt-line: add stdio packet write functions
upload-pack: use stdio in send_ref callbacks
Jeff Hostetler (8):
sparse-index: copy dir_hash in ensure_full_index()
trace2: add trace2_child_ready() to report on background children
simple-ipc: preparations for supporting binary messages.
simple-ipc/ipc-win32: add trace2 debugging
simple-ipc/ipc-win32: add Windows ACL to named pipe
run-command: create start_bg_command
t/helper/simple-ipc: convert test-simple-ipc to use start_bg_command
t/perf/perf-lib.sh: remove test_times.* at the end test_perf_()
Jeff King (72):
http: drop support for curl < 7.11.1
http: drop support for curl < 7.16.0
http: drop support for curl < 7.19.4
build: clang version may not be followed by extra words
range-diff: drop useless "offset" variable from read_patches()
range-diff: handle unterminated lines in read_patches()
range-diff: use ssize_t for parsed "len" in read_patches()
apply: keep buffer/size pair in sync when parsing binary hunks
t5323: drop mentions of "master"
refs: drop unused "flags" parameter to lock_ref_oid_basic()
logmsg_reencode(): warn when iconv() fails
docs: use "character encoding" to refer to commit-object encoding
t0410: disable GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP
t5310: disable GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP
pack-bitmap: drop repository argument from prepare_midx_bitmap_git()
pack-bitmap: drop bitmap_index argument from try_partial_reuse()
t5562: use alarm() to interrupt timed child-wait
t5551: test v2-to-v0 http protocol fallback
http-backend: handle HTTP_GIT_PROTOCOL CGI variable
docs/http-backend: mention v2 protocol
docs/git: discuss server-side config for GIT_PROTOCOL
docs/protocol-v2: point readers transport config discussion
strvec: use size_t to store nr and alloc
difftool: prepare "diff" cmdline in cmd_difftool()
serve: rename is_command() to parse_command()
serve: return capability "value" from get_capability()
serve: add "receive" method for v2 capabilities table
serve: provide "receive" function for object-format capability
serve: provide "receive" function for session-id capability
serve: drop "keys" strvec
ls-refs: ignore very long ref-prefix counts
docs/protocol-v2: clarify some ls-refs ref-prefix details
serve: reject bogus v2 "command=ls-refs=foo"
serve: reject commands used as capabilities
ls-refs: reject unknown arguments
t1400: avoid SIGPIPE race condition on fifo
clone: handle unborn branch in bare repos
grep: stop modifying buffer in strip_timestamp
grep: stop modifying buffer in show_line()
grep: stop modifying buffer in grep_source_1()
grep: mark "haystack" buffers as const
grep: store grep_source buffer as const
http: match headers case-insensitively when redacting
t7900: clean up some more broken refs
t5516: don't use HEAD ref for invalid ref-deletion tests
t5600: provide detached HEAD for corruption failures
t5312: drop "verbose" helper
t5312: create bogus ref as necessary
t5312: test non-destructive repack
t5312: be more assertive about command failure
refs-internal.h: move DO_FOR_EACH_* flags next to each other
refs-internal.h: reorganize DO_FOR_EACH_* flag documentation
refs: add DO_FOR_EACH_OMIT_DANGLING_SYMREFS flag
refs: omit dangling symrefs when using GIT_REF_PARANOIA
refs: turn on GIT_REF_PARANOIA by default
repack, prune: drop GIT_REF_PARANOIA settings
ref-filter: stop setting FILTER_REFS_INCLUDE_BROKEN
ref-filter: drop broken-ref code entirely
refs: drop "broken" flag from for_each_fullref_in()
test-read-midx: fix leak of bitmap_index struct
t1006: clean up broken objects
cat-file: mention --unordered along with --batch-all-objects
cat-file: disable refs/replace with --batch-all-objects
cat-file: split ordered/unordered batch-all-objects callbacks
cat-file: use packed_object_info() for --batch-all-objects
gpg-interface: fix leak of "line" in parse_ssh_output()
gpg-interface: fix leak of strbufs in get_ssh_key_fingerprint()
send-pack: complain about "expecting report" with --helper-status
transport-helper: recognize "expecting report" error from send-pack
submodule: drop unused sm_name parameter from append_fetch_remotes()
Documentation/Makefile: fix lint-docs mkdir dependency
log: document --encoding behavior on iconv() failure
Jiang Xin (1):
ci: new github-action for git-l10n code review
Joel Klinghed (1):
commit: restore --edit when combined with --fixup
Johannes Altmanninger (4):
Documentation/git-status: remove impossible porcelain status DR and DC
Documentation/diff-format: state in which cases porcelain status is T
Documentation/git-status: document porcelain status T (typechange)
Documentation/git-status: mention how to detect copies
Johannes Schindelin (24):
tests: exercise the RUNTIME_PREFIX feature
expand_user_path(): remove stale part of the comment
expand_user_path(): clarify the role of the `real_home` parameter
Use a better name for the function interpolating paths
interpolate_path(): allow specifying paths relative to the runtime prefix
maintenance: create `launchctl` configuration using a lock file
t5520: do not use `pull.rebase=preserve`
remote: warn about unhandled branch.<name>.rebase values
tests: stop testing `git rebase --preserve-merges`
pull: remove support for `--rebase=preserve`
rebase: drop support for `--preserve-merges`
git-svn: drop support for `--preserve-merges`
rebase: drop the internal `rebase--interactive` command
rebase: remove obsolete code comment
rebase: stop mentioning the -p option in comments
rebase: remove a no-longer-used function
sequencer: restrict scope of a formerly public function
commit-graph: when closing the graph, also release the slab
pull: release packs before fetching
run-command: prettify the `RUN_COMMAND_*` flags
run-command: offer to close the object store before running
run_auto_maintenance(): implicitly close the object store
Close object store closer to spawning child processes
ci(windows): ensure that we do not pick up random executables
Johannes Sixt (9):
t9001: PATH must not use Windows-style paths
lazyload.h: fix warnings about mismatching function pointer types
t4034/cpp: actually test that operator tokens are not split
t4034: add tests showing problematic cpp tokenizations
userdiff-cpp: tighten word regex
userdiff-cpp: prepare test cases with yet unsupported features
userdiff-cpp: permit the digit-separating single-quote in numbers
userdiff-cpp: learn the C++ spaceship operator
userdiff-cpp: back out the digit-separators in numbers
Jonathan Tan (22):
send-pack: fix push.negotiate with remote helper
send-pack: fix push nego. when remote has refs
fetch: die on invalid --negotiation-tip hash
submodule: lazily add submodule ODBs as alternates
grep: use submodule-ODB-as-alternate lazy-addition
grep: typesafe versions of grep_source_init
grep: read submodule entry with explicit repo
grep: allocate subrepos on heap
grep: add repository to OID grep sources
submodule-config: pass repo upon blob config read
t7814: show lack of alternate ODB-adding
submodule: remove unnecessary unabsorbed fallback
repository: support unabsorbed in repo_submodule_init
revision: remove "submodule" from opt struct
submodule: extract path to submodule gitdir func
refs: plumb repo into ref stores
refs: teach arbitrary repo support to iterators
refs: peeling non-the_repository iterators is BUG
merge-{ort,recursive}: remove add_submodule_odb()
object-file: only register submodule ODB if needed
submodule: pass repo to check_has_commit()
submodule: trace adding submodule ODB as alternate
Josh Steadmon (2):
connect, protocol: log negotiated protocol version
sequencer: advise if skipping cherry-picked commit
Junio C Hamano (27):
expand_user_path: allow in-flight topics to keep using the old name
bisect: do not run show-branch just to show the current commit
bisect: simplify return code from bisect_checkout()
build: catch clang that identifies itself as "$VENDOR clang"
userdiff: comment on the builtin patterns
The first batch post 2.33
The second batch
The third batch
apply: resolve trivial merge without hitting ll-merge with "--3way"
hash-object: prefix_filename() returns allocated memory these days
The fourth batch
The fifth batch
The sixth batch
The seventh batch
The eighth batch
The ninth batch
The tenth batch
The eleventh batch
Twelfth batch
Git 2.33.1
signature-format.txt: explain and illustrate multi-line headers
Thirteenth batch
The fourteenth batch
branch (doc): -m/-c copies config and reflog
The fifteenth batch
Revert "logmsg_reencode(): warn when iconv() fails"
Git 2.34-rc0
Kaartic Sivaraam (1):
submodule--helper: fix incorrect newlines in an error message
Kim Altintop (3):
t5730: introduce fetch command helper
upload-pack.c: treat want-ref relative to namespace
docs: clarify the interaction of transfer.hideRefs and namespaces
Kyle Zhao (1):
pack-revindex.h: correct the time complexity descriptions
Lénaïc Huard (4):
cache.h: Introduce a generic "xdg_config_home_for(…)" function
maintenance: `git maintenance run` learned `--scheduler=<scheduler>`
maintenance: add support for systemd timers on Linux
maintenance: fix test t7900-maintenance.sh
Mahi Kolla (1):
clone: set submodule.recurse=true if submodule.stickyRecursiveClone enabled
Martin Ågren (6):
config.txt: fix typo
git.txt: fix typo
git-multi-pack-index.txt: change "folder" to "directory"
gitignore.txt: change "folder" to "directory"
gitweb.txt: change "folder" to "directory"
git-bundle.txt: add missing words and punctuation
Marvin Häuser (1):
send-email: avoid incorrect header propagation
Matheus Tavares (3):
checkout: make delayed checkout respect --quiet and --no-progress
grep: demonstrate bug with textconv attributes and submodules
add, rm, mv: fix bug that prevents the update of non-sparse dirs
Matthias Aßhauer (2):
help: make sure local html page exists before calling external processes
documentation: add documentation for 'git version'
Mickey Endito (1):
t5582: remove spurious 'cd "$D"' line
Mike Hommey (1):
credential: fix leak in credential_apply_config()
Miriam Rubio (3):
t6030-bisect-porcelain: add tests to control bisect run exit cases
t6030-bisect-porcelain: add test for bisect visualize
bisect--helper: retire `--bisect-next-check` subcommand
Orgad Shaneh (1):
doc: fix capitalization in "git status --porcelain=v2" description
Patrick Steinhardt (16):
fetch-pack: speed up loading of refs via commit graph
revision: separate walk and unsorted flags
connected: do not sort input revisions
revision: stop retrieving reference twice
commit-graph: split out function to search commit position
revision: avoid hitting packfiles when commits are in commit-graph
ls-refs: reuse buffer when sending refs
fetch: skip formatting updated refs with `--quiet`
fetch: speed up lookup of want refs via commit-graph
fetch: avoid unpacking headers in object existence check
connected: refactor iterator to return next object ID directly
fetch-pack: optimize loading of refs via commit graph
fetch: refactor fetch refs to be more extendable
fetch: merge fetching and consuming refs
fetch: avoid second connectivity check if we already have all objects
update-ref: fix streaming of status updates
Philip Oakley (1):
doc: config, tell readers of `git help --config`
Philippe Blain (3):
test-lib-functions: use 'TEST_SHELL_PATH' in 'test_pause'
test-lib-functions: optionally keep HOME, TERM and SHELL in 'test_pause'
test-lib-functions: keep user's debugger config files and TERM in 'debug'
Phillip Wood (21):
t3403: fix commit authorship
rebase --apply: restore some tests
rebase --continue: remove .git/MERGE_MSG
rebase -r: make 'merge -c' behave like reword
rebase -i: add another reword test
rebase -r: don't write .git/MERGE_MSG when fast-forwarding
rebase -r: fix merge -c with a merge strategy
t3407: run tests in $TEST_DIRECTORY
t3407: use test_commit
t3407: use test_cmp_rev
t3407: rename a variable
t3407: use test_path_is_missing
t3407: strengthen rebase --abort tests
t3407: rework rebase --quit tests
rebase: use our standard error return value
rebase: use lookup_commit_reference_by_name()
rebase: dereference tags
sequencer.c: factor out a function
rebase: fix todo-list rereading
sparse index: fix use-after-free bug in cache_tree_verify()
t1092: run "rebase --apply" without "-q" in testing
Pranit Bauva (2):
run-command: make `exists_in_PATH()` non-static
bisect--helper: reimplement `bisect_visualize()` shell function in C
René Scharfe (34):
compat: let git_mmap use malloc(3) directly
xopen: explicitly report creation failures
use xopen() to handle fatal open(2) failures
show-branch: simplify rev_is_head()
archive: convert queue_directory to struct object_id
branch: allow deleting dangling branches with --force
merge-recursive: use fspathcmp() in path_hashmap_cmp()
range-diff: avoid segfault with -I
setup: use xopen and xdup in sanitize_stdfds
refs/files-backend: remove unused open mode parameter
index-pack: use xopen in init_thread
oidset: make oidset_size() an inline function
midx: inline nth_midxed_pack_entry()
packfile: convert mark_bad_packed_object() to object_id
packfile: convert has_packed_and_bad() to object_id
packfile: use oidset for bad objects
compression: drop write-only core_compression_* variables
packfile: release bad_objects in close_pack()
test-mergesort: use strbuf_getline()
test-mergesort: add sort subcommand
test-mergesort: add test subcommand
test-mergesort: add generate subcommand
test-mergesort: add unriffle mode
test-mergesort: add unriffle_skewed mode
p0071: measure sorting of already sorted and reversed files
p0071: test performance of llist_mergesort()
mergesort: use ranks stack
p3400: stop using tac(1)
t3905: show failure to ignore sub-repo
read-cache: add verify_path_internal()
read-cache: let verify_path() reject trailing dir separators again
test-mergesort: use repeatable random numbers
perf: disable automatic housekeeping
add: don't write objects with --dry-run
Robert Estelle (1):
completion: fix incorrect bash/zsh string equality check
SZEDER Gábor (12):
Makefile: remove archives before manipulating them with 'ar'
column: fix parsing of the '--nl' option
test-lib: set GIT_CEILING_DIRECTORIES to protect the surrounding repository
t1600-index: remove unnecessary redirection
t1600-index: don't run git commands upstream of a pipe
t1600-index: disable GIT_TEST_SPLIT_INDEX
read-cache: look for shared index files next to the index, too
tests: disable GIT_TEST_SPLIT_INDEX for sparse index tests
read-cache: fix GIT_TEST_SPLIT_INDEX
commit-graph: fix bogus counter in "Scanning merged commits" progress line
entry: show finer-grained counter in "Filtering content" progress line
command-list.txt: remove 'sparse-index' from main help
Sergey Organov (1):
diff-index: restore -c/--cc options handling
Takashi Iwai (1):
completion: tcsh: Fix regression by drop of wrapper functions
Tal Kelrich (1):
fast-export: fix anonymized tag using original length
Tanushree Tumane (1):
bisect--helper: reimplement `bisect_run` shell function in C
Tassilo Horn (1):
userdiff: improve java hunk header regex
Taylor Blau (55):
pack-bitmap.c: harden 'test_bitmap_walk()' to check type bitmaps
pack-bitmap-write.c: gracefully fail to write non-closed bitmaps
pack-bitmap-write.c: free existing bitmaps
Documentation: describe MIDX-based bitmaps
object-store.h: teach for_each_packed_object to ignore kept packs
builtin/pack-objects.c: simplify add_objects_in_unpacked_packs()
builtin/pack-objects.c: remove duplicate hash lookup
midx: disallow running outside of a repository
midx: fix `*.rev` cleanups with `--object-dir`
midx: clear auxiliary .rev after replacing the MIDX
midx: reject empty `--preferred-pack`'s
midx: infer preferred pack when not given one
midx: close linked MIDXs, avoid leaking memory
midx: avoid opening multiple MIDXs when writing
pack-bitmap.c: introduce 'bitmap_num_objects()'
pack-bitmap.c: introduce 'nth_bitmap_object_oid()'
pack-bitmap.c: introduce 'bitmap_is_preferred_refname()'
pack-bitmap.c: avoid redundant calls to try_partial_reuse
pack-bitmap: read multi-pack bitmaps
pack-bitmap: write multi-pack bitmaps
t5310: move some tests to lib-bitmap.sh
t/helper/test-read-midx.c: add --checksum mode
t5326: test multi-pack bitmap behavior
t5319: don't write MIDX bitmaps in t5319
t7700: update to work with MIDX bitmap test knob
midx: respect 'GIT_TEST_MULTI_PACK_INDEX_WRITE_BITMAP'
p5310: extract full and partial bitmap tests
p5326: perf tests for MIDX bitmaps
bulk-checkin.c: store checksum directly
pack-write.c: rename `.idx` files after `*.rev`
builtin/repack.c: move `.idx` files into place last
builtin/index-pack.c: move `.idx` files into place last
t/helper/test-bitmap.c: add 'dump-hashes' mode
pack-bitmap.c: propagate namehash values from existing bitmaps
midx.c: respect 'pack.writeBitmapHashcache' when writing bitmaps
p5326: create missing 'perf-tag' tag
p5326: don't set core.multiPackIndex unnecessarily
p5326: generate pack bitmaps before writing the MIDX bitmap
t5326: test propagating hashcache values
builtin/commit-graph.c: don't accept common --[no-]progress
builtin/multi-pack-index.c: disable top-level --[no-]progress
midx: expose `write_midx_file_only()` publicly
builtin/multi-pack-index.c: support `--stdin-packs` mode
midx: preliminary support for `--refs-snapshot`
builtin/repack.c: keep track of existing packs unconditionally
builtin/repack.c: rename variables that deal with non-kept packs
builtin/repack.c: extract showing progress to a variable
builtin/repack.c: support writing a MIDX while repacking
builtin/repack.c: make largest pack preferred
builtin/repack.c: pass `--refs-snapshot` when writing bitmaps
t/perf/aggregate.perl: tolerate leading spaces
midx.c: extract MIDX lookup by object_dir
midx.c: lookup MIDX by object directory during expire
midx.c: lookup MIDX by object directory during repack
midx.c: guard against commit_lock_file() failures
Teng Long (1):
list-objects.c: rename "traverse_trees_and_blobs" to "traverse_non_commits"
Todd Zullinger (1):
doc: add bundle-format to TECH_DOCS
USAMI Kenta (1):
userdiff: support enum keyword in PHP hunk header
Wesley Schwengle (1):
Document `rebase.forkpoint` in rebase man page
ZheNing Hu (6):
ref-filter: add obj-type check in grab contents
ref-filter: add %(raw) atom
ref-filter: --format=%(raw) support --perl
ref-filter: use non-const ref_format in *_atom_parser()
ref-filter: add %(rest) atom
cherry-pick: use better advice message
Zoker (1):
doc: fix syntax error and the format of printf
brian m. carlson (1):
t5607: avoid using prerequisites to select algorithm
Ævar Arnfjörð Bjarmason (221):
pack-objects tests: cover blindspots in stdin handling
Makefile: move ".PHONY: cscope" near its target
Makefile: add QUIET_GEN to "cscope" target
pack-objects: fix segfault in --stdin-packs option
test-lib tests: move "run_sub_test" to a new lib-subtest.sh
Makefile: don't use "FORCE" for tags targets
http: drop support for curl < 7.19.3 and < 7.17.0 (again)
http: rename CURLOPT_FILE to CURLOPT_WRITEDATA
bundle doc: elaborate on object prerequisites
bundle doc: elaborate on rev<->ref restriction
bundle doc: rewrite the "DESCRIPTION" section
bundle doc: replace "basis" with "prerequsite(s)"
serve: mark has_capability() as static
transport: rename "fetch" in transport_vtable to "fetch_refs"
transport: use designated initializers
serve: use designated initializers
serve.[ch]: don't pass "struct strvec *keys" to commands
serve: move transfer.advertiseSID check into session_id_advertise()
serve.c: move version line to advertise_capabilities()
{upload,receive}-pack tests: add --advertise-refs tests
serve.[ch]: remove "serve_options", split up --advertise-refs code
upload-pack: document and rename --advertise-refs
Makefile: remove "cscope.out", not "cscope*" in cscope.out target
Makefile: normalize clobbering & xargs for tags targets
refs/packet: add missing BUG() invocations to reflog callbacks
refs/files: remove unused REF_DELETING in lock_ref_oid_basic()
ls-remote: set packet_trace_identity(<name>)
rebase: emit one "fatal" in "fatal: fatal: <error>"
advice: remove use of global advice_add_embedded_repo
advice: move advice.graftFileDeprecated squashing to commit.[ch]
refs/files: remove unused "extras/skip" in lock_ref_oid_basic()
refs/files: remove unused "skip" in lock_raw_ref() too
refs/debug: re-indent argument list for "prepare"
refs: make repo_dwim_log() accept a NULL oid
refs/files: add a comment about refs_reflog_exists() call
reflog expire: don't lock reflogs using previously seen OID
refs API: remove OID argument to reflog_expire()
refs/files: remove unused "oid" in lock_ref_oid_basic()
refs/files: remove unused "errno == EISDIR" code
refs/files: remove unused "errno != ENOTDIR" condition
refs file backend: move raceproof_create_file() here
bundle API: start writing API documentation
commit-graph: define common usage with a macro
commit-graph: remove redundant handling of -h
commit-graph: use parse_options_concat()
multi-pack-index: refactor "goto usage" pattern
commit-graph: early exit to "usage" on !argc
commit-graph: show usage on "commit-graph [write|verify] garbage"
commit-graph: show "unexpected subcommand" error
protocol-caps.c: fix memory leak in send_info()
mailmap.c: fix a memory leak in free_mailap_{info,entry}()
gc: remove trailing dot from "gc.log" line
gettext: remove optional non-standard parens in N_() definition
bundle API: change "flags" to be "extra_index_pack_args"
index-pack: add --progress-title option
bundle: show progress on "unbundle"
tr2: remove NEEDSWORK comment for "non-procfs" implementations
tr2: clarify TRACE2_PROCESS_INFO_EXIT comment under Linux
tr2: stop leaking "thread_name" memory
tr2: leave the parent list empty upon failure & don't leak memory
tr2: do compiler enum check in trace2_collect_process_info()
tr2: log N parent process names on Linux
send-email: fix a "first config key wins" regression in v2.33.0
Makefile: remove the check_bindir script
pack-write: skip *.rev work when not writing *.rev
pack.h: line-wrap the definition of finish_tmp_packfile()
pack-write: refactor renaming in finish_tmp_packfile()
index-pack: refactor renaming in final()
pack-write: split up finish_tmp_packfile() function
pack-objects: rename .idx files into place after .bitmap files
help: correct the usage string in -h and documentation
INSTALL: don't mention the "curl" executable at all
INSTALL: reword and copy-edit the "libcurl" section
git-submodule: remove unused is_zero_oid() function
git-sh-setup: remove unused "pull with rebase" message
git-bisect: remove unused SHA-1 $x40 shell variable
test-lib: remove unused $_x40 and $_z40 variables
test-tool run-command: fix flip-flop init pattern
gc: remove unused launchctl_get_uid() call
parse-options API users: align usage output in C-strings
send-pack: properly use parse_options() API for usage string
git rev-parse --parseopt tests: add more usagestr tests
difftool: prepare "struct child_process" in cmd_difftool()
difftool: use run_command() API in run_file_diff()
parse-options API: remove OPTION_ARGUMENT feature
INSTALL: mention that we need libcurl 7.19.4 or newer to build
Makefile: drop support for curl < 7.9.8 (again)
http: drop support for curl < 7.18.0 (again)
http: correct version check for CURL_HTTP_VERSION_2
http: correct curl version check for CURLOPT_PINNEDPUBLICKEY
http: centralize the accounting of libcurl dependencies
http: don't hardcode the value of CURL_SOCKOPT_OK
wrapper.c: add x{un,}setenv(), and use xsetenv() in environment.c
environment.c: remove test-specific "ignore_untracked..." variable
read-cache & fetch-negotiator: check "enum" values in switch()
repo-settings.c: simplify the setup
repository.h: don't use a mix of int and bitfields
Makefile: clean .depend dirs under COMPUTE_HEADER_DEPENDENCIES != yes
parse-options: properly align continued usage output
test-lib tests: split up "write and run" into two functions
test-lib tests: don't provide a description for the sub-tests
test-lib tests: avoid subshell for "test_cmp" for readability
test-lib tests: refactor common part of check_sub_test_lib_test*()
test-lib tests: assert 1 exit code, not non-zero
test-lib tests: get rid of copy/pasted mock test code
Makefile: make the "sparse" target non-.PHONY
Makefile: make COMPUTE_HEADER_DEPENDENCIES=auto work with DEVOPTS=pedantic
help: correct usage & behavior of "git help --guides"
help tests: add test for --config output
help: correct logic error in combining --all and --config
help: correct logic error in combining --all and --guides
help: simplify by moving to OPT_CMDMODE()
help tests: test --config-for-completion option & output
help / completion: make "git help" do the hard work
help: move column config discovery to help.c library
Makefile: add SANITIZE=leak flag to GIT-BUILD-OPTIONS
tests: add a test mode for SANITIZE=leak, run it in CI
bundle: remove ignored & undocumented "--verbose" flag
Makefile: mark "check" target as .PHONY
Makefile: stop hardcoding {command,config}-list.h
Makefile: don't perform "mv $@+ $@" dance for $(GENERATED_H)
Makefile: remove an out-of-date comment
hook.[ch]: move find_hook() from run-command.c to hook.c
hook.c users: use "hook_exists()" instead of "find_hook()"
hook-list.h: add a generated list of hooks, like config-list.h
http: check CURLE_SSL_PINNEDPUBKEYNOTMATCH when emitting errors
Makefile: pass -Wno-pendantic under GENERATE_COMPILATION_DATABASE=yes
submodule-config.h: remove unused SUBMODULE_INIT macro
*.[ch] *_INIT macros: use { 0 } for a "zero out" idiom
*.h _INIT macros: don't specify fields equal to 0
*.h: move some *_INIT to designated initializers
cbtree.h: define cb_init() in terms of CBTREE_INIT
daemon.c: refactor hostinfo_init() to HOSTINFO_INIT macro
builtin/blame.c: refactor commit_info_init() to COMMIT_INFO_INIT macro
string-list.[ch]: remove string_list_init() compatibility function
config.c: remove unused git_config_key_is_valid()
refs.[ch]: remove unused ref_storage_backend_exists()
refs/ref-cache.[ch]: remove unused remove_entry_from_dir()
refs/ref-cache.[ch]: remove unused add_ref_entry()
refs/ref-cache.c: remove "mkdir" parameter from find_containing_dir()
refs/ref-cache.[ch]: remove "incomplete" from create_dir_entry()
parse-options.h: move PARSE_OPT_SHELL_EVAL between enums
urlmatch.[ch]: add and use URLMATCH_CONFIG_INIT
builtin/remote.c: add and use a REF_STATES_INIT
builtin/remote.c: add and use SHOW_INFO_INIT
builtin.h: remove cmd_tar_tree() declaration
grep.h: remove unused grep_threads_ok() declaration
log-tree.h: remove unused function declarations
config.h: remove unused git_config_get_untracked_cache() declaration
fsck tests: add test for fsck-ing an unknown type
fsck tests: refactor one test to use a sub-repo
fsck tests: test current hash/type mismatch behavior
fsck tests: test for garbage appended to a loose object
cat-file tests: move bogus_* variable declarations earlier
cat-file tests: test for missing/bogus object with -t, -s and -p
cat-file tests: add corrupt loose object test
cat-file tests: test for current --allow-unknown-type behavior
object-file.c: don't set "typep" when returning non-zero
object-file.c: return -1, not "status" from unpack_loose_header()
object-file.c: make parse_loose_header_extended() public
object-file.c: simplify unpack_loose_short_header()
object-file.c: use "enum" return type for unpack_loose_header()
object-file.c: return ULHR_TOO_LONG on "header too long"
object-file.c: stop dying in parse_loose_header()
fsck: don't hard die on invalid object types
fsck: report invalid object type-path combinations
unpack-trees: don't leak memory in verify_clean_subdirectory()
tests: fix a memory leak in test-prio-queue.c
tests: fix a memory leak in test-parse-options.c
tests: fix a memory leak in test-oidtree.c
tests: fix test-oid-array leak, test in SANITIZE=leak
ls-files: fix a trivial dir_clear() leak
ls-files: add missing string_list_clear()
merge: add missing strbuf_release()
parse-options.[ch]: consistently use "enum parse_opt_flags"
parse-options.[ch]: consistently use "enum parse_opt_result"
parse-options.c: use exhaustive "case" arms for "enum parse_opt_result"
parse-options.h: make the "flags" in "struct option" an enum
parse-options.c: move optname() earlier in the file
commit-graph: stop using optname()
parse-options.[ch]: make opt{bug,name}() "static"
parse-options tests: test optname() output
parse-options: change OPT_{SHORT,UNSET} to an enum
unwritable tests: assert exact error output
commit: fix duplication regression in permission error output
leak tests: run various built-in tests in t00*.sh SANITIZE=leak
leak tests: run various "test-tool" tests in t00*.sh SANITIZE=leak
leak tests: mark all ls-tree tests as passing with SANITIZE=leak
leak tests: mark all trace2 tests as passing with SANITIZE=leak
leak tests: mark all checkout-index tests as passing with SANITIZE=leak
leak tests: mark some ls-files tests as passing with SANITIZE=leak
leak tests: mark some read-tree tests as passing with SANITIZE=leak
leak tests: mark various "generic" tests as passing with SANITIZE=leak
leak tests: mark some misc tests as passing with SANITIZE=leak
sequencer: add a "goto cleanup" to do_reset()
sequencer: fix a memory leak in do_reset()
test-lib.sh: de-duplicate error() teardown code
test-lib.sh: use "Bail out!" syntax on bad SANITIZE=leak use
test-lib.sh: try to re-chmod & retry on failed trash removal
"lib-diff" tests: make "README" and "COPYING" test data smaller
tests: stop using top-level "README" and "COPYING" files
doc lint: fix error-hiding regression
doc lint: emit errors on STDERR
doc build: speed up "make lint-docs"
doc lint: make "lint-docs" non-.PHONY
pkt-line.[ch]: remove unused packet_buf_write_len()
pkt-line.[ch]: remove unused packet_read_line_buf()
git config doc: fix recent ASCIIDOC formatting regression
tag: use a "goto cleanup" pattern, leak less memory
ref-filter API user: add and use a ref_sorting_release()
branch: use ref_sorting_release()
git-sh-i18n: remove unused eval_ngettext()
git-sh-setup: remove messaging supporting --preserve-merges
Makefile: remove redundant GIT-CFLAGS dependency from "sparse"
config.c: don't leak memory in handle_path_include()
grep: prefer "struct grep_opt" over its "void *" equivalent
grep: use object_array_clear() in cmd_grep()
grep: fix a "path_list" memory leak
clone: fix a memory leak of the "git_dir" variable
submodule--helper: fix small memory leaks
reflog: free() ref given to us by dwim_log()
Đoàn Trần Công Danh (3):
t6300: don't run cat-file on non-existent object
t6300: check for cat-file exit status code
diff-lib: ignore paths that are outside $cwd if --relative asked
More information about the git-announce
mailing list