Posted
about 3 years
ago
by
Christian Couder
Hi everyone,
The 87th edition of Git Rev News is now published:
https://git.github.io/rev_news/2022/05/26/edition-87/
Thanks a lot to Carlo Marcelo Arenas Belón, Bruno Brito and Luca
Milanesio who helped this month!
Enjoy,
Christian, Jakub
... [More]
, Markus and Kaartic.
PS: An issue for the next edition is already opened and contributions
are welcome:
https://github.com/git/git.github.io/issues/582
[Less]
|
Posted
about 3 years
ago
by
Johannes Schindelin
Dear Git users,
I hereby announce that Git for Windows 2.36.1 is available from:
https://gitforwindows.org/
Changes since Git for Windows v2.36.0 (April 20th 2022)
Upcoming breaking changes
We plan to update the included bash to version 5.1
... [More]
(currently 4.4) soon
after Git for Windows 2.36.0 is released. Please check your shell
scripts for potential compatibility issues.
Git for Windows will also stop supporting Windows Vista soon after Git
for Windows 2.36.0 is released. Around the beginning of 2023, Git for
Windows will drop support for Windows 7 and for Windows 8, following
Cygwin's and MSYS2's lead (Git for Windows relies on MSYS2 for
components such as Bash and Perl).
New Features
* Comes with Git v2.36.1.
* On newer Windows versions, Git now assumes a Win32 Console with
full color capabilities. This helps e.g. when NeoVIM is configured
as Git's editor.
* Comes with OpenSSH v9.0p1.
* When git clean fails due to long paths, Git now advises the user to
set core.longPaths.
* Comes with cURL v7.83.0.
* Git Credential Manager's binaries are no longer installed in the
same location as core Git's own dashed programs. This separates
more clearly the core Git executables from the Git executables
provided by third-parties.
* Comes with Git Credential Manager Core v2.0.696.
* Comes with OpenSSL v1.1.1o.
* Comes with patch level 4 of the MSYS2 runtime (Git for Windows
flavor) based on Cygwin 3.3.4.
Bug Fixes
* A regression introduced in Git for Windows v2.36.0 where GPG in
32-bit versions simply would not work was fixed.
* The proxy-lookup helper only reported the first letter of the proxy
, which was fixed.
* The installer now verifies that .NET Framework 4.7.2 is available
before offering Git Credential Manager (GCM) as an option (because
it is required for GCM to work).
* A bug introduced into v2.36.0 where shell scripts failed to run on
some network shares with the error "Too many levels of symbolic
links" was fixed.
Git-2.36.1-64-bit.exe | 08a0c20374d13d1b448d2c5713222ff55dd1f4bffa15093b85772cc0fc5f30e7
Git-2.36.1-32-bit.exe | 0a50735bd088698e6015265d9373cb0cc859f46a0689d3073f91da0dc0fe66aa
PortableGit-2.36.1-64-bit.7z.exe | af17a2803c5c6406b9b60dfef2d34f72f218975f9d78df21005a44f6e2f0caf9
PortableGit-2.36.1-32-bit.7z.exe | 71ad967137a4da096f3e3406bd8a761f59c3a1edbf32e81e69e1f75efb9a44c4
MinGit-2.36.1-64-bit.zip | a7a78c306dea018cc7ca3efe6a0d87c1dd7a43762705ccb0c5e31e3e44349207
MinGit-2.36.1-32-bit.zip | dbd24baed2bbc0a5bb784cf3cb877bf9a66ff3fb029e95231f46db5e5b4bc4f5
MinGit-2.36.1-busybox-64-bit.zip | 5c7a819187dbcb0d8941c6a71bc384b01a942a6c2b5385202bb79a0fcc52d8a5
MinGit-2.36.1-busybox-32-bit.zip | 42dfaec1999393ba8b8e472fecc6b9435fed59415e404eedbe847c975c1840c2
Git-2.36.1-64-bit.tar.bz2 | 38f4888db497ebe11f67c42a88ac1708fb5c68d53a398b4030b51a6116cce0e5
Git-2.36.1-32-bit.tar.bz2 | 7b7cce2d1a29bb18b661720c692b39a27b406cd4916d75cc62d5fe1bfd9a57ea
Ciao,
Johannes
[Less]
|
Posted
over 3 years
ago
by
Junio C Hamano
The latest maintenance release Git v2.36.1 is now available at
the usual places.
This is to fix many of the regressions shipped with v2.36.0;
unfortunately, there still are a few known regressions that are not
yet fixed, which have to wait for
... [More]
future maintenance releases.
The tarballs are found at:
https://www.kernel.org/pub/software/scm/git/
The following public repositories all have a copy of the 'v2.36.1'
tag and the 'maint' 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
----------------------------------------------------------------
Git v2.36.1 Release Notes
=========================
Fixes since v2.36
-----------------
* "git submodule update" without pathspec should silently skip an
uninitialized submodule, but it started to become noisy by mistake.
* "diff-tree --stdin" has been broken for about a year, but 2.36
release broke it even worse by breaking running the command with
, which in turn broke "gitk" and got noticed. This has
been corrected by aligning its behaviour to that of "log".
* Regression fix for 2.36 where "git name-rev" started to sometimes
reference strings after they are freed.
* "git show ... -- " lost the pathspec
when showing the second and subsequent commits, which has been
corrected.
* "git fast-export -- " lost the pathspec when showing the
second and subsequent commits, which has been corrected.
* "git format-patch -- " lost the pathspec when
showing the second and subsequent commits, which has been
corrected.
* Get rid of a bogus and over-eager coccinelle rule.
* Correct choices of C compilers used in various CI jobs.
Also contains minor documentation updates and code clean-ups.
----------------------------------------------------------------
Changes since v2.36.0 are as follows:
Junio C Hamano (4):
2.36 gitk/diff-tree --stdin regression fix
2.36 show regression fix
cocci: drop bogus xstrdup_or_null() rule
Git 2.36.1
Orgad Shaneh (1):
submodule--helper: fix initialization of warn_if_uninitialized
René Scharfe (3):
Revert "name-rev: release unused name strings"
2.36 format-patch regression fix
2.36 fast-export regression fix
Ævar Arnfjörð Bjarmason (1):
CI: select CC based on CC_PACKAGE (again)
[Less]
|
Posted
over 3 years
ago
by
Christian Couder
Hi everyone,
The 86th edition of Git Rev News is now published:
https://git.github.io/rev_news/2022/04/30/edition-86/
Thanks a lot to Bruno Brito, Brandon Pugh, Carlo Marcelo Arenas Belón
and Philip Oakley who helped this month!
Enjoy
... [More]
,
Christian, Jakub, Markus and Kaartic.
PS: An issue for the next edition is already opened and contributions
are welcome:
https://github.com/git/git.github.io/issues/577
[Less]
|
Posted
over 3 years
ago
by
Johannes Schindelin
Dear Git users,
I hereby announce that Git for Windows 2.36.0 is available from:
https://gitforwindows.org/
Changes since Git for Windows v2.35.3 (April 15th 2022)
This version includes Git LFS v3.1.4, addressing CVE-2022-24826 (if you
use
... [More]
Git LFS with MinGit, you will want to upgrade).
Upcoming breaking changes
We plan to update the included bash to version 5.1 (currently 4.4) soon
after Git for Windows 2.36.0 is released. Please check your shell
scripts for potential compatibility issues.
Git for Windows will also stop supporting Windows Vista soon after Git
for Windows 2.36.0 is released. Around the beginning of 2023, Git for
Windows will drop support for Windows 7 and for Windows 8, following
Cygwin's and MSYS2's lead (Git for Windows relies on MSYS2 for
components such as Bash and Perl).
New Features
* Comes with Git v2.36.0.
* Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin
3.3.4.
* Comes with OpenSSH v8.9p1.
* Comes with cURL v7.82.0.
* Comes with OpenSSL v1.1.1n.
* Comes with Git Credential Manager Core v2.0.696.
* Comes with GNU TLS v3.7.4.
* Comes with Git LFS v3.1.4.
Git-2.36.0-64-bit.exe | 5196563ba07031257d972c0b3c2ebd3227d98a40587278e11930dbc2f78d4e69
Git-2.36.0-32-bit.exe | 5de71f60ca0012e5efc6e991696095d3eb5a80d156fb404c3fbe8317ba690313
PortableGit-2.36.0-64-bit.7z.exe | 2257df41991f07c33176e2af8240181dab44cc713afe0fd95a0e12964fc46bda
PortableGit-2.36.0-32-bit.7z.exe | 27522261de1666e99d2c9708351de8e25638d6bc2f41e4d9a28bcede4c8eec75
MinGit-2.36.0-64-bit.zip | 0c6611fc04b9b111777a4f219e198bded07fea80fb14dedb01ebbcc231480986
MinGit-2.36.0-32-bit.zip | 8c0d78619273116c7d76ca8ec1e5322ba3a315a113acafabcbd9febfb2dc493c
MinGit-2.36.0-busybox-64-bit.zip | 5c301b9deabae5a83a09efed7f816d325f4ab23b6e3f3a50d077199271e045a0
MinGit-2.36.0-busybox-32-bit.zip | 2aa9b03696f0aa4d07968316464dbc541eb9a997f578cc110e1c3e206f78f2aa
Git-2.36.0-64-bit.tar.bz2 | ee3d663e3aa699dea3dc664e29543a2113e022365d169100f708a8660ae7fcbd
Git-2.36.0-32-bit.tar.bz2 | 6db2399c943ca74ca72884dff1524c6c14f3f16dbd1f139719e62f6d89f0254a
Ciao,
Johannes
[Less]
|
Posted
over 3 years
ago
by
Junio C Hamano
The latest feature release Git v2.36.0 is now available at the
usual places. It is comprised of 717 non-merge commits since
v2.35.0, contributed by 96 people, 26 of which are new faces [*].
This release contains the same fixes as the recent
... [More]
maintenance
releases to address CVE-2022-24765 as well.
The tarballs are found at:
https://www.kernel.org/pub/software/scm/git/
The following public repositories all have a copy of the 'v2.36.0'
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.35.0 are as follows.
Welcome to the Git development community!
Abhradeep Chakraborty, BRESSAT Jonathan, Chen Bojun, COGONI
Guillaume, David Cantrell, Des Preston, Hongyi Zhao, Jason Yundt,
Jayati Shrivastava, Jaydeep Das, Jaydeep P Das, Jose Lopes,
Justin Donnelly, Kraymer, Liginity Lee, Matheus Felipe, Matheus
Valadares, Maximilian Reichel, Michael McClimon, Nihal Jere,
Pedro Martelletto, Robert Coup, Sean Allred, Shaoxuan Yuan,
Shubham Mishra, and Waleed Khan.
Returning contributors who helped this release are as follows.
Thanks for your continued support.
Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alex Henrie,
Atharva Raykar, Bagas Sanjaya, Beat Bolli, brian m. carlson,
Carlo Marcelo Arenas Belón, Christian Couder, Daniel Hahler,
Daniel Santos, Derrick Stolee, Elia Pinto, Elijah Newren,
Emily Shaffer, Emir SARI, Eric Sunshine, Fabian Stelzer,
Fangyi Zhou, Glen Choo, Greg Hurrell, Han-Wen Nienhuys, Jacob
Keller, Jean-Noël Avila, Jeff Hostetler, Jeff King, Jerry
Zhang, Jessica Clarke, Jiang Xin, Joel Holdsworth, Johannes
Altmanninger, Johannes Schindelin, Johannes Sixt, John Cai,
Jonathan Nieder, Jonathan Tan, Jordi Mas, Josh Steadmon, Junio
C Hamano, Kevin Willford, Lessley Dennington, Marc Strapetz,
Martin Ågren, Matt Cooper, Matthias Rüster, Michael J Gruber,
Neeraj Singh, Patrick Steinhardt, Peter Krefting, Philip Oakley,
Philippe Blain, Phillip Szelat, Phillip Wood, Ralf Thielow,
Ramkumar Ramachandra, Randall S. Becker, René Scharfe, Shourya
Shukla, SZEDER Gábor, Tao Klerks, Taylor Blau, Teng Long,
Thomas Gummerer, Thomas Koutcher, Tilman Vogel, Todd Zullinger,
Trần Ngọc Quân, Victoria Dye, Yi-Jyun Pan, and 依云.
[*] We are counting not just the authorship contribution but issue
reporting, mentoring, helping and reviewing that are recorded in
the commit trailers.
----------------------------------------------------------------
Git 2.36 Release Notes
======================
Updates since Git 2.35
----------------------
Backward compatibility warts
* "git name-rev --stdin" has been deprecated and issues a warning
when used; use "git name-rev --annotate-stdin" instead.
* "git clone --filter=... --recurse-submodules" only makes the
top-level a partial clone, while submodules are fully cloned. This
behaviour is changed to pass the same filter down to the submodules.
* With the fixes for CVE-2022-24765 that are common with versions of
Git 2.30.4, 2.31.3, 2.32.2, 2.33.3, 2.34.3, and 2.35.3, Git has
been taught not to recognise repositories owned by other users, in
order to avoid getting affected by their config files and hooks.
You can list the path to the safe/trusted repositories that may be
owned by others on a multi-valued configuration variable
`safe.directory` to override this behaviour, or use '*' to declare
that you trust anything.
Note to those who build from the source
* Since Git 2.31, our source assumed that the compiler you use to
build Git supports variadic macros, with an easy-to-use escape
hatch to allow compilation without variadic macros with an request
to report that you had to use the escape hatch to the list.
Because we haven't heard from anybody who actually needed to use
the escape hatch, it has been removed, making support of variadic
macros a hard requirement.
UI, Workflows & Features
* Assorted updates to "git cat-file", especially "-h".
* The command line completion (in contrib/) learns to complete
arguments to give to "git sparse-checkout" command.
* "git log --remerge-diff" shows the difference from mechanical merge
result and the result that is actually recorded in a merge commit.
* "git log" and friends learned an option --exclude-first-parent-only
to propagate UNINTERESTING bit down only along the first-parent
chain, just like --first-parent option shows commits that lack the
UNINTERESTING bit only along the first-parent chain.
* The command line completion script (in contrib/) learned to
complete all Git subcommands, including the ones that are normally
hidden, when GIT_COMPLETION_SHOW_ALL_COMMANDS is used.
* "git branch" learned the "--recurse-submodules" option.
* A user can forget to make a script file executable before giving
it to "git bisect run". In such a case, all tests will exit with
126 or 127 error codes, even on revisions that are marked as good.
Try to recognize this situation and stop iteration early.
* When "index-pack" dies due to incoming data exceeding the maximum
allowed input size, include the value of the limit in the error
message.
* The error message given by "git switch HEAD~4" has been clarified
to suggest the "--detach" option that is required.
* In sparse-checkouts, files mis-marked as missing from the working tree
could lead to later problems. Such files were hard to discover, and
harder to correct. Automatically detecting and correcting the marking
of such files has been added to avoid these problems.
* "git cat-file" learns "--batch-command" mode, which is a more
flexible interface than the existing "--batch" or "--batch-check"
modes, to allow different kinds of inquiries made.
* The level of verbose output from the ort backend during inner merge
has been aligned to that of the recursive backend.
* "git remote rename A B", depending on the number of remote-tracking
refs involved, takes long time renaming them. The command has been
taught to show progress bar while making the user wait.
* Bundle file format gets extended to allow a partial bundle,
filtered by similar criteria you would give when making a
partial/lazy clone.
* A new built-in userdiff driver for kotlin has been added.
* "git repack" learned a new configuration to disable triggering of
age-old "update-server-info" command, which is rarely useful these
days.
* "git stash" does not allow subcommands it internally runs as its
implementation detail, except for "git reset", to emit messages;
now "git reset" part has also been squelched.
* "git ls-tree" learns "--oid-only" option, similar to "--name-only",
and more generalized "--format" option.
* "git fetch --refetch" learned to fetch everything without telling
the other side what we already have, which is useful when you
cannot trust what you have in the local object store.
* "git branch" gives hint when branch tracking cannot be established
because fetch refspecs from multiple remote repositories overlap.
* "git worktree list --porcelain" did not c-quote pathnames and lock
reasons with unsafe bytes correctly, which is worked around by
introducing NUL terminated output format with "-z".
Performance, Internal Implementation, Development Support etc.
* "git apply" (ab)used the util pointer of the string-list to keep
track of how each symbolic link needs to be handled, which has been
simplified by using strset.
* Fix a hand-rolled alloca() imitation that may have violated
alignment requirement of data being sorted in compatibility
implementation of qsort_s() and stable qsort().
* Use the parse-options API in "git reflog" command.
* The conditional inclusion mechanism of configuration files using
"[includeIf ]" learns to base its decision on the
URL of the remote repository the repository interacts with.
(merge 399b198489 jt/conditional-config-on-remote-url later to maint).
* "git name-rev --stdin" does not behave like usual "--stdin" at
all. Start the process of renaming it to "--annotate-stdin".
(merge a2585719b3 jc/name-rev-stdin later to maint).
* "git update-index", "git checkout-index", and "git clean" are
taught to work better with the sparse checkout feature.
* Use an internal call to reset_head() helper function instead of
spawning "git checkout" in "rebase", and update code paths that are
involved in the change.
* Messages "ort" merge backend prepares while dealing with conflicted
paths were unnecessarily confusing since it did not differentiate
inner merges and outer merges.
* Small modernization of the rerere-train script (in contrib/).
* Use designated initializers we started using in mid 2017 in more
parts of the codebase that are relatively quiescent.
* Improve failure case behaviour of xdiff library when memory
allocation fails.
* General clean-up in reftable implementation, including
clarification of the API documentation, tightening the code to
honor documented length limit, etc.
* Remove the escape hatch we added when we introduced the weather
balloon to use variadic macros unconditionally, to make it official
that we now have a hard dependency on the feature.
* Makefile refactoring with a bit of suffixes rule stripping to
optimize the runtime overhead.
* "git stash drop" is reimplemented as an internal call to
reflog_delete() function, instead of invoking "git reflog delete"
via run_command() API.
* Count string_list items in size_t, not "unsigned int".
* The single-key interactive operation used by "git add -p" has been
made more robust.
* Remove unneeded from gitweb
output.
* "git name-rev" learned to use the generation numbers when setting
the lower bound of searching commits used to explain the revision,
when available, instead of committer time.
* Replace core.fsyncObjectFiles with two new configuration variables,
core.fsync and core.fsyncMethod.
* Updates to refs traditionally weren't fsync'ed, but we can
configure using core.fsync variable to do so.
* "git reflog" command now uses parse-options API to parse its
command line options.
Fixes since v2.35
-----------------
* "rebase" and "stash" in secondary worktrees are broken in
Git 2.35.0, which has been corrected.
* "git pull --rebase" ignored the rebase.autostash configuration
variable when the remote history is a descendant of our history,
which has been corrected.
(merge 3013d98d7a pb/pull-rebase-autostash-fix later to maint).
* "git update-index --refresh" has been taught to deal better with
racy timestamps (just like "git status" already does).
(merge 2ede073fd2 ms/update-index-racy later to maint).
* Avoid tests that are run under GIT_TRACE2 set from failing
unnecessarily.
(merge 944d808e42 js/test-unset-trace2-parents later to maint).
* The merge-ort misbehaved when merge.renameLimit configuration is
set too low and failed to find all renames.
(merge 9ae39fef7f en/merge-ort-restart-optim-fix later to maint).
* We explain that revs come first before the pathspec among command
line arguments, but did not spell out that dashed options come
before other args, which has been corrected.
(merge c11f95010c tl/doc-cli-options-first later to maint).
* "git add -p" rewritten in C regressed hunk splitting in some cases,
which has been corrected.
(merge 7008ddc645 pw/add-p-hunk-split-fix later to maint).
* "git fetch --negotiate-only" is an internal command used by "git
push" to figure out which part of our history is missing from the
other side. It should never recurse into submodules even when
fetch.recursesubmodules configuration variable is set, nor it
should trigger "gc". The code has been tightened up to ensure it
only does common ancestry discovery and nothing else.
(merge de4eaae63a gc/fetch-negotiate-only-early-return later to maint).
* The code path that verifies signatures made with ssh were made to
work better on a system with CRLF line endings.
(merge caeef01ea7 fs/ssh-signing-crlf later to maint).
* "git sparse-checkout init" failed to write into $GIT_DIR/info
directory when the repository was created without one, which has
been corrected to auto-create it.
(merge 7f44842ac1 jt/sparse-checkout-leading-dir-fix later to maint).
* Cloning from a repository that does not yet have any branches or
tags but has other refs resulted in a "remote transport reported
error", which has been corrected.
(merge dccea605b6 jt/clone-not-quite-empty later to maint).
* Mark in various places in the code that the sparse index and the
split index features are mutually incompatible.
(merge 451b66c533 js/sparse-vs-split-index later to maint).
* Update the logic to compute alignment requirement for our mem-pool.
(merge e38bcc66d8 jc/mem-pool-alignment later to maint).
* Pick a better random number generator and use it when we prepare
temporary filenames.
(merge 47efda967c bc/csprng-mktemps later to maint).
* Update the contributor-facing documents on proposed log messages.
(merge cdba0295b0 jc/doc-log-messages later to maint).
* When "git fetch --prune" failed to prune the refs it wanted to
prune, the command issued error messages but exited with exit
status 0, which has been corrected.
(merge c9e04d905e tg/fetch-prune-exit-code-fix later to maint).
* Problems identified by Coverity in the reftable code have been
corrected.
(merge 01033de49f hn/reftable-coverity-fixes later to maint).
* A bug that made multi-pack bitmap and the object order out-of-sync,
making the .midx data corrupt, has been fixed.
(merge f8b60cf99b tb/midx-bitmap-corruption-fix later to maint).
* The build procedure has been taught to notice older version of zlib
and enable our replacement uncompress2() automatically.
(merge 07564773c2 ab/auto-detect-zlib-compress2 later to maint).
* Interaction between fetch.negotiationAlgorithm and
feature.experimental configuration variables has been corrected.
(merge 714edc620c en/fetch-negotiation-default-fix later to maint).
* "git diff --diff-filter=aR" is now parsed correctly.
(merge 75408ca949 js/diff-filter-negation-fix later to maint).
* When "git subtree" wants to create a merge, it used "git merge" and
let it be affected by end-user's "merge.ff" configuration, which
has been corrected.
(merge 9158a3564a tk/subtree-merge-not-ff-only later to maint).
* Unlike "git apply", "git patch-id" did not handle patches with
hunks that has only 1 line in either preimage or postimage, which
has been corrected.
(merge 757e75c81e jz/patch-id-hunk-header-parsing-fix later to maint).
* "receive-pack" checks if it will do any ref updates (various
conditions could reject a push) before received objects are taken
out of the temporary directory used for quarantine purposes, so
that a push that is known-to-fail will not leave crufts that a
future "gc" needs to clean up.
(merge 5407764069 cb/clear-quarantine-early-on-all-ref-update-errors later to maint).
* When there is no object to write .bitmap file for, "git
multi-pack-index" triggered an error, instead of just skipping,
which has been corrected.
(merge eb57277ba3 tb/midx-no-bitmap-for-no-objects later to maint).
* "git cmd -h" outside a repository should error out cleanly for many
commands, but instead it hit a BUG(), which has been corrected.
(merge 87ad07d735 js/short-help-outside-repo-fix later to maint).
* "working tree" and "per-worktree ref" were in glossary, but
"worktree" itself wasn't, which has been corrected.
(merge 2df5387ed0 jc/glossary-worktree later to maint).
* L10n support for a few error messages.
(merge 3d3c23b3a7 bs/forbid-i18n-of-protocol-token-in-fetch-pack later to maint).
* Test modernization.
(merge d4fe066e4b sy/t0001-use-path-is-helper later to maint).
* "git log --graph --graph" used to leak a graph structure, and there
was no way to countermand "--graph" that appear earlier on the
command line. A "--no-graph" option has been added and resource
leakage has been plugged.
* Error output given in response to an ambiguous object name has been
improved.
(merge 3a73c1dfaf ab/ambiguous-object-name later to maint).
* "git sparse-checkout" wants to work with per-worktree configuration,
but did not work well in a worktree attached to a bare repository.
(merge 3ce1138272 ds/sparse-checkout-requires-per-worktree-config later to maint).
* Setting core.untrackedCache to true failed to add the untracked
cache extension to the index.
* Workaround we have for versions of PCRE2 before their version 10.36
were in effect only for their versions newer than 10.36 by mistake,
which has been corrected.
(merge 97169fc361 rs/pcre-invalid-utf8-fix-fix later to maint).
* Document Taylor as a new member of Git PLC at SFC. Welcome.
(merge e8d56ca863 tb/coc-plc-update later to maint).
* "git checkout -b branch/with/multi/level/name && git stash" only
recorded the last level component of the branch name, which has
been corrected.
* Check the return value from parse_tree_indirect() to turn segfaults
into calls to die().
(merge 8d2eaf649a gc/parse-tree-indirect-errors later to maint).
* Newer version of GPGSM changed its output in a backward
incompatible way to break our code that parses its output. It also
added more processes our tests need to kill when cleaning up.
Adjustments have been made to accommodate these changes.
(merge b0b70d54c4 fs/gpgsm-update later to maint).
* The untracked cache newly computed weren't written back to the
on-disk index file when there is no other change to the index,
which has been corrected.
* "git config -h" did not describe the "--type" option correctly.
(merge 5445124fad mf/fix-type-in-config-h later to maint).
* The way generation number v2 in the commit-graph files are
(not) handled has been corrected.
(merge 6dbf4b8172 ds/commit-graph-gen-v2-fixes later to maint).
* The method to trigger malloc check used in our tests no longer work
with newer versions of glibc.
(merge baedc59543 ep/test-malloc-check-with-glibc-2.34 later to maint).
* When "git fetch --recurse-submodules" grabbed submodule commits
that would be needed to recursively check out newly fetched commits
in the superproject, it only paid attention to submodules that are
in the current checkout of the superproject. We now do so for all
submodules that have been run "git submodule init" on.
* "git rebase $base $non_branch_commit", when $base is an ancestor or
the $non_branch_commit, modified the current branch, which has been
corrected.
* When "shallow" information is updated, we forgot to update the
in-core equivalent, which has been corrected.
* When creating a loose object file, we didn't report the exact
filename of the file we failed to fsync, even though the
information was readily available, which has been corrected.
* "git am" can read from the standard input when no mailbox is given
on the command line, but the end-user gets no indication when it
happens, making Git appear stuck.
(merge 7b20af6a06 jc/mailsplit-warn-on-tty later to maint).
* "git mv" failed to refresh the cached stat information for the
entry it moved.
(merge b7f9130a06 vd/mv-refresh-stat later to maint).
* Other code cleanup, docfix, build fix, etc.
(merge cfc5cf428b jc/find-header later to maint).
(merge 40e7cfdd46 jh/p4-fix-use-of-process-error-exception later to maint).
(merge 727e6ea350 jh/p4-spawning-external-commands-cleanup later to maint).
(merge 0a6adc26e2 rs/grep-expr-cleanup later to maint).
(merge 4ed7dfa713 po/readme-mention-contributor-hints later to maint).
(merge 6046f7a91c en/plug-leaks-in-merge later to maint).
(merge 8c591dbfce bc/clarify-eol-attr later to maint).
(merge 518e15db74 rs/parse-options-lithelp-help later to maint).
(merge cbac0076ef gh/doc-typos later to maint).
(merge ce14de03db ab/no-errno-from-resolve-ref-unsafe later to maint).
(merge 2826ffad8c rc/negotiate-only-typofix later to maint).
(merge 0f03f04c5c en/sparse-checkout-leakfix later to maint).
(merge 74f3390dde sy/diff-usage-typofix later to maint).
(merge 45d0212a71 ll/doc-mktree-typofix later to maint).
(merge e9b272e4c1 js/no-more-legacy-stash later to maint).
(merge 6798b08e84 ab/do-not-hide-failures-in-git-dot-pm later to maint).
(merge 9325285df4 po/doc-check-ignore-markup-fix later to maint).
(merge cd26cd6c7c sy/modernize-t-lib-read-tree-m-3way later to maint).
(merge d17294a05e ab/hash-object-leakfix later to maint).
(merge b8403129d3 jd/t0015-modernize later to maint).
(merge 332acc248d ds/mailmap later to maint).
(merge 04bf052eef ab/grep-patterntype later to maint).
(merge 6ee36364eb ab/diff-free-more later to maint).
(merge 63a36017fe nj/read-tree-doc-reffix later to maint).
(merge eed36fce38 sm/no-git-in-upstream-of-pipe-in-tests later to maint).
(merge c614beb933 ep/t6423-modernize later to maint).
(merge 57be9c6dee ab/reflog-prep-fix later to maint).
(merge 5327d8982a js/in-place-reverse-in-sequencer later to maint).
(merge 2e2c0be51e dp/worktree-repair-in-usage later to maint).
(merge 6563706568 jc/coding-guidelines-decl-in-for-loop later to maint).
----------------------------------------------------------------
Changes since v2.35.0 are as follows:
Abhradeep Chakraborty (2):
amend remaining usage strings according to style guide
partial-clone: add a partial-clone test case
Adam Dinwoodie (2):
configure.ac: fix HAVE_SYNC_FILE_RANGE definition
t9902: split test to run on appropriate systems
Alex Henrie (3):
log: fix memory leak if --graph is passed multiple times
log: add a --no-graph option
switch: mention the --detach option when dying due to lack of a branch
Atharva Raykar (5):
submodule--helper: get remote names from any repository
submodule--helper: refactor get_submodule_displaypath()
submodule--helper: allow setting superprefix for init_submodule()
submodule--helper: run update using child process struct
submodule: move core cmd_update() logic to C
Bagas Sanjaya (3):
fetch-pack: parameterize message containing 'ready' keyword
l10n: po-id for 2.36 (round 1)
l10n: po-id for 2.36 (round 2)
COGONI Guillaume (3):
t/t3903-stash.sh: replace test [-d|-f] with test_path_is_*
tests: allow testing if a path is truly a file or a directory
tests: make the code more readable
Carlo Marcelo Arenas Belón (4):
mingw: avoid fallback for {local,gm}time_r()
git-compat-util: really support openssl as a source of entropy
config.mak.dev: workaround gcc 12 bug affecting "pedantic" CI job
config.mak.dev: alternative workaround to gcc 12 warning in http.c
Chen Bojun (1):
receive-pack: purge temporary data if no command is ready to run
Daniel Santos (3):
l10n: pt_PT: update Portuguese translation
l10n: pt_PT: update TEAMS file
l10n: pt_PT: update Portuguese translation
David Cantrell (1):
completion: tab completion of filenames for 'git restore'
Derrick Stolee (47):
Documentation: add extensions.worktreeConfig details
worktree: create init_worktree_config()
config: add repo_config_set_worktree_gently()
sparse-checkout: set worktree-config correctly
worktree: copy sparse-checkout patterns and config on add
config: make git_configset_get_string_tmp() private
mailmap: change primary address for Derrick Stolee
dir: force untracked cache with core.untrackedCache
worktree: combine two translatable messages
worktree: extract copy_filtered_worktree_config()
worktree: extract copy_sparse_checkout()
worktree: extract checkout_worktree()
worktree: use 'worktree' over 'working tree'
worktree: use 'worktree' over 'working tree'
worktree: use 'worktree' over 'working tree'
worktree: use 'worktree' over 'working tree'
worktree: use 'worktree' over 'working tree'
worktree: use 'worktree' over 'working tree'
worktree: use 'worktree' over 'working tree'
test-read-graph: include extra post-parse info
t5318: extract helpers to lib-commit-graph.sh
commit-graph: fix ordering bug in generation numbers
commit-graph: start parsing generation v2 (again)
commit-graph: fix generation number v2 overflow values
commit-graph: declare bankruptcy on GDAT chunks
index-pack: document and test the --promisor option
list-objects-filter-options: create copy helper
revision: put object filter into struct rev_info
pack-objects: use rev.filter when possible
pack-bitmap: drop filter in prepare_bitmap_walk()
list-objects: consolidate traverse_commit_list[_filtered]
MyFirstObjectWalk: update recommended usage
bundle: parse filter capability
rev-list: move --filter parsing into revision.c
bundle: create filtered bundles
bundle: unbundle promisor packs
clone: fail gracefully when cloning filtered bundle
maintenance: fix synopsis in documentation
list-objects-filter: remove CL_ARG__FILTER
pack-objects: move revs out of get_object_list()
pack-objects: parse --filter directly into revs.filter
bundle: move capabilities to end of 'verify'
bundle: output hash information in 'verify'
t7700: check post-condition in kept-pack test
test-lib-functions: remove test_subcommand_inexact
t0033: add tests for safe.directory
setup: opt-out of check with safe.directory=*
Des Preston (1):
worktree: include repair cmd in usage
Elia Pinto (8):
test-lib.sh: Use GLIBC_TUNABLES instead of MALLOC_CHECK_ on glibc >= 2.34
t6423-merge-rename-directories.sh: use the $(...) construct
attr.c: delete duplicate include
builtin/gc.c: delete duplicate include
builtin/sparse-checkout.c: delete duplicate include
builtin/stash.c: delete duplicate include
t/helper/test-run-command.c: delete duplicate include
attr.h: remove duplicate struct definition
Elijah Newren (33):
t1011: add testcase demonstrating accidental loss of user modifications
unpack-trees: fix accidental loss of user changes
repo_read_index: clear SKIP_WORKTREE bit from files present in worktree
Update documentation related to sparsity and the skip-worktree bit
Accelerate clear_skip_worktree_from_present_files() by caching
merge-ort: avoid assuming all renames detected
merge-ort: fix memory leak in merge_ort_internal()
merge: fix memory leaks in cmd_merge()
sequencer, stash: fix running from worktree subdir
sparse-checkout: fix a couple minor memory leaks
repo-settings: fix checking for fetch.negotiationAlgorithm=default
repo-settings: fix error handling for unknown values
repo-settings: rename the traditional default fetch.negotiationAlgorithm
show, log: provide a --remerge-diff capability
log: clean unneeded objects during `log --remerge-diff`
ll-merge: make callers responsible for showing warnings
merge-ort: capture and print ll-merge warnings in our preferred fashion
merge-ort: mark a few more conflict messages as omittable
merge-ort: format messages slightly different for use in headers
diff: add ability to insert additional headers for paths
show, log: include conflict/warning messages in --remerge-diff headers
merge-ort: mark conflict/warning messages from inner merges as omittable
diff-merges: avoid history simplifications when diffing merges
merge-ort: make informational messages from recursive merges clearer
sparse-checkout: correct reapply's handling of options
sparse-checkout: correctly set non-cone mode when expected
sparse-checkout: pay attention to prefix for {set, add}
sparse-checkout: error or warn when given individual files
sparse-checkout: reject arguments in cone-mode that look like patterns
merge-ort: fix small memory leak in detect_and_process_renames()
merge-ort: fix small memory leak in unique_path()
merge-ort: exclude messages from inner merges by default
repo_read_index: add config to expect files outside sparse patterns
Emily Shaffer (14):
hook: add 'run' subcommand
gc: use hook library for pre-auto-gc hook
am: convert {pre,post}-applypatch to use hook.h
rebase: convert pre-rebase to use hook.h
am: convert applypatch-msg to use hook.h
merge: convert post-merge to use hook.h
hooks: convert non-worktree 'post-checkout' hook to hook library
hooks: convert worktree 'post-checkout' hook to hook library
send-email: use 'git hook run' for 'sendemail-validate'
git-p4: use 'git hook' to run hooks
commit: convert {pre-commit,prepare-commit-msg} hook to hook.h
read-cache: convert post-index-change to use hook.h
receive-pack: convert push-to-checkout hook to hook.h
run-command: remove old run_hook_{le,ve}() hook API
Emir SARI (2):
l10n: tr: v2.36.0 round 1
l10n: tr: v2.36.0 round 2
Fabian Stelzer (2):
gpg-interface: trim CR from ssh-keygen
gpg-interface/gpgsm: fix for v2.3
Fangyi Zhou (4):
submodule-helper: fix usage string
l10n: Update zh_CN repo link
l10n: zh_CN v2.36.0 round 1
l10n: zh_CN v2.36.0 round 2
Glen Choo (39):
fetch: use goto cleanup in cmd_fetch()
fetch: skip tasks related to fetching objects
fetch --negotiate-only: do not update submodules
branch: move --set-upstream-to behavior to dwim_and_setup_tracking()
branch: make create_branch() always create a branch
branch: add a dry_run parameter to create_branch()
builtin/branch: consolidate action-picking logic in cmd_branch()
branch: add --recurse-submodules option for branch creation
branch.c: use 'goto cleanup' in setup_tracking() to fix memory leaks
stash: strip "refs/heads/" with skip_prefix
checkout, clone: die if tree cannot be parsed
submodule--helper: remove update-module-mode
submodule--helper: reorganize code for sh to C conversion
submodule--helper run-update-procedure: remove --suboid
submodule--helper run-update-procedure: learn --remote
submodule--helper update-clone: learn --init
submodule--helper: remove ensure-core-worktree
submodule update: add tests for --filter
submodule--helper update-clone: check for --filter and --init
t5526: introduce test helper to assert on fetches
t5526: stop asserting on stderr literally
t5526: create superproject commits with test helper
submodule: make static functions read submodules from commits
submodule: inline submodule_commits() into caller
submodule: store new submodule commits oid_array in a struct
submodule: extract get_fetch_task()
submodule: move logic into fetch_task_create()
submodule update: use die_message()
submodule--helper: teach update_data more options
submodule--helper: reduce logic in run_update_procedure()
submodule--helper: remove forward declaration
fetch: fetch unpopulated, changed submodules
submodule: fix latent check_has_commit() bug
branch: support more tracking modes when recursing
branch: give submodule updating advice before exit
branch --set-upstream-to: be consistent when advising
branch: remove negative exit code
branch: rework comments for future developers
branch.c: simplify advice-and-die sequence
Greg Hurrell (2):
Documentation/config/pgp.txt: replace stray character with
Documentation/config/pgp.txt: add missing apostrophe
Han-Wen Nienhuys (27):
reftable: fix OOB stack write in print functions
reftable: fix resource leak in block.c error path
reftable: fix resource leak blocksource.c
reftable: check reftable_stack_auto_compact() return value
reftable: ignore remove() return value in stack_test.c
reftable: fix resource warning
reftable: all xxx_free() functions accept NULL arguments
reftable: order unittests by complexity
reftable: drop stray printf in readwrite_test
reftable: handle null refnames in reftable_ref_record_equal
reftable: make reftable-record.h function signatures const correct
reftable: implement record equality generically
reftable: remove outdated file reftable.c
reftable: make reftable_record a tagged union
reftable: add print functions to the record types
t1405: explictly delete reflogs for reftable
t1405: mark test that checks existence as REFFILES
t5312: prepare for reftable
t1410: use test-tool ref-store to inspect reflogs
t1410: mark bufsize boundary test as REFFILES
Documentation: object_id_len goes up to 31
reftable: reject 0 object_id_len
reftable: add a test that verifies that writing empty keys fails
reftable: avoid writing empty keys at the block layer
reftable: ensure that obj_id_len is >= 2 on writing
reftable: add test for length of disambiguating prefix
reftable: rename writer_stats to reftable_writer_stats
Jacob Keller (1):
name-rev: use generation numbers if available
Jason Yundt (2):
comment: fix typo
gitweb: remove invalid http-equiv="content-type"
Jayati Shrivastava (1):
sequencer: use reverse_commit_list() helper
Jaydeep Das (1):
t/t0015-hash.sh: remove unnecessary '\' at line end
Jaydeep P Das (1):
userdiff: add builtin diff driver for kotlin language.
Jean-Noël Avila (7):
i18n: factorize more 'incompatible options' messages
i18n: factorize "invalid value" messages
i18n: remove from i18n strings that do not hold translatable parts
i18n: fix some misformated placeholders in command synopsis
l10n: fr: v2.36 round 1
i18n: fix some badly formatted i18n strings
l10n: fr: v2.36 round 2
Jeff Hostetler (30):
fsmonitor: enhance existing comments, clarify trivial response handling
fsmonitor-ipc: create client routines for git-fsmonitor--daemon
fsmonitor: config settings are repository-specific
fsmonitor: use IPC to query the builtin FSMonitor daemon
fsmonitor: document builtin fsmonitor
fsmonitor--daemon: add a built-in fsmonitor daemon
fsmonitor--daemon: implement 'stop' and 'status' commands
compat/fsmonitor/fsm-listen-win32: stub in backend for Windows
compat/fsmonitor/fsm-listen-darwin: stub in backend for Darwin
fsmonitor--daemon: implement 'run' command
fsmonitor--daemon: implement 'start' command
fsmonitor--daemon: add pathname classification
fsmonitor--daemon: define token-ids
fsmonitor--daemon: create token-based changed path cache
compat/fsmonitor/fsm-listen-win32: implement FSMonitor backend on Windows
compat/fsmonitor/fsm-listen-darwin: add MacOS header files for FSEvent
compat/fsmonitor/fsm-listen-darwin: implement FSEvent listener on MacOS
fsmonitor--daemon: implement handle_client callback
help: include fsmonitor--daemon feature flag in version info
t/helper/fsmonitor-client: create IPC client to talk to FSMonitor Daemon
t7527: create test for fsmonitor--daemon
t/perf: avoid copying builtin fsmonitor files into test repo
t/helper/test-chmtime: skip directories on Windows
t/perf/p7519: fix coding style
t/perf/p7519: speed up test on Windows
t/perf/p7519: add fsmonitor--daemon test cases
fsmonitor--daemon: periodically truncate list of modified files
fsmonitor--daemon: use a cookie file to sync with file system
fsmonitor: force update index after large responses
t7527: test status with untracked-cache and fsmonitor--daemon
Jerry Zhang (3):
git-rev-list: add --exclude-first-parent-only flag
patch-id: fix antipatterns in tests
patch-id: fix scan_hunk_header on diffs with 1 line of before/after
Jessica Clarke (1):
mem-pool: don't assume uintmax_t is aligned enough for all types
Jiang Xin (2):
l10n: git.pot: v2.36.0 round 1 (192 new, 106 removed)
l10n: git.pot: v2.36.0 round 2 (4 new, 3 removed)
Joel Holdsworth (4):
git-p4: don't select shell mode using the type of the command argument
git-p4: pass command arguments as lists instead of using shell
git-p4: don't print shell commands as python lists
git-p4: fix instantiation of CalledProcessError
Johannes Schindelin (24):
sparse-index: sparse index is disallowed when split index is active
t1091: disable split index
split-index: it really is incompatible with the sparse index
git-sh-setup: remove remnant bits referring to `git-legacy-stash`
add: remove support for `git-legacy-stash`
stash: remove documentation for `stash.useBuiltin`
stash: stop warning about the obsolete `stash.useBuiltin` config setting
docs(diff): lose incorrect claim about `diff-files --diff-filter=A`
diff.c: move the diff filter bits definitions up a bit
diff-filter: be more careful when looking for negative bits
scalar: accept -C and -c options before the subcommand
checkout/fetch/pull/pack-objects: allow `-h` outside a repository
t0012: verify that built-ins handle `-h` even without gitdir
GIT-VERSION-GEN: bump to v2.33.1
Add a function to determine whether a path is owned by the current user
setup_git_directory(): add an owner check for the top-level directory
cocci: allow padding with `strbuf_addf()`
Fix `GIT_CEILING_DIRECTORIES` with `C:\` and the likes
Git 2.30.3
Git 2.31.2
Git 2.32.1
Git 2.33.2
Git 2.34.2
Git 2.35.2
John Cai (15):
receive-pack.c: consolidate find header logic
name-rev: deprecate --stdin in favor of --annotate-stdin
name-rev.c: use strbuf_getline instead of limited size buffer
builtin/reflog.c: use parse-options api for expire, delete subcommands
name-rev: replace --stdin with --annotate-stdin in synopsis
cat-file: rename cmdmode to transform_mode
cat-file: introduce batch_mode enum to replace print_contents
cat-file: add remove_timestamp helper
cat-file: add --batch-command mode
stash: add tests to ensure reflog --rewrite --updatref behavior
reflog: libify delete reflog function and helpers
stash: call reflog_delete() in reflog.c
cat-file: skip expanding default format
rebase: use test_commit helper in setup
rebase: set REF_HEAD_DETACH in checkout_up_to_date()
Jonathan Tan (6):
config: make git_config_include() static
config: include file if remote URL matches a glob
sparse-checkout: create leading directory
clone: support unusual remote ref configurations
ls-files: support --recurse-submodules --stage
shallow: reset commit grafts when shallow is reset
Jordi Mas (1):
l10n: Update Catalan translation
Josh Steadmon (3):
test-lib: unset trace2 parent envvars
clone, submodule: pass partial clone filters to submodules
ls-tree: `-l` should not imply recursive listing
Junio C Hamano (40):
compat/qsort_s.c: avoid using potentially unaligned access
fetch: help translators by reusing the same message template
Start post 2.35 cycle
SubmittingPatches: write problem statement in the log in the present tense
CodingGuidelines: hint why we value clearly written log messages
SubmittingPatches: explain why we care about log messages
Git 2.35.1
Name the next one 2.36 to prepare for 2.35.1
The first batch
The second batch for 2.36
glossary: describe "worktree"
The third batch
The fourth batch
The fifth batch
The sixth batch
The seventh batch
The eighth batch
rerere-train: two fixes to the use of "git show -s"
am/apply: warn if we end up reading patches from terminal
The ninth batch
The tenth batch
The eleventh batch
The twelfth batch
The thirteenth batch
The 14th batch
reset: show --no-refresh in the short-help
The 15th batch
The 16th batch
The 17th batch
CodingGuidelines: give deadline for "for (int i = 0; ..."
Git 2.36-rc0
Git 2.36-rc1
Git 2.36-rc2
Git 2.30.4
Revert "Merge branch 'ps/avoid-unnecessary-hook-invocation-with-packed-refs'"
Revert "fetch: increase test coverage of fetches"
RelNotes: clarify "bisect run unexecutable" tweak
RelNotes: mention safe.directory
RelNotes: revert the description on the reverted topics
Git 2.36
Justin Donnelly (4):
git-prompt: rename `upstream` to `upstream_type`
git-prompt: make upstream state indicator location consistent
git-prompt: make long upstream state indicator consistent
git-prompt: put upstream comments together
Lessley Dennington (3):
completion: address sparse-checkout issues
completion: improve sparse-checkout cone mode directory completion
completion: handle unusual characters for sparse-checkout
Liginity Lee (1):
fix typo in git-mktree.txt
Marc Strapetz (4):
test-lib: introduce API for verifying file mtime
t7508: fix bogus mtime verification
t7508: add tests capturing racy timestamp handling
update-index: refresh should rewrite index in case of racy timestamps
Martin Ågren (1):
git-ls-tree.txt: fix the name of "%(objectsize:padded)"
Matheus Felipe (1):
config: correct "--type" option in "git config -h" output
Matheus Valadares (1):
setup: fix safe.directory key not being checked
Matt Cooper (1):
index-pack: clarify the breached limit
Matthias Rüster (1):
l10n: de.po: Update German translation
Michael J Gruber (2):
test-lib: declare local variables as local
tests: demonstrate "show --word-diff --color-moved" regression
Neeraj Singh (10):
wrapper: make inclusion of Windows csprng header tightly scoped
core.fsyncmethod: add writeout-only mode
core.fsync: introduce granular fsync control infrastructure
core.fsync: add configuration parsing
core.fsync: new option to harden the index
core.fsync: documentation and user-friendly aggregate options
core.fsync: fix incorrect expression for default configuration
trace2: add stats for fsync operations
core.fsyncmethod: correctly camel-case warning message
object-file: pass filename to fsync_or_die
Nihal Jere (1):
Documentation: git-read-tree: separate links using commas
Patrick Steinhardt (24):
refs: extract packed_refs_delete_refs() to allow control of transaction
refs: allow passing flags when beginning transactions
refs: allow skipping the reference-transaction hook
refs: demonstrate excessive execution of the reference-transaction hook
refs: do not execute reference-transaction hook on packing refs
refs: skip hooks when deleting uncovered packed refs
fetch-pack: use commit-graph when computing cutoff
fetch: skip computing output width when not printing anything
fetch: increase test coverage of fetches
fetch: backfill tags before setting upstream
fetch: control lifecycle of FETCH_HEAD in a single place
fetch: report errors when backfilling tags fails
refs: add interface to iterate over queued transactional updates
fetch: make `--atomic` flag cover backfilling of tags
fetch: make `--atomic` flag cover pruning of refs
upload-pack: look up "want" lines via commit-graph
fetch: avoid lookup of commits when not appending to FETCH_HEAD
refs: add ability for backends to special-case reading of symbolic refs
remote: read symbolic refs via `refs_read_symbolic_ref()`
refs/files-backend: optimize reading of symbolic refs
t5503: simplify setup of test which exercises failure of backfill
repack: refactor to avoid double-negation of update-server-info
repack: add config to skip updating server info
core.fsync: new option to harden references
Peter Krefting (1):
l10n: sv.po: Update Swedish translation (5282t0f0u)
Philip Oakley (2):
README.md: add CodingGuidelines and a link for Translators
doc: check-ignore: code-quote an exclamation mark
Philippe Blain (1):
pull --rebase: honor rebase.autostash when fast-forwarding
Phillip Wood (29):
t3701: clean up hunk splitting tests
builtin add -p: fix hunk splitting
rebase: factor out checkout for up to date branch
t5403: refactor rebase post-checkout hook tests
rebase: pass correct arguments to post-checkout hook
rebase: do not remove untracked files on checkout
rebase --apply: don't run post-checkout hook if there is an error
reset_head(): remove action parameter
reset_head(): factor out ref updates
reset_head(): make default_reflog_action optional
create_autostash(): remove unneeded parameter
rebase: cleanup reset_head() calls
reset_head(): take struct rebase_head_opts
rebase --apply: fix reflog
rebase --apply: set ORIG_HEAD correctly
rebase -m: don't fork git checkout
xdiff: fix a memory leak
xdiff: handle allocation failure in patience diff
xdiff: refactor a function
xdiff: handle allocation failure when merging
terminal: always reset terminal when reading without echo
terminal: pop signal handler when terminal is restored
terminal: set VMIN and VTIME in non-canonical mode
add -p: disable stdin buffering when interactive.singlekey is set
terminal: use flags for save_term()
terminal: don't assume stdin is /dev/tty
terminal: work around macos poll() bug
terminal: restore settings on SIGTSTP
worktree: add -z option for list subcommand
René Scharfe (10):
grep: use grep_or_expr() in compile_pattern_or()
grep: use grep_not_expr() in compile_pattern_not()
apply: use strsets to track symlinks
stable-qsort: avoid using potentially unaligned access
bisect--helper: report actual bisect_state() argument on error
bisect--helper: release strbuf and strvec on run error
bisect: document run behavior with exit codes 126 and 127
bisect--helper: double-check run command on exit code 126 and 127
parse-options: document bracketing of argh
grep: fix triggering PCRE2_NO_START_OPTIMIZE workaround
Robert Coup (8):
fetch: fix negotiate-only error message
fetch-negotiator: add specific noop initializer
fetch-pack: add refetch
builtin/fetch-pack: add --refetch option
fetch: add --refetch option
t5615-partial-clone: add test for fetch --refetch
fetch: after refetch, encourage auto gc repacking
docs: mention --refetch fetch option
SZEDER Gábor (1):
reflog: fix 'show' subcommand's argv
Shaoxuan Yuan (4):
builtin/diff.c: fix "git-diff" usage string typo
t/lib-read-tree-m-3way: modernize style
t/lib-read-tree-m-3way: indent with tabs
t0001: replace "test [-d|-f]" with test_path_is_* functions
Shubham Mishra (3):
t0003: avoid pipes with Git on LHS
t0001-t0028: avoid pipes with Git on LHS
t0030-t0050: avoid pipes with Git on LHS
Tao Klerks (6):
t7519: avoid file to index mtime race for untracked cache
t7519: populate untracked cache before test
untracked-cache: write index when populating empty untracked cache
t/helper/test-chmtime: update mingw to support chmtime on directories
t7063: mtime-mangling instead of delays in untracked cache testing
tracking branches: add advice to ambiguous refspec error
Taylor Blau (15):
grep: extract grep_binexp() from grep_or_expr()
grep: use grep_and_expr() in compile_pattern_and()
t5326: demonstrate bitmap corruption after permutation
midx.c: make changing the preferred pack safe
pack-revindex.c: instrument loading on-disk reverse index
t5326: drop unnecessary setup
t5326: extract `test_rev_exists`
t5326: move tests to t/lib-bitmap.sh
t/lib-bitmap.sh: parameterize tests over reverse index source
midx: read `RIDX` chunk when present
pack-bitmap.c: gracefully fallback after opening pack/MIDX
midx: prevent writing a .bitmap without any objects
CODE_OF_CONDUCT.md: update PLC members list
builtin/remote.c: parse options in 'rename'
builtin/remote.c: show progress when renaming remote references
Teng Long (6):
git-cli.txt: clarify "options first and then args"
ls-tree: rename "retval" to "recurse" in "show_tree()"
ls-tree: simplify nesting if/else logic in "show_tree()"
ls-tree: fix "--name-only" and "--long" combined use bug
ls-tree: slightly refactor `show_tree()`
ls-tree: support --object-only option for "git-ls-tree"
Thomas Gummerer (1):
fetch --prune: exit with error if pruning fails
Thomas Koutcher (1):
subtree: force merge commit
Todd Zullinger (3):
t/lib-gpg: reload gpg components after updating trustlist
t/lib-gpg: kill all gpg components, not just gpg-agent
doc: replace "--" with {litdd} in credential-cache/fsmonitor
Trần Ngọc Quân (1):
l10n: vi(5285t): v2.36.0 round 2
Victoria Dye (30):
reset: fix validation in sparse index test
reset: reorder wildcard pathspec conditions
clean: integrate with sparse index
checkout-index: expand sparse checkout compatibility tests
checkout-index: add --ignore-skip-worktree-bits option
checkout-index: integrate with sparse index
update-index: add tests for sparse-checkout compatibility
update-index: integrate with sparse index
update-index: reduce scope of index expansion in do_reupdate
sparse-index: prevent repo root from becoming sparse
status: fix nested sparse directory diff in sparse index
read-tree: explicitly disallow prefixes with a leading '/'
read-tree: expand sparse checkout test coverage
read-tree: integrate with sparse index
read-tree: narrow scope of index expansion for '--prefix'
read-tree: make two-way merge sparse-aware
read-tree: make three-way merge sparse-aware
reset: revise index refresh advice
reset: introduce --[no-]refresh option to --mixed
reset: replace '--quiet' with '--no-refresh' in performance advice
reset: suppress '--no-refresh' advice if logging is silenced
stash: make internal resets quiet and refresh index
t1092: add sparse directory before cone in test repo
unpack-trees: increment cache_bottom for sparse directories
Revert "unpack-trees: improve performance of next_cache_entry"
reset: do not make '--quiet' disable index refresh
reset: remove 'reset.quiet' config option
reset: remove 'reset.refresh' config option
mv: refresh stat info for moved entry
contrib/scalar: fix 'all' target in Makefile
Yi-Jyun Pan (1):
l10n: zh_TW: v2.36.0 round 2
brian m. carlson (6):
t0027: add tests for eol without text in .gitattributes
docs: correct documentation about eol attribute
wrapper: add a helper to generate numbers from a CSPRNG
wrapper: use a CSPRNG to generate random file names
doc: clarify interaction between 'eol' and text=auto
block-sha1: remove use of obsolete x86 assembly
Ævar Arnfjörð Bjarmason (186):
cat-file tests: test bad usage
cat-file tests: test messaging on bad objects/paths
parse-options API: add a usage_msg_optf()
cat-file docs: fix SYNOPSIS and "-h" output
cat-file: move "usage" variable to cmd_cat_file()
cat-file: make --batch-all-objects a CMDMODE
cat-file: fix remaining usage bugs
cat-file: correct and improve usage information
object-name.c: don't have GET_OID_ONLY_TO_DIE imply *_QUIETLY
cat-file: use GET_OID_ONLY_TO_DIE in --(textconv|filters)
hook API: add a run_hooks() wrapper
hook API: add a run_hooks_l() wrapper
git hook run: add an --ignore-missing flag
cat-file: don't whitespace-pad "(...)" in SYNOPSIS and usage output
cat-file: s/_/-/ in typo'd usage_msg_optf() message
compat: auto-detect if zlib has uncompress2()
sequencer: don't use die_errno() on refs_resolve_ref_unsafe() failure
refs API: remove "failure_errno" from refs_resolve_ref_unsafe()
object-name tests: add tests for ambiguous object blind spots
object-name: explicitly handle OBJ_BAD in show_ambiguous_object()
object-name: explicitly handle bad tags in show_ambiguous_object()
object-name: make ambiguous object output translatable
object-name: show date for ambiguous tag objects
object-name: iterate ambiguous objects before showing header
object-name: re-use "struct strbuf" in show_ambiguous_object()
perl Git.pm: don't ignore signalled failure in _cmd_close()
completion tests: re-source git-completion.bash in a subshell
completion: add a GIT_COMPLETION_SHOW_ALL_COMMANDS
leak tests: fix a memory leak in "test-progress" helper
progress.c test helper: add missing braces
progress.c tests: make start/stop commands on stdin
progress.c tests: test some invalid usage
progress.h: format and be consistent with progress.c naming
progress.c: use dereferenced "progress" variable, not "(*p_progress)"
progress.c: refactor stop_progress{,_msg}() to use helpers
progress API: unify stop_progress{,_msg}(), fix trace2 bug
pack-bitmap-write.c: don't return without stop_progress()
t0051: use "skip_all" under !MINGW in single-test file
hash-object: fix a trivial leak in --path
ls-remote & transport API: release "struct transport_ls_refs_options"
grep.h: remove unused "regex_t regexp" from grep_opt
log tests: check if grep_config() is called by "log"-like cmds
grep tests: create a helper function for "BRE" or "ERE"
grep tests: add missing "grep.patternType" config tests
built-ins: trust the "prefix" from run_builtin()
grep.c: don't pass along NULL callback value
grep API: call grep_config() after grep_init()
grep.h: make "grep_opt.pattern_type_option" use its enum
grep.c: do "if (bool && memchr())" not "if (memchr() && bool)"
grep: simplify config parsing and option parsing
cache.h: remove always unused show_date_human() declaration
date API: create a date.h, split from cache.h
date API: provide and use a DATE_MODE_INIT
date API: add basic API docs
date API: add and use a date_mode_release()
diff.[ch]: have diff_free() call clear_pathspec(opts.pathspec)
diff.[ch]: have diff_free() free options->parseopts
hook tests: test for exact "pre-push" hook input
hook tests: use a modern style for "pre-push" tests
git-compat-util.h: clarify GCC v.s. C99-specific in comment
C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code
help doc: add missing "]" to "[-a|--all]"
help.c: use puts() instead of printf{,_ln}() for consistency
help tests: test "git" and "git help [-a|-g] spacing
help.c: split up list_all_cmds_help() function
help: note the option name on option incompatibility
help: correct usage & behavior of "git help --all"
help: error if [-a|-g|-c] and [-i|-m|-w] are combined
help: add --no-[external-commands|aliases] for use with --all
help: don't print "\n" before single-section output
imap-send.c: use designated initializers for "struct imap_server_conf"
trace2: use designated initializers for "struct tr2_tgt"
trace2: use designated initializers for "struct tr2_dst"
object-file: use designated initializers for "struct git_hash_algo"
archive-*.c: use designated initializers for "struct archiver"
userdiff.c: use designated initializers for "struct userdiff_driver"
convert.c: use designated initializers for "struct stream_filter*"
refspec.c: use designated initializers for "struct refspec_item"
fast-import.c: use designated initializers for "partial" struct assignments
object-file.c: split up declaration of unrelated variables
object-file API: return "void", not "int" from hash_object_file()
object-file API: add a format_object_header() function
object-file API: have write_object_file() take "enum object_type"
object API: correct "buf" v.s. "map" mismatch in *.c and *.h
object API docs: move check_object_signature() docs to cache.h
object API users + docs: check <0, not !0 with check_object_signature()
object-file API: split up and simplify check_object_signature()
object API: rename hash_object_file_literally() to write_*()
object-file API: have hash_object_file() take "enum object_type"
object-file.c: add a literal version of write_object_file_prepare()
object-file API: pass an enum to read_object_with_reference()
test-lib: add GIT_SAN_OPTIONS, inherit [AL]SAN_OPTIONS
test-lib: correct and assert TEST_DIRECTORY overriding
test-lib: make $GIT_BUILD_DIR an absolute path
test-lib: add "fast_unwind_on_malloc=0" to LSAN_OPTIONS
scalar Makefile: use "The default target of..." pattern
Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it
Makefile: disable GNU make built-in wildcard rules
Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)
Makefile: move ".SUFFIXES" rule to shared.mak
Makefile: move $(comma), $(empty) and $(space) to shared.mak
Makefile: add "$(QUIET)" boilerplate to shared.mak
Makefiles: add and use wildcard "mkdir -p" template
log tests: fix "abort tests early" regression in ff37a60c369
index-pack: fix memory leaks
merge-base: free() allocated "struct commit **" list
diff.c: free "buf" in diff_words_flush()
urlmatch.c: add and use a *_release() function
remote-curl.c: free memory in cmd_main()
bundle: call strvec_clear() on allocated strvec
transport: stop needlessly copying bundle header references
submodule--helper: fix trivial leak in module_add()
commit-graph: fix memory leak in misused string_list API
commit-graph: stop fill_oids_from_packs() progress on error and free()
lockfile API users: simplify and don't leak "path"
range-diff: plug memory leak in common invocation
range-diff: plug memory leak in read_patches()
repository.c: free the "path cache" in repo_clear()
submodule tests: test for init and update failure output
submodule--helper: don't use bitfield indirection for parse_options()
gettext API users: don't explicitly cast ngettext()'s "n"
string-list API: change "nr" and "alloc" to "size_t"
merge: don't run post-hook logic on --no-verify
hooks: fix an obscure TOCTOU "did we just run a hook?" race
tests: change some 'test $(git) = "x"' to test_cmp
tests: use "test_stdout_line_count", not "test $(git [...] | wc -l)"
read-tree tests: check "diff-files" exit code on failure
diff tests: don't ignore "git diff" exit code
diff tests: don't ignore "git diff" exit code in "read" loop
apply tests: use "test_must_fail" instead of ad-hoc pattern
merge tests: use "test_must_fail" instead of ad-hoc pattern
rev-parse tests: don't ignore "git reflog" exit code
notes tests: don't ignore "git" exit code
diff tests: don't ignore "git rev-list" exit code
rev-list tests: don't hide abort() in "test_expect_failure"
gettext tests: don't ignore "test-tool regex" exit code
apply tests: don't ignore "git ls-files" exit code, drop sub-shell
checkout tests: don't ignore "git " exit code
rev-list simplify tests: don't ignore "git" exit code
list-objects: handle NULL function pointers
reflog: don't be noisy on empty reflogs
builtin/submodule--helper.c: rename option struct to "opt"
test-lib-functions: add and use a "test_hook" wrapper
hook tests: turn exit code assertions into a loop
http tests: don't rely on "hook/post-update.sample"
tests: assume the hooks are disabled by default
bugreport tests: tighten up "git bugreport -s hooks" test
fetch+push tests: use "test_hook" and "test_when_finished" pattern
gc + p4 tests: use "test_hook", remove sub-shells
tests: change "cat && chmod +x" to use "test_hook"
tests: change "mkdir -p && write_script" to use "test_hook"
tests: use "test_hook" for misc "mkdir -p" and "chmod" cases
diff.c: fix a double-free regression in a18d66cefb
refs: use designated initializers for "struct ref_storage_be"
refs: use designated initializers for "struct ref_iterator_vtable"
misc *.c: use designated initializers for struct assignments
packed-backend: remove stub BUG(...) functions
refs debug: add a wrapper for "read_symbolic_ref"
tests: extend "test_hook" for "rm" and "chmod -x", convert "$HOOK"
proc-receive hook tests: use "test_hook" instead of "write_script"
http tests: use "test_hook" for "smart" and "dumb" http tests
reflog.c: indent argument lists
reflog: refactor cmd_reflog() to "if" branches
reflog tests: add missing "git reflog exists" tests
reflog: move "usage" variables and use macros
git reflog [expire|delete]: make -h output consistent with SYNOPSIS
reflog exists: use parse_options() API
Makefile: use ' ', not non-existing $(wspfx_SQ)
ls-tree tests: add tests for --name-status
ls-tree: remove commented-out code
ls-tree: add missing braces to "else" arms
ls-tree: use "enum object_type", not {blob,tree,commit}_type
ls-tree: use "size_t", not "int" for "struct strbuf"'s "len"
ls-tree: introduce struct "show_tree_data"
ls-tree: introduce "--format" option
ls-tree: detect and error on --name-only --name-status
ls-tree: split up "fast path" callbacks
hooks: fix "invoked hook" regression in a8cc5943338
reflog: convert to parse_options() API
reflog [show]: display sensible -h output
test-lib: have --immediate emit valid TAP on failure
pack-objects: lazily set up "struct rev_info", don't leak
reftable: make assignments portable to AIX xlc v12.01
Documentation/Makefile: fix "make info" regression in dad9cd7d518
Documentation: add --batch-command to cat-file synopsis
ls-tree doc: document interaction with submodules
[Less]
|
Posted
over 3 years
ago
by
Johannes Schindelin
Dear Git users,
I hereby announce that Git for Windows 2.35.3 is available from:
https://gitforwindows.org/
Changes since Git for Windows v2.35.2 (April 12th 2022)
New Features
* Comes with Git v2.35.3.
Bug Fixes
* The advice
... [More]
indicating how to use the %(prefix) with a network share
path was updated to use the appropriate number of slashes.
* Various fixes for usage of the safe.directory and %(prefix) when
using Windows Subsystem for Linux (WSL).
Git-2.35.3-64-bit.exe | 5862bd6f4f4619d3bfeb4f9c2cdfdf62fd45658650debd535c6af10a8695e181
Git-2.35.3-32-bit.exe | d6b2bb64f264b5edf014f356ec4f1532128f43ab0c1ecbf43f0d19912d81d0b8
PortableGit-2.35.3-64-bit.7z.exe | 53091932db9ed386a667a4b11b5760bb8eb2d44d556b67cb94fa2766daa37182
PortableGit-2.35.3-32-bit.7z.exe | be28dea2619f0d71872adf3c3f0859838773b3785b7c36f520005e93e4fc1190
MinGit-2.35.3-64-bit.zip | 9b88c81ad796acf9969825e8736b953cb0e0bfb4717be57fd59336ae94d521e4
MinGit-2.35.3-32-bit.zip | 1ad43122a8a7dc1633beeabcfa14aec5c35c211be8f3594431046ce3e60fc542
MinGit-2.35.3-busybox-64-bit.zip | 2b257cdbae25253034fb3f38e13118d951c85e476c32719b0a0d4f1cd7516d69
MinGit-2.35.3-busybox-32-bit.zip | daf08717875ce64fff84cc0ad755ebe209066a02c238eec47994f7b0a8023b1d
Git-2.35.3-64-bit.tar.bz2 | a81ac00b01de762920500b58a631c51be0574d2df50d7a089ef9195a57358a42
Git-2.35.3-32-bit.tar.bz2 | 69a6880ac0171918bd333421141f79bc14097097e35b1f9aacc483f4300c8e08
Ciao,
Johannes
[Less]
|
Posted
over 3 years
ago
by
Junio C Hamano
The latest maintenance releases Git v2.35.3, together with releases
for older maintenance tracks v2.30.4, v2.31.3, v2.32.2, v2.33.3,
and v2.34.3, are now available at the usual places.
These maintenance releases are to address usability issues in
... [More]
the
recent releases 'v2.35.2', 'v2.34.2', 'v2.33.2', 'v2.32.1',
'v2.31.2', and 'v2.30.3', where each "safe" directory has to be
listed on the safe.directory configuration variables. A broader
escape hatch has been added so that the value '*' can be used to
declare "my colleagues and their repositories I may ever visit are
all trustworthy".
The same fix appears in the tip of 'master' and all the integration
branches of the project above 'master', too.
The tarballs are found at:
https://www.kernel.org/pub/software/scm/git/
The following public repositories all have a copy of the tags
mentioned above in the first paragraph.
url = https://git.kernel.org/pub/scm/git/git
url = https://kernel.googlesource.com/pub/scm/git/git
url = https://github.com/gitster/git
Credit for the usability fix goes to Derrick Stolee.
[Less]
|
Posted
over 3 years
ago
by
Johannes Schindelin
Dear Git users,
I hereby announce that Git for Windows 2.35.2 is available from:
https://gitforwindows.org/
Changes since Git for Windows v2.35.1(2) (February 1st 2022)
This version addresses CVE-2022-24765 and CVE-2022-24767.
New Features
... [More]
* Comes with Git v2.35.2.
Bug Fixes
* The uninstaller was hardened to avoid a vulnerability when running
under the SYSTEM account, addressing CVE-2022-24767.
Git-2.35.2-64-bit.exe | 8d33512f097e79adf7910d917653e630b3a4446b25fe258f6c3a21bdbde410ca
Git-2.35.2-32-bit.exe | 4cac3338d1b637c7574a8ee0214652bacfd030925ea0f2c6beb97655348467c9
PortableGit-2.35.2-64-bit.7z.exe | f15eb0ba8866da555cb8090fbf5aa6862b2e57169d2aeb88ed9c50f59522c8fb
PortableGit-2.35.2-32-bit.7z.exe | 342690bfd53ed5aedca967f2897124f84b65f53bc42162cd775906935bd82131
MinGit-2.35.2-64-bit.zip | 61f0f2d9abd7d54fbb81b30519d4aad8be66268e67cfc9d47871010d340821c5
MinGit-2.35.2-32-bit.zip | ddaa82f450140b2927369d757f68353467b65e31b1a0b85c537ad2759024157d
MinGit-2.35.2-busybox-64-bit.zip | 0ac509d2d2aeb35c301588e31c5afbcf4e74643606f93a4ed808203d80cea01a
MinGit-2.35.2-busybox-32-bit.zip | e8b6300acfcbfd8588e5ec022e5f46b635a00a8d77d0de1a7fc11a4820496b43
Git-2.35.2-64-bit.tar.bz2 | 92a7e9f76682b2fba0a6198a91ee78d3c1df364644b46737d59047907811899e
Git-2.35.2-32-bit.tar.bz2 | 3bf358ee0bd3add315dc90201c4d3325b3f4a6866ecaaf5e6fcd99cfe4129faf
Ciao,
Johannes
[Less]
|
Posted
over 3 years
ago
by
Junio C Hamano
A release candidate Git v2.36.0-rc2 is now available for testing at
the usual places. It is comprised of 673 non-merge commits since
v2.35.2, contributed by 85 people, 25 of which are new faces [*].
It is a day earlier than scheduled; it contains
... [More]
the same fix for
CVE-2022-24765 in the maintenance releases released today.
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.36.0-rc2' 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.35.2 are as follows.
Welcome to the Git development community!
Abhradeep Chakraborty, BRESSAT Jonathan, Chen Bojun,
COGONI Guillaume, David Cantrell, Des Preston, Hongyi Zhao,
Jason Yundt, Jayati Shrivastava, Jaydeep Das, Jaydeep P Das,
Jose Lopes, Justin Donnelly, Kraymer, Liginity Lee, Matheus
Felipe, Maximilian Reichel, Michael McClimon, Nihal Jere,
Pedro Martelletto, Robert Coup, Sean Allred, Shaoxuan Yuan,
Shubham Mishra, and Waleed Khan.
Returning contributors who helped this release are as follows.
Thanks for your continued support.
Adam Dinwoodie, Ævar Arnfjörð Bjarmason, Alex Henrie,
Atharva Raykar, Bagas Sanjaya, Beat Bolli, brian m. carlson,
Carlo Marcelo Arenas Belón, Christian Couder, Daniel Hahler,
Derrick Stolee, Elia Pinto, Elijah Newren, Emily Shaffer,
Eric Sunshine, Fabian Stelzer, Fangyi Zhou, Glen Choo, Greg
Hurrell, Han-Wen Nienhuys, Jacob Keller, Jean-Noël Avila, Jeff
Hostetler, Jeff King, Jerry Zhang, Jessica Clarke, Jiang Xin,
Joel Holdsworth, Johannes Altmanninger, Johannes Schindelin,
Johannes Sixt, John Cai, Jonathan Nieder, Jonathan Tan, Josh
Steadmon, Junio C Hamano, Kevin Willford, Lessley Dennington,
Marc Strapetz, Martin Ågren, Matt Cooper, Michael J Gruber,
Neeraj Singh, Patrick Steinhardt, Philip Oakley, Philippe Blain,
Phillip Wood, Ramkumar Ramachandra, Randall S. Becker, René
Scharfe, Shourya Shukla, SZEDER Gábor, Tao Klerks, Taylor Blau,
Teng Long, Thomas Gummerer, Thomas Koutcher, Tilman Vogel,
Todd Zullinger, and Victoria Dye.
[*] We are counting not just the authorship contribution but issue
reporting, mentoring, helping and reviewing that are recorded in
the commit trailers.
----------------------------------------------------------------
Git 2.36 Release Notes (draft)
==============================
Updates since Git 2.35
----------------------
Backward compatibility warts
* "git name-rev --stdin" has been deprecated and issues a warning
when used; use "git name-rev --annotate-stdin" instead.
* "git clone --filter=... --recurse-submodules" only makes the
top-level a partial clone, while submodules are fully cloned. This
behaviour is changed to pass the same filter down to the submodules.
Note to those who build from the source
* Since Git 2.31, our source assumed that the compiler you use to
build Git supports variadic macros, with an easy-to-use escape
hatch to allow compilation without variadic macros with an request
to report that you had to use the escape hatch to the list.
Because we haven't heard from anybody who actually needed to use
the escape hatch, it has been removed, making support of variadic
macros a hard requirement.
UI, Workflows & Features
* Assorted updates to "git cat-file", especially "-h".
* The command line completion (in contrib/) learns to complete
arguments to give to "git sparse-checkout" command.
* "git log --remerge-diff" shows the difference from mechanical merge
result and the result that is actually recorded in a merge commit.
* "git log" and friends learned an option --exclude-first-parent-only
to propagate UNINTERESTING bit down only along the first-parent
chain, just like --first-parent option shows commits that lack the
UNINTERESTING bit only along the first-parent chain.
* The command line completion script (in contrib/) learned to
complete all Git subcommands, including the ones that are normally
hidden, when GIT_COMPLETION_SHOW_ALL_COMMANDS is used.
* "git branch" learned the "--recurse-submodules" option.
* A not-so-common mistake is to write a script to feed "git bisect
run" without making it executable, in which case all tests will
exit with 126 or 127 error codes, even on revisions that are marked
as good. Try to recognize this situation and stop iteration early.
* When "index-pack" dies due to incoming data exceeding the maximum
allowed input size, include the value of the limit in the error
message.
* The error message given by "git switch HEAD~4" has been clarified
to suggest the "--detach" option that is required.
* In sparse-checkouts, files mis-marked as missing from the working tree
could lead to later problems. Such files were hard to discover, and
harder to correct. Automatically detecting and correcting the marking
of such files has been added to avoid these problems.
* "git cat-file" learns "--batch-command" mode, which is a more
flexible interface than the existing "--batch" or "--batch-check"
modes, to allow different kinds of inquiries made.
* The level of verbose output from the ort backend during inner merge
has been aligned to that of the recursive backend.
* "git remote rename A B", depending on the number of remote-tracking
refs involved, takes long time renaming them. The command has been
taught to show progress bar while making the user wait.
* Bundle file format gets extended to allow a partial bundle,
filtered by similar criteria you would give when making a
partial/lazy clone.
* A new built-in userdiff driver for kotlin has been added.
* "git repack" learned a new configuration to disable triggering of
age-old "update-server-info" command, which is rarely useful these
days.
* "git stash" does not allow subcommands it internally runs as its
implementation detail, except for "git reset", to emit messages;
now "git reset" part has also been squelched.
* "git ls-tree" learns "--oid-only" option, similar to "--name-only",
and more generalized "--format" option.
* "git fetch --refetch" learned to fetch everything without telling
the other side what we already have, which is useful when you
cannot trust what you have in the local object store.
* "git branch" gives hint when branch tracking cannot be established
because fetch refspecs from multiple remote repositories overlap.
* "git worktree list --porcelain" did not c-quote pathnames and lock
reasons with unsafe bytes correctly, which is worked around by
introducing NUL terminated output format with "-z".
Performance, Internal Implementation, Development Support etc.
* "git apply" (ab)used the util pointer of the string-list to keep
track of how each symbolic link needs to be handled, which has been
simplified by using strset.
* Fix a hand-rolled alloca() imitation that may have violated
alignment requirement of data being sorted in compatibility
implementation of qsort_s() and stable qsort().
* Use the parse-options API in "git reflog" command.
* The conditional inclusion mechanism of configuration files using
"[includeIf ]" learns to base its decision on the
URL of the remote repository the repository interacts with.
(merge 399b198489 jt/conditional-config-on-remote-url later to maint).
* "git name-rev --stdin" does not behave like usual "--stdin" at
all. Start the process of renaming it to "--annotate-stdin".
(merge a2585719b3 jc/name-rev-stdin later to maint).
* "git update-index", "git checkout-index", and "git clean" are
taught to work better with the sparse checkout feature.
* Use an internal call to reset_head() helper function instead of
spawning "git checkout" in "rebase", and update code paths that are
involved in the change.
* Messages "ort" merge backend prepares while dealing with conflicted
paths were unnecessarily confusing since it did not differentiate
inner merges and outer merges.
* Small modernization of the rerere-train script (in contrib/).
* Use designated initializers we started using in mid 2017 in more
parts of the codebase that are relatively quiescent.
* Improve failure case behaviour of xdiff library when memory
allocation fails.
* General clean-up in reftable implementation, including
clarification of the API documentation, tightening the code to
honor documented length limit, etc.
* Remove the escape hatch we added when we introduced the weather
balloon to use variadic macros unconditionally, to make it official
that we now have a hard dependency on the feature.
* Makefile refactoring with a bit of suffixes rule stripping to
optimize the runtime overhead.
* "git stash drop" is reimplemented as an internal call to
reflog_delete() function, instead of invoking "git reflog delete"
via run_command() API.
* Count string_list items in size_t, not "unsigned int".
* The single-key interactive operation used by "git add -p" has been
made more robust.
* Remove unneeded from gitweb
output.
* "git name-rev" learned to use the generation numbers when setting
the lower bound of searching commits used to explain the revision,
when available, instead of committer time.
* Replace core.fsyncObjectFiles with two new configuration variables,
core.fsync and core.fsyncMethod.
* Updates to refs traditionally weren't fsync'ed, but we can
configure using core.fsync variable to do so.
* "git reflog" command now uses parse-options API to parse its
command line options.
Fixes since v2.35
-----------------
* "rebase" and "stash" in secondary worktrees are broken in
Git 2.35.0, which has been corrected.
* "git pull --rebase" ignored the rebase.autostash configuration
variable when the remote history is a descendant of our history,
which has been corrected.
(merge 3013d98d7a pb/pull-rebase-autostash-fix later to maint).
* "git update-index --refresh" has been taught to deal better with
racy timestamps (just like "git status" already does).
(merge 2ede073fd2 ms/update-index-racy later to maint).
* Avoid tests that are run under GIT_TRACE2 set from failing
unnecessarily.
(merge 944d808e42 js/test-unset-trace2-parents later to maint).
* The merge-ort misbehaved when merge.renameLimit configuration is
set too low and failed to find all renames.
(merge 9ae39fef7f en/merge-ort-restart-optim-fix later to maint).
* We explain that revs come first before the pathspec among command
line arguments, but did not spell out that dashed options come
before other args, which has been corrected.
(merge c11f95010c tl/doc-cli-options-first later to maint).
* "git add -p" rewritten in C regressed hunk splitting in some cases,
which has been corrected.
(merge 7008ddc645 pw/add-p-hunk-split-fix later to maint).
* "git fetch --negotiate-only" is an internal command used by "git
push" to figure out which part of our history is missing from the
other side. It should never recurse into submodules even when
fetch.recursesubmodules configuration variable is set, nor it
should trigger "gc". The code has been tightened up to ensure it
only does common ancestry discovery and nothing else.
(merge de4eaae63a gc/fetch-negotiate-only-early-return later to maint).
* The code path that verifies signatures made with ssh were made to
work better on a system with CRLF line endings.
(merge caeef01ea7 fs/ssh-signing-crlf later to maint).
* "git sparse-checkout init" failed to write into $GIT_DIR/info
directory when the repository was created without one, which has
been corrected to auto-create it.
(merge 7f44842ac1 jt/sparse-checkout-leading-dir-fix later to maint).
* Cloning from a repository that does not yet have any branches or
tags but has other refs resulted in a "remote transport reported
error", which has been corrected.
(merge dccea605b6 jt/clone-not-quite-empty later to maint).
* Mark in various places in the code that the sparse index and the
split index features are mutually incompatible.
(merge 451b66c533 js/sparse-vs-split-index later to maint).
* Update the logic to compute alignment requirement for our mem-pool.
(merge e38bcc66d8 jc/mem-pool-alignment later to maint).
* Pick a better random number generator and use it when we prepare
temporary filenames.
(merge 47efda967c bc/csprng-mktemps later to maint).
* Update the contributor-facing documents on proposed log messages.
(merge cdba0295b0 jc/doc-log-messages later to maint).
* When "git fetch --prune" failed to prune the refs it wanted to
prune, the command issued error messages but exited with exit
status 0, which has been corrected.
(merge c9e04d905e tg/fetch-prune-exit-code-fix later to maint).
* Problems identified by Coverity in the reftable code have been
corrected.
(merge 01033de49f hn/reftable-coverity-fixes later to maint).
* A bug that made multi-pack bitmap and the object order out-of-sync,
making the .midx data corrupt, has been fixed.
(merge f8b60cf99b tb/midx-bitmap-corruption-fix later to maint).
* The build procedure has been taught to notice older version of zlib
and enable our replacement uncompress2() automatically.
(merge 07564773c2 ab/auto-detect-zlib-compress2 later to maint).
* Interaction between fetch.negotiationAlgorithm and
feature.experimental configuration variables has been corrected.
(merge 714edc620c en/fetch-negotiation-default-fix later to maint).
* "git diff --diff-filter=aR" is now parsed correctly.
(merge 75408ca949 js/diff-filter-negation-fix later to maint).
* When "git subtree" wants to create a merge, it used "git merge" and
let it be affected by end-user's "merge.ff" configuration, which
has been corrected.
(merge 9158a3564a tk/subtree-merge-not-ff-only later to maint).
* Unlike "git apply", "git patch-id" did not handle patches with
hunks that has only 1 line in either preimage or postimage, which
has been corrected.
(merge 757e75c81e jz/patch-id-hunk-header-parsing-fix later to maint).
* "receive-pack" checks if it will do any ref updates (various
conditions could reject a push) before received objects are taken
out of the temporary directory used for quarantine purposes, so
that a push that is known-to-fail will not leave crufts that a
future "gc" needs to clean up.
(merge 5407764069 cb/clear-quarantine-early-on-all-ref-update-errors later to maint).
* Because a deletion of ref would need to remove it from both the
loose ref store and the packed ref store, a delete-ref operation
that logically removes one ref may end up invoking ref-transaction
hook twice, which has been corrected.
(merge 2ed1b64ebd ps/avoid-unnecessary-hook-invocation-with-packed-refs later to maint).
* When there is no object to write .bitmap file for, "git
multi-pack-index" triggered an error, instead of just skipping,
which has been corrected.
(merge eb57277ba3 tb/midx-no-bitmap-for-no-objects later to maint).
* "git cmd -h" outside a repository should error out cleanly for many
commands, but instead it hit a BUG(), which has been corrected.
(merge 87ad07d735 js/short-help-outside-repo-fix later to maint).
* "working tree" and "per-worktree ref" were in glossary, but
"worktree" itself wasn't, which has been corrected.
(merge 2df5387ed0 jc/glossary-worktree later to maint).
* L10n support for a few error messages.
(merge 3d3c23b3a7 bs/forbid-i18n-of-protocol-token-in-fetch-pack later to maint).
* Test modernization.
(merge d4fe066e4b sy/t0001-use-path-is-helper later to maint).
* "git log --graph --graph" used to leak a graph structure, and there
was no way to countermand "--graph" that appear earlier on the
command line. A "--no-graph" option has been added and resource
leakage has been plugged.
* Error output given in response to an ambiguous object name has been
improved.
(merge 3a73c1dfaf ab/ambiguous-object-name later to maint).
* "git sparse-checkout" wants to work with per-worktree configuration,
but did not work well in a worktree attached to a bare repository.
(merge 3ce1138272 ds/sparse-checkout-requires-per-worktree-config later to maint).
* Setting core.untrackedCache to true failed to add the untracked
cache extension to the index.
* Workaround we have for versions of PCRE2 before their version 10.36
were in effect only for their versions newer than 10.36 by mistake,
which has been corrected.
(merge 97169fc361 rs/pcre-invalid-utf8-fix-fix later to maint).
* Document Taylor as a new member of Git PLC at SFC. Welcome.
(merge e8d56ca863 tb/coc-plc-update later to maint).
* "git checkout -b branch/with/multi/level/name && git stash" only
recorded the last level component of the branch name, which has
been corrected.
* "git fetch" can make two separate fetches, but ref updates coming
from them were in two separate ref transactions under "--atomic",
which has been corrected.
* Check the return value from parse_tree_indirect() to turn segfaults
into calls to die().
(merge 8d2eaf649a gc/parse-tree-indirect-errors later to maint).
* Newer version of GPGSM changed its output in a backward
incompatible way to break our code that parses its output. It also
added more processes our tests need to kill when cleaning up.
Adjustments have been made to accommodate these changes.
(merge b0b70d54c4 fs/gpgsm-update later to maint).
* The untracked cache newly computed weren't written back to the
on-disk index file when there is no other change to the index,
which has been corrected.
* "git config -h" did not describe the "--type" option correctly.
(merge 5445124fad mf/fix-type-in-config-h later to maint).
* The way generation number v2 in the commit-graph files are
(not) handled has been corrected.
(merge 6dbf4b8172 ds/commit-graph-gen-v2-fixes later to maint).
* The method to trigger malloc check used in our tests no longer work
with newer versions of glibc.
(merge baedc59543 ep/test-malloc-check-with-glibc-2.34 later to maint).
* When "git fetch --recurse-submodules" grabbed submodule commits
that would be needed to recursively check out newly fetched commits
in the superproject, it only paid attention to submodules that are
in the current checkout of the superproject. We now do so for all
submodules that have been run "git submodule init" on.
* "git rebase $base $non_branch_commit", when $base is an ancestor or
the $non_branch_commit, modified the current branch, which has been
corrected.
* When "shallow" information is updated, we forgot to update the
in-core equivalent, which has been corrected.
* When creating a loose object file, we didn't report the exact
filename of the file we failed to fsync, even though the
information was readily available, which has been corrected.
* "git am" can read from the standard input when no mailbox is given
on the command line, but the end-user gets no indication when it
happens, making Git appear stuck.
(merge 7b20af6a06 jc/mailsplit-warn-on-tty later to maint).
* "git mv" failed to refresh the cached stat information for the
entry it moved.
(merge b7f9130a06 vd/mv-refresh-stat later to maint).
* Fix for CVE-2022-24765 has been merged up from 2.35.2 and others.
* Other code cleanup, docfix, build fix, etc.
(merge cfc5cf428b jc/find-header later to maint).
(merge 40e7cfdd46 jh/p4-fix-use-of-process-error-exception later to maint).
(merge 727e6ea350 jh/p4-spawning-external-commands-cleanup later to maint).
(merge 0a6adc26e2 rs/grep-expr-cleanup later to maint).
(merge 4ed7dfa713 po/readme-mention-contributor-hints later to maint).
(merge 6046f7a91c en/plug-leaks-in-merge later to maint).
(merge 8c591dbfce bc/clarify-eol-attr later to maint).
(merge 518e15db74 rs/parse-options-lithelp-help later to maint).
(merge cbac0076ef gh/doc-typos later to maint).
(merge ce14de03db ab/no-errno-from-resolve-ref-unsafe later to maint).
(merge 2826ffad8c rc/negotiate-only-typofix later to maint).
(merge 0f03f04c5c en/sparse-checkout-leakfix later to maint).
(merge 74f3390dde sy/diff-usage-typofix later to maint).
(merge 45d0212a71 ll/doc-mktree-typofix later to maint).
(merge e9b272e4c1 js/no-more-legacy-stash later to maint).
(merge 6798b08e84 ab/do-not-hide-failures-in-git-dot-pm later to maint).
(merge 9325285df4 po/doc-check-ignore-markup-fix later to maint).
(merge cd26cd6c7c sy/modernize-t-lib-read-tree-m-3way later to maint).
(merge d17294a05e ab/hash-object-leakfix later to maint).
(merge b8403129d3 jd/t0015-modernize later to maint).
(merge 332acc248d ds/mailmap later to maint).
(merge 04bf052eef ab/grep-patterntype later to maint).
(merge 6ee36364eb ab/diff-free-more later to maint).
(merge 63a36017fe nj/read-tree-doc-reffix later to maint).
(merge eed36fce38 sm/no-git-in-upstream-of-pipe-in-tests later to maint).
(merge c614beb933 ep/t6423-modernize later to maint).
(merge 57be9c6dee ab/reflog-prep-fix later to maint).
(merge 5327d8982a js/in-place-reverse-in-sequencer later to maint).
(merge 2e2c0be51e dp/worktree-repair-in-usage later to maint).
(merge 6563706568 jc/coding-guidelines-decl-in-for-loop later to maint).
----------------------------------------------------------------
Changes since v2.35.2 are as follows:
Abhradeep Chakraborty (2):
amend remaining usage strings according to style guide
partial-clone: add a partial-clone test case
Adam Dinwoodie (2):
configure.ac: fix HAVE_SYNC_FILE_RANGE definition
t9902: split test to run on appropriate systems
Alex Henrie (3):
log: fix memory leak if --graph is passed multiple times
log: add a --no-graph option
switch: mention the --detach option when dying due to lack of a branch
Atharva Raykar (5):
submodule--helper: get remote names from any repository
submodule--helper: refactor get_submodule_displaypath()
submodule--helper: allow setting superprefix for init_submodule()
submodule--helper: run update using child process struct
submodule: move core cmd_update() logic to C
Bagas Sanjaya (1):
fetch-pack: parameterize message containing 'ready' keyword
COGONI Guillaume (3):
t/t3903-stash.sh: replace test [-d|-f] with test_path_is_*
tests: allow testing if a path is truly a file or a directory
tests: make the code more readable
Carlo Marcelo Arenas Belón (1):
git-compat-util: really support openssl as a source of entropy
Chen Bojun (1):
receive-pack: purge temporary data if no command is ready to run
David Cantrell (1):
completion: tab completion of filenames for 'git restore'
Derrick Stolee (45):
Documentation: add extensions.worktreeConfig details
worktree: create init_worktree_config()
config: add repo_config_set_worktree_gently()
sparse-checkout: set worktree-config correctly
worktree: copy sparse-checkout patterns and config on add
config: make git_configset_get_string_tmp() private
mailmap: change primary address for Derrick Stolee
dir: force untracked cache with core.untrackedCache
worktree: combine two translatable messages
worktree: extract copy_filtered_worktree_config()
worktree: extract copy_sparse_checkout()
worktree: extract checkout_worktree()
worktree: use 'worktree' over 'working tree'
worktree: use 'worktree' over 'working tree'
worktree: use 'worktree' over 'working tree'
worktree: use 'worktree' over 'working tree'
worktree: use 'worktree' over 'working tree'
worktree: use 'worktree' over 'working tree'
worktree: use 'worktree' over 'working tree'
test-read-graph: include extra post-parse info
t5318: extract helpers to lib-commit-graph.sh
commit-graph: fix ordering bug in generation numbers
commit-graph: start parsing generation v2 (again)
commit-graph: fix generation number v2 overflow values
commit-graph: declare bankruptcy on GDAT chunks
index-pack: document and test the --promisor option
list-objects-filter-options: create copy helper
revision: put object filter into struct rev_info
pack-objects: use rev.filter when possible
pack-bitmap: drop filter in prepare_bitmap_walk()
list-objects: consolidate traverse_commit_list[_filtered]
MyFirstObjectWalk: update recommended usage
bundle: parse filter capability
rev-list: move --filter parsing into revision.c
bundle: create filtered bundles
bundle: unbundle promisor packs
clone: fail gracefully when cloning filtered bundle
maintenance: fix synopsis in documentation
list-objects-filter: remove CL_ARG__FILTER
pack-objects: move revs out of get_object_list()
pack-objects: parse --filter directly into revs.filter
bundle: move capabilities to end of 'verify'
bundle: output hash information in 'verify'
t7700: check post-condition in kept-pack test
test-lib-functions: remove test_subcommand_inexact
Des Preston (1):
worktree: include repair cmd in usage
Elia Pinto (8):
test-lib.sh: Use GLIBC_TUNABLES instead of MALLOC_CHECK_ on glibc >= 2.34
t6423-merge-rename-directories.sh: use the $(...) construct
attr.c: delete duplicate include
builtin/gc.c: delete duplicate include
builtin/sparse-checkout.c: delete duplicate include
builtin/stash.c: delete duplicate include
t/helper/test-run-command.c: delete duplicate include
attr.h: remove duplicate struct definition
Elijah Newren (32):
t1011: add testcase demonstrating accidental loss of user modifications
unpack-trees: fix accidental loss of user changes
repo_read_index: clear SKIP_WORKTREE bit from files present in worktree
Update documentation related to sparsity and the skip-worktree bit
Accelerate clear_skip_worktree_from_present_files() by caching
merge-ort: avoid assuming all renames detected
merge-ort: fix memory leak in merge_ort_internal()
merge: fix memory leaks in cmd_merge()
sparse-checkout: fix a couple minor memory leaks
repo-settings: fix checking for fetch.negotiationAlgorithm=default
repo-settings: fix error handling for unknown values
repo-settings: rename the traditional default fetch.negotiationAlgorithm
show, log: provide a --remerge-diff capability
log: clean unneeded objects during `log --remerge-diff`
ll-merge: make callers responsible for showing warnings
merge-ort: capture and print ll-merge warnings in our preferred fashion
merge-ort: mark a few more conflict messages as omittable
merge-ort: format messages slightly different for use in headers
diff: add ability to insert additional headers for paths
show, log: include conflict/warning messages in --remerge-diff headers
merge-ort: mark conflict/warning messages from inner merges as omittable
diff-merges: avoid history simplifications when diffing merges
merge-ort: make informational messages from recursive merges clearer
sparse-checkout: correct reapply's handling of options
sparse-checkout: correctly set non-cone mode when expected
sparse-checkout: pay attention to prefix for {set, add}
sparse-checkout: error or warn when given individual files
sparse-checkout: reject arguments in cone-mode that look like patterns
merge-ort: fix small memory leak in detect_and_process_renames()
merge-ort: fix small memory leak in unique_path()
merge-ort: exclude messages from inner merges by default
repo_read_index: add config to expect files outside sparse patterns
Emily Shaffer (14):
hook: add 'run' subcommand
gc: use hook library for pre-auto-gc hook
am: convert {pre,post}-applypatch to use hook.h
rebase: convert pre-rebase to use hook.h
am: convert applypatch-msg to use hook.h
merge: convert post-merge to use hook.h
hooks: convert non-worktree 'post-checkout' hook to hook library
hooks: convert worktree 'post-checkout' hook to hook library
send-email: use 'git hook run' for 'sendemail-validate'
git-p4: use 'git hook' to run hooks
commit: convert {pre-commit,prepare-commit-msg} hook to hook.h
read-cache: convert post-index-change to use hook.h
receive-pack: convert push-to-checkout hook to hook.h
run-command: remove old run_hook_{le,ve}() hook API
Fabian Stelzer (2):
gpg-interface: trim CR from ssh-keygen
gpg-interface/gpgsm: fix for v2.3
Fangyi Zhou (1):
submodule-helper: fix usage string
Glen Choo (39):
fetch: use goto cleanup in cmd_fetch()
fetch: skip tasks related to fetching objects
fetch --negotiate-only: do not update submodules
branch: move --set-upstream-to behavior to dwim_and_setup_tracking()
branch: make create_branch() always create a branch
branch: add a dry_run parameter to create_branch()
builtin/branch: consolidate action-picking logic in cmd_branch()
branch: add --recurse-submodules option for branch creation
branch.c: use 'goto cleanup' in setup_tracking() to fix memory leaks
stash: strip "refs/heads/" with skip_prefix
checkout, clone: die if tree cannot be parsed
submodule--helper: remove update-module-mode
submodule--helper: reorganize code for sh to C conversion
submodule--helper run-update-procedure: remove --suboid
submodule--helper run-update-procedure: learn --remote
submodule--helper update-clone: learn --init
submodule--helper: remove ensure-core-worktree
submodule update: add tests for --filter
submodule--helper update-clone: check for --filter and --init
t5526: introduce test helper to assert on fetches
t5526: stop asserting on stderr literally
t5526: create superproject commits with test helper
submodule: make static functions read submodules from commits
submodule: inline submodule_commits() into caller
submodule: store new submodule commits oid_array in a struct
submodule: extract get_fetch_task()
submodule: move logic into fetch_task_create()
submodule update: use die_message()
submodule--helper: teach update_data more options
submodule--helper: reduce logic in run_update_procedure()
submodule--helper: remove forward declaration
fetch: fetch unpopulated, changed submodules
submodule: fix latent check_has_commit() bug
branch: support more tracking modes when recursing
branch: give submodule updating advice before exit
branch --set-upstream-to: be consistent when advising
branch: remove negative exit code
branch: rework comments for future developers
branch.c: simplify advice-and-die sequence
Greg Hurrell (2):
Documentation/config/pgp.txt: replace stray character with
Documentation/config/pgp.txt: add missing apostrophe
Han-Wen Nienhuys (27):
reftable: fix OOB stack write in print functions
reftable: fix resource leak in block.c error path
reftable: fix resource leak blocksource.c
reftable: check reftable_stack_auto_compact() return value
reftable: ignore remove() return value in stack_test.c
reftable: fix resource warning
reftable: all xxx_free() functions accept NULL arguments
reftable: order unittests by complexity
reftable: drop stray printf in readwrite_test
reftable: handle null refnames in reftable_ref_record_equal
reftable: make reftable-record.h function signatures const correct
reftable: implement record equality generically
reftable: remove outdated file reftable.c
reftable: make reftable_record a tagged union
reftable: add print functions to the record types
t1405: explictly delete reflogs for reftable
t1405: mark test that checks existence as REFFILES
t5312: prepare for reftable
t1410: use test-tool ref-store to inspect reflogs
t1410: mark bufsize boundary test as REFFILES
Documentation: object_id_len goes up to 31
reftable: reject 0 object_id_len
reftable: add a test that verifies that writing empty keys fails
reftable: avoid writing empty keys at the block layer
reftable: ensure that obj_id_len is >= 2 on writing
reftable: add test for length of disambiguating prefix
reftable: rename writer_stats to reftable_writer_stats
Jacob Keller (1):
name-rev: use generation numbers if available
Jason Yundt (2):
comment: fix typo
gitweb: remove invalid http-equiv="content-type"
Jayati Shrivastava (1):
sequencer: use reverse_commit_list() helper
Jaydeep Das (1):
t/t0015-hash.sh: remove unnecessary '\' at line end
Jaydeep P Das (1):
userdiff: add builtin diff driver for kotlin language.
Jean-Noël Avila (5):
i18n: factorize more 'incompatible options' messages
i18n: factorize "invalid value" messages
i18n: remove from i18n strings that do not hold translatable parts
i18n: fix some misformated placeholders in command synopsis
i18n: fix some badly formatted i18n strings
Jeff Hostetler (30):
fsmonitor: enhance existing comments, clarify trivial response handling
fsmonitor-ipc: create client routines for git-fsmonitor--daemon
fsmonitor: config settings are repository-specific
fsmonitor: use IPC to query the builtin FSMonitor daemon
fsmonitor: document builtin fsmonitor
fsmonitor--daemon: add a built-in fsmonitor daemon
fsmonitor--daemon: implement 'stop' and 'status' commands
compat/fsmonitor/fsm-listen-win32: stub in backend for Windows
compat/fsmonitor/fsm-listen-darwin: stub in backend for Darwin
fsmonitor--daemon: implement 'run' command
fsmonitor--daemon: implement 'start' command
fsmonitor--daemon: add pathname classification
fsmonitor--daemon: define token-ids
fsmonitor--daemon: create token-based changed path cache
compat/fsmonitor/fsm-listen-win32: implement FSMonitor backend on Windows
compat/fsmonitor/fsm-listen-darwin: add MacOS header files for FSEvent
compat/fsmonitor/fsm-listen-darwin: implement FSEvent listener on MacOS
fsmonitor--daemon: implement handle_client callback
help: include fsmonitor--daemon feature flag in version info
t/helper/fsmonitor-client: create IPC client to talk to FSMonitor Daemon
t7527: create test for fsmonitor--daemon
t/perf: avoid copying builtin fsmonitor files into test repo
t/helper/test-chmtime: skip directories on Windows
t/perf/p7519: fix coding style
t/perf/p7519: speed up test on Windows
t/perf/p7519: add fsmonitor--daemon test cases
fsmonitor--daemon: periodically truncate list of modified files
fsmonitor--daemon: use a cookie file to sync with file system
fsmonitor: force update index after large responses
t7527: test status with untracked-cache and fsmonitor--daemon
Jerry Zhang (3):
git-rev-list: add --exclude-first-parent-only flag
patch-id: fix antipatterns in tests
patch-id: fix scan_hunk_header on diffs with 1 line of before/after
Jessica Clarke (1):
mem-pool: don't assume uintmax_t is aligned enough for all types
Joel Holdsworth (4):
git-p4: don't select shell mode using the type of the command argument
git-p4: pass command arguments as lists instead of using shell
git-p4: don't print shell commands as python lists
git-p4: fix instantiation of CalledProcessError
Johannes Schindelin (14):
sparse-index: sparse index is disallowed when split index is active
t1091: disable split index
split-index: it really is incompatible with the sparse index
git-sh-setup: remove remnant bits referring to `git-legacy-stash`
add: remove support for `git-legacy-stash`
stash: remove documentation for `stash.useBuiltin`
stash: stop warning about the obsolete `stash.useBuiltin` config setting
docs(diff): lose incorrect claim about `diff-files --diff-filter=A`
diff.c: move the diff filter bits definitions up a bit
diff-filter: be more careful when looking for negative bits
scalar: accept -C and -c options before the subcommand
checkout/fetch/pull/pack-objects: allow `-h` outside a repository
t0012: verify that built-ins handle `-h` even without gitdir
cocci: allow padding with `strbuf_addf()`
John Cai (15):
receive-pack.c: consolidate find header logic
name-rev: deprecate --stdin in favor of --annotate-stdin
name-rev.c: use strbuf_getline instead of limited size buffer
builtin/reflog.c: use parse-options api for expire, delete subcommands
name-rev: replace --stdin with --annotate-stdin in synopsis
cat-file: rename cmdmode to transform_mode
cat-file: introduce batch_mode enum to replace print_contents
cat-file: add remove_timestamp helper
cat-file: add --batch-command mode
stash: add tests to ensure reflog --rewrite --updatref behavior
reflog: libify delete reflog function and helpers
stash: call reflog_delete() in reflog.c
cat-file: skip expanding default format
rebase: use test_commit helper in setup
rebase: set REF_HEAD_DETACH in checkout_up_to_date()
Jonathan Tan (6):
config: make git_config_include() static
config: include file if remote URL matches a glob
sparse-checkout: create leading directory
clone: support unusual remote ref configurations
ls-files: support --recurse-submodules --stage
shallow: reset commit grafts when shallow is reset
Josh Steadmon (3):
test-lib: unset trace2 parent envvars
clone, submodule: pass partial clone filters to submodules
ls-tree: `-l` should not imply recursive listing
Junio C Hamano (32):
compat/qsort_s.c: avoid using potentially unaligned access
fetch: help translators by reusing the same message template
Start post 2.35 cycle
SubmittingPatches: write problem statement in the log in the present tense
CodingGuidelines: hint why we value clearly written log messages
SubmittingPatches: explain why we care about log messages
Name the next one 2.36 to prepare for 2.35.1
The first batch
The second batch for 2.36
glossary: describe "worktree"
The third batch
The fourth batch
The fifth batch
The sixth batch
The seventh batch
The eighth batch
rerere-train: two fixes to the use of "git show -s"
am/apply: warn if we end up reading patches from terminal
The ninth batch
The tenth batch
The eleventh batch
The twelfth batch
The thirteenth batch
The 14th batch
reset: show --no-refresh in the short-help
The 15th batch
The 16th batch
The 17th batch
CodingGuidelines: give deadline for "for (int i = 0; ..."
Git 2.36-rc0
Git 2.36-rc1
Git 2.36-rc2
Justin Donnelly (4):
git-prompt: rename `upstream` to `upstream_type`
git-prompt: make upstream state indicator location consistent
git-prompt: make long upstream state indicator consistent
git-prompt: put upstream comments together
Lessley Dennington (3):
completion: address sparse-checkout issues
completion: improve sparse-checkout cone mode directory completion
completion: handle unusual characters for sparse-checkout
Liginity Lee (1):
fix typo in git-mktree.txt
Marc Strapetz (4):
test-lib: introduce API for verifying file mtime
t7508: fix bogus mtime verification
t7508: add tests capturing racy timestamp handling
update-index: refresh should rewrite index in case of racy timestamps
Martin Ågren (1):
git-ls-tree.txt: fix the name of "%(objectsize:padded)"
Matheus Felipe (1):
config: correct "--type" option in "git config -h" output
Matt Cooper (1):
index-pack: clarify the breached limit
Michael J Gruber (2):
test-lib: declare local variables as local
tests: demonstrate "show --word-diff --color-moved" regression
Neeraj Singh (10):
wrapper: make inclusion of Windows csprng header tightly scoped
core.fsyncmethod: add writeout-only mode
core.fsync: introduce granular fsync control infrastructure
core.fsync: add configuration parsing
core.fsync: new option to harden the index
core.fsync: documentation and user-friendly aggregate options
core.fsync: fix incorrect expression for default configuration
trace2: add stats for fsync operations
core.fsyncmethod: correctly camel-case warning message
object-file: pass filename to fsync_or_die
Nihal Jere (1):
Documentation: git-read-tree: separate links using commas
Patrick Steinhardt (24):
refs: extract packed_refs_delete_refs() to allow control of transaction
refs: allow passing flags when beginning transactions
refs: allow skipping the reference-transaction hook
refs: demonstrate excessive execution of the reference-transaction hook
refs: do not execute reference-transaction hook on packing refs
refs: skip hooks when deleting uncovered packed refs
fetch-pack: use commit-graph when computing cutoff
fetch: skip computing output width when not printing anything
fetch: increase test coverage of fetches
fetch: backfill tags before setting upstream
fetch: control lifecycle of FETCH_HEAD in a single place
fetch: report errors when backfilling tags fails
refs: add interface to iterate over queued transactional updates
fetch: make `--atomic` flag cover backfilling of tags
fetch: make `--atomic` flag cover pruning of refs
upload-pack: look up "want" lines via commit-graph
fetch: avoid lookup of commits when not appending to FETCH_HEAD
refs: add ability for backends to special-case reading of symbolic refs
remote: read symbolic refs via `refs_read_symbolic_ref()`
refs/files-backend: optimize reading of symbolic refs
t5503: simplify setup of test which exercises failure of backfill
repack: refactor to avoid double-negation of update-server-info
repack: add config to skip updating server info
core.fsync: new option to harden references
Philip Oakley (2):
README.md: add CodingGuidelines and a link for Translators
doc: check-ignore: code-quote an exclamation mark
Philippe Blain (1):
pull --rebase: honor rebase.autostash when fast-forwarding
Phillip Wood (29):
t3701: clean up hunk splitting tests
builtin add -p: fix hunk splitting
rebase: factor out checkout for up to date branch
t5403: refactor rebase post-checkout hook tests
rebase: pass correct arguments to post-checkout hook
rebase: do not remove untracked files on checkout
rebase --apply: don't run post-checkout hook if there is an error
reset_head(): remove action parameter
reset_head(): factor out ref updates
reset_head(): make default_reflog_action optional
create_autostash(): remove unneeded parameter
rebase: cleanup reset_head() calls
reset_head(): take struct rebase_head_opts
rebase --apply: fix reflog
rebase --apply: set ORIG_HEAD correctly
rebase -m: don't fork git checkout
xdiff: fix a memory leak
xdiff: handle allocation failure in patience diff
xdiff: refactor a function
xdiff: handle allocation failure when merging
terminal: always reset terminal when reading without echo
terminal: pop signal handler when terminal is restored
terminal: set VMIN and VTIME in non-canonical mode
add -p: disable stdin buffering when interactive.singlekey is set
terminal: use flags for save_term()
terminal: don't assume stdin is /dev/tty
terminal: work around macos poll() bug
terminal: restore settings on SIGTSTP
worktree: add -z option for list subcommand
René Scharfe (10):
grep: use grep_or_expr() in compile_pattern_or()
grep: use grep_not_expr() in compile_pattern_not()
apply: use strsets to track symlinks
stable-qsort: avoid using potentially unaligned access
bisect--helper: report actual bisect_state() argument on error
bisect--helper: release strbuf and strvec on run error
bisect: document run behavior with exit codes 126 and 127
bisect--helper: double-check run command on exit code 126 and 127
parse-options: document bracketing of argh
grep: fix triggering PCRE2_NO_START_OPTIMIZE workaround
Robert Coup (8):
fetch: fix negotiate-only error message
fetch-negotiator: add specific noop initializer
fetch-pack: add refetch
builtin/fetch-pack: add --refetch option
fetch: add --refetch option
t5615-partial-clone: add test for fetch --refetch
fetch: after refetch, encourage auto gc repacking
docs: mention --refetch fetch option
SZEDER Gábor (1):
reflog: fix 'show' subcommand's argv
Shaoxuan Yuan (4):
builtin/diff.c: fix "git-diff" usage string typo
t/lib-read-tree-m-3way: modernize style
t/lib-read-tree-m-3way: indent with tabs
t0001: replace "test [-d|-f]" with test_path_is_* functions
Shubham Mishra (3):
t0003: avoid pipes with Git on LHS
t0001-t0028: avoid pipes with Git on LHS
t0030-t0050: avoid pipes with Git on LHS
Tao Klerks (6):
t7519: avoid file to index mtime race for untracked cache
t7519: populate untracked cache before test
untracked-cache: write index when populating empty untracked cache
t/helper/test-chmtime: update mingw to support chmtime on directories
t7063: mtime-mangling instead of delays in untracked cache testing
tracking branches: add advice to ambiguous refspec error
Taylor Blau (15):
grep: extract grep_binexp() from grep_or_expr()
grep: use grep_and_expr() in compile_pattern_and()
t5326: demonstrate bitmap corruption after permutation
midx.c: make changing the preferred pack safe
pack-revindex.c: instrument loading on-disk reverse index
t5326: drop unnecessary setup
t5326: extract `test_rev_exists`
t5326: move tests to t/lib-bitmap.sh
t/lib-bitmap.sh: parameterize tests over reverse index source
midx: read `RIDX` chunk when present
pack-bitmap.c: gracefully fallback after opening pack/MIDX
midx: prevent writing a .bitmap without any objects
CODE_OF_CONDUCT.md: update PLC members list
builtin/remote.c: parse options in 'rename'
builtin/remote.c: show progress when renaming remote references
Teng Long (6):
git-cli.txt: clarify "options first and then args"
ls-tree: rename "retval" to "recurse" in "show_tree()"
ls-tree: simplify nesting if/else logic in "show_tree()"
ls-tree: fix "--name-only" and "--long" combined use bug
ls-tree: slightly refactor `show_tree()`
ls-tree: support --object-only option for "git-ls-tree"
Thomas Gummerer (1):
fetch --prune: exit with error if pruning fails
Thomas Koutcher (1):
subtree: force merge commit
Todd Zullinger (3):
t/lib-gpg: reload gpg components after updating trustlist
t/lib-gpg: kill all gpg components, not just gpg-agent
doc: replace "--" with {litdd} in credential-cache/fsmonitor
Victoria Dye (30):
reset: fix validation in sparse index test
reset: reorder wildcard pathspec conditions
clean: integrate with sparse index
checkout-index: expand sparse checkout compatibility tests
checkout-index: add --ignore-skip-worktree-bits option
checkout-index: integrate with sparse index
update-index: add tests for sparse-checkout compatibility
update-index: integrate with sparse index
update-index: reduce scope of index expansion in do_reupdate
sparse-index: prevent repo root from becoming sparse
status: fix nested sparse directory diff in sparse index
read-tree: explicitly disallow prefixes with a leading '/'
read-tree: expand sparse checkout test coverage
read-tree: integrate with sparse index
read-tree: narrow scope of index expansion for '--prefix'
read-tree: make two-way merge sparse-aware
read-tree: make three-way merge sparse-aware
reset: revise index refresh advice
reset: introduce --[no-]refresh option to --mixed
reset: replace '--quiet' with '--no-refresh' in performance advice
reset: suppress '--no-refresh' advice if logging is silenced
stash: make internal resets quiet and refresh index
t1092: add sparse directory before cone in test repo
unpack-trees: increment cache_bottom for sparse directories
Revert "unpack-trees: improve performance of next_cache_entry"
reset: do not make '--quiet' disable index refresh
reset: remove 'reset.quiet' config option
reset: remove 'reset.refresh' config option
mv: refresh stat info for moved entry
contrib/scalar: fix 'all' target in Makefile
brian m. carlson (6):
t0027: add tests for eol without text in .gitattributes
docs: correct documentation about eol attribute
wrapper: add a helper to generate numbers from a CSPRNG
wrapper: use a CSPRNG to generate random file names
doc: clarify interaction between 'eol' and text=auto
block-sha1: remove use of obsolete x86 assembly
Ævar Arnfjörð Bjarmason (186):
cat-file tests: test bad usage
cat-file tests: test messaging on bad objects/paths
parse-options API: add a usage_msg_optf()
cat-file docs: fix SYNOPSIS and "-h" output
cat-file: move "usage" variable to cmd_cat_file()
cat-file: make --batch-all-objects a CMDMODE
cat-file: fix remaining usage bugs
cat-file: correct and improve usage information
object-name.c: don't have GET_OID_ONLY_TO_DIE imply *_QUIETLY
cat-file: use GET_OID_ONLY_TO_DIE in --(textconv|filters)
hook API: add a run_hooks() wrapper
hook API: add a run_hooks_l() wrapper
git hook run: add an --ignore-missing flag
cat-file: don't whitespace-pad "(...)" in SYNOPSIS and usage output
cat-file: s/_/-/ in typo'd usage_msg_optf() message
compat: auto-detect if zlib has uncompress2()
sequencer: don't use die_errno() on refs_resolve_ref_unsafe() failure
refs API: remove "failure_errno" from refs_resolve_ref_unsafe()
object-name tests: add tests for ambiguous object blind spots
object-name: explicitly handle OBJ_BAD in show_ambiguous_object()
object-name: explicitly handle bad tags in show_ambiguous_object()
object-name: make ambiguous object output translatable
object-name: show date for ambiguous tag objects
object-name: iterate ambiguous objects before showing header
object-name: re-use "struct strbuf" in show_ambiguous_object()
perl Git.pm: don't ignore signalled failure in _cmd_close()
completion tests: re-source git-completion.bash in a subshell
completion: add a GIT_COMPLETION_SHOW_ALL_COMMANDS
leak tests: fix a memory leak in "test-progress" helper
progress.c test helper: add missing braces
progress.c tests: make start/stop commands on stdin
progress.c tests: test some invalid usage
progress.h: format and be consistent with progress.c naming
progress.c: use dereferenced "progress" variable, not "(*p_progress)"
progress.c: refactor stop_progress{,_msg}() to use helpers
progress API: unify stop_progress{,_msg}(), fix trace2 bug
pack-bitmap-write.c: don't return without stop_progress()
t0051: use "skip_all" under !MINGW in single-test file
hash-object: fix a trivial leak in --path
ls-remote & transport API: release "struct transport_ls_refs_options"
grep.h: remove unused "regex_t regexp" from grep_opt
log tests: check if grep_config() is called by "log"-like cmds
grep tests: create a helper function for "BRE" or "ERE"
grep tests: add missing "grep.patternType" config tests
built-ins: trust the "prefix" from run_builtin()
grep.c: don't pass along NULL callback value
grep API: call grep_config() after grep_init()
grep.h: make "grep_opt.pattern_type_option" use its enum
grep.c: do "if (bool && memchr())" not "if (memchr() && bool)"
grep: simplify config parsing and option parsing
cache.h: remove always unused show_date_human() declaration
date API: create a date.h, split from cache.h
date API: provide and use a DATE_MODE_INIT
date API: add basic API docs
date API: add and use a date_mode_release()
diff.[ch]: have diff_free() call clear_pathspec(opts.pathspec)
diff.[ch]: have diff_free() free options->parseopts
hook tests: test for exact "pre-push" hook input
hook tests: use a modern style for "pre-push" tests
git-compat-util.h: clarify GCC v.s. C99-specific in comment
C99: remove hardcoded-out !HAVE_VARIADIC_MACROS code
help doc: add missing "]" to "[-a|--all]"
help.c: use puts() instead of printf{,_ln}() for consistency
help tests: test "git" and "git help [-a|-g] spacing
help.c: split up list_all_cmds_help() function
help: note the option name on option incompatibility
help: correct usage & behavior of "git help --all"
help: error if [-a|-g|-c] and [-i|-m|-w] are combined
help: add --no-[external-commands|aliases] for use with --all
help: don't print "\n" before single-section output
imap-send.c: use designated initializers for "struct imap_server_conf"
trace2: use designated initializers for "struct tr2_tgt"
trace2: use designated initializers for "struct tr2_dst"
object-file: use designated initializers for "struct git_hash_algo"
archive-*.c: use designated initializers for "struct archiver"
userdiff.c: use designated initializers for "struct userdiff_driver"
convert.c: use designated initializers for "struct stream_filter*"
refspec.c: use designated initializers for "struct refspec_item"
fast-import.c: use designated initializers for "partial" struct assignments
object-file.c: split up declaration of unrelated variables
object-file API: return "void", not "int" from hash_object_file()
object-file API: add a format_object_header() function
object-file API: have write_object_file() take "enum object_type"
object API: correct "buf" v.s. "map" mismatch in *.c and *.h
object API docs: move check_object_signature() docs to cache.h
object API users + docs: check <0, not !0 with check_object_signature()
object-file API: split up and simplify check_object_signature()
object API: rename hash_object_file_literally() to write_*()
object-file API: have hash_object_file() take "enum object_type"
object-file.c: add a literal version of write_object_file_prepare()
object-file API: pass an enum to read_object_with_reference()
test-lib: add GIT_SAN_OPTIONS, inherit [AL]SAN_OPTIONS
test-lib: correct and assert TEST_DIRECTORY overriding
test-lib: make $GIT_BUILD_DIR an absolute path
test-lib: add "fast_unwind_on_malloc=0" to LSAN_OPTIONS
scalar Makefile: use "The default target of..." pattern
Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it
Makefile: disable GNU make built-in wildcard rules
Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)
Makefile: move ".SUFFIXES" rule to shared.mak
Makefile: move $(comma), $(empty) and $(space) to shared.mak
Makefile: add "$(QUIET)" boilerplate to shared.mak
Makefiles: add and use wildcard "mkdir -p" template
log tests: fix "abort tests early" regression in ff37a60c369
index-pack: fix memory leaks
merge-base: free() allocated "struct commit **" list
diff.c: free "buf" in diff_words_flush()
urlmatch.c: add and use a *_release() function
remote-curl.c: free memory in cmd_main()
bundle: call strvec_clear() on allocated strvec
transport: stop needlessly copying bundle header references
submodule--helper: fix trivial leak in module_add()
commit-graph: fix memory leak in misused string_list API
commit-graph: stop fill_oids_from_packs() progress on error and free()
lockfile API users: simplify and don't leak "path"
range-diff: plug memory leak in common invocation
range-diff: plug memory leak in read_patches()
repository.c: free the "path cache" in repo_clear()
submodule tests: test for init and update failure output
submodule--helper: don't use bitfield indirection for parse_options()
gettext API users: don't explicitly cast ngettext()'s "n"
string-list API: change "nr" and "alloc" to "size_t"
merge: don't run post-hook logic on --no-verify
hooks: fix an obscure TOCTOU "did we just run a hook?" race
tests: change some 'test $(git) = "x"' to test_cmp
tests: use "test_stdout_line_count", not "test $(git [...] | wc -l)"
read-tree tests: check "diff-files" exit code on failure
diff tests: don't ignore "git diff" exit code
diff tests: don't ignore "git diff" exit code in "read" loop
apply tests: use "test_must_fail" instead of ad-hoc pattern
merge tests: use "test_must_fail" instead of ad-hoc pattern
rev-parse tests: don't ignore "git reflog" exit code
notes tests: don't ignore "git" exit code
diff tests: don't ignore "git rev-list" exit code
rev-list tests: don't hide abort() in "test_expect_failure"
gettext tests: don't ignore "test-tool regex" exit code
apply tests: don't ignore "git ls-files" exit code, drop sub-shell
checkout tests: don't ignore "git " exit code
rev-list simplify tests: don't ignore "git" exit code
list-objects: handle NULL function pointers
reflog: don't be noisy on empty reflogs
builtin/submodule--helper.c: rename option struct to "opt"
test-lib-functions: add and use a "test_hook" wrapper
hook tests: turn exit code assertions into a loop
http tests: don't rely on "hook/post-update.sample"
tests: assume the hooks are disabled by default
bugreport tests: tighten up "git bugreport -s hooks" test
fetch+push tests: use "test_hook" and "test_when_finished" pattern
gc + p4 tests: use "test_hook", remove sub-shells
tests: change "cat && chmod +x" to use "test_hook"
tests: change "mkdir -p && write_script" to use "test_hook"
tests: use "test_hook" for misc "mkdir -p" and "chmod" cases
diff.c: fix a double-free regression in a18d66cefb
refs: use designated initializers for "struct ref_storage_be"
refs: use designated initializers for "struct ref_iterator_vtable"
misc *.c: use designated initializers for struct assignments
packed-backend: remove stub BUG(...) functions
refs debug: add a wrapper for "read_symbolic_ref"
tests: extend "test_hook" for "rm" and "chmod -x", convert "$HOOK"
proc-receive hook tests: use "test_hook" instead of "write_script"
http tests: use "test_hook" for "smart" and "dumb" http tests
reflog.c: indent argument lists
reflog: refactor cmd_reflog() to "if" branches
reflog tests: add missing "git reflog exists" tests
reflog: move "usage" variables and use macros
git reflog [expire|delete]: make -h output consistent with SYNOPSIS
reflog exists: use parse_options() API
Makefile: use ' ', not non-existing $(wspfx_SQ)
ls-tree tests: add tests for --name-status
ls-tree: remove commented-out code
ls-tree: add missing braces to "else" arms
ls-tree: use "enum object_type", not {blob,tree,commit}_type
ls-tree: use "size_t", not "int" for "struct strbuf"'s "len"
ls-tree: introduce struct "show_tree_data"
ls-tree: introduce "--format" option
ls-tree: detect and error on --name-only --name-status
ls-tree: split up "fast path" callbacks
hooks: fix "invoked hook" regression in a8cc5943338
reflog: convert to parse_options() API
reflog [show]: display sensible -h output
test-lib: have --immediate emit valid TAP on failure
pack-objects: lazily set up "struct rev_info", don't leak
reftable: make assignments portable to AIX xlc v12.01
Documentation/Makefile: fix "make info" regression in dad9cd7d518
Documentation: add --batch-command to cat-file synopsis
ls-tree doc: document interaction with submodules
[Less]
|